144 BOOST_REQUIRE(old_seh);
145 BOOST_REQUIRE(upd_seh);
152 if (b_iter) old_bsh = *b_iter;
154 if (b_it) upd_bsh = *b_it;
156 BOOST_REQUIRE(old_bsh);
157 BOOST_REQUIRE(upd_bsh);
181 BOOST_REQUIRE(old_seh);
182 BOOST_REQUIRE(upd_seh);
220 if (b_iter) new_bsh = *b_iter;
222 BOOST_REQUIRE(new_bsh);
250 BOOST_CHECK_EQUAL(type_ok,
true);
253 BOOST_CHECK_EQUAL(count, 2);
281 BOOST_CHECK_EQUAL(type_ok,
true);
284 BOOST_CHECK_EQUAL(count, 2);
310 BOOST_CHECK_EQUAL(count, 0);
341 BOOST_CHECK_EQUAL(type_ok,
true);
345 bool feat_ok =
false;
348 feat_ok = (start == 0 && stop == 983) || (start == 568 && stop == 718);
351 feat_ok = (start == 199 && stop == 599);
354 feat_ok = (start == 249 && stop == 562) || (start == 587 && stop == 686);
357 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 25);
362 BOOST_CHECK_EQUAL(feat_ok,
true);
365 BOOST_CHECK_EQUAL(count, 7);
371 string old_fname(
"test_data/Pbseq.asn");
372 string upd_fname(
"test_data/NC_014053.asn");
393 if (b_iter) new_bsh = *b_iter;
395 BOOST_REQUIRE(new_bsh);
409 const CSeq_id* feat_id = feat->GetLocation().GetId();
410 BOOST_REQUIRE(feat_id);
411 BOOST_CHECK(feat_id->
Match(*lcl_id));
420 BOOST_REQUIRE(anticodon_id);
421 BOOST_CHECK(anticodon_id->
Match(*lcl_id));
426 feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
429 feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
432 feat_ok = (start == 199 && stop == 131) && (start_ac == 169 && stop_ac == 167);
435 feat_ok = (start == 1448 && stop == 1385) && (start_ac == 1418 && stop_ac == 1416);
438 feat_ok = (start == 5911 && stop == 5977) && (start_ac == 5942 && stop_ac == 5944);
441 feat_ok = (start == 8112 && stop == 8049) && (start_ac == 8082 && stop_ac == 8080);
444 feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
449 BOOST_CHECK_EQUAL(feat_ok,
true);
452 BOOST_CHECK_EQUAL(count, 16);
458 string old_fname(
"test_data/Pbseq_withtRNA.asn");
459 string upd_fname(
"test_data/NC_014053.asn");
482 if (b_iter) new_bsh = *b_iter;
484 BOOST_REQUIRE(new_bsh);
498 const CSeq_id* feat_id = feat->GetLocation().GetId();
499 BOOST_REQUIRE(feat_id);
500 BOOST_CHECK(feat_id->
Match(*lcl_id));
509 BOOST_REQUIRE(anticodon_id);
510 BOOST_CHECK(anticodon_id->
Match(*lcl_id));
515 feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
516 BOOST_CHECK(feat->IsSetComment());
519 feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
520 BOOST_CHECK(feat->IsSetComment());
523 feat_ok = (start == 6313 && stop == 6250) && (start_ac == 6283 && stop_ac == 6281);
524 BOOST_CHECK(feat->IsSetComment());
527 feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
528 BOOST_CHECK(feat->IsSetComment());
531 feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
532 BOOST_CHECK(!feat->IsSetComment());
535 feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
536 BOOST_CHECK(!feat->IsSetComment());
539 feat_ok = (start == 5977 && stop == 6042) && (start_ac == 6006 && stop_ac == 6008);
540 BOOST_CHECK(!feat->IsSetComment());
543 feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
544 BOOST_CHECK(!feat->IsSetComment());
550 BOOST_CHECK_EQUAL(feat_ok,
true);
553 BOOST_CHECK_EQUAL(count, 20);
561 string old_fname(
"test_data/Pbseq_withtRNA.asn");
562 string upd_fname(
"test_data/NC_014053.asn");
585 if (b_iter) new_bsh = *b_iter;
587 BOOST_REQUIRE(new_bsh);
601 const CSeq_id* feat_id = feat->GetLocation().GetId();
602 BOOST_REQUIRE(feat_id);
603 BOOST_CHECK(feat_id->
Match(*lcl_id));
612 BOOST_REQUIRE(anticodon_id);
613 BOOST_CHECK(anticodon_id->
Match(*lcl_id));
618 feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
619 BOOST_CHECK(feat->IsSetComment());
622 feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
623 BOOST_CHECK(feat->IsSetComment());
626 feat_ok = (start == 6313 && stop == 6250) && (start_ac == 6283 && stop_ac == 6281);
627 BOOST_CHECK(feat->IsSetComment());
630 feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
631 BOOST_CHECK(feat->IsSetComment());
634 feat_ok = (start == 199 && stop == 131) && (start_ac == 169 && stop_ac == 167);
635 BOOST_CHECK(!feat->IsSetComment());
638 feat_ok = (start == 8112 && stop == 8049) && (start_ac == 8082 && stop_ac == 8080);
639 BOOST_CHECK(!feat->IsSetComment());
642 feat_ok = (start == 12670 && stop == 12602) && (start_ac == 12640 && stop_ac == 12638);
643 BOOST_CHECK(!feat->IsSetComment());
649 BOOST_CHECK_EQUAL(feat_ok,
true);
652 BOOST_CHECK_EQUAL(count, 16);
659 string old_fname(
"test_data/Pbseq_withtRNA.asn");
660 string upd_fname(
"test_data/NC_014053.asn");
683 if (b_iter) new_bsh = *b_iter;
685 BOOST_REQUIRE(new_bsh);
699 const CSeq_id* feat_id = feat->GetLocation().GetId();
700 BOOST_REQUIRE(feat_id);
701 BOOST_CHECK(feat_id->
Match(*lcl_id));
710 BOOST_REQUIRE(anticodon_id);
711 BOOST_CHECK(anticodon_id->
Match(*lcl_id));
716 feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
717 BOOST_CHECK(!feat->IsSetComment());
720 feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
721 BOOST_CHECK(!feat->IsSetComment());
724 feat_ok = (start == 199 && stop == 131) && (start_ac == 169 && stop_ac == 167);
725 BOOST_CHECK(!feat->IsSetComment());
728 feat_ok = (start == 6313 && stop == 6250) && (start_ac == 6283 && stop_ac == 6281);
729 BOOST_CHECK(!feat->IsSetComment());
732 feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
733 BOOST_CHECK(!feat->IsSetComment());
739 BOOST_CHECK_EQUAL(feat_ok,
true);
742 BOOST_CHECK_EQUAL(count, 16);
749 string old_fname(
"test_data/Pbseq_withtRNA.asn");
750 string upd_fname(
"test_data/NC_014053.asn");
773 if (b_iter) new_bsh = *b_iter;
775 BOOST_REQUIRE(new_bsh);
789 const CSeq_id* feat_id = feat->GetLocation().GetId();
790 BOOST_REQUIRE(feat_id);
791 BOOST_CHECK(feat_id->
Match(*lcl_id));
800 BOOST_REQUIRE(anticodon_id);
801 BOOST_CHECK(anticodon_id->
Match(*lcl_id));
806 feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
807 BOOST_CHECK(feat->IsSetComment());
810 feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
811 BOOST_CHECK(feat->IsSetComment());
814 feat_ok = (start == 199 && stop == 131) && (start_ac == 169 && stop_ac == 167);
815 BOOST_CHECK(!feat->IsSetComment());
818 feat_ok = (start == 6313 && stop == 6250) && (start_ac == 6283 && stop_ac == 6281);
819 BOOST_CHECK(feat->IsSetComment());
822 feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
823 BOOST_CHECK(feat->IsSetComment());
824 BOOST_CHECK(feat->IsSetPartial());
830 BOOST_CHECK_EQUAL(feat_ok,
true);
833 BOOST_CHECK_EQUAL(count, 16);
840 string old_fname(
"test_data/Pbseq_withGenes.asn");
841 string upd_fname(
"test_data/NC_014053_genes.asn");
871 string old_fname(
"test_data/Pbseq_withGenes.asn");
872 string upd_fname(
"test_data/NC_014053.asn");
902 string old_fname(
"test_data/Pbseq_withGenes.asn");
903 string upd_fname(
"test_data/NC_014053.asn");
934 string old_fname(
"test_data/duplicateCDS.asn");
935 string upd_fname(
"test_data/NC_024274_cds.asn");
965 string old_fname(
"test_data/duplicateCDS.asn");
966 string upd_fname(
"test_data/NC_024274_cds.asn");
998 string old_fname(
"test_data/duplicateCDS.asn");
999 string upd_fname(
"test_data/NC_024274_cds.asn");
1029 string old_fname(
"test_data/duplicateCDS.asn");
1030 string upd_fname(
"test_data/NC_024274_cds.asn");
1060 string old_fname(
"test_data/duplicateCDS.asn");
1061 string upd_fname(
"test_data/NC_024274_cds.asn");
1150 BOOST_CHECK_EQUAL(type_ok,
true);
1154 bool feat_ok =
false;
1158 feat_ok = (start == 568 && stop == 718);
1161 feat_ok = (start == 587 && stop == 686);
1164 feat_ok = (start == 0 && stop == 25);
1169 BOOST_CHECK_EQUAL(feat_ok,
true);
1172 BOOST_CHECK_EQUAL(count, 3);
1178 string old_fname(
"test_data/shortSeq.asn");
1179 string upd_fname(
"test_data/update_shortSeq.asn");
1203 BOOST_CHECK_EQUAL(type_ok,
true);
1207 bool feat_ok =
false;
1210 feat_ok = (start == 0 && stop == 127);
1213 feat_ok = (start == 0 && stop == 29);
1216 feat_ok = (start == 29 && stop == 127);
1219 feat_ok = (start == 0 && stop == 49);
1224 BOOST_CHECK_EQUAL(feat_ok,
true);
1227 BOOST_CHECK_EQUAL(count, 4);
1250 if (b_iter) new_bsh = *b_iter;
1252 BOOST_REQUIRE(new_bsh);
1265 BOOST_CHECK_EQUAL(updseq, newseq);
1275 BOOST_CHECK_EQUAL(type_ok,
true);
1279 bool feat_ok =
false;
1283 feat_ok = (start == 0 && stop == 131);
1286 feat_ok = (start == 0 && stop == 31);
1289 feat_ok = (start == 0 && stop == 0);
1292 feat_ok = (start == 0 && stop == 69);
1297 BOOST_CHECK_EQUAL(feat_ok,
true);
1300 BOOST_CHECK_EQUAL(count, 4);
1306 string old_fname(
"test_data/OneSeqWithoutFeature.asn");
1307 string upd_fname(
"test_data/update_OneSeq.asn");
1324 if (b_iter) new_bsh = *b_iter;
1326 BOOST_REQUIRE(new_bsh);
1328 vector<string>
check{
1329 "Seq-id ::= local str \"Seq1\"\n",
1330 "Seq-id ::= general {\n"
1332 " tag str \"3456/Seq1\"\n"
1334 "Seq-id ::= general {\n"
1338 "Seq-id ::= genbank {\n"
1339 " accession \"AA123456\"\n"
1352 string old_fname(
"test_data/KR002586.asn");
1353 string upd_fname(
"test_data/KR002586_update.asn");
1371 if (b_iter) new_bsh = *b_iter;
1373 BOOST_REQUIRE(new_bsh);
1381 BOOST_CHECK_EQUAL(type_ok,
true);
1385 bool feat_ok =
false;
1389 feat_ok = (start == 0 && stop == 1079);
1392 feat_ok = (start == 0 && stop == 394);
1397 BOOST_CHECK_EQUAL(feat_ok,
true);
1400 BOOST_CHECK_EQUAL(count, 2);
1406 string old_fname(
"test_data/seq_withinSet.asn");
1407 string upd_fname(
"test_data/update_seqWithinSet1.asn");
1412 for (
CBioseq_CI b_iter(old_seh); b_iter; ++b_iter) {
1413 if (b_iter->GetBioseqLength() == 1430) {
1414 oldSeh = b_iter->GetSeq_entry_Handle();
1436 if (bseq_it && ++bseq_it) {
1451 BOOST_REQUIRE(new_bsh);
1466 BOOST_CHECK_EQUAL(type_ok,
true);
1470 bool feat_ok =
false;
1474 feat_ok = ((start == 0 && stop == 1378) && feat->IsSetPartial()) ||
1475 ((start == 0 && stop == 1386) && !feat->IsSetPartial());
1478 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1479 "Seq-loc ::= mix {\n"
1484 " id local str \"Seq23\"\n"
1490 " id local str \"Seq23\"\n"
1496 feat_ok = !feat->IsSetPartial() && ((start == 0 && stop == 94)
1497 || (start == 271 && stop == 1148)
1498 || (start == 647 && stop == 1378));
1501 feat_ok = feat->IsSetPartial()
1503 && (start == 745 && stop == 171);
1506 feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 94);
1509 feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 31);
1512 feat_ok = feat->IsSetPartial()
1514 && (start == 1378 && stop == 1358);
1517 feat_ok = feat->IsSetPartial()
1519 && (start == 1368 && stop == 1374);
1522 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1523 "Seq-loc ::= mix {\n"
1528 " id local str \"Seq23\"\n"
1534 " id local str \"Seq23\"\n"
1542 BOOST_CHECK_EQUAL(feat_ok,
true);
1545 BOOST_CHECK_EQUAL(count, 12);
1551 if ((*desc_it)->IsPub()) {
1553 if ((*pub_it)->IsSub()) {
1554 const CCit_sub& sub = (*pub_it)->GetSub();
1558 BOOST_CHECK_EQUAL(sub.
GetDescr(),
string(
"Sequence update by submitter"));
1568 string old_fname(
"test_data/seq_withinSet.asn");
1569 string upd_fname(
"test_data/update_seqWithinSet2.asn");
1574 for (
CBioseq_CI b_iter(old_seh); b_iter; ++b_iter) {
1575 if (b_iter->GetBioseqLength() == 1430) {
1576 oldSeh = b_iter->GetSeq_entry_Handle();
1597 if (bseq_it && ++bseq_it) {
1612 BOOST_REQUIRE(new_bsh);
1629 BOOST_CHECK_EQUAL(type_ok,
true);
1633 bool feat_ok =
false;
1637 feat_ok = ((start == 0 && stop == 1562) && feat->IsSetPartial()) ||
1638 ((start == 133 && stop == 1562) && feat->IsSetPartial());
1641 feat_ok = !feat->IsSetPartial() && ((start == 133 && stop == 232)
1642 || (start == 432 && stop == 1332)
1643 || (start == 832 && stop == 1562));
1646 feat_ok = !feat->IsSetPartial() && start == 0 && stop == 132;
1649 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1650 "Seq-loc ::= mix {\n"
1655 " id local str \"Seq23\"\n"
1661 " id local str \"Seq23\"\n"
1667 feat_ok = feat->IsSetPartial()
1669 && (start == 932 && stop == 332);
1672 feat_ok = !feat->IsSetPartial() && (start == 133 && stop == 232);
1675 feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 31);
1678 feat_ok = feat->IsSetPartial()
1680 && (start == 1562 && stop == 1542);
1683 feat_ok = feat->IsSetPartial()
1685 && (start == 1552 && stop == 1558);
1688 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1689 "Seq-loc ::= mix {\n"
1694 " id local str \"Seq23\"\n"
1700 " id local str \"Seq23\"\n"
1708 BOOST_CHECK_EQUAL(feat_ok,
true);
1711 BOOST_CHECK_EQUAL(count, 13);
1716 string old_fname(
"test_data/retranslateCDS_1.asn");
1717 string upd_fname(
"test_data/replace_retranslateCDS_1.asn");
1738 if (b_iter) new_bsh = *b_iter;
1740 BOOST_REQUIRE(new_bsh);
1745 if (p_iter) psh = *p_iter;
1753 BOOST_CHECK_EQUAL(id_label,
"lcl|12HNVN567_prot_72");
1756 BOOST_CHECK(descrs.
Get().size() == 3);
1762 string prseq(
"CDVKVXXXKFQWDRTMXKCQLSTMHTWNXASGINSIAAKWQSCRRRDNDQIXKSHRQCQN\
1763 HNSATXXFCRNQLYQTIRXXKNKXDSRTRTSILYNRRNXRKYKESILXXXXNKMXXSFXTGSWKTKRALXXXXYNLSTTL\
1764 RRRSRNXNTSFXLXRGIFLLQYNTTVXXYCLHKQYKRGRVXWHYHTSMPDKTNYKHVAKSRKSNVCSSHQ\
1765 WKHXVXIKYYRNTIDKRWWYXXLXXXYLR");
1766 BOOST_CHECK_EQUAL(newpr, prseq);
1769 BOOST_REQUIRE(prot_feat);
1773 BOOST_CHECK(feat_ok);
1780 string old_fname(
"test_data/retranslateCDS_1.asn");
1781 string upd_fname(
"test_data/replace_retranslateCDS_1.asn");
1802 if (b_iter) new_bsh = *b_iter;
1804 BOOST_REQUIRE(new_bsh);
1809 if (p_iter) psh = *p_iter;
1818 BOOST_CHECK_EQUAL(id_label,
"lcl|12HNVN567_prot_72");
1820 BOOST_CHECK(descrs.
Get().size() == 3);
1826 string prseq(
"CDVKVXXXKFQWDRTMXKCQLSTMHTWNXASGINSIAAKWQSCRRRDNDQIXKSHRQCQN\
1827 HNSATXXFCRNQLYQTIRXXKNKXDSRTRTSILYNRRNXRKYKESILXXXXNKMXXSFXTGSWKTKRALXXXXYNLSTTL\
1828 RRRSRNXNTSFXLXRGIFLLQYNTTVXXYCLHKQYKRGRVXWHYHTSMPDKTNYKHVAKSRKSNVCSSHQ\
1829 WKHXVXIKYYRNTIDKRWWYXXLXXXYLR");
1830 BOOST_CHECK_EQUAL(newpr, prseq);
1833 BOOST_REQUIRE(prot_feat);
1837 BOOST_CHECK(feat_ok);
1842 string old_fname(
"test_data/seq_withinSet.asn");
1843 string upd_fname(
"test_data/update_seqWithinSet1.asn");
1848 for (
CBioseq_CI b_iter(old_seh); b_iter; ++b_iter) {
1849 if (b_iter->GetBioseqLength() == 1430) {
1850 oldSeh = b_iter->GetSeq_entry_Handle();
1869 if (bseq_it && ++bseq_it) {
1884 BOOST_REQUIRE(new_bsh);
1900 BOOST_CHECK_EQUAL(type_ok,
true);
1904 bool feat_ok =
false;
1908 feat_ok = ((start == 0 && stop == 1359) && feat->IsSetPartial());
1911 feat_ok = !feat->IsSetPartial() && ((start == 0 && stop == 98)
1912 || (start == 275 && stop == 1152)
1913 || (start == 651 && stop == 1359));
1916 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1917 "Seq-loc ::= mix {\n"
1922 " id local str \"Seq23\"\n"
1928 " id local str \"Seq23\"\n"
1934 feat_ok = feat->IsSetPartial()
1936 && (start == 749 && stop == 175);
1939 feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 98);
1942 feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 31);
1945 feat_ok = feat->IsSetPartial()
1947 && (start == 1359 && stop == 1359);
1950 feat_ok = feat->IsSetPartial()
1952 && (start == 1359 && stop == 1359);
1955 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1956 "Seq-loc ::= mix {\n"
1961 " id local str \"Seq23\"\n"
1967 " id local str \"Seq23\"\n"
1975 BOOST_CHECK_EQUAL(feat_ok,
true);
1978 BOOST_CHECK_EQUAL(count, 11);
1983 string old_fname(
"test_data/seq_withinSet.asn");
1984 string upd_fname(
"test_data/update_seqWithinSet_Feats.asn");
1989 for (
CBioseq_CI b_iter(old_seh); b_iter; ++b_iter) {
1990 if (b_iter->GetBioseqLength() == 1430) {
1991 oldSeh = b_iter->GetSeq_entry_Handle();
2013 if (bseq_it && ++bseq_it) {
2028 BOOST_REQUIRE(new_bsh);
2037 BOOST_CHECK_EQUAL(type_ok,
true);
2041 bool feat_ok =
false;
2045 feat_ok = (start == 4 && stop == 1359);
2048 feat_ok = (!feat->IsSetPartial() && (start == 803 && stop == 303))
2049 || (feat->IsSetPartial() && (start == 1313 && stop == 1359))
2050 || (!feat->IsSetPartial() && (start == 1359 && stop == 1343));
2053 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
2054 "Seq-loc ::= packed-int {\n"
2059 " id local str \"Seq23\"\n"
2065 " id local str \"Seq23\"\n"
2073 BOOST_CHECK_EQUAL(feat_ok,
true);
2076 BOOST_CHECK_EQUAL(count, 5);
2101 if (b_iter) new_bsh = *b_iter;
2103 BOOST_REQUIRE(new_bsh);
2115 BOOST_CHECK_EQUAL(type_ok,
true);
2119 bool feat_ok =
false;
2123 feat_ok = (start == 0 && stop == 131);
2126 feat_ok = (start == 0 && stop == 31);
2129 feat_ok = (start == 0 && stop == 0) || (start == 19 && stop == 99);
2132 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 25);
2137 BOOST_CHECK_EQUAL(feat_ok,
true);
2140 BOOST_CHECK_EQUAL(count, 7);
2146 string old_fname(
"test_data/Old_Bourbon.asn");
2147 string upd_fname(
"test_data/Update_Bourbon.asn");
2165 if (b_iter) new_bsh = *b_iter;
2167 BOOST_REQUIRE(new_bsh);
2173 BOOST_CHECK(cds_it);
2188 BOOST_REQUIRE(prot_ids.size() == 2);
2190 vector<string>
check{
2191 "Seq-id ::= genbank {\n"
2192 " accession \"AJP32538\",\n"
2195 "Seq-id ::= gi 761229279\n"
2208 vector<string>
check{
2221 if ((*pub_it)->IsSub()) {
2222 const CCit_sub& sub = (*pub_it)->GetSub();
2226 BOOST_CHECK_EQUAL(sub.
GetDescr(),
string(
"Sequence update by submitter"));
2236 string old_fname(
"test_data/Old_Bourbon_woSub.asn");
2237 string upd_fname(
"test_data/Update_Bourbon.asn");
2255 if (b_iter) new_bsh = *b_iter;
2257 BOOST_REQUIRE(new_bsh);
2261 BOOST_CHECK_EQUAL(updater.
GetCitSubMessage(),
string(
"There is no earlier Cit-sub template"));
2267 string old_fname(
"test_data/replace_woalign.asn");
2268 string upd_fname(
"test_data/replace_woalign_update.asn");
2274 BOOST_REQUIRE(old_seh);
2286 BOOST_CHECK(updates.
size() == 3);
2287 BOOST_CHECK(identicals.
empty());
2288 BOOST_CHECK(noUpdates.empty());
2294 for (
auto& it : updates) {
2304 BOOST_CHECK(b_iter->GetBioseqLength() == 709);
2306 BOOST_REQUIRE(feat);
2312 BOOST_CHECK(start == 0 && stop == 230);
2315 BOOST_CHECK(start == 0 && stop == 708);
2318 BOOST_CHECK(start == 0 && stop == 911);
2342 if (b_iter) new_bsh = *b_iter;
2344 BOOST_REQUIRE(new_bsh);
2352 string patchseq(
"TGCAGTCGAGCGGCAGCACGGGGAGCTTGCTCCCTGGTGGCGAGCGGCGGACGGGTGAGTAATGTAGGAA\
2353 TCTGCCCGGTAGTGGGGGATAACGTGGGGAAACCCACGCTAATACCGCATACGTCCTACGGGAGAAAGCG\
2354 GAGGATCTTCGGACTTCGCGCTATCGGATGAGCCTATGTCGGATTAGCTAGTTGGTAAGGTAACGGCTTA\
2355 CCAAGGCGACGATCCGTAGCTGGTCTGAGAGGATGATCAGCCACACTGGGACTGAGACACGGCCCAGACT\
2356 CCTACGGGAGGCAGCAGTGGGGAATATTGGACAATGGGCGAAAGCCTTGATCCAGCCATGCCGCGTGTGT\
2357 GAAGAAGGCTTTCGGGTTGTAAAGCACTTTCAGCGAGGAAGAAAGCCTGGTGGTTAAAGCACCGGCTAAC\
2358 TCCGTGCCAGCAGCCGCGGTAATACGGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCG\
2359 TAGGTGGCTTGGCACGCCGGTTGTGAAAGCCCCGGGCTCAACCTGGGAACGGCATCCGGAACGGCCAGGC\
2360 TAGAGTGCAGGAGAGGAAGGTAGAATTCCCGGTGTAGCGGTGAAATGCGTAGAGATCGGGCCCCCCCCCC\
2361 CCCCCCCCCCTGACACTGAGGTGCGAAAGCATGGGTAGCAAACAGGATTAGATACCCTGGTAGTCCACGC\
2362 CGTAAACGATGTCGACTAGCCGTTGGGACCTTTAAGGACTTAGTGGCGCAGTTAACGCGATAAGTCGACC\
2363 GCCTGGGGGAGTACGGCCGCAAGGTTAAAACTCAAATGAATTGACGGGGGCCCGCACAAGCGGTGGAGCA\
2364 TGTGGTTTAATTCGATGCAACGCGAAGAACCTTACCTACCCTTGACATCCTGCGAATTTGGTAGAGATAC\
2365 CTTAGTGCCTTCGGGAGCGCAGTGACAGGTGCTGCATGGCTGTCGTCAGCTCGCGC");
2366 BOOST_CHECK_EQUAL(patchseq, newseq);
2376 BOOST_CHECK_EQUAL(type_ok,
true);
2380 bool feat_ok =
false;
2384 feat_ok = (start == 0 && stop == 964);
2387 feat_ok = (start == 199 && stop == 599);
2390 feat_ok = (start == 249 && stop == 562);
2393 feat_ok = (start == 0 && stop == 69);
2398 BOOST_CHECK_EQUAL(feat_ok,
true);
2401 BOOST_CHECK_EQUAL(count, 4);
2425 if (b_iter) new_bsh = *b_iter;
2427 BOOST_REQUIRE(new_bsh);
2438 BOOST_CHECK_EQUAL(type_ok,
true);
2442 bool feat_ok =
false;
2446 feat_ok = (start == 0 && stop == 964) || (start == 568 && stop == 699);
2449 feat_ok = (start == 199 && stop == 599);
2452 feat_ok = (start == 587 && stop == 667) || (start == 249 && stop == 562);
2455 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 25);
2460 BOOST_CHECK_EQUAL(feat_ok,
true);
2463 BOOST_CHECK_EQUAL(count, 7);
2488 if (b_iter) new_bsh = *b_iter;
2490 BOOST_REQUIRE(new_bsh);
2502 BOOST_CHECK_EQUAL(type_ok,
true);
2506 bool feat_ok =
false;
2511 feat_ok = (start == 0 && stop == 131)
2515 feat_ok = (start == 0 && stop == 31);
2518 feat_ok = (start == 0 && stop == 0) || (start == 19 && stop == 99);
2521 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 25);
2526 BOOST_CHECK_EQUAL(feat_ok,
true);
2529 BOOST_CHECK_EQUAL(count, 6);
2551 bool ignore_alignment(
true);
2563 if (b_iter) new_bsh = *b_iter;
2565 BOOST_REQUIRE(new_bsh);
2572 BOOST_CHECK_EQUAL(newseq, extendseq + origseq);
2583 BOOST_CHECK_EQUAL(type_ok,
true);
2587 bool feat_ok =
false;
2591 feat_ok = (start == 95 && stop == 1078);
2594 feat_ok = (start == 294 && stop == 694);
2597 feat_ok = (start == 344 && stop == 657);
2600 feat_ok = (start == 0 && stop == 69);
2605 BOOST_CHECK_EQUAL(feat_ok,
true);
2608 BOOST_CHECK_EQUAL(count, 4);
2619 bool ignore_alignment(
true);
2633 if (b_iter) new_bsh = *b_iter;
2635 BOOST_REQUIRE(new_bsh);
2647 BOOST_CHECK_EQUAL(type_ok,
true);
2651 bool feat_ok =
false;
2655 feat_ok = (start == 95 && stop == 1078) || (start == 54 && stop == 2);
2658 feat_ok = (start == 294 && stop == 694);
2661 feat_ok = (start == 70 && stop == 89);
2664 feat_ok = (start == 344 && stop == 657) || (start == 54 && stop == 2);
2667 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 16);
2672 BOOST_CHECK_EQUAL(feat_ok,
true);
2675 BOOST_CHECK_EQUAL(count, 8);
2686 bool ignore_alignment(
true);
2700 if (b_iter) new_bsh = *b_iter;
2702 BOOST_REQUIRE(new_bsh);
2714 BOOST_CHECK_EQUAL(type_ok,
true);
2718 bool feat_ok =
false;
2722 feat_ok = (start == 92 && stop == 1075) || (start == 2 && stop == 54);
2725 feat_ok = (start == 291 && stop == 691);
2728 feat_ok = (start == 67 && stop == 86);
2731 feat_ok = (start == 341 && stop == 654) || (start == 2 && stop == 54);
2734 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 16);
2739 BOOST_CHECK_EQUAL(feat_ok,
true);
2742 BOOST_CHECK_EQUAL(count, 8);
2753 bool ignore_alignment(
false);
2766 if (b_iter) new_bsh = *b_iter;
2768 BOOST_REQUIRE(new_bsh);
2776 string extend5seq(
"GGGGGGGGGGCCCCGGAAAAAAAAAGGGGGGGGGGGCGCACGTTTTTTCACACAGGGGTGCAGTCGAGCG\
2777 GCAGCACGGGGAGCTTGCTCCCTGGTGGCGAGCGGCGGACGGGTGAGTAATGTAGGAATCTGCCCGGTAG\
2778 TGGGGGATAACGTGGGGAAACCCACGCTAATACCGCATACGTCCTACGGGAGAAAGCGGAGGATCTTCGG\
2779 ACTTCGCGCTATCGGATGAGCCTATGTCGGATTAGCTAGTTGGTAAGGTAACGGCTTACCAAGGCGACGA\
2780 TCCGTAGCTGGTCTGAGAGGATGATCAGCCACACTGGGACTGAGACACGGCCCAGACTCCTACGGGAGGC\
2781 AGCAGTGGGGAATATTGGACAATGGGCGAAAGCCTTGATCCAGCCATGCCGCGTGTGTGAAGAAGGCTTT\
2782 CGGGTTGTAAAGCACTTTCAGCGAGGAAGAAAGCCTGGTGGTTAAAGCACCGGCTAACTCCGTGCCAGCA\
2783 GCCGCGGTAATACGGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGCTTGG\
2784 CACGCCGGTTGTGAAAGCCCCGGGCTCAACCTGGGAACGGCATCCGGAACGGCCAGGCTAGAGTGCAGGA\
2785 GAGGAAGGTAGAATTCCCGGTGTAGCGGTGAAATGCGTAGAGATCGGGAGGAATACCAGTGGCGAAGGCG\
2786 GCCTTCTGGCCTGACACTGACACTGAGGTGCGAAAGCGTGGGTAGCAAACAGGATTAGATACCCTGGTAG\
2787 TCCACGCCGTAAACGATGTCGACTAGCCGTTGGGACCTTTAAGGACTTAGTGGCGCAGTTAACGCGATAA\
2788 GTCGACCGCCTGGGGGAGTACGGCCGCAAGGTTAAAACTCAAATGAATTGACGGGGGCCCGCACAAGCGG\
2789 TGGAGCATGTGGTTTAATTCGATGCAACGCGAAGAACCTTACCTACCCTTGACATCCTGCGAATTTGGTA\
2790 GAGATACCTTAGTGCCTTCGGGAGCGCAGTGACAGGTGCTGCATGGCTGTCGTCAGCTCGCGC");
2791 BOOST_CHECK_EQUAL(extend5seq, newseq);
2801 BOOST_CHECK_EQUAL(type_ok,
true);
2805 bool feat_ok =
false;
2809 feat_ok = (start == 58 && stop == 1041);
2812 feat_ok = (start == 257 && stop == 657);
2815 feat_ok = (start == 307 && stop == 620);
2818 feat_ok = (start == 0 && stop == 69);
2823 BOOST_CHECK_EQUAL(feat_ok,
true);
2826 BOOST_CHECK_EQUAL(count, 4);
2837 bool ignore_alignment(
false);
2851 if (b_iter) new_bsh = *b_iter;
2853 BOOST_REQUIRE(new_bsh);
2864 BOOST_CHECK_EQUAL(type_ok,
true);
2868 bool feat_ok =
false;
2872 feat_ok = (start == 58 && stop == 1041) || (start == 54 && stop == 2);
2875 feat_ok = (start == 257 && stop == 657);
2878 feat_ok = (start == 70 && stop == 89);
2881 feat_ok = (start == 307 && stop == 620) || (start == 54 && stop == 2);
2884 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 16);
2889 BOOST_CHECK_EQUAL(feat_ok,
true);
2892 BOOST_CHECK_EQUAL(count, 8);
2903 bool ignore_alignment(
false);
2918 if (b_iter) new_bsh = *b_iter;
2920 BOOST_REQUIRE(new_bsh);
2933 BOOST_CHECK_EQUAL(type_ok,
true);
2937 bool feat_ok =
false;
2941 feat_ok = (start == 58 && stop == 1038) || (start == 2 && stop == 54);
2944 feat_ok = (start == 254 && stop == 654);
2947 feat_ok = (start == 67 && stop == 86);
2950 feat_ok = (start == 304 && stop == 617) || (start == 2 && stop == 54);
2953 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 16);
2958 BOOST_CHECK_EQUAL(feat_ok,
true);
2961 BOOST_CHECK_EQUAL(count, 8);
2966 string old_fname(
"test_data/seq_for_5extend.asn");
2967 string upd_fname(
"test_data/update_5extend.asn");
2974 bool ignore_alignment(
false);
2989 if (b_iter) new_bsh = *b_iter;
2991 BOOST_REQUIRE(new_bsh);
3003 BOOST_CHECK_EQUAL(type_ok,
true);
3007 bool feat_ok =
false;
3011 feat_ok = (start == 39 && stop == 64) || (start == 58 && stop == 1041);
3014 feat_ok = (start == 60 && stop == 77)
3015 || (start == 1037 && stop == 60)
3016 || (start == 82 && stop == 107);
3019 feat_ok = (start == 70 && stop == 89);
3022 feat_ok = (start == 307 && stop == 620) || (start == 54 && stop == 2);
3025 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 17);
3030 BOOST_CHECK_EQUAL(feat_ok,
true);
3033 BOOST_CHECK_EQUAL(count, 10);
3055 bool ignore_alignment(
true);
3066 if (b_iter) new_bsh = *b_iter;
3068 BOOST_REQUIRE(new_bsh);
3075 BOOST_CHECK_EQUAL(newseq, origseq + extendseq);
3085 BOOST_CHECK_EQUAL(type_ok,
true);
3089 bool feat_ok =
false;
3093 feat_ok = (start == 0 && stop == 983);
3096 feat_ok = (start == 199 && stop == 599);
3099 feat_ok = (start == 249 && stop == 562);
3102 feat_ok = (start == 0 && stop == 69);
3107 BOOST_CHECK_EQUAL(feat_ok,
true);
3110 BOOST_CHECK_EQUAL(count, 4);
3121 bool ignore_alignment(
true);
3136 if (b_iter) new_bsh = *b_iter;
3138 BOOST_REQUIRE(new_bsh);
3151 BOOST_CHECK_EQUAL(type_ok,
true);
3155 bool feat_ok =
false;
3159 feat_ok = (start == 0 && stop == 983) || (start == 989 && stop == 1074);
3162 feat_ok = (start == 199 && stop == 599);
3165 feat_ok = (start == 1104 && stop == 1124);
3168 feat_ok = (start == 249 && stop == 562) || (start == 1029 && stop == 1104);
3171 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 24);
3176 BOOST_CHECK_EQUAL(feat_ok,
true);
3179 BOOST_CHECK_EQUAL(count, 8);
3190 bool ignore_alignment(
false);
3201 if (b_iter) new_bsh = *b_iter;
3203 BOOST_REQUIRE(new_bsh);
3211 string extend3seq(
"TGCAGTCGAGCGGCAGCACGGGGAGCTTGCTCCCTGGTGGCGAGCGGCGGACGGGTGAGTAATGTAGGAA\
3212 TCTGCCCGGTAGTGGGGGATAACGTGGGGAAACCCACGCTAATACCGCATACGTCCTACGGGAGAAAGCG\
3213 GAGGATCTTCGGACTTCGCGCTATCGGATGAGCCTATGTCGGATTAGCTAGTTGGTAAGGTAACGGCTTA\
3214 CCAAGGCGACGATCCGTAGCTGGTCTGAGAGGATGATCAGCCACACTGGGACTGAGACACGGCCCAGACT\
3215 CCTACGGGAGGCAGCAGTGGGGAATATTGGACAATGGGCGAAAGCCTTGATCCAGCCATGCCGCGTGTGT\
3216 GAAGAAGGCTTTCGGGTTGTAAAGCACTTTCAGCGAGGAAGAAAGCCTGGTGGTTAAAGCACCGGCTAAC\
3217 TCCGTGCCAGCAGCCGCGGTAATACGGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCG\
3218 TAGGTGGCTTGGCACGCCGGTTGTGAAAGCCCCGGGCTCAACCTGGGAACGGCATCCGGAACGGCCAGGC\
3219 TAGAGTGCAGGAGAGGAAGGTAGAATTCCCGGTGTAGCGGTGAAATGCGTAGAGATCGGGAGGAATACCA\
3220 GTGGCGAAGGCGGCCTTCTGGCCTGACACTGACACTGAGGTGCGAAAGCGTGGGTAGCAAACAGGATTAG\
3221 ATACCCTGGTAGTCCACGCCGTAAACGATGTCGACTAGCCGTTGGGACCTTTAAGGACTTAGTGGCGCAG\
3222 TTAACGCGATAAGTCGACCGCCTGGGGGAGTACGGCCGCAAGGTTAAAACTCAAATGAATTGACGGGGGC\
3223 CCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGCAACGCGAAGAACCTTACCTACCCTTGACATCCT\
3224 GCGAATTTGGTAGAGATACCTTAGTGCCTTCGGGAGCGCAGTGACAGGTGCTGCATGGCTGTCGTCAGCT\
3225 CGCGCGGGAGAAAGGGGTTTTTTTTTTTATATTATACCCCACCCCTCTCTCCCGGGGGGAGATTAGCCAC\
3226 AGGGGTTTTTTTTTTTATATTATACCCCCCGGGGGGAGATTAGCC");
3227 BOOST_CHECK_EQUAL(extend3seq, newseq);
3237 BOOST_CHECK_EQUAL(type_ok,
true);
3241 bool feat_ok =
false;
3245 feat_ok = (start == 0 && stop == 983);
3248 feat_ok = (start == 199 && stop == 599);
3251 feat_ok = (start == 249 && stop == 562);
3254 feat_ok = (start == 0 && stop == 69);
3259 BOOST_CHECK_EQUAL(feat_ok,
true);
3262 BOOST_CHECK_EQUAL(count, 4);
3274 bool ignore_alignment(
false);
3289 if (b_iter) new_bsh = *b_iter;
3291 BOOST_REQUIRE(new_bsh);
3302 BOOST_CHECK_EQUAL(type_ok,
true);
3306 bool feat_ok =
false;
3310 feat_ok = (start == 0 && stop == 983) || (start == 904 && stop == 989);
3313 feat_ok = (start == 199 && stop == 599);
3316 feat_ok = (start == 1019 && stop == 1039);
3319 feat_ok = (start == 249 && stop == 562) || (start == 944 && stop == 1019);
3322 feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 24);
3327 BOOST_CHECK_EQUAL(feat_ok,
true);
3330 BOOST_CHECK_EQUAL(count, 8);
3335 string old_fname(
"test_data/seq_for_3extend.asn");
3336 string upd_fname(
"test_data/update_3extend.asn");
3343 bool ignore_alignment(
false);
3358 if (b_iter) new_bsh = *b_iter;
3360 BOOST_REQUIRE(new_bsh);
3372 BOOST_CHECK_EQUAL(type_ok,
true);
3376 bool feat_ok =
false;
3380 feat_ok = (start == 0 && stop == 983) || (start == 904 && stop == 944);
3383 feat_ok = (start == 979 && stop == 2)
3384 || (start == 2 && stop == 19)
3385 || (start == 849 && stop == 909);
3388 feat_ok = (start == 959 && stop == 999);
3391 feat_ok = (start == 899 && stop == 953) || (start == 1019 && stop == 1055);
3394 feat_ok = (start == 0 && stop == 11) || (start == 0 && stop == 16);
3399 BOOST_CHECK_EQUAL(feat_ok,
true);
3402 BOOST_CHECK_EQUAL(count, 10);
3407 string old_fname(
"test_data/retranslateCDS.asn");
3408 string upd_fname(
"test_data/patch_retranslateCDS.asn");
3428 if (b_iter) new_bsh = *b_iter;
3430 BOOST_REQUIRE(new_bsh);
3437 BOOST_CHECK_EQUAL(type_ok,
true);
3441 bool feat_ok =
false;
3446 vector<TSeqRange> sublocs;
3447 for (
CSeq_loc_CI loc_iter(feat->GetLocation()); loc_iter; ++loc_iter) {
3448 sublocs.push_back(loc_iter.GetRange());
3451 vector<TSeqRange> explocs;
3458 feat_ok = (sublocs == explocs);
3465 string protein(
"MGQVFLLLPVLLVSCFLSQGAAMENQRLFNIAVNRVQHLHLMAQKMFNDFEVTLLPDERRQLNKIFLLDF\
3466 CNSDSIVSPPHIYIVLDRHVFKEREFKDRXSTSTRLRRVQSXSCSTSLTVXLNPGSTLARPXPSPTASXS\
3467 ETPTRSLRSSATSKWASTCSSRGARMAYXAWMTMTLSSCPPTGTTTRTWGATETSGGTTSCWPASRRTCT\
3468 RSRPTXPSPSAGSHWRPTALC");
3469 BOOST_CHECK_EQUAL(new_prot, protein);
3473 feat_ok = (start == 0 && stop == 230);
3478 BOOST_CHECK_EQUAL(feat_ok,
true);
3481 BOOST_CHECK_EQUAL(count, 2);
3487 string old_fname(
"test_data/OldSeq_CDS_mRNA.asn");
3488 string upd_fname(
"test_data/UpdSeq_NoAlign.asn");
3508 if (b_iter) new_bsh = *b_iter;
3510 BOOST_REQUIRE(new_bsh);
3520 BOOST_CHECK_EQUAL(type_ok,
true);
3524 bool feat_ok =
false;
3528 feat_ok = (start == 0 && stop == 983);
3531 feat_ok = (start == 199 && stop == 599);
3534 feat_ok = (start == 249 && stop == 562);
3537 feat_ok = (start == 0 && stop == 69);
3542 BOOST_CHECK_EQUAL(feat_ok,
true);
3545 BOOST_CHECK_EQUAL(count, 4);
3550 string old_fname(
"test_data/OldSeq_CDS_mRNA.asn");
3551 string upd_fname(
"test_data/UpdSeq_NoAlign.asn");
3571 if (b_iter) new_bsh = *b_iter;
3573 BOOST_REQUIRE(new_bsh);
3583 BOOST_CHECK_EQUAL(type_ok,
true);
3587 bool feat_ok =
false;
3591 feat_ok = (start == 1055 && stop == 2038);
3594 feat_ok = (start == 1254 && stop == 1654);
3597 feat_ok = (start == 1304 && stop == 1617);
3600 feat_ok = (start == 0 && stop == 69);
3605 BOOST_CHECK_EQUAL(feat_ok,
true);
3608 BOOST_CHECK_EQUAL(count, 4);
3613 string old_fname(
"test_data/GB_5422.asn");
3614 string upd_fname(
"test_data/UpdSeq_NoAlign.asn");
3634 if (b_iter) new_bsh = *b_iter;
3636 BOOST_REQUIRE(new_bsh);
3640 BOOST_CHECK(feat_it);
3651 string old_fname(
"test_data/negstrand2.asn");
3652 string upd_fname(
"test_data/negstrand2_upd.asn");
3674 BOOST_CHECK_EQUAL(type_ok,
true);
3678 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3679 "Seq-loc ::= int {\n"
3683 " id local str \"AE10_1\",\n"
3688 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3689 "Seq-loc ::= int {\n"
3693 " id local str \"AE10_1\"\n"
3697 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3698 "Seq-loc ::= int {\n"
3702 " id local str \"AE10_1\",\n"
3714 string old_fname(
"test_data/negstrand3.asn");
3715 string upd_fname(
"test_data/negstrand3_upd.asn");
3737 BOOST_CHECK_EQUAL(type_ok,
true);
3742 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3743 "Seq-loc ::= mix {\n"
3748 " id local str \"Nay14\",\n"
3749 " fuzz-from lim lt\n"
3755 " id local str \"Nay14\"\n"
3761 " id local str \"Nay14\"\n"
3767 " id local str \"Nay14\",\n"
3781 string old_fname(
"test_data/negstrand.asn");
3782 string upd_fname(
"test_data/negstrand_upd.asn");
3799 if (b_iter) new_bsh = *b_iter;
3801 BOOST_REQUIRE(new_bsh);
3812 BOOST_CHECK_EQUAL(updseq, newseq);
3819 BOOST_CHECK_EQUAL(type_ok,
true);
3823 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3824 "Seq-loc ::= int {\n"
3828 " id local str \"AE10_1_1\",\n"
3834 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3835 "Seq-loc ::= int {\n"
3839 " id local str \"AE10_1_1\",\n"
3840 " fuzz-from lim lt\n"
3843 else if (
NStr::EqualNocase(feat->GetComment(),
"partially inside the alignment (<5..23)")) {
3844 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3845 "Seq-loc ::= int {\n"
3849 " id local str \"AE10_1_1\",\n"
3854 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3855 "Seq-loc ::= int {\n"
3859 " id local str \"AE10_1_1\",\n"
3860 " fuzz-from lim lt,\n"
3865 BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3866 "Seq-loc ::= int {\n"
3870 " id local str \"AE10_1_1\",\n"
3871 " fuzz-from lim lt\n"
3883 string old_fname(
"test_data/deltaseq.asn");
3884 string upd_fname(
"test_data/update_rawseq.asn");
3901 if (b_iter) new_bsh = *b_iter;
3903 BOOST_REQUIRE(new_bsh);
3914 BOOST_CHECK_EQUAL(updseq, newseq);
3927 string old_fname(
"test_data/delta_farpointers.asn");
3935 if (b_iter) old_bsh = *b_iter;
3942 BOOST_REQUIRE(upd_bsh);
3961 if (bseq_it) new_bsh = *bseq_it;
3963 short count_genes = 0;
3964 for (
CFeat_CI feat_it(new_bsh); feat_it; ++feat_it) {
3968 BOOST_CHECK_EQUAL(count_genes, 185);
3974 string old_fname(
"test_data/protein_seqs1.asn");
3975 string upd_fname(
"test_data/protein_seqs1_update.fa");
3982 BOOST_REQUIRE(old_seh);
3995 BOOST_CHECK(updates.
size() == 4);
3996 BOOST_CHECK(identicals.
empty());
3997 BOOST_CHECK(noUpdates.size() == 1);
4003 for (
auto& it : updates) {
4014 new_svec.
GetSeqData(0, b_iter->GetBioseqLength(), prot_seq);
4015 BOOST_CHECK(prot_seq.front() ==
'M');
4021 string old_fname(
"test_data/mat_peptide.asn");
4022 string upd_fname(
"test_data/mat_pepshort_upd.fa");
4029 BOOST_REQUIRE(old_seh);
4042 BOOST_CHECK(updates.
size() == 1);
4043 BOOST_CHECK(identicals.
empty());
4044 BOOST_CHECK(noUpdates.empty());
4050 for (
auto& it : updates) {
4059 BOOST_CHECK(b_iter);
4063 BOOST_CHECK(prot_seq.front() ==
'M');
4067 const CProt_ref& prot_ref = it->GetOriginalFeature().GetData().GetProt();
4070 BOOST_CHECK_EQUAL(
MakeAsn(it->GetLocation()),
4071 "Seq-loc ::= int {\n"
4074 " id local str \"Seq4_prot_6\"\n"
4078 if (prot_ref.
GetName().front() ==
"HA1") {
4079 BOOST_CHECK_EQUAL(
MakeAsn(it->GetLocation()),
4080 "Seq-loc ::= int {\n"
4083 " id local str \"Seq4_prot_6\"\n"
4087 BOOST_CHECK_EQUAL(
MakeAsn(it->GetLocation()),
4088 "Seq-loc ::= int {\n"
4091 " id local str \"Seq4_prot_6\"\n"
4097 BOOST_CHECK_EQUAL(
MakeAsn(it->GetLocation()),
4098 "Seq-loc ::= int {\n"
4101 " id local str \"Seq4_prot_6\"\n"
4117 BOOST_REQUIRE(b_iter);
4120 string extend(
"aaallaagggggzzzztttttccccec");
4125 BOOST_CHECK(inst_ext5->
GetLength() == 80);
4131 BOOST_CHECK_EQUAL(extended5,
string(
"AAAAAGGGGGTTTTTCCCCCAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAA"));
4136 BOOST_CHECK_EQUAL(extended3,
string(
"AATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAAAAAGGGGGTTTTTCCCCC"));
4141 string extend(
"PPPPP");
4145 BOOST_CHECK(!inst_ext5);
4146 BOOST_CHECK(!inst_ext3);
4158 newloc->
SetInt().SetFrom(30);
4159 newloc->
SetInt().SetTo(59);
4160 newloc->
SetInt().SetId().Assign(*seq_id);
4164 BOOST_REQUIRE(extend.size() == 20);
4168 "Seq-loc ::= packed-int {\n"
4172 " id local str \"good\"\n"
4177 " id local str \"good\"\n"
4186 "Seq-loc ::= packed-int {\n"
4191 " id local str \"good\"\n"
4197 " id local str \"good\"\n"
4214 "Seq-loc ::= packed-int {\n"
4219 " id local str \"good\"\n"
4225 " id local str \"good\"\n"
4230 "Seq-loc ::= int {\n"
4234 " id local str \"good\"\n"
4242 string old_fname(
"test_data/collideID.asn");
4243 string upd_fname(
"test_data/collideID_update.asn");
4248 BOOST_REQUIRE(old_seh);
4256 BOOST_REQUIRE(upd_seh);
4262 string old_fname(
"test_data/GB_5422.asn");
4267 BOOST_REQUIRE(old_seh);
4271 if (b_iter) old_bsh = *b_iter;
4279 BOOST_REQUIRE(upd_seh);
4283 if (bupd_iter) upd_bsh = *bupd_iter;
4289 " name \"Alignment generated between two identical sequences\"\n"
4299 " local str \"KT250608_update\",\n"
4301 " accession \"KT250608\"\n"
4320 string old_fname(
"test_data/goodalign.asn");
4321 string upd_fname(
"test_data/update_goodalign.asn");
4331 BOOST_CHECK(align->GetAlignLength() == 228);
4336 string old_fname(
"test_data/GB_8669.asn");
4337 string upd_fname(
"test_data/update_GB_8669.asn");
4347 BOOST_CHECK(align->GetAlignLength() == 53333);
4353 Seq-entry ::= set { \
4359 taxname \"Salinicola sp. SOil-1\" , \
4365 local str \"Untitled_Seq_#1\" , \
4367 accession \"KM986631\" } } , \
4375 seq-data iupacna \"\
4376 TGCAGTCGAGCGGCAGCACGGGGAGCTTGCTCCCTGGTGGCGAGCGGCGGACGGGTGAGTAATGTAGGAA\
4377 TCTGCCCGGTAGTGGGGGATAACGTGGGGAAACCCACGCTAATACCGCATACGTCCTACGGGAGAAAGCG\
4378 GAGGATCTTCGGACTTCGCGCTATCGGATGAGCCTATGTCGGATTAGCTAGTTGGTAAGGTAACGGCTTA\
4379 CCAAGGCGACGATCCGTAGCTGGTCTGAGAGGATGATCAGCCACACTGGGACTGAGACACGGCCCAGACT\
4380 CCTACGGGAGGCAGCAGTGGGGAATATTGGACAATGGGCGAAAGCCTTGATCCAGCCATGCCGCGTGTGT\
4381 GAAGAAGGCTTTCGGGTTGTAAAGCACTTTCAGCGAGGAAGAAAGCCTGGTGGTTAAAGCACCGGCTAAC\
4382 TCCGTGCCAGCAGCCGCGGTAATACGGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCG\
4383 TAGGTGGCTTGGCACGCCGGTTGTGAAAGCCCCGGGCTCAACCTGGGAACGGCATCCGGAACGGCCAGGC\
4384 TAGAGTGCAGGAGAGGAAGGTAGAATTCCCGGTGTAGCGGTGAAATGCGTAGAGATCGGGAGGAATACCA\
4385 GTGGCGAAGGCGGCCTTCTGGCCTGACACTGACACTGAGGTGCGAAAGCGTGGGTAGCAAACAGGATTAG\
4386 ATACCCTGGTAGTCCACGCCGTAAACGATGTCGACTAGCCGTTGGGACCTTTAAGGACTTAGTGGCGCAG\
4387 TTAACGCGATAAGTCGACCGCCTGGGGGAGTACGGCCGCAAGGTTAAAACTCAAATGAATTGACGGGGGC\
4388 CCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGCAACGCGAAGAACCTTACCTACCCTTGACATCCT\
4389 GCGAATTTGGTAGAGATACCTTAGTGCCTTCGGGAGCGCAGTGACAGGTGCTGCATGGCTGTCGTCAGCT\
4397 gene{ locus \"16S rDNA\" } , \
4398 comment \"partial sequence\", \
4404 id local str \"Untitled_Seq_#1\" } } , \
4410 name \"new mRNA\" } , \
4411 comment \"mRNA comment\" , \
4420 accession \"KM986631\" } } , \
4427 accession \"KM986631\" } } } } } } } } , \
4429 id { local str \"KM986631_1\" } , \
4433 completeness partial } } , \
4439 ncbieaa \"HTGTETRPRLLREAAVGNIGQWAKALIQPCRVCEEGFRVVKHFQRGRKPGGTPVVKAPGSTWERHPERPG\" } , \
4447 name { \"new protein\" } } , \
4453 id local str \"KM986631_1\" } } } } } } } , \
4465 whole local str \"KM986631_1\" , \
4474 accession \"KM986631\" } } , \
4481 accession \"KM986631\" } } } } } } } } \
4485 Seq-entry ::= seq { \
4487 local str \"Seq_01\" } , \
4492 seq-data iupacna \"\
4493 TGCAGTCGAGCGGCAGCACGGGGAGCTTGCTCCCTGGTGGCGAGCGGCGGACGGGTGAGTAATGTAGGAA\
4494 TCTGCCCGGTAGTGGGGGATAACGTGGGGAAACCCACGCTAATACCGCATACGTCCTACGGGAGAAAGCG\
4495 GAGGATCTTCGGACTTCGCGCTATCGGATGAGCCTATGTCGGATTAGCTAGTTGGTAAGGTAACGGCTTA\
4496 CCAAGGCGACGATCCGTAGCTGGTCTGAGAGGATGATCAGCCACACTGGGACTGAGACACGGCCCAGACT\
4497 CCTACGGGAGGCAGCAGTGGGGAATATTGGACAATGGGCGAAAGCCTTGATCCAGCCATGCCGCGTGTGT\
4498 GAAGAAGGCTTTCGGGTTGTAAAGCACTTTCAGCGAGGAAGAAAGCCTGGTGGTTAAAGCACCGGCTAAC\
4499 TCCGTGCCAGCAGCCGCGGTAATACGGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCG\
4500 TAGGTGGCTTGGCACGCCGGTTGTGAAAGCCCCGGGCTCAACCTGGGAACGGCATCCGGAACGGCCAGGC\
4501 TAGAGTGCAGGAGAGGAAGGTAGAATTCCCGGTGTAGCGGTGAAATGCGTAGAGATCGGGAGGAATACCA\
4502 GTGGCGAAGGCGGCCTTCTGGCCTGACACTGACACTGAGGTGCGAAAGCGTGGGTAGCAAACAGGATTAG\
4503 ATACCCTGGTAGTCCACGCCGTAAACGATGTCGACTAGCCGTTGGGACCTTTAAGGACTTAGTGGCGCAG\
4504 TTAACGCGATAAGTCGACCGCCTGGGGGAGTACGGCCGCAAGGTTAAAACTCAAATGAATTGACGGGGGC\
4505 CCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGCAACGCGAAGAACCTTACCTACCCTTGACATCCT\
4506 GCGAATTTGGTAGAGATACCTTAGTGCCTTCGGGAGCGCAGTGACAGGTGCTGCATGGCTGTCGTCAGCT\
4511 Seq-entry ::= seq { \
4513 local str \"Seq_02\" } , \
4518 seq-data iupacna \"\
4519 GAGGCACGGGGAGCTTGCTCCCTGGTGGCGAGCGGCGGACGGGTGAGTAATGTAGGAA\
4520 TCTGCCCGGTAGTGGGGGATAACGTGGGGAAACCCACGCTAATACCGCATACGTCCTACGGGAGAAAGCG\
4521 GAGGATCTTCGGACTTCGCGCTATCGGATGAGCCTATGTCGGATTAGCTAGTTGGTAAGGTAACGGCTTA\
4522 CCAAGGCGACGATCCGTAGCTGGTCTGAGAGGATGATCAGCCACACTGGGACTGAGACACGGCCCAGACT\
4523 CCTACGGGAGGCAGCAGTGGGGAATATTGGACAATGGGCGAAAGCCTTGATCCAGCCATGCCGCGTGTGT\
4524 GAAGAAGGCTTTCGGGTTGTAAAGCACTTTCAGCGAGGAAGAAAGCCTGGTGGTTAATACCCATCAGGAA\
4525 GGACATCACTCGCAGAAGAAGCACCGGCTAACTCCGTGCCAGCAGCCGCGGTAATACGGAGGGTGCGAGC\
4526 GTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGCTTGGCACGCCGGTTGTGAAAGCCCCGGGCT\
4527 CAACCTGGGAACGGCATCCGGAACGGCCAGGCTAGAGTGCAGGAGAGGAAGGTAGAATTCCCGGTGTAGC\
4528 GGTGAAATGCGTAGAGATCGGGAGGAATACCAGTGGCGAAGGCGGCCTTCTGGCCTGACACTGACACTGA\
4529 GGTGCGAAAGCGTGGGTAGCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGTCGACTAG\
4530 CCGTTGGGACCTTTAAGGACTTAGTGGCGCAGTTAACGCGATAAGTCGACCGCCTGGGGGAGTACGGCCG\
4531 CAAGGTTAAAACTCAAATGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGCA\
4532 ACGCGAAGAACCTTACCTACCCTTGACATCCTGCGAATTTGGTAGAGATACCTTAGTGCCTTCGGGAGCG\
4533 CAGTGACAGGTGCTGCATGGCTGTCGTCAGCTCGTGTTGTGAAATGTTGGGTTAAGTCCCGTAACGAGCG\
4534 CAACCCTTTGTCCTTATTTGCCAGCACGTAATGGTGGGAACTCTAAGGAGACTGCCGGTGACAAACCGGA\
4535 GGAAGGTGGGGACGACGTCGGCCCTTACGGGTAGGGCTACACACGTGCTACAATGGCCGG\
4536 TACAAAGGGTTGCGAGACCGCGAGGTGGAGCGAATCCCAGAAAGCCGGCCTCAGTCCGGATCGGAGTCTG\
4537 CAACTCGACTCCGTGAAGTCGGAAAGTAATCGTGAATCAGAATGTCACGGTGAATACGTTCCCGG\
4538 GCCTTGTACACACCGCCCGTCACACCATGGGAGTGGACTGCACCAGAAGTGGTTAGC\" } \
4542 Seq-entry ::= set { \
4546 id { local str \"Seq_02\" } , \
4551 seq-data iupacna \"AGGAGAGGAAGGTAGAATTCCCGGTGTAGCGGTGAAATGCGTAGAGATCGGGCCCCCCCCCCCCCCCCCC\
4552 CCTGACACTGAGGTGCGAAAGCATGGGTAGCAAACAGGATTAGATACCCTGGTAGTCCACGC\" } , \
4559 gene{ locus \"new gene locus\" } , \
4565 id local str \"seq_02\" } } } } } } , \
4567 id{ local str \"seq_02_1\" } , \
4569 title \"new protein name, partial\", \
4572 tech concept-trans, \
4573 completeness no-left } } , \
4578 seq-data ncbieaa \"PGVAVKCVEIGPPPPPPPDTEVRKHG\" } , \
4586 name { \"new protein name\" } , \
4587 desc \"new protein descr\" } , \
4593 id local str \"seq_02_1\" , \
4594 fuzz-from lim lt } } } } } } } , \
4605 product whole local str \"seq_02_1\" , \
4611 id local str \"seq_02\" , \
4612 fuzz-from lim lt } } } } } } \
4616 Seq-entry ::= set { \
4620 id { local str \"Seq_extend5\" } , \
4625 seq-data iupacna \"\
4626 GGGGGGGGGGCCCCGGAAAAAAAAAGGGGGGGGGGGCGCACGTTTTTTCACACAGGGGTGCAGTCGAGCGGCAGCACGGGGAGCTTGCTCCCTGG\" } , \
4634 locus \"import gene locusA\" }, \
4641 id local str \"Seq_extend5\", \
4643 fuzz-to lim gt } } , \
4647 key \"misc_feature\" } , \
4653 id local str \"Seq_extend5\" } , \
4660 val \"feat_product\" } } } } } } }, \
4662 id { local str \"Seq_extend5_1\" } , \
4664 title \"import gene locusA gene product\", \
4667 tech concept-trans } } , \
4672 seq-data ncbieaa \"MCEKTCAPPPFFFPGPPP\" } , \
4680 name{ \"GR_protein name\" } } , \
4685 id local str \"Seq_extend5_1\" } } } } } } } , \
4695 whole local str \"Seq_extend5_1\", \
4701 id local str \"Seq_extend5\" } } } } } } \
4705 Seq-entry ::= set { \
4709 id { local str \"Seq_extend5\" } , \
4714 seq-data iupacna \"\
4715 GGGGGGGGGGCCCCGGAAAAAAAAAGGGGGGGGGGGCGCACGTTTTTTCACACAGGGGTGCAGTCGGGCAGCACGGGGAGCTTGCTCCCTGG\" } , \
4723 locus \"import gene locusA\" }, \
4730 id local str \"Seq_extend5\", \
4732 fuzz-to lim gt } } , \
4736 key \"misc_feature\" } , \
4742 id local str \"Seq_extend5\" } , \
4749 val \"feat_product\" } } } } } } }, \
4751 id { local str \"Seq_extend5_1\" } , \
4753 title \"import gene locusA gene product\", \
4756 tech concept-trans } } , \
4761 seq-data ncbieaa \"-GGPGKKKGGGAHVFSH\" } , \
4769 name{ \"GR_protein name\" } } , \
4774 id local str \"Seq_extend5_1\" } } } } } } } , \
4784 whole local str \"Seq_extend5_1\", \
4790 id local str \"Seq_extend5\" } } } } } } \
4794 Seq-entry ::= set { \
4798 id { local str \"Seq_extend3\" } , \
4803 seq-data iupacna \"\
4804 TTGACATCCTGCGAATTTGGTAGAGATACCTTAGTGCCTTCGGGAGCGCAGTGACAGGTGCTGCATGGCTGTCGT\
4805 CAGCTCGCGCGGGAGAAAGGGGTTTTTTTTTTTATATTATACCCCACCCCTCTCTCCCGGGGGGAGATTAGCCAC\
4806 AGGGGTTTTTTTTTTTATATTATACCCCCCGGGGGGAGATTAGCC\" } , \
4814 locus \"import extend3 gene locus\" ,\
4815 allele \"dominant\" } ,\
4821 id local str \"Seq_extend3\" } }, \
4825 key \"misc_feature\" }, \
4832 id local str \"Seq_extend3\" }, \
4836 id local str \"Seq_extend3\" } }, \
4843 val \"ext3 misc_feat product\" } } } } } } }, \
4846 local str \"Seq_extend3_1\" }, \
4848 title \"new test protein ext3\", \
4851 tech concept-trans } }, \
4856 seq-data ncbieaa \"AQ*QVLHGCRQLAREKGVFFFILYP\" }, \
4864 name{ \"new test protein ext3\" } }, \
4869 id local str \"Seq_extend3_1\" } } } } } } }, \
4879 product whole local str \"Seq_extend3_1\", \
4885 id local str \"Seq_extend3\" } } } } } } \
@ eExtreme_Positional
numerical value
@ eExtreme_Biological
5' and 3'
bool IsGeneralIdProtPresent(objects::CSeq_entry_Handle tse)
const CSeq_id * GetFirstId() const
const CSeq_id * GetLocalId() const
Find a local ID if present.
void AddCommand(IEditCommand &command)
virtual void Execute()
Do the editing action.
void SetToTime(const CTime &time, EPrecision prec=ePrecision_second)
Base class for reading FASTA sequences.
static string GetLoaderNameFromArgs(CReader *reader=0)
static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, CReader *reader=0, CObjectManager::EIsDefault is_default=CObjectManager::eDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
@Pubdesc.hpp User-defined methods of the data storage class.
static SIZE_TYPE Convert(const CTempString &src, TCoding src_coding, TSeqPos pos, TSeqPos length, string &dst, TCoding dst_coding)
@Seq_descr.hpp User-defined methods of the data storage class.
namespace ncbi::objects::
Seq-loc iterator class – iterates all intervals from a seq-loc in the correct order.
Class responsible for executing the sequence update for one old-update sequence pair.
static CRef< objects::CSeq_feat > s_OffsetFeature(const objects::CSeq_feat &feat, const TSeqPos offset, const objects::CSeq_id *newId=NULL)
Offsets the location of the feature.
static CRef< objects::CSeq_inst > s_ExtendOneEndOfSequence(const objects::CBioseq_Handle &bsh, const string &extension, SUpdateSeqParams::ESequenceUpdateType update_type)
Extends the 5' or 3' end of a NA sequence (no alignment is necessary).
bool IsUpdateSequenceRaw() const
static string s_GetValidExtension(const string &extension)
bool IsOldSequenceOK() const
const string & GetCitSubMessage() const
CRef< CCmdComposite > Update(bool create_general_only)
Main function responsible to update the old sequence with the update sequence.
Stores parameters regarding the type of sequence update, on how to handle existing features and on ho...
@ eFeatUpdateAllExceptDups
@ eFeatUpdateAllReplaceDups
@ eFeatUpdateAllMergeDups
EFeatUpdateType m_FeatImportOption
TProtUpdFlags m_UpdateProteins
objects::CSeqFeatData::ESubtype m_FeatImportType
Defines the imported feature subtype.
bool m_AddCitSub
flag to attach a citation with the current date (false)
EFeatRemoveType m_FeatRemoveOption
bool m_ImportFeatures
Flag to indicate that features from the update sequence will be imported.
bool m_KeepProteinId
flag to update protein IDs, default is to update (false) - relevant only to imported protein IDs
@ eProtUpdate
retranslate coding regions and update the proteins
@ eSeqUpdateReplace
do not change the old sequence
@ eSeqUpdateExtend3
extend the 5' end of old sequence with the update
@ eSeqUpdatePatch
replace old sequence with update sequence
@ eSeqUpdateExtend5
patch old sequence with update in the aligned region
Operators to edit gaps in sequences.
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
const string & GetMsg(void) const
Get message string.
string ReportAll(TDiagPostFlags flags=eDPF_Exception) const
Report all exceptions.
const TPrim & Get(void) const
#define MSerial_AsnText
I/O stream manipulators –.
@ eSerial_AsnText
ASN.1 text.
CRef< CSeq_entry > ReadSet(int max_seqs=kMax_Int, ILineErrorListener *pMessageListener=nullptr)
Read multiple sequences (by default, as many as are available.)
long TFlags
binary OR of EFlags
@ fHyphensIgnoreAndWarn
When a hyphen is encountered in seq data, ignore it but warn.
@ fUniqueIDs
Forbid duplicate IDs.
@ fAddMods
Parse defline mods and add to SeqEntry.
@ fNoSplit
Don't split out ambiguous sequence regions.
void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const
Append a label for this Seq-id to the supplied string.
bool Match(const CSeq_id &sid2) const
Match() - TRUE if SeqIds are equivalent.
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.
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 CObjectIStream * Open(ESerialDataFormat format, CNcbiIstream &inStream, bool deleteInStream)
Create serial object reader and attach it to an input stream.
void AddDataLoader(const string &loader_name, TPriority pri=kPriority_Default)
Add data loader by name.
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.
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
TClass GetClass(void) const
CBioseq_set_Handle GetParentBioseq_set(void) const
Return a handle for the parent Bioseq-set, or null handle.
TSeqPos GetBioseqLength(void) const
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
TInst_Mol GetInst_Mol(void) const
TInst_Strand GetInst_Strand(void) const
TInst_Topology GetInst_Topology(void) const
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
CSeq_entry_Handle GetParentEntry(void) const
Return a handle for the parent seq-entry of the bioseq.
bool IsSetClass(void) const
CConstRef< CSeq_entry > GetCompleteSeq_entry(void) const
Complete and get const reference to the seq-entry.
TInst_Repr GetInst_Repr(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
CConstRef< CSeq_feat > GetOriginalSeq_feat(void) const
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
CSeqVector GetSeqVector(EVectorCoding coding, ENa_strand strand=eNa_strand_plus) const
Get sequence: Iupacna or Iupacaa if use_iupac_coding is true.
const TInst & GetInst(void) const
@ eCoding_Iupac
Set coding to printable coding (Iupacna or Iupacaa)
const CSeq_loc & GetLocation(void) const
void GetSeqData(TSeqPos start, TSeqPos stop, string &buffer) const
Fill the buffer string with the sequence data for the interval [start, stop).
TObjectType & GetObject(void)
Get object.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
CTime CurrentTime(CTime::ETimeZone tz=CTime::eLocal, CTime::ETimeZonePrecision tzp=CTime::eTZPrecisionDefault)
const TDescr & GetDescr(void) const
Get the Descr member data.
const TDate & GetDate(void) const
Get the Date member data.
bool IsSetDescr(void) const
description of changes for public view Check if a value has been assigned to Descr data member.
bool IsSetDate(void) const
replaces imp, will become required Check if a value has been assigned to Date data member.
const TName & GetName(void) const
Get the Name member data.
TProcessed GetProcessed(void) const
Get the Processed member data.
bool IsSetProcessed(void) const
Check if a value has been assigned to Processed data member.
@ eProcessed_signal_peptide
TTRNA & SetTRNA(void)
Select the variant.
const TAnticodon & GetAnticodon(void) const
Get the Anticodon member data.
void SetAnticodon(TAnticodon &value)
Assign a value to Anticodon data member.
const TExt & GetExt(void) const
Get the Ext member data.
const TTRNA & GetTRNA(void) const
Get the variant data.
void SetLocation(TLocation &value)
Assign a value to Location data member.
const TLocation & GetLocation(void) const
Get the Location member data.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
const TProduct & GetProduct(void) const
Get the Product member data.
const TRna & GetRna(void) const
Get the variant data.
const TSeq & GetSeq(void) const
Get the variant data.
TSeq & SetSeq(void)
Select the variant.
@ eClass_nuc_prot
nuc acid and coded proteins
const TId & GetId(void) const
Get the Id member data.
bool IsNcbi4na(void) const
Check if variant Ncbi4na is selected.
bool IsSetExt(void) const
extensions for special types Check if a value has been assigned to Ext data member.
const Tdata & Get(void) const
Get the member data.
TLength GetLength(void) const
Get the Length member data.
list< CRef< CSeq_id > > TId
TMol GetMol(void) const
Get the Mol member data.
void SetInst(TInst &value)
Assign a value to Inst data member.
const TNcbi2na & GetNcbi2na(void) const
Get the variant data.
const TPub & GetPub(void) const
Get the Pub member data.
const TSeq_data & GetSeq_data(void) const
Get the Seq_data member data.
const TDescr & GetDescr(void) const
Get the Descr member data.
@ eRepr_raw
continuous sequence
@ e_Pub
a reference to the publication