36 using namespace pwiz::identdata;
37 using namespace pwiz::identdata::examples;
38 using namespace pwiz::util;
39 using namespace pwiz::data;
40 namespace proteome = pwiz::proteome;
48 using namespace pwiz::proteome;
53 SpectrumIdentificationProtocolPtr sip = mzid.analysisProtocolCollection.spectrumIdentificationProtocol[0];
54 SpectrumIdentificationListPtr sil = mzid.dataCollection.analysisData.spectrumIdentificationList[0];
56 SpectrumIdentificationResultPtr result2 = sil->spectrumIdentificationResult[1];
62 SpectrumIdentificationItemPtr result2_rank1 = result2->spectrumIdentificationItem[0];
65 vector<DigestedPeptide> result2_rank1_digestedPeptides =
digestedPeptides(*sip, *result2_rank1);
70 unit_assert(result2_rank1_digestedPeptides[0].NTerminusIsSpecific());
71 unit_assert(result2_rank1_digestedPeptides[0].CTerminusIsSpecific());
75 sip->enzymes.independent =
true;
79 SpectrumIdentificationItemPtr result2_rank1 = result2->spectrumIdentificationItem[0];
82 result2_rank1->peptideEvidencePtr[0]->pre =
'K';
87 vector<DigestedPeptide> result2_rank1_digestedPeptides =
digestedPeptides(*sip, *result2_rank1);
92 unit_assert(result2_rank1_digestedPeptides[0].NTerminusIsSpecific());
93 unit_assert(!result2_rank1_digestedPeptides[0].CTerminusIsSpecific());
97 sip->enzymes.enzymes.clear();
98 EnzymePtr trypsin(
new Enzyme);
99 trypsin->id =
"ENZ_1";
100 trypsin->cTermGain =
"OH";
101 trypsin->nTermGain =
"H";
102 trypsin->missedCleavages = 2;
103 trypsin->minDistance = 1;
104 trypsin->terminalSpecificity = proteome::Digestion::FullySpecific;
105 trypsin->siteRegexp =
"(?<=[KR])";
107 sip->enzymes.enzymes.push_back(trypsin);
111 SpectrumIdentificationItemPtr result2_rank1 = result2->spectrumIdentificationItem[0];
112 vector<DigestedPeptide> result2_rank1_digestedPeptides =
digestedPeptides(*sip, *result2_rank1);
118 unit_assert(result2_rank1_digestedPeptides[0].NTerminusIsSpecific());
119 unit_assert(result2_rank1_digestedPeptides[0].CTerminusIsSpecific());
124 SpectrumIdentificationItemPtr result2_rank2 = result2->spectrumIdentificationItem[1];
125 vector<DigestedPeptide> result2_rank2_digestedPeptides =
digestedPeptides(*sip, *result2_rank2);
129 for (
int i=0; i < 2; ++i)
135 unit_assert(result2_rank2_digestedPeptides[i].NTerminusIsSpecific());
136 unit_assert(!result2_rank2_digestedPeptides[i].CTerminusIsSpecific());
143 sip->enzymes.enzymes[0]->enzymeName.clear();
144 sip->enzymes.enzymes[0]->siteRegexp =
"(?<=K)";
148 SpectrumIdentificationItemPtr result2_rank1 = result2->spectrumIdentificationItem[0];
149 vector<DigestedPeptide> result2_rank1_digestedPeptides =
digestedPeptides(*sip, *result2_rank1);
154 unit_assert(result2_rank1_digestedPeptides[0].NTerminusIsSpecific());
155 unit_assert(!result2_rank1_digestedPeptides[0].CTerminusIsSpecific());
158 SpectrumIdentificationItemPtr result2_rank2 = result2->spectrumIdentificationItem[1];
159 vector<DigestedPeptide> result2_rank2_digestedPeptides =
digestedPeptides(*sip, *result2_rank2);
163 for (
int i=0; i < 2; ++i)
168 unit_assert(result2_rank2_digestedPeptides[i].NTerminusIsSpecific());
169 unit_assert(!result2_rank2_digestedPeptides[i].CTerminusIsSpecific());
175 sip->enzymes.enzymes[0]->siteRegexp.clear();
179 SpectrumIdentificationItemPtr result2_rank1 = result2->spectrumIdentificationItem[0];
180 vector<DigestedPeptide> result2_rank1_digestedPeptides =
digestedPeptides(*sip, *result2_rank1);
185 unit_assert(!result2_rank1_digestedPeptides[0].NTerminusIsSpecific());
186 unit_assert(!result2_rank1_digestedPeptides[0].CTerminusIsSpecific());
189 SpectrumIdentificationItemPtr result2_rank2 = result2->spectrumIdentificationItem[1];
190 vector<DigestedPeptide> result2_rank2_digestedPeptides =
digestedPeptides(*sip, *result2_rank2);
194 for (
int i=0; i < 2; ++i)
199 unit_assert(!result2_rank2_digestedPeptides[i].NTerminusIsSpecific());
200 unit_assert(!result2_rank2_digestedPeptides[i].CTerminusIsSpecific());
205 sip->enzymes.enzymes[0]->enzymeName.clear();
210 SpectrumIdentificationItemPtr result2_rank1 = result2->spectrumIdentificationItem[0];
211 vector<DigestedPeptide> result2_rank1_digestedPeptides =
digestedPeptides(*sip, *result2_rank1);
216 unit_assert(result2_rank1_digestedPeptides[0].NTerminusIsSpecific());
217 unit_assert(result2_rank1_digestedPeptides[0].CTerminusIsSpecific());
220 SpectrumIdentificationItemPtr result2_rank2 = result2->spectrumIdentificationItem[1];
221 vector<DigestedPeptide> result2_rank2_digestedPeptides =
digestedPeptides(*sip, *result2_rank2);
225 for (
int i=0; i < 2; ++i)
230 unit_assert(result2_rank2_digestedPeptides[i].NTerminusIsSpecific());
231 unit_assert(result2_rank2_digestedPeptides[i].CTerminusIsSpecific());
236 sip->enzymes.enzymes[0]->enzymeName.clear();
237 sip->enzymes.enzymes[0]->siteRegexp =
"(?=K)";
241 SpectrumIdentificationItemPtr result2_rank1 = result2->spectrumIdentificationItem[0];
242 vector<DigestedPeptide> result2_rank1_digestedPeptides =
digestedPeptides(*sip, *result2_rank1);
247 unit_assert(!result2_rank1_digestedPeptides[0].NTerminusIsSpecific());
248 unit_assert(!result2_rank1_digestedPeptides[0].CTerminusIsSpecific());
251 SpectrumIdentificationItemPtr result2_rank2 = result2->spectrumIdentificationItem[1];
252 vector<DigestedPeptide> result2_rank2_digestedPeptides =
digestedPeptides(*sip, *result2_rank2);
256 for (
int i=0; i < 2; ++i)
261 unit_assert(!result2_rank2_digestedPeptides[i].NTerminusIsSpecific());
262 unit_assert(result2_rank2_digestedPeptides[i].CTerminusIsSpecific());
269 SpectrumIdentificationItemPtr result2_rank1 = result2->spectrumIdentificationItem[0];
272 result2_rank1->peptideEvidencePtr[0]->start = 618;
273 result2_rank1->peptideEvidencePtr[0]->post =
'-';
275 vector<DigestedPeptide> result2_rank1_digestedPeptides =
digestedPeptides(*sip, *result2_rank1);
281 unit_assert(!result2_rank1_digestedPeptides[0].NTerminusIsSpecific());
282 unit_assert(result2_rank1_digestedPeptides[0].CTerminusIsSpecific());
287 result2_rank1->peptideEvidencePtr[0]->start = 1;
288 result2_rank1->peptideEvidencePtr[0]->pre =
'-';
289 result2_rank1->peptideEvidencePtr[0]->post =
'A';
297 unit_assert(result2_rank1_digestedPeptides[0].NTerminusIsSpecific());
298 unit_assert(!result2_rank1_digestedPeptides[0].CTerminusIsSpecific());
311 BOOST_FOREACH(SearchModificationPtr& mod, sip->modificationParams)
312 mod->cvParams.clear();
315 BOOST_FOREACH(ModificationPtr& mod, pep->modification)
316 mod->cvParams.clear();
325 if (diff &&
os_) *
os_ <<
"diff:\n" << diff_string<TextWriter>(
diff) << endl;
375 ez.
name =
"trypsin/p";
387 int main(
int argc,
char** argv)
391 if (argc>1 && !strcmp(argv[1],
"-v"))
os_ = &cout;
392 if (
os_) *
os_ <<
"MzIdentMLTest\n";