BOOST_REQUIRE(old_seh);
145BOOST_REQUIRE(upd_seh);
152 if(b_iter) old_bsh = *b_iter;
154 if(b_it) upd_bsh = *b_it;
156BOOST_REQUIRE(old_bsh);
157BOOST_REQUIRE(upd_bsh);
181BOOST_REQUIRE(old_seh);
182BOOST_REQUIRE(upd_seh);
215BOOST_REQUIRE(
cmd);
220 if(b_iter) new_bsh = *b_iter;
222BOOST_REQUIRE(new_bsh);
242BOOST_REQUIRE(
cmd);
250BOOST_CHECK_EQUAL(type_ok,
true);
253BOOST_CHECK_EQUAL(
count, 2);
273BOOST_REQUIRE(
cmd);
281BOOST_CHECK_EQUAL(type_ok,
true);
284BOOST_CHECK_EQUAL(
count, 2);
303BOOST_REQUIRE(
cmd);
310BOOST_CHECK_EQUAL(
count, 0);
331BOOST_REQUIRE(
cmd);
341BOOST_CHECK_EQUAL(type_ok,
true);
345 boolfeat_ok =
false;
348feat_ok = (start == 0 && stop == 983) || (start == 568 && stop == 718);
351feat_ok = (start == 199 && stop == 599);
354feat_ok = (start == 249 && stop == 562) || (start == 587 && stop == 686);
357feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 25);
362BOOST_CHECK_EQUAL(feat_ok,
true);
365BOOST_CHECK_EQUAL(
count, 7);
371 stringold_fname(
"test_data/Pbseq.asn");
372 stringupd_fname(
"test_data/NC_014053.asn");
388BOOST_REQUIRE(
cmd);
393 if(b_iter) new_bsh = *b_iter;
395BOOST_REQUIRE(new_bsh);
409 const CSeq_id* feat_id = feat->GetLocation().GetId();
410BOOST_REQUIRE(feat_id);
411BOOST_CHECK(feat_id->
Match(*lcl_id));
420BOOST_REQUIRE(anticodon_id);
421BOOST_CHECK(anticodon_id->
Match(*lcl_id));
423 boolfeat_ok(
false);
426feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
429feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
432feat_ok = (start == 199 && stop == 131) && (start_ac == 169 && stop_ac == 167);
435feat_ok = (start == 1448 && stop == 1385) && (start_ac == 1418 && stop_ac == 1416);
438feat_ok = (start == 5911 && stop == 5977) && (start_ac == 5942 && stop_ac == 5944);
441feat_ok = (start == 8112 && stop == 8049) && (start_ac == 8082 && stop_ac == 8080);
444feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
449BOOST_CHECK_EQUAL(feat_ok,
true);
452BOOST_CHECK_EQUAL(
count, 16);
458 stringold_fname(
"test_data/Pbseq_withtRNA.asn");
459 stringupd_fname(
"test_data/NC_014053.asn");
477BOOST_REQUIRE(
cmd);
482 if(b_iter) new_bsh = *b_iter;
484BOOST_REQUIRE(new_bsh);
498 const CSeq_id* feat_id = feat->GetLocation().GetId();
499BOOST_REQUIRE(feat_id);
500BOOST_CHECK(feat_id->
Match(*lcl_id));
509BOOST_REQUIRE(anticodon_id);
510BOOST_CHECK(anticodon_id->
Match(*lcl_id));
512 boolfeat_ok(
false);
515feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
516BOOST_CHECK(feat->IsSetComment());
519feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
520BOOST_CHECK(feat->IsSetComment());
523feat_ok = (start == 6313 && stop == 6250) && (start_ac == 6283 && stop_ac == 6281);
524BOOST_CHECK(feat->IsSetComment());
527feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
528BOOST_CHECK(feat->IsSetComment());
531feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
532BOOST_CHECK(!feat->IsSetComment());
535feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
536BOOST_CHECK(!feat->IsSetComment());
539feat_ok = (start == 5977 && stop == 6042) && (start_ac == 6006 && stop_ac == 6008);
540BOOST_CHECK(!feat->IsSetComment());
543feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
544BOOST_CHECK(!feat->IsSetComment());
550BOOST_CHECK_EQUAL(feat_ok,
true);
553BOOST_CHECK_EQUAL(
count, 20);
561 stringold_fname(
"test_data/Pbseq_withtRNA.asn");
562 stringupd_fname(
"test_data/NC_014053.asn");
580BOOST_REQUIRE(
cmd);
585 if(b_iter) new_bsh = *b_iter;
587BOOST_REQUIRE(new_bsh);
601 const CSeq_id* feat_id = feat->GetLocation().GetId();
602BOOST_REQUIRE(feat_id);
603BOOST_CHECK(feat_id->
Match(*lcl_id));
612BOOST_REQUIRE(anticodon_id);
613BOOST_CHECK(anticodon_id->
Match(*lcl_id));
615 boolfeat_ok(
false);
618feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
619BOOST_CHECK(feat->IsSetComment());
622feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
623BOOST_CHECK(feat->IsSetComment());
626feat_ok = (start == 6313 && stop == 6250) && (start_ac == 6283 && stop_ac == 6281);
627BOOST_CHECK(feat->IsSetComment());
630feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
631BOOST_CHECK(feat->IsSetComment());
634feat_ok = (start == 199 && stop == 131) && (start_ac == 169 && stop_ac == 167);
635BOOST_CHECK(!feat->IsSetComment());
638feat_ok = (start == 8112 && stop == 8049) && (start_ac == 8082 && stop_ac == 8080);
639BOOST_CHECK(!feat->IsSetComment());
642feat_ok = (start == 12670 && stop == 12602) && (start_ac == 12640 && stop_ac == 12638);
643BOOST_CHECK(!feat->IsSetComment());
649BOOST_CHECK_EQUAL(feat_ok,
true);
652BOOST_CHECK_EQUAL(
count, 16);
659 stringold_fname(
"test_data/Pbseq_withtRNA.asn");
660 stringupd_fname(
"test_data/NC_014053.asn");
678BOOST_REQUIRE(
cmd);
683 if(b_iter) new_bsh = *b_iter;
685BOOST_REQUIRE(new_bsh);
699 const CSeq_id* feat_id = feat->GetLocation().GetId();
700BOOST_REQUIRE(feat_id);
701BOOST_CHECK(feat_id->
Match(*lcl_id));
710BOOST_REQUIRE(anticodon_id);
711BOOST_CHECK(anticodon_id->
Match(*lcl_id));
713 boolfeat_ok(
false);
716feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
717BOOST_CHECK(!feat->IsSetComment());
720feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
721BOOST_CHECK(!feat->IsSetComment());
724feat_ok = (start == 199 && stop == 131) && (start_ac == 169 && stop_ac == 167);
725BOOST_CHECK(!feat->IsSetComment());
728feat_ok = (start == 6313 && stop == 6250) && (start_ac == 6283 && stop_ac == 6281);
729BOOST_CHECK(!feat->IsSetComment());
732feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
733BOOST_CHECK(!feat->IsSetComment());
739BOOST_CHECK_EQUAL(feat_ok,
true);
742BOOST_CHECK_EQUAL(
count, 16);
749 stringold_fname(
"test_data/Pbseq_withtRNA.asn");
750 stringupd_fname(
"test_data/NC_014053.asn");
768BOOST_REQUIRE(
cmd);
773 if(b_iter) new_bsh = *b_iter;
775BOOST_REQUIRE(new_bsh);
789 const CSeq_id* feat_id = feat->GetLocation().GetId();
790BOOST_REQUIRE(feat_id);
791BOOST_CHECK(feat_id->
Match(*lcl_id));
800BOOST_REQUIRE(anticodon_id);
801BOOST_CHECK(anticodon_id->
Match(*lcl_id));
803 boolfeat_ok(
false);
806feat_ok = (start == 0 && stop == 68) && (start_ac == 32 && stop_ac == 34);
807BOOST_CHECK(feat->IsSetComment());
810feat_ok = (start == 69 && stop == 133) && (start_ac == 99 && stop_ac == 101);
811BOOST_CHECK(feat->IsSetComment());
814feat_ok = (start == 199 && stop == 131) && (start_ac == 169 && stop_ac == 167);
815BOOST_CHECK(!feat->IsSetComment());
818feat_ok = (start == 6313 && stop == 6250) && (start_ac == 6283 && stop_ac == 6281);
819BOOST_CHECK(feat->IsSetComment());
822feat_ok = (start == 14087 && stop == 14024) && (start_ac == 14058 && stop_ac == 14056);
823BOOST_CHECK(feat->IsSetComment());
824BOOST_CHECK(feat->IsSetPartial());
830BOOST_CHECK_EQUAL(feat_ok,
true);
833BOOST_CHECK_EQUAL(
count, 16);
840 stringold_fname(
"test_data/Pbseq_withGenes.asn");
841 stringupd_fname(
"test_data/NC_014053_genes.asn");
859BOOST_REQUIRE(
cmd);
871 stringold_fname(
"test_data/Pbseq_withGenes.asn");
872 stringupd_fname(
"test_data/NC_014053.asn");
890BOOST_REQUIRE(
cmd);
902 stringold_fname(
"test_data/Pbseq_withGenes.asn");
903 stringupd_fname(
"test_data/NC_014053.asn");
922BOOST_REQUIRE(
cmd);
934 stringold_fname(
"test_data/duplicateCDS.asn");
935 stringupd_fname(
"test_data/NC_024274_cds.asn");
953BOOST_REQUIRE(
cmd);
965 stringold_fname(
"test_data/duplicateCDS.asn");
966 stringupd_fname(
"test_data/NC_024274_cds.asn");
985BOOST_REQUIRE(
cmd);
998 stringold_fname(
"test_data/duplicateCDS.asn");
999 stringupd_fname(
"test_data/NC_024274_cds.asn");
1017BOOST_REQUIRE(
cmd);
1029 stringold_fname(
"test_data/duplicateCDS.asn");
1030 stringupd_fname(
"test_data/NC_024274_cds.asn");
1048BOOST_REQUIRE(
cmd);
1060 stringold_fname(
"test_data/duplicateCDS.asn");
1061 stringupd_fname(
"test_data/NC_024274_cds.asn");
1079BOOST_REQUIRE(
cmd);
1141BOOST_REQUIRE(
cmd);
1150BOOST_CHECK_EQUAL(type_ok,
true);
1154 boolfeat_ok =
false;
1158feat_ok = (start == 568 && stop == 718);
1161feat_ok = (start == 587 && stop == 686);
1164feat_ok = (start == 0 && stop == 25);
1169BOOST_CHECK_EQUAL(feat_ok,
true);
1172BOOST_CHECK_EQUAL(
count, 3);
1178 stringold_fname(
"test_data/shortSeq.asn");
1179 stringupd_fname(
"test_data/update_shortSeq.asn");
1192BOOST_REQUIRE(
cmd);
1203BOOST_CHECK_EQUAL(type_ok,
true);
1207 boolfeat_ok =
false;
1210feat_ok = (start == 0 && stop == 127);
1213feat_ok = (start == 0 && stop == 29);
1216feat_ok = (start == 29 && stop == 127);
1219feat_ok = (start == 0 && stop == 49);
1224BOOST_CHECK_EQUAL(feat_ok,
true);
1227BOOST_CHECK_EQUAL(
count, 4);
1245BOOST_REQUIRE(
cmd);
1250 if(b_iter) new_bsh = *b_iter;
1252BOOST_REQUIRE(new_bsh);
1265BOOST_CHECK_EQUAL(updseq, newseq);
1275BOOST_CHECK_EQUAL(type_ok,
true);
1279 boolfeat_ok =
false;
1283feat_ok = (start == 0 && stop == 131);
1286feat_ok = (start == 0 && stop == 31);
1289feat_ok = (start == 0 && stop == 0);
1292feat_ok = (start == 0 && stop == 69);
1297BOOST_CHECK_EQUAL(feat_ok,
true);
1300BOOST_CHECK_EQUAL(
count, 4);
1306 stringold_fname(
"test_data/OneSeqWithoutFeature.asn");
1307 stringupd_fname(
"test_data/update_OneSeq.asn");
1319BOOST_REQUIRE(
cmd);
1324 if(b_iter) new_bsh = *b_iter;
1326BOOST_REQUIRE(new_bsh);
1328vector<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 stringold_fname(
"test_data/KR002586.asn");
1353 stringupd_fname(
"test_data/KR002586_update.asn");
1366BOOST_REQUIRE(
cmd);
1371 if(b_iter) new_bsh = *b_iter;
1373BOOST_REQUIRE(new_bsh);
1381BOOST_CHECK_EQUAL(type_ok,
true);
1385 boolfeat_ok =
false;
1389feat_ok = (start == 0 && stop == 1079);
1392feat_ok = (start == 0 && stop == 394);
1397BOOST_CHECK_EQUAL(feat_ok,
true);
1400BOOST_CHECK_EQUAL(
count, 2);
1406 stringold_fname(
"test_data/seq_withinSet.asn");
1407 stringupd_fname(
"test_data/update_seqWithinSet1.asn");
1412 for(
CBioseq_CIb_iter(old_seh); b_iter; ++b_iter) {
1413 if(b_iter->GetBioseqLength() == 1430) {
1414oldSeh = b_iter->GetSeq_entry_Handle();
1431BOOST_REQUIRE(
cmd);
1436 if(bseq_it && ++bseq_it) {
1451BOOST_REQUIRE(new_bsh);
1466BOOST_CHECK_EQUAL(type_ok,
true);
1470 boolfeat_ok =
false;
1474feat_ok = ((start == 0 && stop == 1378) && feat->IsSetPartial()) ||
1475((start == 0 && stop == 1386) && !feat->IsSetPartial());
1478BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1479 "Seq-loc ::= mix {\n" 1484 " id local str \"Seq23\"\n" 1490 " id local str \"Seq23\"\n" 1496feat_ok = !feat->IsSetPartial() && ((start == 0 && stop == 94)
1497|| (start == 271 && stop == 1148)
1498|| (start == 647 && stop == 1378));
1501feat_ok = feat->IsSetPartial()
1503&& (start == 745 && stop == 171);
1506feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 94);
1509feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 31);
1512feat_ok = feat->IsSetPartial()
1514&& (start == 1378 && stop == 1358);
1517feat_ok = feat->IsSetPartial()
1519&& (start == 1368 && stop == 1374);
1522BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1523 "Seq-loc ::= mix {\n" 1528 " id local str \"Seq23\"\n" 1534 " id local str \"Seq23\"\n" 1542BOOST_CHECK_EQUAL(feat_ok,
true);
1545BOOST_CHECK_EQUAL(
count, 12);
1551 if((*desc_it)->IsPub()) {
1553 if((*pub_it)->IsSub()) {
1554 const CCit_sub& sub = (*pub_it)->GetSub();
1558BOOST_CHECK_EQUAL(sub.
GetDescr(),
string(
"Sequence update by submitter"));
1568 stringold_fname(
"test_data/seq_withinSet.asn");
1569 stringupd_fname(
"test_data/update_seqWithinSet2.asn");
1574 for(
CBioseq_CIb_iter(old_seh); b_iter; ++b_iter) {
1575 if(b_iter->GetBioseqLength() == 1430) {
1576oldSeh = b_iter->GetSeq_entry_Handle();
1592BOOST_REQUIRE(
cmd);
1597 if(bseq_it && ++bseq_it) {
1612BOOST_REQUIRE(new_bsh);
1629BOOST_CHECK_EQUAL(type_ok,
true);
1633 boolfeat_ok =
false;
1637feat_ok = ((start == 0 && stop == 1562) && feat->IsSetPartial()) ||
1638((start == 133 && stop == 1562) && feat->IsSetPartial());
1641feat_ok = !feat->IsSetPartial() && ((start == 133 && stop == 232)
1642|| (start == 432 && stop == 1332)
1643|| (start == 832 && stop == 1562));
1646feat_ok = !feat->IsSetPartial() && start == 0 && stop == 132;
1649BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1650 "Seq-loc ::= mix {\n" 1655 " id local str \"Seq23\"\n" 1661 " id local str \"Seq23\"\n" 1667feat_ok = feat->IsSetPartial()
1669&& (start == 932 && stop == 332);
1672feat_ok = !feat->IsSetPartial() && (start == 133 && stop == 232);
1675feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 31);
1678feat_ok = feat->IsSetPartial()
1680&& (start == 1562 && stop == 1542);
1683feat_ok = feat->IsSetPartial()
1685&& (start == 1552 && stop == 1558);
1688BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1689 "Seq-loc ::= mix {\n" 1694 " id local str \"Seq23\"\n" 1700 " id local str \"Seq23\"\n" 1708BOOST_CHECK_EQUAL(feat_ok,
true);
1711BOOST_CHECK_EQUAL(
count, 13);
1716 stringold_fname(
"test_data/retranslateCDS_1.asn");
1717 stringupd_fname(
"test_data/replace_retranslateCDS_1.asn");
1733BOOST_REQUIRE(
cmd);
1738 if(b_iter) new_bsh = *b_iter;
1740BOOST_REQUIRE(new_bsh);
1745 if(p_iter) psh = *p_iter;
1753BOOST_CHECK_EQUAL(id_label,
"lcl|12HNVN567_prot_72");
1756BOOST_CHECK(descrs.
Get().size() == 3);
1762 stringprseq(
"CDVKVXXXKFQWDRTMXKCQLSTMHTWNXASGINSIAAKWQSCRRRDNDQIXKSHRQCQN\ 1763 HNSATXXFCRNQLYQTIRXXKNKXDSRTRTSILYNRRNXRKYKESILXXXXNKMXXSFXTGSWKTKRALXXXXYNLSTTL\ 1764 RRRSRNXNTSFXLXRGIFLLQYNTTVXXYCLHKQYKRGRVXWHYHTSMPDKTNYKHVAKSRKSNVCSSHQ\ 1765 WKHXVXIKYYRNTIDKRWWYXXLXXXYLR");
1766BOOST_CHECK_EQUAL(newpr, prseq);
1769BOOST_REQUIRE(prot_feat);
1773BOOST_CHECK(feat_ok);
1780 stringold_fname(
"test_data/retranslateCDS_1.asn");
1781 stringupd_fname(
"test_data/replace_retranslateCDS_1.asn");
1797BOOST_REQUIRE(
cmd);
1802 if(b_iter) new_bsh = *b_iter;
1804BOOST_REQUIRE(new_bsh);
1809 if(p_iter) psh = *p_iter;
1818BOOST_CHECK_EQUAL(id_label,
"lcl|12HNVN567_prot_72");
1820BOOST_CHECK(descrs.
Get().size() == 3);
1826 stringprseq(
"CDVKVXXXKFQWDRTMXKCQLSTMHTWNXASGINSIAAKWQSCRRRDNDQIXKSHRQCQN\ 1827 HNSATXXFCRNQLYQTIRXXKNKXDSRTRTSILYNRRNXRKYKESILXXXXNKMXXSFXTGSWKTKRALXXXXYNLSTTL\ 1828 RRRSRNXNTSFXLXRGIFLLQYNTTVXXYCLHKQYKRGRVXWHYHTSMPDKTNYKHVAKSRKSNVCSSHQ\ 1829 WKHXVXIKYYRNTIDKRWWYXXLXXXYLR");
1830BOOST_CHECK_EQUAL(newpr, prseq);
1833BOOST_REQUIRE(prot_feat);
1837BOOST_CHECK(feat_ok);
1842 stringold_fname(
"test_data/seq_withinSet.asn");
1843 stringupd_fname(
"test_data/update_seqWithinSet1.asn");
1848 for(
CBioseq_CIb_iter(old_seh); b_iter; ++b_iter) {
1849 if(b_iter->GetBioseqLength() == 1430) {
1850oldSeh = b_iter->GetSeq_entry_Handle();
1864BOOST_REQUIRE(
cmd);
1869 if(bseq_it && ++bseq_it) {
1884BOOST_REQUIRE(new_bsh);
1900BOOST_CHECK_EQUAL(type_ok,
true);
1904 boolfeat_ok =
false;
1908feat_ok = ((start == 0 && stop == 1359) && feat->IsSetPartial());
1911feat_ok = !feat->IsSetPartial() && ((start == 0 && stop == 98)
1912|| (start == 275 && stop == 1152)
1913|| (start == 651 && stop == 1359));
1916BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1917 "Seq-loc ::= mix {\n" 1922 " id local str \"Seq23\"\n" 1928 " id local str \"Seq23\"\n" 1934feat_ok = feat->IsSetPartial()
1936&& (start == 749 && stop == 175);
1939feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 98);
1942feat_ok = !feat->IsSetPartial() && (start == 0 && stop == 31);
1945feat_ok = feat->IsSetPartial()
1947&& (start == 1359 && stop == 1359);
1950feat_ok = feat->IsSetPartial()
1952&& (start == 1359 && stop == 1359);
1955BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
1956 "Seq-loc ::= mix {\n" 1961 " id local str \"Seq23\"\n" 1967 " id local str \"Seq23\"\n" 1975BOOST_CHECK_EQUAL(feat_ok,
true);
1978BOOST_CHECK_EQUAL(
count, 11);
1983 stringold_fname(
"test_data/seq_withinSet.asn");
1984 stringupd_fname(
"test_data/update_seqWithinSet_Feats.asn");
1989 for(
CBioseq_CIb_iter(old_seh); b_iter; ++b_iter) {
1990 if(b_iter->GetBioseqLength() == 1430) {
1991oldSeh = b_iter->GetSeq_entry_Handle();
2008BOOST_REQUIRE(
cmd);
2013 if(bseq_it && ++bseq_it) {
2028BOOST_REQUIRE(new_bsh);
2037BOOST_CHECK_EQUAL(type_ok,
true);
2041 boolfeat_ok =
false;
2045feat_ok = (start == 4 && stop == 1359);
2048feat_ok = (!feat->IsSetPartial() && (start == 803 && stop == 303))
2049|| (feat->IsSetPartial() && (start == 1313 && stop == 1359))
2050|| (!feat->IsSetPartial() && (start == 1359 && stop == 1343));
2053BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
2054 "Seq-loc ::= packed-int {\n" 2059 " id local str \"Seq23\"\n" 2065 " id local str \"Seq23\"\n" 2073BOOST_CHECK_EQUAL(feat_ok,
true);
2076BOOST_CHECK_EQUAL(
count, 5);
2096BOOST_REQUIRE(
cmd);
2101 if(b_iter) new_bsh = *b_iter;
2103BOOST_REQUIRE(new_bsh);
2115BOOST_CHECK_EQUAL(type_ok,
true);
2119 boolfeat_ok =
false;
2123feat_ok = (start == 0 && stop == 131);
2126feat_ok = (start == 0 && stop == 31);
2129feat_ok = (start == 0 && stop == 0) || (start == 19 && stop == 99);
2132feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 25);
2137BOOST_CHECK_EQUAL(feat_ok,
true);
2140BOOST_CHECK_EQUAL(
count, 7);
2146 stringold_fname(
"test_data/Old_Bourbon.asn");
2147 stringupd_fname(
"test_data/Update_Bourbon.asn");
2160BOOST_REQUIRE(
cmd);
2165 if(b_iter) new_bsh = *b_iter;
2167BOOST_REQUIRE(new_bsh);
2173BOOST_CHECK(cds_it);
2188BOOST_REQUIRE(prot_ids.size() == 2);
2190vector<string>
check{
2191 "Seq-id ::= genbank {\n" 2192 " accession \"AJP32538\",\n" 2195 "Seq-id ::= gi 761229279\n" 2208vector<string>
check{
2221 if((*pub_it)->IsSub()) {
2222 const CCit_sub& sub = (*pub_it)->GetSub();
2226BOOST_CHECK_EQUAL(sub.
GetDescr(),
string(
"Sequence update by submitter"));
2236 stringold_fname(
"test_data/Old_Bourbon_woSub.asn");
2237 stringupd_fname(
"test_data/Update_Bourbon.asn");
2250BOOST_REQUIRE(
cmd);
2255 if(b_iter) new_bsh = *b_iter;
2257BOOST_REQUIRE(new_bsh);
2261BOOST_CHECK_EQUAL(updater.
GetCitSubMessage(),
string(
"There is no earlier Cit-sub template"));
2267 stringold_fname(
"test_data/replace_woalign.asn");
2268 stringupd_fname(
"test_data/replace_woalign_update.asn");
2274BOOST_REQUIRE(old_seh);
2280BOOST_REQUIRE(
ok);
2286BOOST_CHECK(updates.
size() == 3);
2287BOOST_CHECK(identicals.
empty());
2288BOOST_CHECK(noUpdates.empty());
2294 for(
auto& it : updates) {
2304BOOST_CHECK(b_iter->GetBioseqLength() == 709);
2306BOOST_REQUIRE(feat);
2312BOOST_CHECK(start == 0 && stop == 230);
2315BOOST_CHECK(start == 0 && stop == 708);
2318BOOST_CHECK(start == 0 && stop == 911);
2337BOOST_REQUIRE(
cmd);
2342 if(b_iter) new_bsh = *b_iter;
2344BOOST_REQUIRE(new_bsh);
2352 stringpatchseq(
"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");
2366BOOST_CHECK_EQUAL(patchseq, newseq);
2376BOOST_CHECK_EQUAL(type_ok,
true);
2380 boolfeat_ok =
false;
2384feat_ok = (start == 0 && stop == 964);
2387feat_ok = (start == 199 && stop == 599);
2390feat_ok = (start == 249 && stop == 562);
2393feat_ok = (start == 0 && stop == 69);
2398BOOST_CHECK_EQUAL(feat_ok,
true);
2401BOOST_CHECK_EQUAL(
count, 4);
2420BOOST_REQUIRE(
cmd);
2425 if(b_iter) new_bsh = *b_iter;
2427BOOST_REQUIRE(new_bsh);
2438BOOST_CHECK_EQUAL(type_ok,
true);
2442 boolfeat_ok =
false;
2446feat_ok = (start == 0 && stop == 964) || (start == 568 && stop == 699);
2449feat_ok = (start == 199 && stop == 599);
2452feat_ok = (start == 587 && stop == 667) || (start == 249 && stop == 562);
2455feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 25);
2460BOOST_CHECK_EQUAL(feat_ok,
true);
2463BOOST_CHECK_EQUAL(
count, 7);
2483BOOST_REQUIRE(
cmd);
2488 if(b_iter) new_bsh = *b_iter;
2490BOOST_REQUIRE(new_bsh);
2502BOOST_CHECK_EQUAL(type_ok,
true);
2506 boolfeat_ok =
false;
2511feat_ok = (start == 0 && stop == 131)
2515feat_ok = (start == 0 && stop == 31);
2518feat_ok = (start == 0 && stop == 0) || (start == 19 && stop == 99);
2521feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 25);
2526BOOST_CHECK_EQUAL(feat_ok,
true);
2529BOOST_CHECK_EQUAL(
count, 6);
2551 boolignore_alignment(
true);
2558BOOST_REQUIRE(
cmd);
2563 if(b_iter) new_bsh = *b_iter;
2565BOOST_REQUIRE(new_bsh);
2572BOOST_CHECK_EQUAL(newseq, extendseq + origseq);
2583BOOST_CHECK_EQUAL(type_ok,
true);
2587 boolfeat_ok =
false;
2591feat_ok = (start == 95 && stop == 1078);
2594feat_ok = (start == 294 && stop == 694);
2597feat_ok = (start == 344 && stop == 657);
2600feat_ok = (start == 0 && stop == 69);
2605BOOST_CHECK_EQUAL(feat_ok,
true);
2608BOOST_CHECK_EQUAL(
count, 4);
2619 boolignore_alignment(
true);
2628BOOST_REQUIRE(
cmd);
2633 if(b_iter) new_bsh = *b_iter;
2635BOOST_REQUIRE(new_bsh);
2647BOOST_CHECK_EQUAL(type_ok,
true);
2651 boolfeat_ok =
false;
2655feat_ok = (start == 95 && stop == 1078) || (start == 54 && stop == 2);
2658feat_ok = (start == 294 && stop == 694);
2661feat_ok = (start == 70 && stop == 89);
2664feat_ok = (start == 344 && stop == 657) || (start == 54 && stop == 2);
2667feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 16);
2672BOOST_CHECK_EQUAL(feat_ok,
true);
2675BOOST_CHECK_EQUAL(
count, 8);
2686 boolignore_alignment(
true);
2695BOOST_REQUIRE(
cmd);
2700 if(b_iter) new_bsh = *b_iter;
2702BOOST_REQUIRE(new_bsh);
2714BOOST_CHECK_EQUAL(type_ok,
true);
2718 boolfeat_ok =
false;
2722feat_ok = (start == 92 && stop == 1075) || (start == 2 && stop == 54);
2725feat_ok = (start == 291 && stop == 691);
2728feat_ok = (start == 67 && stop == 86);
2731feat_ok = (start == 341 && stop == 654) || (start == 2 && stop == 54);
2734feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 16);
2739BOOST_CHECK_EQUAL(feat_ok,
true);
2742BOOST_CHECK_EQUAL(
count, 8);
2753 boolignore_alignment(
false);
2761BOOST_REQUIRE(
cmd);
2766 if(b_iter) new_bsh = *b_iter;
2768BOOST_REQUIRE(new_bsh);
2776 stringextend5seq(
"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");
2791BOOST_CHECK_EQUAL(extend5seq, newseq);
2801BOOST_CHECK_EQUAL(type_ok,
true);
2805 boolfeat_ok =
false;
2809feat_ok = (start == 58 && stop == 1041);
2812feat_ok = (start == 257 && stop == 657);
2815feat_ok = (start == 307 && stop == 620);
2818feat_ok = (start == 0 && stop == 69);
2823BOOST_CHECK_EQUAL(feat_ok,
true);
2826BOOST_CHECK_EQUAL(
count, 4);
2837 boolignore_alignment(
false);
2846BOOST_REQUIRE(
cmd);
2851 if(b_iter) new_bsh = *b_iter;
2853BOOST_REQUIRE(new_bsh);
2864BOOST_CHECK_EQUAL(type_ok,
true);
2868 boolfeat_ok =
false;
2872feat_ok = (start == 58 && stop == 1041) || (start == 54 && stop == 2);
2875feat_ok = (start == 257 && stop == 657);
2878feat_ok = (start == 70 && stop == 89);
2881feat_ok = (start == 307 && stop == 620) || (start == 54 && stop == 2);
2884feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 16);
2889BOOST_CHECK_EQUAL(feat_ok,
true);
2892BOOST_CHECK_EQUAL(
count, 8);
2903 boolignore_alignment(
false);
2913BOOST_REQUIRE(
cmd);
2918 if(b_iter) new_bsh = *b_iter;
2920BOOST_REQUIRE(new_bsh);
2933BOOST_CHECK_EQUAL(type_ok,
true);
2937 boolfeat_ok =
false;
2941feat_ok = (start == 58 && stop == 1038) || (start == 2 && stop == 54);
2944feat_ok = (start == 254 && stop == 654);
2947feat_ok = (start == 67 && stop == 86);
2950feat_ok = (start == 304 && stop == 617) || (start == 2 && stop == 54);
2953feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 16);
2958BOOST_CHECK_EQUAL(feat_ok,
true);
2961BOOST_CHECK_EQUAL(
count, 8);
2966 stringold_fname(
"test_data/seq_for_5extend.asn");
2967 stringupd_fname(
"test_data/update_5extend.asn");
2974 boolignore_alignment(
false);
2984BOOST_REQUIRE(
cmd);
2989 if(b_iter) new_bsh = *b_iter;
2991BOOST_REQUIRE(new_bsh);
3003BOOST_CHECK_EQUAL(type_ok,
true);
3007 boolfeat_ok =
false;
3011feat_ok = (start == 39 && stop == 64) || (start == 58 && stop == 1041);
3014feat_ok = (start == 60 && stop == 77)
3015|| (start == 1037 && stop == 60)
3016|| (start == 82 && stop == 107);
3019feat_ok = (start == 70 && stop == 89);
3022feat_ok = (start == 307 && stop == 620) || (start == 54 && stop == 2);
3025feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 17);
3030BOOST_CHECK_EQUAL(feat_ok,
true);
3033BOOST_CHECK_EQUAL(
count, 10);
3055 boolignore_alignment(
true);
3061BOOST_REQUIRE(
cmd);
3066 if(b_iter) new_bsh = *b_iter;
3068BOOST_REQUIRE(new_bsh);
3075BOOST_CHECK_EQUAL(newseq, origseq + extendseq);
3085BOOST_CHECK_EQUAL(type_ok,
true);
3089 boolfeat_ok =
false;
3093feat_ok = (start == 0 && stop == 983);
3096feat_ok = (start == 199 && stop == 599);
3099feat_ok = (start == 249 && stop == 562);
3102feat_ok = (start == 0 && stop == 69);
3107BOOST_CHECK_EQUAL(feat_ok,
true);
3110BOOST_CHECK_EQUAL(
count, 4);
3121 boolignore_alignment(
true);
3131BOOST_REQUIRE(
cmd);
3136 if(b_iter) new_bsh = *b_iter;
3138BOOST_REQUIRE(new_bsh);
3151BOOST_CHECK_EQUAL(type_ok,
true);
3155 boolfeat_ok =
false;
3159feat_ok = (start == 0 && stop == 983) || (start == 989 && stop == 1074);
3162feat_ok = (start == 199 && stop == 599);
3165feat_ok = (start == 1104 && stop == 1124);
3168feat_ok = (start == 249 && stop == 562) || (start == 1029 && stop == 1104);
3171feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 24);
3176BOOST_CHECK_EQUAL(feat_ok,
true);
3179BOOST_CHECK_EQUAL(
count, 8);
3190 boolignore_alignment(
false);
3196BOOST_REQUIRE(
cmd);
3201 if(b_iter) new_bsh = *b_iter;
3203BOOST_REQUIRE(new_bsh);
3211 stringextend3seq(
"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");
3227BOOST_CHECK_EQUAL(extend3seq, newseq);
3237BOOST_CHECK_EQUAL(type_ok,
true);
3241 boolfeat_ok =
false;
3245feat_ok = (start == 0 && stop == 983);
3248feat_ok = (start == 199 && stop == 599);
3251feat_ok = (start == 249 && stop == 562);
3254feat_ok = (start == 0 && stop == 69);
3259BOOST_CHECK_EQUAL(feat_ok,
true);
3262BOOST_CHECK_EQUAL(
count, 4);
3274 boolignore_alignment(
false);
3284BOOST_REQUIRE(
cmd);
3289 if(b_iter) new_bsh = *b_iter;
3291BOOST_REQUIRE(new_bsh);
3302BOOST_CHECK_EQUAL(type_ok,
true);
3306 boolfeat_ok =
false;
3310feat_ok = (start == 0 && stop == 983) || (start == 904 && stop == 989);
3313feat_ok = (start == 199 && stop == 599);
3316feat_ok = (start == 1019 && stop == 1039);
3319feat_ok = (start == 249 && stop == 562) || (start == 944 && stop == 1019);
3322feat_ok = (start == 0 && stop == 69) || (start == 0 && stop == 24);
3327BOOST_CHECK_EQUAL(feat_ok,
true);
3330BOOST_CHECK_EQUAL(
count, 8);
3335 stringold_fname(
"test_data/seq_for_3extend.asn");
3336 stringupd_fname(
"test_data/update_3extend.asn");
3343 boolignore_alignment(
false);
3353BOOST_REQUIRE(
cmd);
3358 if(b_iter) new_bsh = *b_iter;
3360BOOST_REQUIRE(new_bsh);
3372BOOST_CHECK_EQUAL(type_ok,
true);
3376 boolfeat_ok =
false;
3380feat_ok = (start == 0 && stop == 983) || (start == 904 && stop == 944);
3383feat_ok = (start == 979 && stop == 2)
3384|| (start == 2 && stop == 19)
3385|| (start == 849 && stop == 909);
3388feat_ok = (start == 959 && stop == 999);
3391feat_ok = (start == 899 && stop == 953) || (start == 1019 && stop == 1055);
3394feat_ok = (start == 0 && stop == 11) || (start == 0 && stop == 16);
3399BOOST_CHECK_EQUAL(feat_ok,
true);
3402BOOST_CHECK_EQUAL(
count, 10);
3407 stringold_fname(
"test_data/retranslateCDS.asn");
3408 stringupd_fname(
"test_data/patch_retranslateCDS.asn");
3423BOOST_REQUIRE(
cmd);
3428 if(b_iter) new_bsh = *b_iter;
3430BOOST_REQUIRE(new_bsh);
3437BOOST_CHECK_EQUAL(type_ok,
true);
3441 boolfeat_ok =
false;
3446vector<TSeqRange> sublocs;
3447 for(
CSeq_loc_CIloc_iter(feat->GetLocation()); loc_iter; ++loc_iter) {
3448sublocs.push_back(loc_iter.GetRange());
3451vector<TSeqRange> explocs;
3458feat_ok = (sublocs == explocs);
3465 stringprotein(
"MGQVFLLLPVLLVSCFLSQGAAMENQRLFNIAVNRVQHLHLMAQKMFNDFEVTLLPDERRQLNKIFLLDF\ 3466 CNSDSIVSPPHIYIVLDRHVFKEREFKDRXSTSTRLRRVQSXSCSTSLTVXLNPGSTLARPXPSPTASXS\ 3467 ETPTRSLRSSATSKWASTCSSRGARMAYXAWMTMTLSSCPPTGTTTRTWGATETSGGTTSCWPASRRTCT\ 3468 RSRPTXPSPSAGSHWRPTALC");
3469BOOST_CHECK_EQUAL(new_prot, protein);
3473feat_ok = (start == 0 && stop == 230);
3478BOOST_CHECK_EQUAL(feat_ok,
true);
3481BOOST_CHECK_EQUAL(
count, 2);
3487 stringold_fname(
"test_data/OldSeq_CDS_mRNA.asn");
3488 stringupd_fname(
"test_data/UpdSeq_NoAlign.asn");
3503BOOST_REQUIRE(
cmd);
3508 if(b_iter) new_bsh = *b_iter;
3510BOOST_REQUIRE(new_bsh);
3520BOOST_CHECK_EQUAL(type_ok,
true);
3524 boolfeat_ok =
false;
3528feat_ok = (start == 0 && stop == 983);
3531feat_ok = (start == 199 && stop == 599);
3534feat_ok = (start == 249 && stop == 562);
3537feat_ok = (start == 0 && stop == 69);
3542BOOST_CHECK_EQUAL(feat_ok,
true);
3545BOOST_CHECK_EQUAL(
count, 4);
3550 stringold_fname(
"test_data/OldSeq_CDS_mRNA.asn");
3551 stringupd_fname(
"test_data/UpdSeq_NoAlign.asn");
3566BOOST_REQUIRE(
cmd);
3571 if(b_iter) new_bsh = *b_iter;
3573BOOST_REQUIRE(new_bsh);
3583BOOST_CHECK_EQUAL(type_ok,
true);
3587 boolfeat_ok =
false;
3591feat_ok = (start == 1055 && stop == 2038);
3594feat_ok = (start == 1254 && stop == 1654);
3597feat_ok = (start == 1304 && stop == 1617);
3600feat_ok = (start == 0 && stop == 69);
3605BOOST_CHECK_EQUAL(feat_ok,
true);
3608BOOST_CHECK_EQUAL(
count, 4);
3613 stringold_fname(
"test_data/GB_5422.asn");
3614 stringupd_fname(
"test_data/UpdSeq_NoAlign.asn");
3629BOOST_REQUIRE(
cmd);
3634 if(b_iter) new_bsh = *b_iter;
3636BOOST_REQUIRE(new_bsh);
3640BOOST_CHECK(feat_it);
3651 stringold_fname(
"test_data/negstrand2.asn");
3652 stringupd_fname(
"test_data/negstrand2_upd.asn");
3666BOOST_REQUIRE(
cmd);
3674BOOST_CHECK_EQUAL(type_ok,
true);
3678BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3679 "Seq-loc ::= int {\n" 3683 " id local str \"AE10_1\",\n" 3688BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3689 "Seq-loc ::= int {\n" 3693 " id local str \"AE10_1\"\n" 3697BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3698 "Seq-loc ::= int {\n" 3702 " id local str \"AE10_1\",\n" 3714 stringold_fname(
"test_data/negstrand3.asn");
3715 stringupd_fname(
"test_data/negstrand3_upd.asn");
3729BOOST_REQUIRE(
cmd);
3737BOOST_CHECK_EQUAL(type_ok,
true);
3742BOOST_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 stringold_fname(
"test_data/negstrand.asn");
3782 stringupd_fname(
"test_data/negstrand_upd.asn");
3794BOOST_REQUIRE(
cmd);
3799 if(b_iter) new_bsh = *b_iter;
3801BOOST_REQUIRE(new_bsh);
3812BOOST_CHECK_EQUAL(updseq, newseq);
3819BOOST_CHECK_EQUAL(type_ok,
true);
3823BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3824 "Seq-loc ::= int {\n" 3828 " id local str \"AE10_1_1\",\n" 3833 if(
NStr::EqualNocase(feat->GetComment(),
"before the alignment (1..>11)")) {
3834BOOST_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)")) {
3844BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3845 "Seq-loc ::= int {\n" 3849 " id local str \"AE10_1_1\",\n" 3853 else if(
NStr::EqualNocase(feat->GetComment(),
"negative strand (<6..>50)")) {
3854BOOST_CHECK_EQUAL(
MakeAsn(feat->GetLocation()),
3855 "Seq-loc ::= int {\n" 3859 " id local str \"AE10_1_1\",\n" 3860 " fuzz-from lim lt,\n" 3865BOOST_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 stringold_fname(
"test_data/deltaseq.asn");
3884 stringupd_fname(
"test_data/update_rawseq.asn");
3896BOOST_REQUIRE(
cmd);
3901 if(b_iter) new_bsh = *b_iter;
3903BOOST_REQUIRE(new_bsh);
3914BOOST_CHECK_EQUAL(updseq, newseq);
3927 stringold_fname(
"test_data/delta_farpointers.asn");
3935 if(b_iter) old_bsh = *b_iter;
3942BOOST_REQUIRE(upd_bsh);
3956BOOST_REQUIRE(
cmd);
3961 if(bseq_it) new_bsh = *bseq_it;
3963 shortcount_genes = 0;
3964 for(
CFeat_CIfeat_it(new_bsh); feat_it; ++feat_it) {
3968BOOST_CHECK_EQUAL(count_genes, 185);
3974 stringold_fname(
"test_data/protein_seqs1.asn");
3975 stringupd_fname(
"test_data/protein_seqs1_update.fa");
3982BOOST_REQUIRE(old_seh);
3989BOOST_REQUIRE(
ok);
3995BOOST_CHECK(updates.
size() == 4);
3996BOOST_CHECK(identicals.
empty());
3997BOOST_CHECK(noUpdates.size() == 1);
4003 for(
auto& it : updates) {
4014new_svec.
GetSeqData(0, b_iter->GetBioseqLength(), prot_seq);
4015BOOST_CHECK(prot_seq.front() ==
'M');
4021 stringold_fname(
"test_data/mat_peptide.asn");
4022 stringupd_fname(
"test_data/mat_pepshort_upd.fa");
4029BOOST_REQUIRE(old_seh);
4036BOOST_REQUIRE(
ok);
4042BOOST_CHECK(updates.
size() == 1);
4043BOOST_CHECK(identicals.
empty());
4044BOOST_CHECK(noUpdates.empty());
4050 for(
auto& it : updates) {
4059BOOST_CHECK(b_iter);
4063BOOST_CHECK(prot_seq.front() ==
'M');
4067 const CProt_ref& prot_ref = it->GetOriginalFeature().GetData().GetProt();
4070BOOST_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") {
4079BOOST_CHECK_EQUAL(
MakeAsn(it->GetLocation()),
4080 "Seq-loc ::= int {\n" 4083 " id local str \"Seq4_prot_6\"\n" 4087BOOST_CHECK_EQUAL(
MakeAsn(it->GetLocation()),
4088 "Seq-loc ::= int {\n" 4091 " id local str \"Seq4_prot_6\"\n" 4097BOOST_CHECK_EQUAL(
MakeAsn(it->GetLocation()),
4098 "Seq-loc ::= int {\n" 4101 " id local str \"Seq4_prot_6\"\n" 4117BOOST_REQUIRE(b_iter);
4120 stringextend(
"aaallaagggggzzzztttttccccec");
4125BOOST_CHECK(inst_ext5->
GetLength() == 80);
4131BOOST_CHECK_EQUAL(extended5,
string(
"AAAAAGGGGGTTTTTCCCCCAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAA"));
4136BOOST_CHECK_EQUAL(extended3,
string(
"AATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAATTGGCCAAAAAAAGGGGGTTTTTCCCCC"));
4141 stringextend(
"PPPPP");
4145BOOST_CHECK(!inst_ext5);
4146BOOST_CHECK(!inst_ext3);
4158newloc->
SetInt().SetFrom(30);
4159newloc->
SetInt().SetTo(59);
4160newloc->
SetInt().SetId().Assign(*seq_id);
4164BOOST_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 stringold_fname(
"test_data/collideID.asn");
4243 stringupd_fname(
"test_data/collideID_update.asn");
4248BOOST_REQUIRE(old_seh);
4256BOOST_REQUIRE(upd_seh);
4262 stringold_fname(
"test_data/GB_5422.asn");
4267BOOST_REQUIRE(old_seh);
4271 if(b_iter) old_bsh = *b_iter;
4279BOOST_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 stringold_fname(
"test_data/goodalign.asn");
4321 stringupd_fname(
"test_data/update_goodalign.asn");
4331BOOST_CHECK(align->GetAlignLength() == 228);
4336 stringold_fname(
"test_data/GB_8669.asn");
4337 stringupd_fname(
"test_data/update_GB_8669.asn");
4347BOOST_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.
const TSeqIDHVector & GetSeqsWithoutUpdates() const
const TIDToUpdInputMap & GetNonIdenticalUpdates() const
vector< objects::CSeq_id_Handle > TSeqIDHVector
bool PrepareMultipleSequenceInputsForUnitTest()
bool SetOldEntryAndScope(const objects::CSeq_entry_Handle &tse)
const TIDToUpdInputMap & GetIdenticalUpdates() const
bool SetUpdateEntry(CRef< objects::CSeq_entry > update)
Sets up the old and the update sequences, and generates the alignment between them.
bool IsReadyForUpdate(void) const
bool SetOldBioseqAndScope(IWorkbench *workbench, const objects::CSeq_entry_Handle &tse)
bool SetUpdateBioseq(const objects::CBioseq_Handle &bsh)
void CalculateAlignmentForUnitTest(void)
Calculates the alignment between the old and the update sequence, sets m_Align member.
CConstRef< objects::CSeq_align > GetAlignment(void) const
static void s_FixCollidingIDs_Entry(objects::CSeq_entry &entry, const objects::CBioseq::TId &seq_ids)
When the old and the update sequences have the same ID, the ID of the update sequence is modified.
bool HaveIdenticalResidues(void) const
static CRef< objects::CSeq_annot > s_Align2IdenticalSeq(const objects::CBioseq_Handle &subject, const objects::CBioseq_Handle &query)
const objects::CBioseq_Handle & GetUpdateBioseq(void) const
const objects::CBioseq_Handle & GetOldBioseq(void) const
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.
static SQLCHAR output[256]
static const char * str(char *buf, int n)
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
@ eTopology_tandem
some part of tandem repeat
@ eMol_na
just a nucleic acid
@ eStrand_ds
double strand
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
std::istream & in(std::istream &in_, double &x_)
Utility macros and typedefs for exploring NCBI objects from pub.asn.
#define FOR_EACH_PUB_ON_PUBDESC(Itr, Var)
FOR_EACH_PUB_ON_PUBDESC EDIT_EACH_PUB_ON_PUBDESC.
#define FOR_EACH_SEQDESC_ON_BIOSEQ(Itr, Var)
FOR_EACH_SEQDESC_ON_BIOSEQ EDIT_EACH_SEQDESC_ON_BIOSEQ.
#define VISIT_ALL_SEQFEATS_WITHIN_SEQENTRY(Itr, Var)
VISIT_ALL_SEQFEATS_WITHIN_SEQENTRY.
Utility stuff for more convenient using of Boost.Test library.
CRef< CSeq_entry > ReadEntryFromFile(const string &fname)
const char * sc_UpdSequence_Replace
const char * sc_UpdSequence_Patch
CRef< CSeq_entry > ReadEntry(const char *seq)
string MakeAsn(const T &object)
const char * sc_MainSequence
void SetupForUpdate(const CSeq_entry_Handle &old_seh, const CSeq_entry_Handle &upd_seh, CUpdateSeq_Input &sequpd_in, bool identical_res=false)
BOOST_AUTO_TEST_CASE(Test_SameSequence)
const char * sc_UpdSequence_Extend5_AlignWithGap
CRef< CScope > BuildScope(void)
CRef< CSeq_entry > ReadFastaSeqsFromFile(const string &fname)
void ReadFromFile(const string &old_seq, const string &upd_seq, CSeq_entry_Handle &old_seh, CSeq_entry_Handle &upd_seh)
void ReadBioSeqs(const char *old_seq, const char *upd_seq, CSeq_entry_Handle &old_seh, CSeq_entry_Handle &upd_seh)
const char * sc_UpdSequence_Extend3
const char * sc_UpdSequence_Same
const char * sc_UpdSequence_Extend5
CRef< objects::CSeq_feat > MakeMiscFeature(CRef< objects::CSeq_id > id, size_t right_end=10, size_t left_end=0)
CRef< objects::CSeq_entry > BuildGoodSeq(void)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4