97 src.SetOrg().SetDb().push_back(dbtag);
104 COrg_ref::TDb::iterator it = src.
SetOrg().SetDb().begin();
105 while (it != src.
SetOrg().SetDb().end()) {
107 && (
id == 0 || ((*it)->IsSetTag() && (*it)->GetTag().IsId() && (*it)->GetTag().GetId() ==
id))) {
108 it = src.
SetOrg().SetDb().erase(it);
132 entry->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set(
"AATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAA");
136 id->SetLocal().SetStr (
"good");
165 if (entry->
IsSeq()) {
167 }
else if (entry->
IsSet()) {
173 if (entry->
IsSeq()) {
175 }
else if (entry->
IsSet()) {
193 if (entry->
IsSeq()) {
195 }
else if (entry->
IsSet()) {
205 dbtag->
SetTag().SetStr(
id);
206 src.
SetOrg().SetDb().push_back(dbtag);
215 if (entry->
IsSeq()) {
217 if ((*it)->IsSource()) {
221 }
else if (entry->
IsSet()) {
223 if ((*it)->IsSource()) {
236 if (entry->
IsSeq()) {
238 if ((*it)->IsSource()) {
242 }
else if (entry->
IsSet()) {
244 if ((*it)->IsSource()) {
259 dbtag->
SetTag().SetId(
id);
271 dbtag->
SetTag().SetStr(
id);
282 if (entry->
IsSeq()) {
284 if ((*it)->IsSource()) {
288 }
else if (entry->
IsSet()) {
290 if ((*it)->IsSource()) {
304 CSeq_feat::TDbxref::iterator it = feat->
SetDbxref().begin();
307 && (
id == 0 || ((*it)->IsSetTag() && (*it)->GetTag().IsId() && (*it)->GetTag().GetId() ==
id))) {
322 if (entry->
IsSeq()) {
324 if ((*it)->IsSource()) {
325 SetTaxon((*it)->SetSource(), taxon);
328 }
else if (entry->
IsSet()) {
330 if ((*it)->IsSource()) {
331 SetTaxon((*it)->SetSource(), taxon);
340 if (!entry || !annot) {
343 if (entry->
IsSeq()) {
345 }
else if (entry->
IsSet()) {
357 if (entry->
IsSeq()) {
366 }
else if (entry->
IsSet()) {
376 annot->
SetData().SetFtable().push_back(feat);
383 feat->
SetData().SetProt().SetName().push_back(
"fake protein name");
395 feat->
SetData().SetBiosrc().SetOrg().SetTaxname(
"Trichechus manatus");
397 feat->
SetData().SetBiosrc().SetOrg().SetOrgname().SetLineage(
"some lineage");
398 feat->
SetLocation().SetInt().SetId().SetLocal().SetStr(
"good");
402 annot->
SetData().SetFtable().push_back(feat);
414 feat->
SetData().SetImp().SetKey(
"misc_feature");
422 feat->
SetLocation().SetInt().SetId().SetLocal().SetStr(
"good");
425 feat->
SetData().SetImp().SetKey(
"misc_feature");
433 if (entry->
IsSeq()) {
435 }
else if (entry->
IsSet()) {
447 feat->
SetComment(
"misc_feature needs a comment");
464 if (entry->
IsSeq()) {
466 if ((*it)->IsSource()) {
468 (*it)->SetSource().SetOrg().ResetTaxname();
470 (*it)->SetSource().SetOrg().SetTaxname(taxname);
474 }
else if (entry->
IsSet()) {
476 if ((*it)->IsSource()) {
478 (*it)->SetSource().SetOrg().ResetTaxname();
480 (*it)->SetSource().SetOrg().SetTaxname(taxname);
516 if (entry->
IsSeq()) {
518 if ((*it)->IsSource()) {
520 (*it)->SetSource().SetOrg().ResetCommon();
522 (*it)->SetSource().SetOrg().SetCommon(common);
526 }
else if (entry->
IsSet()) {
528 if ((*it)->IsSource()) {
530 (*it)->SetSource().SetOrg().ResetCommon();
532 (*it)->SetSource().SetOrg().SetCommon(common);
545 if (entry->
IsSeq()) {
547 if ((*it)->IsSource()) {
549 (*it)->SetSource().SetOrg().SetOrgname().ResetLineage();
551 (*it)->SetSource().SetOrg().SetOrgname().SetLineage(lineage);
555 }
else if (entry->
IsSet()) {
557 if ((*it)->IsSource()) {
559 (*it)->SetSource().SetOrg().SetOrgname().ResetLineage();
561 (*it)->SetSource().SetOrg().SetOrgname().SetLineage(lineage);
574 if (entry->
IsSeq()) {
576 if ((*it)->IsSource()) {
578 (*it)->SetSource().SetOrg().SetOrgname().ResetDiv();
580 (*it)->SetSource().SetOrg().SetOrgname().SetDiv(div);
584 }
else if (entry->
IsSet()) {
586 if ((*it)->IsSource()) {
588 (*it)->SetSource().SetOrg().SetOrgname().ResetDiv();
590 (*it)->SetSource().SetOrg().SetOrgname().SetDiv(div);
603 if (entry->
IsSeq()) {
605 if ((*it)->IsSource()) {
606 (*it)->SetSource().SetOrigin(
origin);
609 }
else if (entry->
IsSet()) {
611 if ((*it)->IsSource()) {
612 (*it)->SetSource().SetOrigin(
origin);
624 if (entry->
IsSeq()) {
626 if ((*it)->IsSource()) {
627 (*it)->SetSource().SetOrg().SetOrgname().SetGcode(gcode);
630 }
else if (entry->
IsSet()) {
632 if ((*it)->IsSource()) {
633 (*it)->SetSource().SetOrg().SetOrgname().SetGcode(gcode);
645 if (entry->
IsSeq()) {
647 if ((*it)->IsSource()) {
648 (*it)->SetSource().SetOrg().SetOrgname().SetMgcode(mgcode);
651 }
else if (entry->
IsSet()) {
653 if ((*it)->IsSource()) {
654 (*it)->SetSource().SetOrg().SetOrgname().SetMgcode(mgcode);
666 if (entry->
IsSeq()) {
668 if ((*it)->IsSource()) {
669 (*it)->SetSource().SetOrg().SetOrgname().SetPgcode(pgcode);
672 }
else if (entry->
IsSet()) {
674 if ((*it)->IsSource()) {
675 (*it)->SetSource().SetOrg().SetOrgname().SetPgcode(pgcode);
687 if (entry->
IsSeq()) {
689 if ((*it)->IsSource()) {
690 (*it)->SetSource().SetOrg().ResetOrgname();
693 }
else if (entry->
IsSet()) {
695 if ((*it)->IsSource()) {
696 (*it)->SetSource().SetOrg().ResetOrgname();
708 if (entry->
IsSeq()) {
710 if ((*it)->IsSource()) {
711 (*it)->SetSource().SetIs_focus();
714 }
else if (entry->
IsSet()) {
716 if ((*it)->IsSource()) {
717 (*it)->SetSource().SetIs_focus();
729 if (entry->
IsSeq()) {
731 if ((*it)->IsSource()) {
732 (*it)->SetSource().ResetIs_focus();
735 }
else if (entry->
IsSet()) {
737 if ((*it)->IsSource()) {
738 (*it)->SetSource().ResetIs_focus();
750 if (entry->
IsSeq()) {
752 if ((*it)->IsSource()) {
753 (*it)->SetSource().SetGenome(genome);
756 }
else if (entry->
IsSet()) {
758 if ((*it)->IsSource()) {
759 (*it)->SetSource().SetGenome(genome);
770 CBioSource::TSubtype::iterator it = src.
SetSubtype().begin();
772 if ((*it)->IsSetSubtype() && (*it)->GetSubtype() == subtype) {
794 if (entry->
IsSeq()) {
796 if ((*it)->IsSource()) {
800 }
else if (entry->
IsSet()) {
802 if ((*it)->IsSource()) {
814 CBioSource::TSubtype::iterator it = src.
SetSubtype().begin();
835 if (entry->
IsSeq()) {
837 if ((*it)->IsSource()) {
841 }
else if (entry->
IsSet()) {
843 if ((*it)->IsSource()) {
857 CBioSource::TSubtype::iterator it = src.
SetSubtype().begin();
874 if (entry->
IsSeq()) {
876 if ((*it)->IsSource()) {
880 }
else if (entry->
IsSet()) {
882 if ((*it)->IsSource()) {
894 COrgName::TMod::iterator it = src.
SetOrg().SetOrgname().SetMod().begin();
895 while (it != src.
SetOrg().SetOrgname().SetMod().end()) {
896 if ((*it)->IsSetSubtype() && (*it)->GetSubtype() == subtype) {
897 it = src.
SetOrg().SetOrgname().SetMod().erase(it);
905 src.
SetOrg().SetOrgname().SetMod().push_back(sub);
915 if (entry->
IsSeq()) {
917 if ((*it)->IsSource()) {
921 }
else if (entry->
IsSet()) {
923 if ((*it)->IsSource()) {
934 author->
SetName().SetName().SetLast(
"Darwin");
935 author->
SetName().SetName().SetFirst(
"Charles");
936 author->
SetName().SetName().SetMiddle(
"R");
946 art_title->SetName(
"article title");
949 journal_title->SetName(
"journal_title");
950 pub->
SetArticle().
SetFrom().SetJournal().SetTitle().Set().push_back(journal_title);
952 iso_jta->SetIso_jta(
"abbr");
957 pub->
SetArticle().
SetFrom().SetJournal().SetImp().SetDate().SetStd().SetYear(2009);
971 if (serial_number > -1) {
983 pub->
SetSub().
SetAuthors().SetAffil().SetStd().SetAffil(
"A Major University");
993 if (seq.
SetInst().IsSetSeq_data()) {
995 seq.
SetInst().SetSeq_data().SetIupacna().Set().clear();
996 for (
int i = 0;
i < 100;
i++) {
997 seq.
SetInst().SetSeq_data().SetIupacna().Set().append(
998 "AAAAATTTTTGGGGGCCCCCTTTTTAAAAATTTTTGGGGGCCCCCTTTTTAAAAATTTTTGGGGGCCCCCTTTTTAAAAATTTTTGGGGGCCCCCTTTTT");
1000 seq.
SetInst().SetLength(10000);
1002 seq.
SetInst().SetSeq_data().SetIupacaa().Set().clear();
1003 for (
int i = 0;
i < 100;
i++) {
1004 seq.
SetInst().SetSeq_data().SetIupacaa().Set().append(
1005 "MPRKTEINSLMPRKTEINSLMPRKTEINSLMPRKTEINSLMPRKTEINSLMPRKTEINSLMPRKTEINSLMPRKTEINSLMPRKTEINSLMPRKTEINSL");
1007 seq.
SetInst().SetLength(10000);
1018 if ((*it)->IsMolinfo()) {
1019 (*it)->SetMolinfo().SetBiomol(biomol);
1036 if ((*it)->IsMolinfo()) {
1037 (*it)->SetMolinfo().SetTech(tech);
1051 if (entry->
IsSeq()) {
1054 if ((*it)->IsMolinfo()) {
1055 (*it)->SetMolinfo().SetCompleteness (completeness);
1078 entry->
SetSeq().
SetInst().SetSeq_data().SetIupacaa().Set(
"PRKTEIN");
1081 if ((*it)->IsMolinfo()) {
1098 pseq->
SetInst().SetSeq_data().SetIupacaa().Set(
"MPRKTEIN");
1103 pseq->
SetId().push_back(pid);
1108 pseq->
SetDescr().Set().push_back(mpdesc);
1114 feat->
SetData().SetProt().SetName().push_back(
"fake protein name");
1115 feat->
SetLocation().SetInt().SetId().SetLocal().SetStr(
id);
1128 cds->
SetProduct().SetWhole().SetLocal().SetStr(prot_id);
1129 cds->
SetLocation().SetInt().SetId().SetLocal().SetStr(nuc_id);
1145 nseq->
SetInst().SetSeq_data().SetIupacna().Set(
"ATGCCCAGAAAAACAGAGATAAACTAAGGGATGCCCAGAAAAACAGAGATAAACTAAGGG");
1146 nseq->
SetInst().SetLength(60);
1149 id->SetLocal().SetStr (
"nuc");
1150 nseq->
SetId().push_back(
id);
1154 nseq->
SetDescr().Set().push_back(mdesc);
1159 set->SetSeq_set().push_back(nentry);
1164 set->SetSeq_set().push_back(pentry);
1186 if (entry->
IsSeq()) {
1189 }
else if (entry->
IsSet()) {
1193 if (
prot && prot_seq) {
1194 prot->SetLocation().SetInt().SetTo(prot_seq->
SetSeq().
SetInst().SetLength() - 1);
1207 if (entry->
IsSeq()) {
1210 }
else if (entry->
IsSet()) {
1215 if (
prot->SetData().SetProt().SetName().size() > 0) {
1216 prot->SetData().SetProt().SetName().pop_front();
1218 prot->SetData().SetProt().SetName().push_front(new_name);
1225 return entry->
SetSet().
SetAnnot().front()->SetData().SetFtable().front();
1244 return pentry->
SetSeq().
SetAnnot().front()->SetData().SetFtable().front();
1261 prot->SetPartial(partial5 || partial3);
1266 if (partial5 && partial3) {
1268 }
else if (partial5) {
1270 }
else if (partial3) {
1297 pfeat->
SetLocation().SetInt().SetId().Assign(*
id);
1313 cds->
SetLocation().SetMix().Set().front()->SetInt().SetId().Assign(*
id);
1314 cds->
SetLocation().SetMix().Set().back()->SetInt().SetId().Assign(*
id);
1326 nuc_seq->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set(
"ATGCCCAGAAAAACAGAGATAAACAAAGGGATGCCCAGAAAAACAGAGATAAACAAAGGG");
1328 prot_seq->
SetSeq().
SetInst().SetSeq_data().SetIupacaa().Set(
"MPRKTEINKGMPRKTEINKG");
1332 prot->SetLocation().SetInt().SetTo(19);
1334 prot->SetPartial(
true);
1341 CSeq_annot::C_Data::TFtable::iterator it = annot->
SetData().SetFtable().begin();
1342 while (it != annot->
SetData().SetFtable().end()) {
1343 (*it)->SetLocation().SetInt().SetId().Assign(*
id);
1353 CSeq_annot::C_Data::TFtable::iterator it = annot->
SetData().SetFtable().begin();
1354 while (it != annot->
SetData().SetFtable().end()) {
1355 if ((*it)->IsSetProduct()) {
1356 (*it)->SetProduct().SetWhole().Assign(*
id);
1366 if (!np_set || !np_set->
IsSet()) {
1388 if (!np_set || !np_set->
IsSet()) {
1395 prot_entry->
SetSeq().
SetId().front()->Assign(*
id);
1409 id->SetOther().SetAccession(
"NC_123456");
1416 if (entry->
IsSeq()) {
1419 CBioseq::TAnnot::iterator annot_it = entry->
SetSeq().
SetAnnot().begin();
1421 if ((*annot_it)->IsFtable()) {
1422 CSeq_annot::C_Data::TFtable::iterator it = (*annot_it)->SetData().SetFtable().begin();
1423 while (it != (*annot_it)->SetData().SetFtable().end()) {
1424 (*it)->SetLocation().SetId(*
id);
1438 CSeq_annot::C_Data::TFtable::iterator it = annot->
SetData().SetFtable().begin();
1439 while (it != annot->
SetData().SetFtable().end()) {
1440 (*it)->SetLocation().SetInt().SetId().SetLocal().SetStr().append(suffix);
1441 if ((*it)->IsSetProduct()) {
1442 (*it)->SetProduct().SetWhole().SetLocal().SetStr().append(suffix);
1452 if (entry->
IsSeq()) {
1453 entry->
SetSeq().
SetId().front()->SetLocal().SetStr().append(suffix);
1455 CBioseq::TAnnot::iterator annot_it = entry->
SetSeq().
SetAnnot().begin();
1461 }
else if (entry->
IsSet()) {
1468 CBioseq_set::TAnnot::iterator annot_it = entry->
SetSet().
SetAnnot().begin();
1482 nuc->SetSeq().SetInst().SetSeq_data().SetIupacna().Set(
"ATGCCCAGAAAAACAGAGATAAACTAA");
1483 nuc->SetSeq().SetInst().SetLength(27);
1510 contig->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set(
"ATGCCCAGAAAAACAGAGATAAACTAAGGGATGCCCAGAAAAACAGAGATAAACTAAGGG");
1522 cds->
SetLocation().SetInt().SetId().SetLocal().SetStr(
"good");
1525 mrna->
SetProduct().SetWhole().Assign(*nuc_id);
1568 string new_seq =
"";
1569 string::iterator sit = seq.end();
1570 while (sit != seq.begin()) {
1583 new_seq.append(new_ch);
1586 bioseq.
SetInst().SetSeq_data().SetIupacna().Set(new_seq);
1590 TSeqPos new_from =
len - (*feat_it)->GetLocation().GetInt().GetTo() - 1;
1591 TSeqPos new_to =
len - (*feat_it)->GetLocation().GetInt().GetFrom() - 1;
1592 (*feat_it)->SetLocation().SetInt().SetFrom(new_from);
1593 (*feat_it)->SetLocation().SetInt().SetTo(new_to);
1594 if ((*feat_it)->GetLocation().GetInt().IsSetStrand()
1610 loc.
SetInt().SetFrom(new_from);
1611 loc.
SetInt().SetTo(new_to);
1618 }
else if (loc.
IsMix()) {
1628 if (entry->
IsSeq()) {
1630 }
else if (entry->
IsSet()) {
1651 gap_seg->SetLiteral().SetSeq_data().SetGap();
1652 gap_seg->SetLiteral().SetLength(10);
1653 entry->
SetSeq().
SetInst().SetExt().SetDelta().Set().push_back(gap_seg);
1663 CDelta_ext::Tdata::iterator seg_it = entry->
SetSeq().
SetInst().SetExt().SetDelta().Set().begin();
1664 while (seg_it != entry->
SetSeq().
SetInst().SetExt().SetDelta().Set().end()) {
1665 if ((*seg_it)->IsLiteral()
1666 && (!(*seg_it)->GetLiteral().IsSetSeq_data()
1667 || (*seg_it)->GetLiteral().GetSeq_data().IsGap())) {
1669 len -= (*seg_it)->GetLiteral().GetLength();
1670 seg_it = entry->
SetSeq().
SetInst().SetExt().SetDelta().Set().erase(seg_it);
1682 size_t add_len = seq.length();
1685 gap_seg->SetLiteral().SetSeq_data().SetGap();
1686 gap_seg->SetLiteral().SetLength(10);
1687 entry->
SetSeq().
SetInst().SetExt().SetDelta().Set().push_back(gap_seg);
1689 entry->
SetSeq().
SetInst().SetLength(orig_len + 10 + add_len);
1698 part->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set(
"AATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAA");
1717 loc1->
SetWhole().SetLocal().SetStr(
"part1");
1719 loc2->
SetWhole().SetLocal().SetStr(
"part2");
1721 loc3->
SetWhole().SetLocal().SetStr(
"part3");
1723 seg_seq->
SetSeq().
SetInst().SetExt().SetSeg().Set().push_back(loc1);
1724 seg_seq->
SetSeq().
SetInst().SetExt().SetSeg().Set().push_back(loc2);
1725 seg_seq->
SetSeq().
SetInst().SetExt().SetSeg().Set().push_back(loc3);
1729 id->SetLocal().SetStr (
"master");
1755 taxon_id->
SetDb(
"taxon");
1756 taxon_id->
SetTag().SetId(592768);
1762 segset->
SetDescr().Set().push_back(odesc);
1800 id->Assign(*(s->GetSeq().GetId().front()));
1801 align->
SetSegs().SetDenseg().SetIds().push_back(
id);
1803 const string&
orig = s->SetSeq().SetInst().SetSeq_data().SetIupacna().Set();
1804 size_t orig_len = s->GetSeq().GetInst().GetLength();
1806 for (
auto i = (
size_t)0;
i <
offset;
i++) {
1809 s->SetSeq().SetInst().SetSeq_data().SetIupacna().Set(add +
orig);
1810 s->SetSeq().SetInst().SetLength(orig_len +
offset);
1815 align->
SetSegs().SetDenseg().SetNumseg(1);
1816 align->
SetSegs().SetDenseg().SetLens().push_back(entry->
GetSet().
GetSeq_set().front()->GetSeq().GetInst().GetLength());
1817 align->
SetSegs().SetDenseg().SetDim(3);
1820 annot->
SetData().SetAlign().push_back(align);
1832 for (
auto i = 0;
i < num_pieces;
i++) {
1835 }
else if (denseg.
GetStrands().size() < num_pieces) {
1836 for (
auto i = denseg.
GetStrands().size();
i < num_pieces;
i++) {
1866 align->
SetSegs().SetDenseg().SetIds().push_back(id1);
1867 align->
SetSegs().SetDenseg().SetIds().push_back(id2);
1868 align->
SetSegs().SetDenseg().SetDim(2);
1869 align->
SetSegs().SetDenseg().SetStarts().push_back(0);
1870 align->
SetSegs().SetDenseg().SetStarts().push_back(0);
1871 align->
SetSegs().SetDenseg().SetNumseg(1);
1872 align->
SetSegs().SetDenseg().SetLens().push_back(812);
1881 graph->
SetLoc().SetInt().SetFrom(0);
1882 graph->
SetLoc().SetInt().SetTo(10);
1883 graph->
SetLoc().SetInt().SetId().SetLocal().SetStr(
id);
1886 annot->
SetData().SetGraph().push_back(graph);
1895 if ((*dit)->Which() == desc_choice) {
1910 feat->
SetData().SetRna().SetExt().SetTRNA().SetAa().SetIupacaa(
'N');
1911 feat->
SetData().SetRna().SetExt().SetTRNA().SetAnticodon().SetInt().SetId().Assign(*
id);
1912 feat->
SetData().SetRna().SetExt().SetTRNA().SetAnticodon().SetInt().SetFrom(11);
1913 feat->
SetData().SetRna().SetExt().SetTRNA().SetAnticodon().SetInt().SetTo(13);
1922 trna->
SetData().SetRna().SetExt().SetTRNA().SetAnticodon().SetInt().SetFrom(8);
1923 trna->
SetData().SetRna().SetExt().SetTRNA().SetAnticodon().SetInt().SetTo(10);
1924 trna->
SetData().SetRna().SetExt().SetTRNA().SetAa().SetIupacaa(
'F');
1932 loc1->
SetInt().SetFrom(0);
1933 loc1->
SetInt().SetTo(15);
1934 loc1->
SetInt().SetId().Assign(*
id);
1936 loc2->
SetInt().SetFrom(46);
1937 loc2->
SetInt().SetTo(56);
1938 loc2->
SetInt().SetId().Assign(*
id);
1940 mixloc->
SetMix().Set().push_back(loc1);
1941 mixloc->
SetMix().Set().push_back(loc2);
1949 intron->
SetData().SetImp().SetKey(
"intron");
1952 intron->
SetLocation().SetInt().SetId().Assign(*
id);
1959 seq.
SetInst().SetSeq_data().SetIupacna().Set()[16] =
'G';
1960 seq.
SetInst().SetSeq_data().SetIupacna().Set()[17] =
'T';
1961 seq.
SetInst().SetSeq_data().SetIupacna().Set()[44] =
'A';
1962 seq.
SetInst().SetSeq_data().SetIupacna().Set()[45] =
'G';
1969 gene->
SetData().SetGene().SetLocus(
"gene locus");
1990 entry->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set()[0] =
'G';
1991 entry->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set()[1] =
'T';
1992 entry->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set()[9] =
'A';
1993 entry->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set()[10] =
'G';
2003 imp_feat->
SetLocation().SetPnt().SetId().SetLocal().SetStr(
"good");
2015 struct SFileRememberer
2017 void operator()(
const CDirEntry & dir_entry ) {
2018 m_filesFound.push_back(
CFile(dir_entry));
2021 vector<CFile> m_filesFound;
2027 template<
typename Pair>
2030 typename Pair::first_type operator()(
const Pair & a_pair )
const
2032 return a_pair.first;
2039 CDir dirWithTestCases,
2045 if( ! pTestRunner ) {
2048 if( ! dirWithTestCases.
Exists() ) {
2049 pTestRunner->
OnError(
"Top-level test-cases dir not found: " + dirWithTestCases.
GetPath() );
2052 if( ! dirWithTestCases.
IsDir() ) {
2053 pTestRunner->
OnError(
"Top-level test-cases dir is actually not a dir: " + dirWithTestCases.
GetPath() );
2057 const vector<string> kEmptyVectorOfStrings;
2059 SFileRememberer fileRememberer;
2062 kEmptyVectorOfStrings,
2063 kEmptyVectorOfStrings,
2072 TMapTestNameToItsFiles mapTestNameToItsFiles;
2074 ITERATE( vector<CFile>, file_it, fileRememberer.m_filesFound ) {
2075 const string sFileName = file_it->GetName();
2094 if( sTestName.empty() || sSuffix.empty() ) {
2095 pTestRunner->
OnError(
"Bad file name: " + file_it->GetPath());
2099 if( setOfIgnoredSuffixes.
find(sSuffix) != setOfIgnoredSuffixes.
end() ) {
2105 const bool bWasInserted =
2106 mapTestNameToItsFiles[sTestName].insert(make_pair(sSuffix, *file_it)).second;
2107 if( ! bWasInserted ) {
2109 "File with same name appears multiple times in different dirs: " +
2110 file_it->GetPath() );
2116 ERASE_ITERATE(TMapTestNameToItsFiles, test_it, mapTestNameToItsFiles) {
2117 const string & sTestName = test_it->first;
2124 inserter(setOfAllSuffixes, setOfAllSuffixes.
begin()),
2125 SFirstOfPair<ITestRunner::TMapSuffixToFile::value_type>() );
2129 set_difference( setOfAllSuffixes.
begin(), setOfAllSuffixes.
end(),
2130 setOfRequiredSuffixes.
begin(), setOfRequiredSuffixes.
end(),
2131 inserter(setOfNonRequiredSuffixes, setOfNonRequiredSuffixes.
begin() ) );
2136 const size_t szNumOfSuffixes = setOfAllSuffixes.
size();
2137 const size_t szNumOfNonRequiredSuffixes = setOfNonRequiredSuffixes.
size();
2138 if( (szNumOfSuffixes - szNumOfNonRequiredSuffixes) != setOfRequiredSuffixes.
size() )
2140 pTestRunner->
OnError(
"Skipping this test because it's missing some files: " + sTestName);
2141 mapTestNameToItsFiles.erase(test_it);
2146 if( ! includes( setOfOptionalSuffixes.
begin(), setOfOptionalSuffixes.
end(),
2147 setOfNonRequiredSuffixes.
begin(), setOfNonRequiredSuffixes.
end() ) )
2149 pTestRunner->
OnError(
"Skipping this test because it has unexpected suffix(es): " + sTestName);
2150 mapTestNameToItsFiles.erase(test_it);
2156 if( mapTestNameToItsFiles.empty() ) {
2157 pTestRunner->
OnError(
"There are no tests to run");
2162 ITERATE(TMapTestNameToItsFiles, test_it, mapTestNameToItsFiles) {
2163 const string & sTestName = test_it->first;
2167 cerr <<
"Running test: " << sTestName << endl;
2168 pTestRunner->
RunTest(sTestName, mapSuffixToFile);
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
@ eExtreme_Positional
numerical value
@ eExtreme_Biological
5' and 3'
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
void transform(Container &c, UnaryFunction *op)
TSeqPos GetLength(void) const
@OrgMod.hpp User-defined methods of the data storage class.
bool IsFtable(void) const
void SetDescr(CSeq_descr &value)
list< CRef< CSeq_annot > > TAnnot
namespace ncbi::objects::
void AddQualifier(const string &qual_name, const string &qual_val)
Add a qualifier to this feature.
virtual void RunTest(const string &sTestNAme, const TMapSuffixToFile &mapSuffixToFile)=0
This function is called for each test.
virtual void OnError(const string &sErrorText)=0
This is called when an error occurs, and if ITestRunner is using boost it should indicate that using,...
const_iterator begin() const
const_iterator end() const
const_iterator begin() const
const_iterator find(const key_type &key) const
const_iterator end() const
Include a standard set of the NCBI C++ Toolkit most basic headers.
#define ENTREZ_ID_CONST(id)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define ERASE_ITERATE(Type, Var, Cont)
Non-constant version with ability to erase current element, if container permits.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define NCBI_USER_THROW_FMT(message)
Throw a "user exception" with message processed as output to ostream.
static string CreateAbsolutePath(const string &path, ERelativeToWhat rtw=eRelativeToCwd)
Get an absolute path from some, possibly relative, path.
void FindFilesInDir(const CDir &dir, const vector< string > &masks, const vector< string > &masks_subdir, TFindFunc &find_func, TFindFiles flags=fFF_Default)
Find files in the specified directory.
virtual bool Exists(void) const
Check if directory "dirname" exists.
bool IsDir(EFollowLinks follow=eFollowLinks) const
Check whether a directory entry is a directory.
static char GetPathSeparator(void)
Get path separator symbol specific for the current platform.
const string & GetPath(void) const
Get entry path.
@ fFF_Recursive
descend into sub-dirs
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
const TPrim & Get(void) const
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
ENa_strand GetStrand(void) const
Get the location's strand.
TSeqPos GetStart(ESeqLocExtremes ext) const
Return start and stop positions of the seq-loc.
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
bool IsPartialStop(ESeqLocExtremes ext) const
TSeqPos GetStop(ESeqLocExtremes ext) const
static CRef< CBioseq > TranslateToProtein(const CSeq_feat &cds, CScope &scope)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)
Find the pattern in the string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static bool SplitInTwo(const CTempString str, const CTempString delim, string &str1, string &str2, TSplitFlags flags=0)
Split a string into two pieces using the specified delimiters.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
static bool Equal(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2, ECase use_case=eCase)
Test for equality of a substring with another string.
void SetTitle(TTitle &value)
Assign a value to Title data member.
void SetDate(TDate &value)
Assign a value to Date data member.
void SetName(TName &value)
Assign a value to Name data member.
void SetFrom(TFrom &value)
Assign a value to From data member.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
void SetSerial_number(TSerial_number value)
Assign a value to Serial_number data member.
void SetDate(TDate &value)
Assign a value to Date data member.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
void SetTitle(const TTitle &value)
Assign a value to Title data member.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
void SetSubtype(TSubtype value)
Assign a value to Subtype data member.
bool IsSetOrg(void) const
Check if a value has been assigned to Org data member.
bool IsSetSubtype(void) const
Check if a value has been assigned to Subtype data member.
const TOrg & GetOrg(void) const
Get the Org member data.
void SetOrg(TOrg &value)
Assign a value to Org data member.
void SetName(const TName &value)
Assign a value to Name data member.
TSubtype & SetSubtype(void)
Assign a value to Subtype data member.
void SetTag(TTag &value)
Assign a value to Tag data member.
TStr & SetStr(void)
Select the variant.
void SetDb(const TDb &value)
Assign a value to Db data member.
bool IsSetDb(void) const
ids in taxonomic or culture dbases Check if a value has been assigned to Db data member.
bool IsSetMod(void) const
Check if a value has been assigned to Mod data member.
bool IsSetOrgname(void) const
Check if a value has been assigned to Orgname data member.
const TOrgname & GetOrgname(void) const
Get the Orgname member data.
TPmid & SetPmid(void)
Select the variant.
TSub & SetSub(void)
Select the variant.
TGen & SetGen(void)
Select the variant.
TArticle & SetArticle(void)
Select the variant.
bool IsSetStrands(void) const
Check if a value has been assigned to Strands data member.
const TStarts & GetStarts(void) const
Get the Starts member data.
void SetSegs(TSegs &value)
Assign a value to Segs data member.
const TLens & GetLens(void) const
Get the Lens member data.
void SetDim(TDim value)
Assign a value to Dim data member.
void SetType(TType value)
Assign a value to Type data member.
TDim GetDim(void) const
Get the Dim member data.
TStarts & SetStarts(void)
Assign a value to Starts data member.
TStrands & SetStrands(void)
Assign a value to Strands data member.
TNumseg GetNumseg(void) const
Get the Numseg member data.
const TStrands & GetStrands(void) const
Get the Strands member data.
TDbxref & SetDbxref(void)
Assign a value to Dbxref data member.
void SetLocation(TLocation &value)
Assign a value to Location data member.
void SetComment(const TComment &value)
Assign a value to Comment data member.
void SetPartial(TPartial value)
Assign a value to Partial data member.
void SetProduct(TProduct &value)
Assign a value to Product data member.
bool IsSetPartial(void) const
incomplete in some way? Check if a value has been assigned to Partial data member.
const TLocation & GetLocation(void) const
Get the Location member data.
void SetData(TData &value)
Assign a value to Data data member.
TPartial GetPartial(void) const
Get the Partial member data.
bool IsSetDbxref(void) const
support for xref to other databases Check if a value has been assigned to Dbxref data member.
bool IsMix(void) const
Check if variant Mix is selected.
void SetAccession(const TAccession &value)
Assign a value to Accession data member.
TFrom GetFrom(void) const
Get the From member data.
list< CRef< CSeq_loc > > Tdata
TLocal & SetLocal(void)
Select the variant.
bool IsSetStrand(void) const
Check if a value has been assigned to Strand data member.
TStrand GetStrand(void) const
Get the Strand member data.
TTo GetTo(void) const
Get the To member data.
TGenbank & SetGenbank(void)
Select the variant.
bool IsInt(void) const
Check if variant Int is selected.
const TInt & GetInt(void) const
Get the variant data.
void SetVersion(TVersion value)
Assign a value to Version data member.
void SetLoc(TLoc &value)
Assign a value to Loc data member.
const TSeq & GetSeq(void) const
Get the variant data.
bool IsSetClass(void) const
Check if a value has been assigned to Class data member.
TSet & SetSet(void)
Select the variant.
TClass GetClass(void) const
Get the Class member data.
TAnnot & SetAnnot(void)
Assign a value to Annot data member.
const TSet & GetSet(void) const
Get the variant data.
bool IsSeq(void) const
Check if variant Seq is selected.
bool IsSetAnnot(void) const
Check if a value has been assigned to Annot data member.
bool IsSetSeq_set(void) const
Check if a value has been assigned to Seq_set data member.
bool IsSet(void) const
Check if variant Set is selected.
const TSeq_set & GetSeq_set(void) const
Get the Seq_set member data.
void SetClass(TClass value)
Assign a value to Class data member.
const TAnnot & GetAnnot(void) const
Get the Annot member data.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
TSeq & SetSeq(void)
Select the variant.
TSeq_set & SetSeq_set(void)
Assign a value to Seq_set data member.
@ eClass_parts
parts for 2 or 3
@ eClass_eco_set
ecological sample study
@ eClass_nuc_prot
nuc acid and coded proteins
@ eClass_gen_prod_set
genomic products, chrom+mRNA+protein
@ eClass_segset
segmented sequence + parts
void SetCompleteness(TCompleteness value)
Assign a value to Completeness data member.
void SetData(TData &value)
Assign a value to Data data member.
list< CRef< CSeqdesc > > Tdata
TId & SetId(void)
Assign a value to Id data member.
bool IsSetSeq_data(void) const
the sequence Check if a value has been assigned to Seq_data data member.
void SetPub(TPub &value)
Assign a value to Pub data member.
const TInst & GetInst(void) const
Get the Inst member data.
TTitle & SetTitle(void)
Select the variant.
TPub & SetPub(void)
Select the variant.
bool IsIupacaa(void) const
Check if variant Iupacaa is selected.
const TIupacna & GetIupacna(void) const
Get the variant data.
bool IsSetAnnot(void) const
Check if a value has been assigned to Annot data member.
TAnnot & SetAnnot(void)
Assign a value to Annot data member.
const TAnnot & GetAnnot(void) const
Get the Annot member data.
const TId & GetId(void) const
Get the Id member data.
bool IsSetInst(void) const
the sequence data Check if a value has been assigned to Inst data member.
TLength GetLength(void) const
Get the Length member data.
void SetInst(TInst &value)
Assign a value to Inst data member.
TSource & SetSource(void)
Select the variant.
void SetBiomol(TBiomol value)
Assign a value to Biomol data member.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
const TSeq_data & GetSeq_data(void) const
Get the Seq_data member data.
void SetTech(TTech value)
Assign a value to Tech data member.
bool IsIupacna(void) const
Check if variant Iupacna is selected.
TMolinfo & SetMolinfo(void)
Select the variant.
@ eRepr_seg
segmented sequence
@ eRepr_delta
sequence made by changes (delta) to others
@ eRepr_raw
continuous sequence
@ eCompleteness_complete
complete biological entity
@ eCompleteness_no_left
missing 5' or NH3 end
@ eCompleteness_no_right
missing 3' or COOH end
@ eCompleteness_no_ends
missing both ends
where boath are integers</td > n< td ></td > n</tr > n< tr > n< td > tse</td > n< td > optional</td > n< td > String</td > n< td class=\"description\"> TSE option controls what blob is orig
constexpr bool empty(list< Ts... >) noexcept
const struct ncbi::grid::netcache::search::fields::KEY key
static const GLdouble origin[]
#define EDIT_EACH_SEQFEAT_ON_SEQANNOT(Itr, Var)
#define EDIT_EACH_SEQANNOT_ON_BIOSEQ(Itr, Var)
#define ERASE_DESCRIPTOR_ON_SEQENTRY
#define EDIT_EACH_DESCRIPTOR_ON_SEQENTRY
#define EDIT_EACH_SEQANNOT_ON_SEQSET(Itr, Var)
CRef< CSeq_feat > GetCDSFromGenProdSet(CRef< CSeq_entry > entry)
CRef< CSeq_annot > BuildGoodGraphAnnot(string id)
CRef< CSeq_entry > BuildGoodEcoSet()
CRef< CSeq_feat > AddMiscFeature(CRef< CSeq_entry > entry, size_t right_end)
CRef< CSeq_loc > MakeMixLoc(CRef< CSeq_id > id)
void MakeSeqLong(CBioseq &seq)
CRef< CSeq_feat > GetProtFeatFromGoodNucProtSet(CRef< CSeq_entry > entry)
void RemoveDescriptorType(CRef< CSeq_entry > entry, CSeqdesc::E_Choice desc_choice)
CRef< CSeq_entry > GetGenomicFromGenProdSet(CRef< CSeq_entry > entry)
CRef< CSeq_entry > BuildSegSetPart(string id_str)
CRef< CSeq_entry > BuildGoodDeltaSeq()
void RemoveDeltaSeqGaps(CRef< CSeq_entry > entry)
void SetCompleteness(CRef< CSeq_entry > entry, CMolInfo::TCompleteness completeness)
void SetSpliceForMixLoc(CBioseq &seq)
CRef< CPub > BuildGoodCitSubPub()
CRef< CSeq_feat > AddGoodImpFeat(CRef< CSeq_entry > entry, string key)
void ChangeProtId(CRef< CSeq_entry > np_set, CRef< CSeq_id > id)
void SetLineage(CRef< CSeq_entry > entry, string lineage)
void SetNucProtSetPartials(CRef< CSeq_entry > entry, bool partial5, bool partial3)
void SetSynthetic_construct(CRef< CSeq_entry > entry)
void ResetOrgname(CRef< CSeq_entry > entry)
void AdjustProtFeatForNucProtSet(CRef< CSeq_entry > entry)
void SetDiv(CRef< CSeq_entry > entry, string div)
CRef< CSeq_feat > GetmRNAFromGenProdSet(CRef< CSeq_entry > entry)
CRef< CSeq_feat > BuildGoodFeat()
void ReverseAlignmentStrand(CDense_seg &denseg, size_t pos, size_t seq_len)
CRef< CSeq_entry > BuildGoodSeq()
CRef< CSeq_feat > MakemRNAForCDS(CRef< CSeq_feat > feat)
CRef< CSeq_annot > AddFeat(CRef< CSeq_feat > feat, CRef< CSeq_entry > entry)
void SetBiomol(CRef< CSeq_entry > entry, CMolInfo::TBiomol biomol)
void SetDrosophila_melanogaster(CRef< CSeq_entry > entry)
CRef< CSeq_entry > BuildGoodProtSeq()
CRef< CSeq_feat > MakeCDSForGoodNucProtSet(const string &nuc_id, const string &prot_id)
void ChangeProductId(CRef< CSeq_annot > annot, CRef< CSeq_id > id)
void AddToDeltaSeq(CRef< CSeq_entry > entry, string seq)
CRef< CSeq_id > BuildRefSeqId()
void SetGenome(CRef< CSeq_entry > entry, CBioSource::TGenome genome)
void SetChromosome(CBioSource &src, string chromosome)
void SetOrgMod(CBioSource &src, COrgMod::TSubtype subtype, string val)
CRef< CSeq_feat > MakeMiscFeature(CRef< CSeq_id > id, size_t right_end, size_t left_end)
CRef< CSeq_feat > GetCDSFromGoodNucProtSet(CRef< CSeq_entry > entry)
void ChangeNucProtSetNucId(CRef< CSeq_entry > entry, CRef< CSeq_id > id)
void ChangeId(CRef< CSeq_annot > annot, CRef< CSeq_id > id)
void SetTaxname(CRef< CSeq_entry > entry, string taxname)
CRef< CSeq_feat > BuildGoodtRNA(CRef< CSeq_id > id)
void SetFocus(CRef< CSeq_entry > entry)
CRef< CSeq_feat > MakeGeneForFeature(CRef< CSeq_feat > feat)
void MakeNucProtSet3Partial(CRef< CSeq_entry > entry)
CRef< CSeq_entry > BuildGoodNucProtSet()
void TraverseAndRunTestCases(ITestRunner *pTestRunner, CDir dirWithTestCases, const set< string > &setOfRequiredSuffixes, const set< string > &setOfOptionalSuffixes, const set< string > &setOfIgnoredSuffixes, TTraverseAndRunTestCasesFlags fFlags)
This is for running data-driven test cases below the given top-level test directory.
void SetMGcode(CRef< CSeq_entry > entry, COrgName::TGcode mgcode)
CRef< CSeq_feat > BuildtRNA(CRef< CSeq_id > id)
void SetNucProtSetProductName(CRef< CSeq_entry > entry, string new_name)
void RevComp(CBioseq &bioseq)
CRef< CSeq_entry > BuildGenProdSetNucProtSet(CRef< CSeq_id > nuc_id, CRef< CSeq_id > prot_id)
void SetDbxref(CBioSource &src, string db, CObject_id::TId id)
void ChangeNucId(CRef< CSeq_entry > np_set, CRef< CSeq_id > id)
void SetSebaea_microphylla(CRef< CSeq_entry > entry)
void RemoveDbxref(CBioSource &src, string db, CObject_id::TId id)
void SetTaxon(CBioSource &src, size_t taxon)
void RetranslateCdsForNucProtSet(CRef< CSeq_entry > entry, CScope &scope)
CRef< CSeq_entry > MakeProteinForGoodNucProtSet(string id)
CRef< CSeq_id > IdFromEntry(CRef< CSeq_entry > entry)
void AddFeatAnnotToSeqEntry(CRef< CSeq_annot > annot, CRef< CSeq_entry > entry)
CRef< CSeq_feat > AddProtFeat(CRef< CSeq_entry > entry)
void SetGcode(CRef< CSeq_entry > entry, COrgName::TGcode gcode)
CRef< CAuthor > BuildGoodAuthor()
void ChangeNucProtSetProteinId(CRef< CSeq_entry > entry, CRef< CSeq_id > id)
CRef< CSeq_entry > GetNucleotideSequenceFromGoodNucProtSet(CRef< CSeq_entry > entry)
CRef< CSeq_feat > AddGoodSourceFeature(CRef< CSeq_entry > entry)
void SetProteinPartial(CRef< CSeq_entry > pentry, bool partial5, bool partial3)
CRef< CSeq_align > BuildGoodAlign()
CRef< CSeqdesc > BuildGoodPubSeqdesc()
CRef< CSeq_entry > GetNucProtSetFromGenProdSet(CRef< CSeq_entry > entry)
void SetTech(CRef< CSeq_entry > entry, CMolInfo::TTech tech)
void AddGoodSource(CRef< CSeq_entry > entry)
CRef< CSeq_entry > BuildGoodGenProdSet()
void SetOrigin(CRef< CSeq_entry > entry, CBioSource::TOrigin origin)
CRef< CSeq_entry > GetProteinSequenceFromGoodNucProtSet(CRef< CSeq_entry > entry)
void SetSubSource(CBioSource &src, CSubSource::TSubtype subtype, string val)
void SetCommon(CRef< CSeq_entry > entry, string common)
CRef< CSeq_feat > MakeIntronForMixLoc(CRef< CSeq_id > id)
CRef< CSeq_entry > BuildGoodSegSet()
void SetTransgenic(CBioSource &src, bool do_set)
void AddGoodPub(CRef< CSeq_entry > entry)
void ClearFocus(CRef< CSeq_entry > entry)
void SetPGcode(CRef< CSeq_entry > entry, COrgName::TGcode pgcode)
CRef< CSeq_entry > BuildGoodEcoSetWithAlign(size_t front_insert)
CRef< CPub > BuildGoodCitGenPub(CRef< CAuthor > author, int serial_number)
CRef< CPub > BuildGoodArticlePub()
@ fTraverseAndRunTestCasesFlags_DoNOTIgnoreREADMEFiles
Overrides default behavior (which is to disregard files whose prefix is "README")
int TTraverseAndRunTestCasesFlags