152 arg_desc->AddFlag(
"debug_mode",
153 "Debugging mode writes errors seen for each test" );
161 if (args[
"debug_mode"]) {
168 bool strict,
bool extend,
169 bool expected_rval,
bool set_codebreak,
170 bool set_comment,
TSeqPos expected_endpoint)
174 "TAA stop codon is completed by the addition of 3' A residues to the mRNA",
175 strict, extend, scope),
184 BOOST_CHECK_EQUAL(cds.
GetComment(),
"TAA stop codon is completed by the addition of 3' A residues to the mRNA");
192 bool expected_rval,
bool set_codebreak,
bool set_comment,
199 CCdregion& cdr = cds->SetData().SetCdregion();
201 nuc_seq.
SetInst().SetSeq_data().SetIupacna().Set(seq);
202 cds->SetLocation().SetInt().SetTo(endpoint);
206 strict, extend, expected_rval,
207 set_codebreak, set_comment, expected_endpoint);
211 cds->SetLocation().SetInt().SetTo(endpoint);
214 scope.RemoveTopLevelSeqEntry(seh);
216 seh = scope.AddTopLevelSeqEntry(*entry);
218 strict, extend, expected_rval,
219 set_codebreak, set_comment,
220 nuc_seq.
GetLength() - expected_endpoint - 1);
226 string original_seq =
"ATGCCCAGAAAAACAGAGATAAACTAAGGGATGCCCAGAAAAACAGAGATAAACTAAGGG";
230 false,
false,
false, 26);
235 true,
false,
false, 26);
240 false,
false,
false, 23);
243 string changed_seq = original_seq;
244 changed_seq[26] =
'C';
247 true,
true,
true, 25);
253 true,
true,
true, 25);
256 changed_seq[24] =
'N';
259 true,
true,
true, 25);
263 false,
false,
false, 23);
279 if ((*it)->IsMolinfo()) {
280 prot_molinfo.
Reset(it->GetPointer());
287 BOOST_CHECK_EQUAL(cds->IsSetPartial(),
false);
298 BOOST_CHECK_EQUAL(cds->IsSetPartial(),
false);
300 BOOST_CHECK_EQUAL(cds->IsSetPartial(),
true);
336 scope.RemoveTopLevelSeqEntry(seh);
342 seh = scope.AddTopLevelSeqEntry(*entry);
352 scope.RemoveTopLevelSeqEntry(seh);
357 cds->SetLocation().SetInt().SetFrom(3);
358 seh = scope.AddTopLevelSeqEntry(*entry);
367 scope.RemoveTopLevelSeqEntry(seh);
369 seh = scope.AddTopLevelSeqEntry(*entry);
372 BOOST_REQUIRE(!mrna2);
375 mrna->
SetData().SetRna().SetExt().SetName(
"abc");
413 auto it = entry.
SetSet().
SetAnnot().front()->SetData().SetFtable().begin();
416 BOOST_REQUIRE(mrna1);
422 BOOST_CHECK(mrna1->
Equals(ground_mrna1));
427 BOOST_REQUIRE(mrna2);
433 BOOST_CHECK(mrna2->
Equals(ground_mrna2));
438 BOOST_REQUIRE(mrna3);
444 BOOST_CHECK(mrna3->
Equals(ground_mrna3));
455 BOOST_CHECK_EQUAL(mrna.
Empty(),
true);
459 mrna1->
SetData().SetRna().SetExt().SetName(
"product 1");
465 BOOST_REQUIRE(!mrna.
Empty());
466 BOOST_CHECK_EQUAL(mrna == mrna1,
true);
476 BOOST_REQUIRE(!
code);
480 BOOST_CHECK_EQUAL(
code->GetId(), 6);
484 BOOST_REQUIRE(!
code);
488 BOOST_CHECK_EQUAL(
code->GetId(), 2);
492 BOOST_CHECK_EQUAL(
code->GetId(), 11);
496 BOOST_CHECK_EQUAL(
code->GetId(), 12);
503 entry->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set(
"AATTGGCCAAAATTGGCCAAATAAGTAAATAATTGGCCAAAATTGGCCAAAATTGGCCAA");
511 BOOST_CHECK_EQUAL(found_stop,
true);
520 BOOST_CHECK_EQUAL(found_stop,
true);
529 BOOST_CHECK_EQUAL(found_stop,
true);
540 entry->
SetSeq().
SetInst().SetSeq_data().SetIupacna().Set(
"AATTGGCCAAAATTGGCCAAATAAGTAAATAATTGGCCAAAATTGGCCAAAATTGGCCAA");
548 BOOST_CHECK_EQUAL(found_stop,
true);
557 BOOST_CHECK_EQUAL(found_stop,
true);
566 BOOST_CHECK_EQUAL(found_stop,
true);
578 cds->
SetLocation().SetInt().SetId().SetLocal().SetStr(
"abc");
582 annot->
SetData().SetFtable().push_back(cds);
600 utr5->
SetData().SetImp().SetKey(
"5'UTR");
601 utr5->
SetLocation().SetInt().SetId().SetLocal().SetStr(
"abc");
604 annot->
SetData().SetFtable().push_back(utr5);
606 utr3->
SetData().SetImp().SetKey(
"3'UTR");
607 utr3->
SetLocation().SetInt().SetId().SetLocal().SetStr(
"abc");
610 annot->
SetData().SetFtable().push_back(utr3);
628 mrna->
SetData().SetRna().SetExt().SetName(
"");
629 mrna->
SetLocation().SetInt().SetId().SetLocal().SetStr(
"abc");
632 annot->
SetData().SetFtable().push_back(mrna);
641 BOOST_REQUIRE(!pRna);
652 repl->SetReplace(
"foo");
657 BOOST_CHECK(repl->ApplyToString(
test,
test, constraint));
658 BOOST_CHECK_EQUAL(
test,
"foo");
660 test =
"candidate abc";
661 repl->SetWeasel_to_putative(
true);
662 BOOST_CHECK(repl->ApplyToString(
test,
test, constraint));
663 BOOST_CHECK_EQUAL(
test,
"putative foo");
672 string test =
"haemagglutination domain protein";
676 BOOST_CHECK_EQUAL(
test,
"hemagglutination domain protein");
678 test =
"land of the free, haem of the brave";
680 BOOST_CHECK_EQUAL(
test,
"land of the free, heme of the brave");
686 BOOST_CHECK_EQUAL(
test,
"foo");
688 test =
"candidate abc";
691 BOOST_CHECK_EQUAL(
test,
"putative foo");
699 rule->
SetFind().SetString_constraint().SetMatch_text(
"haem");
700 rule->
SetReplace().SetReplace_func().SetHaem_replace(
"haem");
702 string test =
"haemagglutination domain protein";
705 BOOST_CHECK_EQUAL(
test,
"hemagglutination domain protein");
707 test =
"land of the free, haem of the brave";
709 BOOST_CHECK_EQUAL(
test,
"land of the free, heme of the brave");
711 rule->
SetFind().SetString_constraint().SetMatch_text(
"abc");
712 rule->
SetReplace().SetReplace_func().SetSimple_replace().SetReplace(
"foo");
713 rule->
SetReplace().SetReplace_func().SetSimple_replace().SetWhole_string(
true);
717 BOOST_CHECK_EQUAL(
test,
"foo");
719 test =
"candidate abc";
720 rule->
SetReplace().SetReplace_func().SetSimple_replace().SetWeasel_to_putative(
true);
722 BOOST_CHECK_EQUAL(
test,
"putative foo");
724 test =
"do not match me";
725 rule->
SetReplace().SetReplace_func().SetSimple_replace().ResetWhole_string();
726 rule->
SetFind().SetString_constraint().SetMatch_text(
"me");
729 BOOST_CHECK_EQUAL(
test,
"do not match me");
733 BOOST_CHECK_EQUAL(
test,
"do not match foo");
738 BOOST_CHECK_EQUAL(
test,
"foo first");
740 test =
"me me me me";
741 rule->
SetFind().SetString_constraint().ResetMatch_location();
744 BOOST_CHECK_EQUAL(
test,
"foo foo foo foo");
746 test =
"30S ribosomal protein S12";
749 rule->
SetFind().SetString_constraint().SetMatch_text(
"CHC2 zinc finger");
750 rule->
SetFind().SetString_constraint().SetIgnore_weasel(
true);
752 rule->
SetReplace().SetReplace_func().SetSimple_replace().SetReplace(
"CHC2 zinc finger protein");
753 rule->
SetReplace().SetReplace_func().SetSimple_replace().SetWhole_string(
false);
754 rule->
SetReplace().SetReplace_func().SetSimple_replace().SetWeasel_to_putative(
true);
757 test =
"hypothetical protein";
760 rule->
SetFind().SetString_constraint().SetMatch_text(
"protein");
761 rule->
SetFind().SetString_constraint().SetIgnore_weasel(
true);
763 rule->
SetReplace().SetReplace_func().SetSimple_replace().SetReplace(
"hypothetical protein");
769 rule->
SetFind().SetString_constraint().SetMatch_text(
"Homo sapiens");
771 rule->
SetFind().SetString_constraint().SetIgnore_space(
true);
772 rule->
SetFind().SetString_constraint().SetIgnore_punct(
true);
775 rule->
SetFind().SetString_constraint().SetIgnore_words(word_subs.
GetObject());
778 word_sub->SetWord(
"Homo sapiens");
780 syns.push_back(
"human");
781 syns.push_back(
"Homo sapien");
782 syns.push_back(
"Homosapiens");
783 syns.push_back(
"Homo-sapiens");
784 syns.push_back(
"Homo spiens");
785 syns.push_back(
"Homo Sapience");
786 syns.push_back(
"homosapein");
787 syns.push_back(
"homosapiens");
788 syns.push_back(
"homosapien");
789 syns.push_back(
"homo_sapien");
790 syns.push_back(
"homo_sapiens");
791 syns.push_back(
"Homosipian");
792 word_sub->SetSynonyms() = syns;
793 rule->
SetFind().SetString_constraint().SetIgnore_words().Set().push_back(word_sub);
796 word_sub->SetWord(
"sapiens");
798 syns.push_back(
"sapien");
799 syns.push_back(
"sapeins");
800 syns.push_back(
"sapein");
801 syns.push_back(
"sapins");
802 syns.push_back(
"sapens");
803 syns.push_back(
"sapin");
804 syns.push_back(
"sapen");
805 syns.push_back(
"sapians");
806 syns.push_back(
"sapian");
807 syns.push_back(
"sapies");
808 syns.push_back(
"sapie");
809 word_sub->SetSynonyms() = syns;
810 rule->
SetFind().SetString_constraint().SetIgnore_words().Set().push_back(word_sub);
816 test =
"Homo sapien";
818 test =
"Human sapien";
826 syns.push_back(
"fruit");
827 syns.push_back(
"apple");
828 syns.push_back(
"apple, pear");
829 syns.push_back(
"grape");
830 syns.push_back(
"peaches");
831 syns.push_back(
"peach");
832 word_sub->SetSynonyms() = syns;
833 rule->
SetFind().SetString_constraint().SetIgnore_words().Set().push_back(word_sub);
836 test =
"pear, apple";
861 edit::ApplyCDSFrame::s_SetCDSFrame(*cds, edit::ApplyCDSFrame::eOne, scope);
863 edit::ApplyCDSFrame::s_SetCDSFrame(*cds, edit::ApplyCDSFrame::eTwo, scope);
865 edit::ApplyCDSFrame::s_SetCDSFrame(*cds, edit::ApplyCDSFrame::eThree, scope);
881 cds->SetData().SetCdregion();
894 cds->SetProduct().SetWhole().Assign(*product_id);
935 objects::CBioseq_Handle bsh = seh.
GetSeq();
939 BOOST_CHECK_EQUAL(id_label,
"gnl|TEST:nuc_1");
940 BOOST_CHECK_EQUAL(
offset, 1);
948 objects::CBioseq_Handle bsh2 = seh2.
GetSeq();
951 BOOST_CHECK_EQUAL(id_label,
"gnl|TEST2:624900FCF5A05DAD_1");
952 BOOST_CHECK_EQUAL(
offset, 1);
965 objects::CBioseq_Handle bsh = seh.
GetSeq();
969 BOOST_CHECK_EQUAL(id_label,
"lcl|prot_1");
970 BOOST_CHECK_EQUAL(
offset, 1);
979 BOOST_CHECK_EQUAL(id_label,
"lcl|624900FCF5A05DAD_1");
980 BOOST_CHECK_EQUAL(
offset, 1);
993 accession \"AF010144\",\
1002 seq-data iupacna \"TTTTTTTTTTTGAGATGGAGTTTTCGCTCTTGTTGCCCAGGCTGGAGTGCAA\
1003 TGGCGCAATCTCAGCTCACCGCAACCTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCCAGTAGCTGG\
1004 GATTACAGGCATGTGCACCCACGCTCGGCTAATTTTGTATTTTTTTTTAGTAGAGATGGAGTTTCTCCATGTTGGTCA\
1005 GGCTGGTCTCGAACTCCCGACCTCAGATGATCCCTCCGTCTCGGCCTCCCAAAGTGCTAGATACAGGACTGGCCACCA\
1006 TGCCCGGCTCTGCCTGGCTAATTTTTGTGGTAGAAACAGGGTTTCACTGATGTGCCCAAGCTGGTCTCCTGAGCTCAA\
1007 GCAGTCCACCTGCCTCAGCCTCCCAAAGTGCTGGGATTACAGGCGTGCAGCCGTGCCTGGCCTTTTTATTTTATTTTT\
1008 TTTAAGACACAGGTGTCCCACTCTTACCCAGGATGAAGTGCAGTGGTGTGATCACAGCTCACTGCAGCCTTCAACTCC\
1009 TGAGATCAAGCATCCTCCTGCCTCAGCCTCCCAAGTAGCTGGGACCAAAGACATGCACCACTACACCTGGCTAATTTT\
1010 TATTTTTATTTTTAATTTTTTGAGACAGAGTCTCAACTCTGTCACCCAGGCTGGAGTGCAGTGGCGCAATCTTGGCTC\
1011 ACTGCAACCTCTGCCTCCCGGGTTCAAGTTATTCTCCTGCCCCAGCCTCCTGAGTAGCTGGGACTACAGGCGCCCACC\
1012 ACGCCTAGCTAATTTTTTTGTATTTTTAGTAGAGATGGGGTTCACCATGTTCGCCAGGTTGATCTTGATCTCTGGACC\
1013 TTGTGATCTGCCTGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCACGCCCGGCTTATTTTTAATTT\
1014 TTGTTTGTTTGAAATGGAATCTCACTCTGTTACCCAGGCTGGAGTGCAATGGCCAAATCTCGGCTCACTGCAACCTCT\
1015 GCCTCCCGGGCTCAAGCGATTCTCCTGTCTCAGCCTCCCAAGCAGCTGGGATTACGGGCACCTGCCACCACACCCCGC\
1016 TAATTTTTGTATTTTCATTAGAGGCGGGGTTTCACCATATTTGTCAGGCTGGTCTCAAACTCCTGACCTCAGGTGACC\
1017 CACCTGCCTCAGCCTTCCAAAGTGCTGGGATTACAGGCGTGAGCCACCTCACCCAGCCGGCTAATTTAGATAAAAAAA\
1018 TATGTAGCAATGGGGGGTCTTGCTATGTTGCCCAGGCTGGTCTCAAACTTCTGGCTTCATGCAATCCTTCCAAATGAG\
1019 CCACAACACCCAGCCAGTCACATTTTTTAAACAGTTACATCTTTATTTTAGTATACTAGAAAGTAATACAATAAACAT\
1020 GTCAAACCTGCAAATTCAGTAGTAACAGAGTTCTTTTATAACTTTTAAACAAAGCTTTAGAGCA\"\
1026 accession \"AAC08737\",\
1036 seq-data ncbieaa \"MEFSLLLPRLECNGAISAHRNLRLPGSSDSPASASPVAGITGMCTHARLILY\
1037 FFLVEMEFLHVGQAGLELPTSDDPSVSASQSARYRTGHHARLCLANFCGRNRVSLMCPSWSPELKQSTCLSLPKCWDY\
1038 RRAAVPGLFILFFLRHRCPTLTQDEVQWCDHSSLQPSTPEIKHPPASASQVAGTKDMHHYTWLIFIFIFNFLRQSLNS\
1039 VTQAGVQWRNLGSLQPLPPGFKLFSCPSLLSSWDYRRPPRLANFFVFLVEMGFTMFARLILISGPCDLPASASQSAGI\
1040 TGVSHHARLIFNFCLFEMESHSVTQAGVQWPNLGSLQPLPPGLKRFSCLSLPSSWDYGHLPPHPANFCIFIRGGVSPY\
1049 \"neuronal thread protein AD7c-NTP\"\
1074 product whole gi 3002527,\
1090 Seq-entry ::= set {\
1094 type str \"NcbiCleanup\",\
1097 label str \"method\",\
1098 data str \"ExtendedSeqEntryCleanup\"\
1101 label str \"version\",\
1105 label str \"month\",\
1113 label str \"year\",\
1126 taxname \"Erythranthe lewisii\",\
1135 genus \"Erythranthe\",\
1136 species \"lewisii\"\
1141 subname \"inbred line LF10\"\
1144 subtype gb-synonym,\
1145 subname \"Mimulus lewisii\"\
1148 lineage \"Eukaryota; Viridiplantae; Streptophyta; Embryophyta;\
1149 Tracheophyta; Spermatophyta; Magnoliophyta; eudicotyledons; Gunneridae;\
1150 Pentapetalae; asterids; lamiids; Lamiales; Phrymaceae; Erythranthe\",\
1163 subtype collection-date,\
1167 subtype collected-by,\
1175 cit \"Unpublished\",\
1194 last \"LaFountain\",\
1222 title \"Transcriptional control of floral carotenoid pigmentation\"\
1247 last \"LaFountain\",\
1275 affil \"University of Connecticut\",\
1276 div \"Department of Ecology and Evolutionary Biology\",\
1280 street \"75 N. Eagleville Road, Unit 3043\",\
1281 postal-code \"06269-3043\"\
1294 class \"SMART_V1.0\",\
1305 type str \"Submission\",\
1308 label str \"SmartComment\",\
1309 data str \"ALT EMAIL:yaowu.yuan@uconn.edu\"\
1312 label str \"AdditionalComment\",\
1313 data str \"BankIt1812495\"\
1318 type str \"StructuredComment\",\
1321 label str \"StructuredCommentPrefix\",\
1322 data str \"##Assembly-Data-START##\"\
1325 label str \"Assembly Method\",\
1326 data str \"CLC Genomics Workbench v. v. 6\"\
1329 label str \"Sequencing Technology\",\
1330 data str \"Illumina\"\
1333 label str \"StructuredCommentSuffix\",\
1334 data str \"##Assembly-Data-END##\"\
1339 type str \"Submission\",\
1342 label str \"SmartComment\",\
1343 data str \"TOTAL # OF SEQS:17\"\
1348 type str \"Submission\",\
1351 label str \"AdditionalComment\",\
1352 data str \"GAP: unknown length: introns\"\
1365 local str \"Seq2\",\
1368 tag str \"1812495/Seq2\"\
1375 accession \"KR053166\"\
1379 title \"Erythranthe lewisii phytoene synthase 1 (PSY1) gene,\
1385 type str \"Submission\",\
1388 label str \"AdditionalComment\",\
1389 data str \"LocalID:Seq2\"\
1394 type str \"OriginalID\",\
1397 label str \"LocalId\",\
1411 seq-data ncbi2na '5145D47243BA80CEC080F1884947E9069464C6FFF451\
1412 E6977753F8C29CD7FE53EAC3F6C46EDF7C777DC70FC1FC3C73FFF3DCED40DCA4E35C7EAB6B4313\
1413 FCC45D41C2C76FEBE473DD35CFFFFFFFF3FE03DAFFBFA0EC7C1CFCCF7F01D3E0E7106FF30C0733\
1414 5DF43F113FFB7E7AC7F123407ED3138F3783F2FCCDD5B14FE4173FCD00ECBF170ECFF62E1ECF74\
1415 0200000070E24BBFEC3361E23BC3C3172CFF4300CD0FAFC86C140FD034BEDD03E3D31D98AF72D6\
1416 BCD703FA53FF7620018C593087CC60F00D1C37D3710334B4F77D3F888EED1F3FF44113B03E0B93\
1417 FCCFD8333CBCF3EC0FC3F3FFF7F0F43803D8FF6FFFBFFFC000200803849CE2C4018E83782F4802\
1418 082316CA09406AD3C9002BA8543620375352C00BA00AB3C0FF512E803AFB123D527040CE0D1D0F\
1419 72D34DB6DB78108088800ED2D33033CBD8100200200074B0982002245DF7F910A2402A18BABFF7\
1420 DBE8FFF7908B3104B88417DD7D050D02BFFFCB3FFFDFBF38FCEF4FFEFCEC0DEF9ED53037AFEF1A\
1421 2F3CC00F803BF9733008C9F706EECFE4530900AE23F3D3CFB3D4BE1F0FCC0B9D0154FD170ACC8F\
1422 61870FBEFD2F4FFFF300F7092FDF2AA1FFF5EF3FFAA3FFCBA0F4BDEC8FCCCFFFFF3EBFCFEF9209\
1423 D4404AD43E7B9081E28F7E0F407E96F7D8FFF5BF287BF6040DF733D0152FC028A28480D730F7F3\
1424 0A3F0D3B7BE7FBEEAEB77547D62F7406A16CF5D8F5F4896FD42C420DE3490C904A7010EB44008A\
1425 603F653BE88300923DDEE24324EF271D49EB88D97CDF58900AFC63BEDF024A49DEBC22123800B6\
1426 2628FE82E0168CFBDF5AA1EC17EF8B827CE367B6E0BBB9A0CE4086FF176B0F107BFE3C4F2FCEFF\
1427 038420D300EEE2B0F4FFBEE08102BC3CFAFFADBFFF1281BE78E11588A6089CDEA63B3AC21DEDFF\
1428 3B133B843FF347DA3FF3FFFED0C0F2ED9D03ABD017783F4A0FBAF3340FFFEDDBF7F06200203ACF\
1429 A48E0E8E2CF0FFEB3A4BC3300EA34D13D13538F94070F4F3E51C5022CAC08FA053BCB7634EF2DD\
1430 8F000100E00024534ED0A02014F87B710EEFF3BF4FFBF70B60003E75CFF7C2D0C7D1FF7EECDFDF\
1431 BE7F3E34CFFBC0D4FEEF3404BBAECA2048E27EF8EA5039344CF1D7127FA32BA8A729F8633FD26A\
1432 657FE339D8E79FCD631EF18AFD7BE3352BC8FB9B7EFFB53F78EFB0C3E9030C8F0F82D3333D7FDA\
1433 8B8BFF6B87F17360FD3D5FFD7249F40DFEE72FBA683FB2EC7E7F7E0DC3CC1C71E66EEEEFFECFEC\
1434 0E738D3E333F411060C7F3B9253F02338F86A3883A17BA0B76B1081F638BECDCC7BC73B27AC7BA\
1435 8F8E2EE5CF3A9324560D109441E22ECC439E7FA4F2B7660D2F840CF7488EFA208B0BFBDBFFFF01\
1436 C049E3DE73EC93CCF6F3C67BB9F33FB6803FB83FFB3CB90A62822ECDC592860FA64A6A1CD63823\
1437 33D9EA02E12303A283F4E08240F98A98A03DF638E4889AED1A27499E72C8E96B0B3F40283CFD21\
1438 8BFC0F48600A48CC7343D3604FF3BC8822F31CEE31802E007F2B4792E183CE202F13830083809D\
1439 20C0DBFFFFDB75B7DF9CEDADA7C0202F8D5BBFF92BBA936F9F7B361031E862320901871041F462\
1440 8A9B3BC90160823DF91E51F933902DDFBD7534D40534DC77EC084E2C81034D0D33330373DBC783\
1452 comment \"MlPSY1\",\
1457 id local str \"Seq2\"\
1469 id local str \"Seq2\"\
1475 id local str \"Seq2\"\
1481 id local str \"Seq2\"\
1494 accession \"KR053166\"\
1504 local str \"Seq2_prot_2\",\
1511 title \"phytoene synthase 1 [Erythranthe lewisii]\",\
1514 completeness complete\
1517 type str \"OriginalID\",\
1520 label str \"LocalId\",\
1521 data str \"Seq2_prot_2\"\
1530 seq-data ncbieaa \"MSVALLWVVSPTSEFSNGTVFLDSFRAVSKYKNLISNSNRLNNGHKKR\
1531 RNFAMLENKSRFSVSNSMLATPAGEIALSSEQKVYDVVLKQAALVKRQMKKSSEDLEVKPDIVLPGTVTLLSEAYDRC\
1532 REVCAEYAKTFYLGTLLMTPERRRAIWAMYVWCRRTDELVDGPNASHITPTALDRWEARLDDIFSGRPFDMLDAALSD\
1533 TVTRFPVDIQPFKDMIDGMRMDLWKSRYKNFDELYLYCYYVAGTVGLMSVPIMGIAPESQATTESVYNAALALGLANQ\
1534 LTNILRDVGEDARRGRVYLPQDELAQAGLSDEDIFAGKVTDKWRNFMKKQIARARKFFDDAESGVTELSAASRWPVWA\
1535 SLLLYRQILDEIEANDYNNFTRRAYVSKPKKILALPLAYAKSLVPPSSKPSSTLVKT\"\
1543 \"phytoene synthase 1\"\
1549 id local str \"Seq2_prot_2\"\
1567 product whole local str \"Seq2_prot_2\",\
1568 location packed-int {\
1574 accession \"KR053166\"\
1582 accession \"KR053166\"\
1590 accession \"KR053166\"\
1598 accession \"KR053166\"\
1606 accession \"KR053166\"\
1614 accession \"KR053166\"\
1628 Seq-loc ::= packed-int {\
1634 accession \"KR053166\"\
1642 accession \"KR053166\"\
1650 accession \"KR053166\"\
1658 accession \"KR053166\"\
1666 accession \"KR053166\"\
1674 accession \"KR053166\"\
1682 accession \"KR053166\"\
1690 accession \"KR053166\"\
1700 ext name \"F-box protein\"\
1707 id local str \"S7_haplotype\",\
1715 ext name \"S haplotype-specific F-box7\"\
1724 accession \"MH029536\"\
1732 accession \"MH029536\"\
1741 ext name \"ribonuclease\"\
1749 id local str \"S7_haplotype\"\
1755 id local str \"S7_haplotype\"\
1761 id local str \"S7_haplotype\"\
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_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.
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.
bool ExtendCDSToStopCodon(CSeq_feat &cds, CScope &scope)
ExtendCDSToStopCodon A function to extend a CDS location to the first in-frame stop codon in the prot...
bool AdjustProteinFeaturePartialsToMatchCDS(CSeq_feat &new_prot, const CSeq_feat &cds)
AdjustProteinFeaturePartialsToMatchCDS A function to change an existing MolInfo to match a coding reg...
CRef< CSeq_feat > MakemRNAforCDS(const CSeq_feat &cds, CScope &scope)
MakemRNAforCDS A function to create a CSeq_feat that represents the appropriate mRNA for a given CDS.
bool TruncateCDSAtStop(CSeq_feat &cds, CScope &scope)
TruncateCDSAtStop A function to truncate a CDS location after the first stop codon in the protein tra...
CRef< objects::CSeq_id > GetNewProtId(objects::CBioseq_Handle bsh, int &offset, string &id_label, bool general_only)
vector< CRef< objects::CSeq_id > > GetNewProtIdFromExistingProt(objects::CBioseq_Handle bsh, int &offset, string &id_label)
CRef< CGenetic_code > GetGeneticCodeForBioseq(CBioseq_Handle bh)
GetGeneticCodeForBioseq A function to construct the appropriate CGenetic_code object to use when cons...
bool DemoteCDSToNucSeq(objects::CSeq_feat_Handle &orig_feat)
TSeqPos GetLength(void) const
static CNcbiApplication * Instance(void)
Singleton method.
bool ApplyToString(string &result, const CMatchString &str, CConstRef< CString_constraint > find) const
ESubtype GetSubtype(void) const
namespace ncbi::objects::
bool ApplyToString(string &result, const CMatchString &str) const
CWord_substitution_set –.
#define test(a, b, c, d, e)
unsigned int TSeqPos
Type for sequence locations and lengths.
virtual const CArgs & GetArgs(void) const
Get parsed command line arguments.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define MSerial_AsnText
I/O stream manipulators –.
virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const
Check if both objects contain the same values.
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
TSeqPos GetStart(ESeqLocExtremes ext) const
Return start and stop positions of the seq-loc.
bool IsPartialStop(ESeqLocExtremes ext) const
TSeqPos GetStop(ESeqLocExtremes ext) const
bool PromoteCDSToNucProtSet(objects::CSeq_feat_Handle &orig_feat)
Promotes coding region from Seq-annot on nucleotide sequence to Seq-annot on nuc-prot-set if necessar...
bool AdjustFeaturePartialFlagForLocation(CSeq_feat &new_feat)
AdjustFeaturePartialFlagForLocation A function to ensure that Seq-feat.partial is set if either end o...
bool AdjustForCDSPartials(const CSeq_feat &cds, CSeq_entry_Handle seh)
AdjustForCDSPartials A function to make all of the necessary related changes to a Seq-entry after the...
bool AdjustProteinMolInfoToMatchCDS(CMolInfo &molinfo, const CSeq_feat &cds)
AdjustProteinMolInfoToMatchCDS A function to change an existing MolInfo to match a coding region.
sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)
Returns the sequence::ECompare containment relationship between CSeq_locs.
@ fCompareOverlapping
Check if seq-locs are overlapping.
@ eSame
CSeq_locs contain each other.
@ eContained
First CSeq_loc contained by second.
CConstRef< CSeq_feat > GetmRNAforCDS(const CSeq_feat &cds, CScope &scope)
GetmRNAforCDS A function to find a CSeq_feat representing the appropriate mRNA for a given CDS.
void RemoveSeq_annot(const CSeq_annot_Handle &annot)
Revoke Seq-annot previously added using AddSeq_annot().
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
CSeq_entry_Handle AddTopLevelSeqEntry(CSeq_entry &top_entry, TPriority pri=kPriority_Default, EExist action=eExist_Default)
Add seq_entry, default priority is higher than for defaults or loaders Add object to the score with p...
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
void AddDefaults(TPriority pri=kPriority_Default)
Add default data loaders from object manager.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
CSeq_annot_Handle AddSeq_annot(CSeq_annot &annot, TPriority pri=kPriority_Default, EExist action=eExist_Throw)
Add Seq-annot, return its CSeq_annot_Handle.
void RemoveTopLevelSeqEntry(const CTSE_Handle &entry)
Revoke TSE previously added using AddTopLevelSeqEntry() or AddBioseq().
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to seq-annot for this feature.
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
CSeq_annot_EditHandle AttachAnnot(CSeq_annot &annot) const
Attach an annotation.
CSeq_entry_Handle GetParentEntry(void) const
Get parent Seq-entry handle.
CSeq_entry_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
CSeqFeatData::ESubtype GetFeatSubtype(void) const
const CSeq_feat & GetOriginalFeature(void) const
Get original feature with unmapped location/product.
bool Empty(void) const THROWS_NONE
Check if CConstRef is empty – not pointing to any object which means having a null value.
void Reset(void)
Reset reference object.
TObjectType & GetObject(void)
Get object.
#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.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
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.
void SetReplace(const TReplace &value)
Assign a value to Replace data member.
TSimple_replace & SetSimple_replace(void)
Select the variant.
void SetFind(TFind &value)
Assign a value to Find data member.
void SetWeasel_to_putative(TWeasel_to_putative value)
Assign a value to Weasel_to_putative data member.
THaem_replace & SetHaem_replace(void)
Select the variant.
void SetReplace(TReplace &value)
Assign a value to Replace data member.
@ eString_location_equals
@ eString_location_starts
bool IsSetComment(void) const
Check if a value has been assigned to Comment data member.
void SetLocation(TLocation &value)
Assign a value to Location data member.
void ResetCode_break(void)
Reset Code_break 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.
TFrame GetFrame(void) const
Get the Frame member data.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
void ResetComment(void)
Reset Comment data member.
const TCdregion & GetCdregion(void) const
Get the variant data.
const TComment & GetComment(void) const
Get the Comment member data.
const TCode_break & GetCode_break(void) const
Get the Code_break member data.
bool IsSetCode_break(void) const
individual exceptions Check if a value has been assigned to Code_break data member.
@ eFrame_three
reading frame
TGeneral & SetGeneral(void)
Select the variant.
TLocal & SetLocal(void)
Select the variant.
const TSeq & GetSeq(void) const
Get the variant data.
TSet & SetSet(void)
Select the variant.
TAnnot & SetAnnot(void)
Assign a value to Annot data member.
void SetClass(TClass value)
Assign a value to Class data member.
TSeq & SetSeq(void)
Select the variant.
TSeq_set & SetSeq_set(void)
Assign a value to Seq_set data member.
@ eClass_nuc_prot
nuc acid and coded proteins
void SetData(TData &value)
Assign a value to Data data member.
list< CRef< CSeqdesc > > Tdata
const TInst & GetInst(void) const
Get the Inst member data.
TLength GetLength(void) const
Get the Length member data.
void SetInst(TInst &value)
Assign a value to Inst data member.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
TCompleteness GetCompleteness(void) const
Get the Completeness member data.
const TMolinfo & GetMolinfo(void) const
Get the variant data.
TMolinfo & SetMolinfo(void)
Select the variant.
@ eCompleteness_complete
complete biological entity
@ eCompleteness_no_left
missing 5' or NH3 end
@ eMol_na
just a nucleic acid
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
Utility stuff for more convenient using of Boost.Test library.
NCBITEST_INIT_CMDLINE(arg_desc)
void CheckTerminalExceptionResults(CSeq_feat &cds, CScope &scope, bool strict, bool extend, bool expected_rval, bool set_codebreak, bool set_comment, TSeqPos expected_endpoint)
const string sc_TestEntry2
const string sc_TestEntry3
BOOST_AUTO_TEST_CASE(Test_AddTerminalTranslationException)
const string sc_TestEntry
void OneTerminalTranslationExceptionTest(bool strict, bool extend, TSeqPos endpoint, const string &seq, bool expected_rval, bool set_codebreak, bool set_comment, TSeqPos expected_endpoint)
CRef< objects::CSeq_feat > AddGoodImpFeat(CRef< objects::CSeq_entry > entry, string key)
void SetGenome(CRef< objects::CSeq_entry > entry, objects::CBioSource::TGenome genome)
CRef< objects::CSeq_feat > GetCDSFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_annot > AddFeat(CRef< objects::CSeq_feat > feat, CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_entry > BuildGoodSeq(void)
CRef< objects::CSeq_feat > AddMiscFeature(CRef< objects::CSeq_entry > entry)
void ChangeId(CRef< objects::CSeq_annot > annot, CRef< objects::CSeq_id > id)
void SetMGcode(CRef< objects::CSeq_entry > entry, objects::COrgName::TGcode mgcode)
CRef< objects::CSeq_feat > GetProtFeatFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_entry > GetProteinSequenceFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
void SetPGcode(CRef< objects::CSeq_entry > entry, objects::COrgName::TGcode pgcode)
CRef< objects::CSeq_entry > BuildGoodNucProtSet(void)
CRef< objects::CSeq_feat > MakemRNAForCDS(CRef< objects::CSeq_feat > feat)
CRef< objects::CSeq_entry > GetNucleotideSequenceFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
void RevComp(objects::CBioseq &bioseq)
void SetGcode(CRef< objects::CSeq_entry > entry, objects::COrgName::TGcode gcode)
CRef< CCmdComposite > SetTranslExcept(objects::CSeq_entry_Handle seh, const string &comment, bool strict, bool extend, bool adjust_gene)