clean_i.BasicCleanupSeqEntry(se);
144clean_i.BasicCleanupSeqSubmit(ss);
152clean_i.BasicCleanupSubmitblock(block);
160clean_i.BasicCleanupBioseqSet(bss);
168clean_i.BasicCleanupSeqAnnot(sa);
176clean_i.BasicCleanupSeqFeat(sf);
184clean_i.BasicCleanupBioSource(src);
242clean_i.BasicCleanup(desc);
252 for(
auto& it : desc.
Set()) {
253clean_i.BasicCleanup(*it);
263clean_i.ExtendedCleanupSeqEntry(se);
272clean_i.ExtendedCleanupSeqSubmit(ss);
280clean_i.ExtendedCleanupSeqAnnot(sa);
303vector<string_view>
result;
313 staticconstexpr std::array<string_view, CCleanupChangeCore::eNumberofChangeTypes>
sm_ChangeDesc= {
314 "Invalid Change Code",
317 "Clean Double Quotes",
320 "Clean Qualifiers List",
321 "Clean Dbxrefs List",
322 "Clean CitonFeat List",
323 "Clean Keywords List",
324 "Clean Subsource List",
325 "Clean Orgmod List",
328 "Change Feature Key",
329 "Normalize Authors",
330 "Change Publication",
331 "Change Qualifiers",
343 "Change Code Break",
344 "Change Genetic Code",
350 "Change WholeLocation",
352 "Change MolInfo Descriptor",
358 "Add Protein Feature",
368 "Remove Descriptor",
372 "Convert Feature to Descriptor",
374 "Change Feature Location",
375 "Remove Annotation",
378 "Add BioSource OrgMod",
379 "Add BioSource SubSource",
380 "Change BioSource Genome",
381 "Change BioSource Origin",
382 "Change BioSource Other",
384 "Remove Empty Publication",
387 "Change BioseqInst",
391 "Change Prot Names",
392 "Change Prot Activities",
394 "Change PCR Primers",
396 "Move To Prot Xref",
401 "Create Gene Nomenclature",
402 "Clean Seq-feat xref",
403 "Clean User-Object Or -Field",
404 "Letter Case Change",
405 "Change Bioseq-set Class",
406 "Unique Without Sort",
414 "Add NcbiCleanupObject",
416 "Trim Flanking Quotes",
417 "Clean Bioseq Title",
419 "Remove Dup BioSource",
421 "Trim Internal Semicolons",
423 "Convert Unstructured Org-ref Modifier",
425 "Move GO term to GeneOntology object",
460 return "mat_peptide";
463 return "preprotein";
466 return "sig_peptide";
469 return "transit_peptide";
472 return "propeptide";
493new_feat->
SetQual().push_back(q);
531CSeq_feat::TQual::iterator it = feat.
SetQual().begin();
532 while(it != feat.
SetQual().end()) {
533 if((*it)->IsSetQual() &&
535 if((*it)->IsSetVal() && !
NStr::IsBlank((*it)->GetVal())) {
536feat.
SetData().SetProt().SetName().push_back((*it)->GetVal());
538it = feat.
SetQual().erase(it);
544 if(feat.
SetQual().empty()) {
552 const boolfeat_by_product =
true;
572 if(cdsScores.empty()) {
577 for(
autocdsScore : cdsScores) {
580 returncdsScore.second;
585 returncdsScores.front().second;
611 if(parent_bsh.
IsAa()) {
617 boolmatched_by_product =
false;
625matched_by_product =
true;
628 if(!matched_by_product) {
637 boolrequire_frame =
false;
638 if(!require_frame) {
640 if((*id_it)->IsEmbl() || (*id_it)->IsDdbj()) {
641require_frame =
true;
655new_feat->
Assign(*orig_feat);
657new_feat->
SetData().SetProt().SetProcessed(processed);
666new_feat->
SetData().SetProt().SetName().push_back(
"unnamed");
675 if(matched_by_product) {
699 if((*annot_it)->IsFtable()) {
727 boolany_change =
false;
733 for(
CFeat_CIprot_it(*bi, sel); prot_it; ++prot_it) {
764 if(scores.size() == 1) {
766}
else if(scores.size() == 0) {
771 if(
g->second.GetPointer() != gene.
GetPointer() &&
782 if(!
f.IsSetXref()) {
785 boolany_removed =
false;
786CSeq_feat::TXref::iterator xit =
f.SetXref().begin();
787 while(xit !=
f.SetXref().end()) {
788 if((*xit)->IsSetData() && (*xit)->GetData().IsGene() &&
790xit =
f.SetXref().erase(xit);
797 if(
f.IsSetXref() &&
f.GetXref().empty()) {
807 boolany_change =
false;
811 if(fi->IsSetXref()) {
813new_feat->
Assign(*(fi->GetOriginalSeq_feat()));
831 if(!
f.IsSetXref()) {
834 boolany_removed =
false;
835CSeq_feat::TXref::iterator xit =
f.SetXref().begin();
836 while(xit !=
f.SetXref().end()) {
837 if((*xit)->IsSetData() && (*xit)->GetData().IsGene() &&
838!(*xit)->GetData().GetGene().IsSuppressed()) {
839xit =
f.SetXref().erase(xit);
846 if(
f.IsSetXref() &&
f.GetXref().empty()) {
867 boolhas_xref =
false;
870 if((*xit)->IsSetId() && (*xit)->GetId().IsLocal()) {
871 if((*xit)->GetId().Equals(src.
GetId())) {
910 if(!
f.IsSetId() || !
f.IsSetXref()) {
915 if((*xit)->IsSetId() && (*xit)->GetId().IsLocal()) {
918 if(far_feats.size() == 1) {
952 if( !
f.Equals(*feat_ci->GetSeq_feat()) && feat_ci->GetSeq_feat()->IsSetData() && feat_ci->GetSeq_feat()->GetData().IsGene()
953&& feat_ci->GetSeq_feat()->GetData().GetGene().IsSetLocus())
955locus2 = feat_ci->GetSeq_feat()->GetData().GetGene().GetLocus();
957 if(!locus1.empty() && !locus2.empty() && locus1 == locus2)
968 if(!
f.IsSetXref()) {
971 boolany_removed =
false;
972CSeq_feat::TXref::iterator xit =
f.SetXref().begin();
973 while(xit !=
f.SetXref().end()) {
974 if((*xit)->IsSetData() && (*xit)->GetData().IsGene() &&
975!(*xit)->GetData().GetGene().IsSuppressed() && !
FindMatchingLocusGene(
f, (*xit)->GetData().GetGene(), bsh)) {
976xit =
f.SetXref().erase(xit);
983 if(
f.IsSetXref() &&
f.GetXref().empty()) {
1000 if( !
f.Equals(*feat_ci->GetSeq_feat()) && feat_ci->GetSeq_feat()->IsSetData() && feat_ci->GetSeq_feat()->GetData().IsGene()
1001&& feat_ci->GetSeq_feat()->GetData().GetGene().IsSetLocus_tag())
1003locus_tag2 = feat_ci->GetSeq_feat()->GetData().GetGene().GetLocus_tag();
1005 if(!locus_tag1.empty() && !locus_tag2.empty() && locus_tag1 == locus_tag2)
1016 if(!
f.IsSetXref()) {
1019 boolany_removed =
false;
1020CSeq_feat::TXref::iterator xit =
f.SetXref().begin();
1021 while(xit !=
f.SetXref().end()) {
1022 if((*xit)->IsSetData() && (*xit)->GetData().IsGene() &&
1024xit =
f.SetXref().erase(xit);
1025any_removed =
true;
1031 if(
f.IsSetXref() &&
f.GetXref().empty()) {
1048 boolchanged =
false;
1050 if(pos < loc_start) {
1052 id->Assign(*(loc.
GetId()));
1057}
else if(pos > loc_stop) {
1059 id->Assign(*(loc.
GetId()));
1079 if(new_loc->
IsMix()) {
1080last_interval = new_loc->
SetMix().SetLastLoc();
1088last_interval = new_loc;
1110last_interval->
SetInt().SetFrom(new_start);
1111last_interval->
SetInt().SetTo(new_stop);
1112last_interval->
SetInt().SetId().Assign(*
id);
1121 const CSeq_loc& loc =
f.GetLocation();
1126 if(
f.IsSetData() &&
f.GetData().IsCdregion())
1128 if(
f.GetData().GetCdregion().IsSetCode())
1129 code= &(
f.GetData().GetCdregion().GetCode());
1130 if(
f.GetData().GetCdregion().IsSetFrame())
1131frame =
f.GetData().GetCdregion().GetFrame();
1141 size_t len= orig_len;
1151vector_loc->
SetInt().SetId().Assign(*(bsh.
GetId().front().GetSeqId()));
1154vector_loc->
SetInt().SetFrom(0);
1155vector_loc->
SetInt().SetTo(stop +
mod- 1);
1158vector_loc->
SetInt().SetFrom(stop -
mod+ 1);
1164 size_tusable_size = seq.
size();
1166 if(limit > 0 && usable_size > limit) {
1167usable_size = limit;
1181 size_tlength = usable_size / 3;
1183 for(
i= 0;
i< length; ++
i) {
1185 for(k = 0; k < 3; ++k, ++start) {
1202 boolchanged =
false;
1209 if(frame != new_frame) {
1210cds.
SetData().SetCdregion().SetFrame(new_frame);
1236 switch( (seq_len % 3) + 1 ) {
1251 if(frame != desired_frame) {
1252frame = desired_frame;
1299 if(!
f.GetData().IsCdregion()) {
1318 if(check_for_stop) {
1355prot_ref.
SetName().front() +=
"; ";
1357prot_ref.
SetName().front() += protein_name;
1359prot_ref.
SetName().push_back(protein_name);
1366 boolused_qual =
false;
1368 for(
autoit = mrna.
SetQual().begin(); it != mrna.
SetQual().end(); it++) {
1370(*it)->SetVal(protein_name);
1378mrna.
SetData().SetRna().SetRnaProductName(protein_name, remainder);
1388 for(
autoit = cds.
GetXref().begin(); it != cds.
GetXref().end(); it++) {
1389 if((*it)->IsSetData() && (*it)->GetData().IsProt()) {
1395 for(
autoit = cds.
GetQual().begin(); it != cds.
GetQual().end(); it++) {
1410 for(
autoit = feat.
SetXref().begin(); it != feat.
SetXref().end(); it++) {
1411 if((*it)->IsSetData() && (*it)->GetData().IsProt()) {
1418 for(
autoit = feat.
SetQual().begin(); it != feat.
SetQual().end(); it++) {
1421(*it)->SetVal((*it)->GetVal() +
"; "+ protein_name);
1423(*it)->SetVal(protein_name);
1434 booladded =
false;
1457 if((*it)->IsSetData() && (*it)->GetData().IsProt()) {
1466xref->SetData().SetProt().SetName().push_back(protein_name);
1467cds.
SetXref().push_back(xref);
1475 if(
prot.IsSetName() && !
prot.GetName().empty()) {
1476 return prot.GetName().front();
1486 if((*it)->IsSetData() && (*it)->GetData().IsProt()) {
1492 for(
autoit = cds.
GetQual().begin(); it != cds.
GetQual().end(); it++) {
1493 if((*it)->IsSetQual() && (*it)->IsSetVal() &&
NStr::EqualNocase((*it)->GetQual(),
"product")) {
1494 return(*it)->GetVal();
1521 boolany_change =
false;
1539}
catch(
construntime_error&) {
1562 switch(loc.
Which()) {
1580 boolthis_is_last = is_last && (*it == mix.
Set().back());
1581 if((*it)->IsMix() || (*it)->IsPacked_int()) {
1589 if(!this_is_last &&
1606 boolthis_is_last = is_last && (*it == pint.
Set().back());
1627new_feat->
Assign(*(
f->GetSeq_feat()));
1641 if(!
f.IsSetLocation()) {
1644 boolpartial =
false;
1646 while(li && !partial) {
1653 boolchanged =
false;
1654 if(
f.IsSetPartial() &&
f.GetPartial()) {
1661 f.SetPartial(
true);
1671 boolchanged =
false;
1675 string& ec_num = *ec_num_iter;
1676 size_ttlen = ec_num.length();
1678 if(tlen != ec_num.length()) {
1697 boolchanged =
false;
1698CProt_ref::TEc::iterator ec_num_iter = ec_num_list.begin();
1699 while(ec_num_iter != ec_num_list.end()) {
1700 string& ec_num = *ec_num_iter;
1701 size_ttlen = ec_num.length();
1703 if(tlen != ec_num.length()) {
1708ec_num_iter = ec_num_list.erase(ec_num_iter);
1721 boolany_change =
false;
1724 if(
f->GetData().GetProt().IsSetEc()) {
1725 boolthis_change =
false;
1727new_feat->
Assign(*(
f->GetSeq_feat()));
1731new_feat->
SetData().SetProt().ResetEc();
1732this_change =
true;
1764 boolcheck_outer_gene =
true;
1769check_outer_gene =
false;
1772 if(check_outer_gene) {
1779 if(
len> longest) {
1788 boolchanged =
false;
1849 boolneeds_molinfo =
true;
1853 if((*it)->IsMolinfo()) {
1854needs_molinfo =
false;
1856(!(*it)->GetMolinfo().IsSetBiomol() ||
1863 if(needs_molinfo) {
1870seq.
SetDescr().Set().push_back(m);
1875seq.
SetDescr().Set().push_back(m);
1877needs_molinfo =
false;
1881 returnneeds_molinfo;
1893 switch(it->Which()) {
1907 stringnew_defline = sequence::CDeflineGenerator().GenerateDefline(bsh, sequence::CDeflineGenerator::fIgnoreExisting);
1911 boolmodified = title_desc.
Set().
SetTitle() != new_defline;
1913title_desc.
Set().
SetTitle().swap(new_defline);
1921 return(desc.
IsUser() &&
1928 if(!descr.
IsSet() || descr.
Get().empty()) {
1932 auto& elements = descr.
Set();
1933 autoit = elements.begin();
1936 while(it != elements.end()) {
1938it = elements.erase(it);
1955 if(rval && seq_entry.
GetDescr().
Get().empty()) {
1956 if(seq_entry.
IsSeq()) {
1959 else if(seq_entry.
IsSet()) {
1977 if(descr.
IsSet()) {
1978 for(
autopDesc : descr.
Set()) {
1980pDesc->SetUser().UpdateNcbiCleanup(ncbi_cleanup_version);
1988 auto& user = pCleanupObject->SetUser();
1989user.UpdateNcbiCleanup(ncbi_cleanup_version);
1990descr.
Set().push_back(pCleanupObject);
2000 if((*it)->IsSource() && (*it)->GetSource().IsSetOrg()) {
2001src_descs.push_back(*it);
2019 boolany_changes =
false;
2021vector<CRef<COrg_ref> > rq_list;
2022vector<const CSeqdesc* > src_descs;
2023vector<CConstRef<CSeq_feat> > src_feats;
2026vector<const CSeqdesc* >::iterator desc_it = src_descs.begin();
2027 while(desc_it != src_descs.end()) {
2030org->
Assign((*desc_it)->GetSource().GetOrg());
2031rq_list.push_back(org);
2042rq_list.push_back(org);
2049 if(rq_list.size() > 0) {
2053CTaxon3_reply::TReply::const_iterator reply_it = reply->GetReply().begin();
2056desc_it = src_descs.begin();
2058 while(reply_it != reply->GetReply().end()
2059&& desc_it != src_descs.end()) {
2060 if((*reply_it)->IsData() &&
2061!(*desc_it)->GetSource().GetOrg().Equals((*reply_it)->GetData().GetOrg())) {
2062any_changes =
true;
2064desc->
SetSource().
SetOrg().Assign((*reply_it)->GetData().GetOrg());
2072vector<CConstRef<CSeq_feat> >::iterator feat_it = src_feats.begin();
2073 while(reply_it != reply->GetReply().end()
2074&& feat_it != src_feats.end()) {
2075 if((*reply_it)->IsData() &&
2076!(*feat_it)->GetData().GetBiosrc().GetOrg().Equals((*reply_it)->GetData().GetOrg())) {
2077any_changes =
true;
2079new_feat->
Assign(**feat_it);
2080new_feat->
SetData().SetBiosrc().SetOrg().Assign((*reply_it)->GetData().GetOrg());
2108 if(new_product.
Empty()) {
2115new_product->
SetDescr().Set().push_back(molinfo);
2120new_product->
SetId().push_back(prot_id);
2123prot_entry->
SetSeq(*new_product);
2126 if(!eh.
IsSet()) {
2132 if(!eh.
IsSet()) {
2137 if(
set&&
set->IsSetSeq_set()) {
2139 if(
nuc->IsSetDescr()) {
2141 autoit =
nuc->GetDescr().Get().begin();
2142 while(it !=
nuc->GetDescr().Get().end()) {
2143 if(!(*it)->IsMolinfo() && !(*it)->IsTitle() && !(*it)->IsCreate_date()) {
2145 copy->Assign(**it);
2147neh.RemoveSeqdesc(**it);
2148 if(
nuc->IsSetDescr()) {
2149it =
nuc->GetDescr().Get().begin();
2172 if(!bsh.
IsNa()) {
2182 if(!bsrc.IsSetOrg() || !bsrc.IsSetOrgname()) {
2186 if(!orgname.IsSetGcode() && !orgname.IsSetMgcode() && !orgname.IsSetPgcode()) {
2191 boolany_changed =
false;
2195 for(; feat_ci; ++feat_ci) {
2198 intcdregionGenCode = (cds.
IsSetCode() ?
2201 if(cdregionGenCode != bioseqGenCode)
2208new_feat->
Assign(feat);
2211new_cds.
SetCode().SetId(bioseqGenCode);
2213edit_handle.
Replace(*new_feat);
2214any_changed =
true;
2226 const string& sTitle,
2227 const string& sOrganism,
2230OrganellePos =
NPOS;
2234 const stringsPattern =
" ["+ sOrganism +
"]";
2236answer = sTitle.length() - sPattern.length();
2243 if(answer < 1 || answer ==
NPOS) {
2249 if(answer !=
NPOS) {
2263 if(possible_organelle_start_pos !=
NPOS&&
2265OrganellePos = possible_organelle_start_pos;
2277 const string& sTitle,
2282organelle_pos =
NPOS;
2298 boolis_cross_kingdom =
false;
2310 if(first_kingdom.empty()) {
2311first_kingdom = te.
GetName();
2313is_cross_kingdom =
true;
2314second_kingdom = te.
GetName();
2320 returnis_cross_kingdom;
2326 stringfirst_kingdom, second_kingdom;
2332 const string& sTitle,
2337organelle_pos =
NPOS;
2342 if((*it)->IsSetSubtype() && (*it)->IsSetSubname() &&
2346 if(suffixPos !=
NPOS) {
2356 if(suffixPos !=
NPOS) {
2365 if(suffixPos !=
NPOS) {
2373 if(sep != string::npos) {
2382 if(
names.empty()) {
2386 autosuffix_len = suffix.length();
2387 boolchange_made{
false};
2388 for(
auto& name :
names) {
2390name.erase(
len- suffix_len);
2392change_made =
true;
2404 if(
NStr::IsBlank(taxname) || taxname.starts_with(
"NAD"sv)) {
2408 const stringtaxname_in_brackets{
'['+ taxname +
']'};
2410 boolchange_made{
false};
2414 for(; annot_it; ++annot_it) {
2421 for(; feat_it; ++feat_it) {
2425change_made =
true;
2428pEditedFeat->SetData().SetProt().SetName() = move(temp_names);
2441 for(
autoid_handle : bsh.
GetId()) {
2442 autopId = id_handle.GetSeqId();
2460 caseeCompleteness_partial:
2461 caseeCompleteness_no_left:
2462 caseeCompleteness_no_right:
2463 caseeCompleteness_no_ends:
2477 if((! seq_descr.
IsSet()) || (pMolinfoDesc && pSrcDesc)) {
2481 for(
autopDesc : seq_descr.
Get()) {
2485 if((! pMolinfoDesc) && pDesc->IsMolinfo()) {
2486pMolinfoDesc = pDesc;
2490}
else if((! pSrcDesc) && pDesc->IsSource()) {
2509 if((! pMolinfoDesc) || (! pSrcDesc)) {
2511 if(pParentSet && pParentSet.IsSetDescr()) {
2518 returnmake_pair(pMolinfoDesc, pSrcDesc);
2526 if(partialPos ==
NPOS) {
2527partialPos =
NStr::Find(sTitle,
", partial (");
2534 if(suffixPos ==
NPOS) {
2539sTitle.resize(suffixPos);
2540 if(penult !=
NPOS) {
2541sTitle.resize(penult);
2547partialPos != string::npos &&
2548(partialPos == (sTitle.length() - 9)))
2550sTitle.resize(partialPos);
2555 if(bPartial && partialPos ==
NPOS) {
2556sTitle +=
", partial";
2563 if(genome >= eGenome_chloroplast &&
2564genome <= eGenome_chromatophore &&
2565genome != eGenome_extrachrom &&
2566genome != eGenome_transposon &&
2567genome != eGenome_insertion_seq &&
2568genome != eGenome_proviral &&
2569genome != eGenome_virion &&
2570genome != eGenome_chromosome) {
2573sTitle +=
" ("+
string(organelle) +
")";
2577 const auto& org = src.
GetOrg();
2578 stringfirst_kingdom, second_kingdom;
2580sTitle +=
" ["+ first_kingdom +
"]["+ second_kingdom +
"]";
2583 if(org.IsSetTaxname()) {
2594 const auto& desc_list = descr.
Get();
2595 for(
autoit = desc_list.rbegin(); it != desc_list.rend(); ++it) {
2596 if((*it)->IsTitle()) {
2623molinfo_desc = molinfo_and_src.first;
2624src_desc = molinfo_and_src.second;
2629 const auto& org =
source.GetOrg();
2632 if(org.IsSetTaxname()) {
2646 stringtitle = title_desc->
GetTitle();
2651 if(title != title_desc->
GetTitle()) {
2653pNewTitleDesc->SetTitle() = move(title);
2674 if(
prot->GetData().GetProt().IsSetName() &&
2675!
prot->GetData().GetProt().GetName().empty()) {
2676 label=
prot->GetData().GetProt().GetName().front();
2677}
else if(
prot->GetData().GetProt().IsSetDesc()) {
2678 label=
prot->GetData().GetProt().GetDesc();
2701 boolany_change =
false;
2705 if((*xit)->IsSetId() && (*xit)->GetId().IsLocal()) {
2711 if(f_start < gene_start) {
2713gene_start = f_start;
2716 if(f_stop > gene_stop) {
2732{
"16S", { 1000,
false} },
2733{
"18S", { 1000,
false} },
2734{
"23S", { 2000,
false} },
2735{
"25S", { 1000,
false} },
2736{
"26S", { 1000,
false} },
2737{
"28S", { 3300,
false} },
2738{
"small", { 1000,
false} },
2739{
"large", { 1000,
false} },
2740{
"5.8S", { 130,
true} },
2741{
"5S", { 90,
true} }
2752 boolis_bad =
false;
2754 const CRNA_ref& rrna =
f.GetData().GetRna();
2756 if(rrna_name.empty()) {
2758 if(
f.IsSetQual()) {
2759 for(
autoqit :
f.GetQual()) {
2762rrna_name = gbq.
GetVal();
2770 if(pos != string::npos && len < it->second.first && !(it->second.second &&
f.IsSetPartial() &&
f.GetPartial()) ) {
2780 boolany_changes =
false;
2782 intprotein_id_counter = 1;
2786 for(
CFeat_CIcds_it(entry, sel); cds_it; ++cds_it) {
2787 boolchange_this_cds =
false;
2789new_cds->
Assign(*(cds_it->GetSeq_feat()));
2807new_cds->
SetProduct().SetWhole().Assign(*new_id);
2808change_this_cds =
true;
2811 if(new_cds->
IsSetProduct() && instantiate_missing_proteins) {
2814any_changes =
true;
2827new_inst->
SetSeq_data().SetNcbieaa().Set(current);
2829any_changes =
true;
2835current_name =
"hypothetical protein";
2836change_this_cds =
true;
2850 boolchange_mrna =
false;
2852new_mrna->
Assign(*mrna);
2856 for(
autoit = new_mrna->
GetQual().begin(); it != new_mrna->
GetQual().end(); it++) {
2857 if((*it)->IsSetQual() && (*it)->IsSetVal() &&
NStr::EqualNocase((*it)->GetQual(),
"product")) {
2858mrna_name = (*it)->GetVal();
2864|| (!
NStr::Equal(current_name,
"hypothetical protein") &&
2867change_mrna =
true;
2875any_changes =
true;
2881 if(change_this_cds) {
2885any_changes =
true;
2895 const CSeq_feat& rna_feat = *(rna_it->GetSeq_feat());
2900 boolchange_this_rrna =
false;
2902new_rrna->
Assign(*(rna_it->GetSeq_feat()));
2909change_this_rrna =
true;
2913change_this_rrna =
true;
2918change_this_rrna =
true;
2922change_this_rrna =
true;
2926 if(change_this_rrna) {
2929any_changes =
true;
2935 boolchange_this_gene =
false;
2937new_gene->
Assign(*(gene_it->GetSeq_feat()));
2943 if(change_this_gene) {
2946any_changes =
true;
2956 if(run_extended_cleanup) {
2958 if(pChanged->ChangeCount()>0) {
2969 while(li && li.
IsEmpty()) {
2986 while(li && li.
IsEmpty()) {
2999 if(this_strand == prev_strand) {
3000 if(
abs((
long int)this_start - (
long int)prev_end) < min_len) {
3015 boolany_change =
false;
3033 boolany_changes =
false;
3036 for(
CFeat_CIcds_it(entry, sel); cds_it; ++cds_it) {
3037 boolchange_this_cds =
false;
3039new_cds->
Assign(*(cds_it->GetSeq_feat()));
3045 if(change_this_cds) {
3049any_changes =
true;
3104 const intunknown_seqdesc =
static_cast<int>(1 + sc_SeqdescOrderMap.size());
3107 if(find_iter == sc_SeqdescOrderMap.end()) {
3108 returnunknown_seqdesc;
3111 returnfind_iter->second;
3119chs1 = desc1->
Which();
3120chs2 = desc2->
Which();
3142 if(
edit.IsSetDescr()) {
3154 boolremoved =
false;
3158 if((*d)->IsTitle()) {
3163last_title.
Reset(d->GetPointer());
3173 boolremoved =
false;
3174 if(
set.IsSetDescr()) {
3177 if((*d)->IsTitle()) {
3179 set.RemoveSeqdesc(*last_title);
3182last_title.
Reset(d->GetPointer());
3204 string& auth_str = *out_authors;
3211vector<string> name_list;
3215 if((*auth_it)->IsSetName()) {
3217(*auth_it)->GetName().GetLabel(&
label);
3218name_list.push_back(
label);
3223back_inserter(name_list));
3226back_inserter(name_list));
3229 if(name_list.size() == 0) {
3231}
else if(name_list.size() == 1) {
3232auth_str = name_list.back();
3238last_author.swap(name_list.back());
3239name_list.pop_back();
3241 NStr::Join(name_list,
", ").swap(auth_str);
3242auth_str +=
"and ";
3243auth_str += last_author;
3250 string*out_authors_string,
const CPubdesc& pd)
3252 string& authors_string = *out_authors_string;
3253authors_string.clear();
3256 if((*pub)->IsSetAuthors()) {
3266vector<TEntrezId>& pmids, vector<TEntrezId>& muids, vector<int>& serials,
3267vector<string>& published_labels,
3268vector<string>& unpublished_labels)
3271 boolis_published =
false;
3272 boolneed_label =
false;
3278 if((*it)->IsPmid()) {
3279pmids.push_back((*it)->GetPmid());
3280is_published =
true;
3281}
else if((*it)->IsMuid()) {
3282muids.push_back((*it)->GetMuid());
3283is_published =
true;
3284}
else if((*it)->IsGen()) {
3285 if((*it)->GetGen().IsSetCit()
3289 if((*it)->GetGen().IsSetSerial_number()) {
3290serials.push_back((*it)->GetGen().GetSerial_number());
3291 if((*it)->GetGen().IsSetCit()
3292|| (*it)->GetGen().IsSetJournal()
3293|| (*it)->GetGen().IsSetDate()) {
3299}
else if((*it)->IsArticle() && (*it)->GetArticle().IsSetIds()) {
3300is_published =
true;
3302 if((*id)->IsPubmed()) {
3303pmids.push_back((*id)->GetPubmed());
3304is_published =
true;
3305}
else if((*id)->IsMedline()) {
3306muids.push_back((*id)->GetMedline());
3324published_labels.push_back(
label);
3326unpublished_labels.push_back(
label);
3334vector<CConstRef<CPub> > pub_list;
3339vector<TEntrezId> pmids;
3340vector<TEntrezId> muids;
3341vector<int> serials;
3342vector<string> published_labels;
3343vector<string> unpublished_labels;
3345 if(pmids.size() > 0) {
3348pub_list.push_back(pub);
3349}
else if(muids.size() > 0) {
3352pub_list.push_back(pub);
3353}
else if(serials.size() > 0) {
3356pub_list.push_back(pub);
3357}
else if(published_labels.size() > 0) {
3360pub_list.push_back(pub);
3361}
else if(unpublished_labels.size() > 0) {
3364pub_list.push_back(pub);
3372vector<TEntrezId> pmids;
3373vector<TEntrezId> muids;
3374vector<int> serials;
3375vector<string> published_labels;
3376vector<string> unpublished_labels;
3378 if(pmids.size() > 0) {
3381pub_list.push_back(pub);
3382}
else if(muids.size() > 0) {
3385pub_list.push_back(pub);
3386}
else if(serials.size() > 0) {
3389pub_list.push_back(pub);
3390}
else if(published_labels.size() > 0) {
3393pub_list.push_back(pub);
3394}
else if(unpublished_labels.size() > 0) {
3397pub_list.push_back(pub);
3408 boolany_change =
false;
3409CSeq_descr::Tdata::iterator it1 = descr.
Set().begin();
3410 while(it1 != descr.
Set().end()) {
3411 if((*it1)->IsPub()) {
3412CSeq_descr::Tdata::iterator it2 = it1;
3414 while(it2 != descr.
Set().end()) {
3415 if((*it2)->IsPub() && (*it1)->GetPub().Equals((*it2)->GetPub())) {
3416it2 = descr.
Set().erase(it2);
3435 if(pd1.
GetPub().
Get().front()->Equals(**it)) {
3457 boolis_embl_or_ddbj =
false;
3459 if((*id)->IsEmbl() || (*id)->IsDdbj()) {
3460is_embl_or_ddbj =
true;
3464 return!is_embl_or_ddbj;
3488}
else if(parent && parent.
IsSetClass() &&
3515 boolany_change =
false;
3518 if(p->GetLocation().IsInt() &&
3523 if(p->IsSetComment()) {
3556 boolfound_non_minimal =
false;
3558 if((*it)->IsMuid() || (*it)->IsPmid()) {
3559 if(is_refseq_prot) {
3560found_non_minimal =
true;
3563}
else if((*it)->IsGen()) {
3565 if(
gen.IsSetCit() && !
gen.IsSetJournal() &&
3566!
gen.IsSetAuthors() && !
gen.IsSetVolume() &&
3567!
gen.IsSetPages()) {
3570found_non_minimal =
true;
3573found_non_minimal =
true;
3578 return!found_non_minimal;
3584 boolfound_site_ref =
false;
3586 while(
f&& !found_site_ref) {
3588found_site_ref =
true;
3592 if(!found_site_ref) {
3596 boolany_change =
false;
3598 boolis_refseq_prot =
false;
3601 if((*id_it)->IsOther()) {
3602is_refseq_prot =
true;
3613 boolis_site_ref =
IsSiteRef(*(p->GetSeq_feat()));
3616 if((*c)->IsEquiv()) {
3685 if(chs1 < chs2)
return true;
3686 if(chs1 > chs2)
return false;
3715 const string& n1 = s1.
GetName();
3716 const string& n2 = s2.
GetName();
3737CBioSource::TSubtype::iterator s = biosrc.
SetSubtype().begin();
3738CBioSource::TSubtype::iterator s_next = s;
3740 while(s_next != biosrc.
SetSubtype().end()) {
3756 boolany_change =
false;
3797 boolany_change =
false;
3804on1.
SetMod().push_back(
a);
3853 boolany_change =
false;
3857 if(!
HasMod(org1, *it)) {
3858org1.
SetMod().push_back(*it);
3869org1.
SetDb().push_back(
a);
3877org1.
SetSyn().push_back(*it);
3892 boolany_change =
false;
3893CSeq_descr::Tdata::iterator src1 = seq_descr.
Set().begin();
3894 while(src1 != seq_descr.
Set().end()) {
3895 if((*src1)->IsSource() && (*src1)->GetSource().IsSetOrg() && (*src1)->GetSource().GetOrg().IsSetTaxname()) {
3896CSeq_descr::Tdata::iterator src2 = src1;
3898 while(src2 != seq_descr.
Set().end()) {
3899 if((*src2)->IsSource() &&
3906src2 = seq_descr.
Set().erase(src2);
3921 boolany_change =
false;
3922vector<CConstRef<CBioSource> > src_list;
3923CSeq_descr::Tdata::iterator d = descr.
Set().begin();
3924 while(d != descr.
Set().end()) {
3925 if((*d)->IsSource()) {
3926 boolfound =
false;
3928 if((*d)->GetSource().Equals(**s)) {
3934d = descr.
Set().erase(d);
3938src_list.push_back(src);
3951 if(!
f.IsSetData() || !
f.GetData().IsBiosrc()) {
3955src->
Assign(
f.GetData().GetBiosrc());
3958 if(
f.IsSetComment()) {
3967 if(
f.IsSetDbxref()) {
3971src->
SetOrg().SetDb().push_back(
a);
3984 boolany_change =
false;
3986 booltransgenic_or_focus =
false;
3988 while(existing_src && !transgenic_or_focus) {
3991transgenic_or_focus =
true;
3995 if(transgenic_or_focus) {
3999 if(p->GetLocation().IsInt() &&
4043 size_tnum_gene_locus = 0;
4044 size_tnum_gene_locus_tag = 0;
4045 size_tnum_gene_xref_locus = 0;
4046 size_tnum_gene_xref_locus_tag = 0;
4054num_gene_locus_tag++;
4059 if(
g->IsSetLocus()) {
4060num_gene_xref_locus++;
4062 if(
g->IsSetLocus_tag()) {
4063num_gene_xref_locus_tag++;
4067 if(num_gene_locus > 0) {
4068 if(num_gene_locus_tag > 0) {
4071 if(num_gene_xref_locus > 0) {
4075 if(num_gene_locus_tag > 0) {
4076 if(num_gene_locus > 0) {
4079 if(num_gene_xref_locus_tag > 0) {
4086 boolany_change =
false;
4087 if(num_gene_locus == 0 && num_gene_locus_tag > 0) {
4088 if(num_gene_xref_locus > 0 && num_gene_xref_locus_tag == 0) {
4092 boolthis_change =
false;
4096 if((*it)->IsSetData() && (*it)->GetData().IsGene()
4097&& (*it)->GetData().GetGene().IsSetLocus()) {
4098(*it)->SetData().SetGene().SetLocus_tag((*it)->GetData().GetGene().GetLocus());
4099(*it)->SetData().SetGene().ResetLocus();
4100this_change =
true;
4111}
else if(num_gene_locus > 0 && num_gene_locus_tag == 0) {
4112 if(num_gene_xref_locus == 0 && num_gene_xref_locus_tag > 0) {
4116 boolthis_change =
false;
4120 if((*it)->IsSetData() && (*it)->GetData().IsGene()
4121&& (*it)->GetData().GetGene().IsSetLocus_tag()) {
4122(*it)->SetData().SetGene().SetLocus((*it)->GetData().GetGene().GetLocus_tag());
4123(*it)->SetData().SetGene().ResetLocus_tag();
4124this_change =
true;
4143 boolstrip_serial =
true;
4146 switch(sid.
Which()) {
4152 const string& acc =
GET_FIELD(tsid, Accession);
4153 if(acc.length() == 6) {
4154strip_serial =
false;
4161strip_serial =
false;
4178strip_serial =
false;
4184 returnstrip_serial;
4190 boolchange_made =
false;
4204change_made =
true;
4227 boolchange_made =
false;
4234 if(
NPOS== amp ) {
4240 const static struct{
4243} transformations[] = {
4252{
"#13;
",
""},
4253{
"#916",
"Delta"},
4254{
"#945",
"alpha"},
4255{
"#946",
"beta"},
4256{
"#947",
"gamma"},
4257{
"#952",
"theta"},
4258{
"#955",
"lambda"},
4266{
"#8710",
"delta"},
4267{
"#64257",
"fi"},
4268{
"#64258",
"fl"},
4282 for(
unsignedidx = 0; idx <
ArraySize(transformations); ++idx) {
4284searcher.
AddWord(transformations[idx].src_word, idx);
4296 result.reserve( str_len );
4298back_inserter(
result) );
4302 while( amp !=
NPOS&& amp < str_len ) {
4308 if(
str[search_pos] ==
' ') {
4311 for( ; search_pos < str_len ; ++search_pos ) {
4312 const charch =
str[search_pos];
4316 if( ch ==
'&'&&
state== 0 ) {
4328 const string& result_word = transformations[match_idx].result_word;
4329 copy( result_word.begin(), result_word.end(),
4330back_inserter(
result) );
4331change_made =
true;
4335 if( search_pos >= str_len ) {
4339back_inserter(
result) );
4347 const string& result_word = transformations[match_idx].result_word;
4348 copy( result_word.begin(), result_word.end(),
4349back_inserter(
result) );
4350change_made =
true;
4354 copy(
str.begin() + amp,
str.begin() + search_pos + 1,
4355back_inserter(
result) );
4359 if(
str[search_pos] ==
'&') {
4365 if(
NPOS== next_amp ) {
4367 copy(
str.begin() + search_pos + 1,
str.end(),
4368back_inserter(
result) );
4373 if( (search_pos + 1) < next_amp ) {
4374 copy(
str.begin() + search_pos + 1,
str.begin() + next_amp,
4375back_inserter(
result) );
4390 if(require_inframe) {
4392 boolis_ok =
false;
4393 switch(is_in_frame) {
4423new_loc = nuc2prot_mapper->
Map(nuc_loc);
4430 if(!sid || (orig_id && sid->
Equals(*orig_id))) {
4450 if(!new_loc->
IsInt() && !new_loc->
IsPnt()) {
4512 boolchanged =
false;
4518 if((*annot_it)->IsSetData() && (*annot_it)->IsFtable()) {
4520 if((*feat_it)->IsSetData() && (*feat_it)->GetData().IsCdregion()) {
4535 boolany_change =
false;
4536 for(
CBioseq_CIbi(seh, filter); bi; ++bi) {
4561 if(!feat_loc_seq_id) {
4566string::size_type
len= 0;
4567string::size_type loc_pos, end_pos;
4568 charprotein_letter =
'X';
4571 if(aa_pos == string::npos) {
4573 if(aa_pos != string::npos) {
4576 if(aa_pos != string::npos) {
4583 if(aa_pos != string::npos) {
4599[pMessageListener](
string msg, TSubcode subcode) {
4604 if(loc_pos == string::npos) {
4605 if(pMessageListener) {
4606 string msg=
"Unable to identify code-break location in '"+
str+
"'";
4607postMessage(
msg, TSubcode::eParseError);
4612 while(loc_pos <
str.length() &&
isspace(
str[loc_pos])) {
4617 if(end_pos ==
NPOS) {
4619 if(end_pos ==
NPOS) {
4620end_pos =
str.length();
4627 if(pos.find_first_of(
",") != string::npos) {
4628pos =
"join("+ pos +
")";
4634 if(pMessageListener) {
4635 string msg=
"Unable to extract code-break location from '"+
str+
"'";
4636postMessage(
msg, TSubcode::eParseError);
4642 if(pMessageListener) {
4643 string msg=
"code-break location exceeds 3 bases";
4644postMessage(
msg, TSubcode::eBadLocation);
4648 if((break_loc->
IsInt() || break_loc->
IsPnt()) &&
4650 if(pMessageListener) {
4651 string msg=
"code-break location lies outside of coding region";
4652postMessage(
msg, TSubcode::eBadLocation);
4672newCodeBreak->
SetLoc(*break_loc);
4675orig_list.push_back(newCodeBreak);
4688 boolany_removed =
false;
4689CSeq_feat::TQual::iterator it = feat.
SetQual().begin();
4690 while(it != feat.
SetQual().end()) {
4691 if((*it)->IsSetQual() &&
4693(*it)->IsSetVal() &&
4695it = feat.
SetQual().erase(it);
4696any_removed =
true;
4701 if(feat.
GetQual().size() == 0) {
4719 autoit = flu_map.
find(
key);
4720 if(it == flu_map.
end()) {
4722new_set->AddBioseq(*bi);
4723flu_map[
key] = new_set;
4725it->second->AddBioseq(*bi);
4733 for(
auto& entry : flu_map) {
4734 if(entry.second->OkToMakeSet()) {
4735entry.second->MakeSet();
4749 for(; annot_ci; ++annot_ci) {
4750 if((*annot_ci).IsFtable()) {
4765 f->SetData().SetImp().SetKey(
"misc_feature");
4766 f->SetLocation().SetInt().SetFrom(0);
4768 f->SetLocation().SetInt().SetId().Assign(*(bh.
GetSeqId()));
4771 f->SetDbxref().push_back(xref);
4773suppress->SetData().SetGene();
4774 f->SetXref().push_back(suppress);
4788COrg_ref::TDb::iterator db = org->
SetDb().begin();
4789 while(db != org->
SetDb().end()) {
4790 if((*db)->IsSetDb() &&
NStr::Equal((*db)->GetDb(),
"IRD")) {
4792db = org->
SetDb().erase(db);
4798 if(org->
GetDb().size() == 0) {
4862default : frame = 0;
break;
4867 if(cb->IsSetLoc()) {
4871((
offset- frame) / 3 ) + 1 == pos) {
4884 intstart =
static_cast<int>((pos-1)*3);
4896default : frame = 0;
break;
4899 intframe_shift = (start - frame) % 3;
4900 if(frame_shift < 0) {
4903 if(frame_shift == 1)
4905 else if(frame_shift == 2)
4911 int len= loc_iter.GetRange().GetLength();
4912 if(offset <= start && offset + len > start) {
4914 tmp->SetId().Assign(loc_iter.GetSeq_id());
4917 tmp->SetTo(loc_iter.GetRange().GetTo() - (start -
offset) );
4919 tmp->SetFrom(loc_iter.GetRange().GetFrom() + start -
offset);
4921 if(offset <= start + 2 && offset + len > start + 2) {
4923 tmp->SetFrom(loc_iter.GetRange().GetTo() - (start -
offset+ 2) );
4925 tmp->SetTo(loc_iter.GetRange().GetFrom() + start -
offset+ 2);
4929 tmp->SetFrom(loc_iter.GetRange().GetFrom());
4931 tmp->SetTo(loc_iter.GetRange().GetTo());
4938 tmp->SetId().Assign(loc_iter.GetSeq_id());
4941 tmp->SetTo(loc_iter.GetRange().GetTo());
4943 tmp->SetFrom(loc_iter.GetRange().GetTo() - (start -
offset+ 2) );
4945 tmp->SetFrom(loc_iter.GetRange().GetFrom());
4948 tmp->SetFrom(loc_iter.GetRange().GetFrom());
4950 tmp->SetTo(loc_iter.GetRange().GetFrom() + start -
offset+ 2);
4952 tmp->SetTo(loc_iter.GetRange().GetTo());
4989 boolany_change =
false;
5010 boolany_changes =
false;
5012vector<CRef<COrg_ref> > rq_list;
5013vector<const CSeqdesc* > src_descs;
5014vector<CConstRef<CSeq_feat> > src_feats;
5017vector<const CSeqdesc* >::iterator desc_it = src_descs.begin();
5018 while(desc_it != src_descs.end()) {
5019 if((*desc_it)->GetSource().IsSetSubtype()) {
5023&& s->IsSetName()) {
5024 boolmonth_ambiguous =
false;
5027s->SetName(new_date);
5028any_changes =
true;
5041 boollocal_change =
false;
5042 for(
autos : new_feat->
SetData().SetBiosrc().SetSubtype()) {
5044&& s->IsSetName()) {
5045 boolmonth_ambiguous =
false;
5048s->SetName(new_date);
5049local_change =
true;
5054any_changes =
true;
5071 boolremoved =
true;
5076 if(
ud->GetUser().IsAutodefOptions()) {
@ eExtreme_Positional
numerical value
@ eExtreme_Biological
5' and 3'
User-defined methods of the data storage class.
User-defined methods of the data storage class.
CRef< objects::CSeq_id > GetNewProtId(objects::CBioseq_Handle bsh, int &offset, string &id_label, bool general_only)
bool IsGeneralIdProtPresent(objects::CSeq_entry_Handle tse)
@Auth_list.hpp User-defined methods of the data storage class.
CSeqdesc & Set(bool skip_lookup=false)
static CRef< CUser_object > CreateIDOptions(CSeq_entry_Handle seh)
static bool RegenerateSequenceDefLines(CSeq_entry_Handle se)
static string GetOrganelleByGenome(unsigned int genome)
int GetGenCode(int def=1) const
bool HasSubtype(CSubSource::TSubtype subtype) const
CBioseq_set_EditHandle â.
vector< EChanges > GetAllChanges() const
vector< string_view > GetDescriptions() const
static string_view GetDescription(EChanges e)
static bool RescueSiteRefPubs(CSeq_entry_Handle seh)
Rescue pubs from Site-ref features.
static bool ConvertDeltaSeqToRaw(CSeq_entry_Handle seh, CSeq_inst::EMol filter=CSeq_inst::eMol_not_set)
static bool RenormalizeNucProtSets(CSeq_entry_Handle seh)
Convert nuc-prot sets with just one sequence to just the sequence can't be done during the explore ph...
static bool ShouldStripPubSerial(const CBioseq &bs)
static char ValidAminoAcid(string_view abbrev)
static bool RemoveOrphanLocus_tagGeneXrefs(CSeq_feat &f, CBioseq_Handle bsh)
Removes orphaned locus_tag Gene-xrefs.
static bool FixGeneXrefSkew(CSeq_entry_Handle seh)
Examine all genes and gene xrefs in the Seq-entry.
static void MoveOneFeatToPubdesc(CSeq_feat_Handle feat, CRef< CSeqdesc > d, CBioseq_Handle b, bool remove_feat=true)
static bool AddGenBankWrapper(CSeq_entry_Handle seh)
Add GenBank Wrapper Set.
static bool ConvertPubFeatsToPubDescs(CSeq_entry_Handle seh)
Convert full-length publication features to publication descriptors.
static void SetProteinName(CProt_ref &prot, const string &protein_name, bool append)
static void s_SetProductOnFeat(CSeq_feat &feat, const string &protein_name, bool append)
static bool RemovePseudoProduct(CSeq_feat &cds, CScope &scope)
Removes protein product from pseudo coding region.
static bool FixECNumbers(CSeq_entry_Handle entry)
Fix EC numbers.
static bool AddMissingMolInfo(CBioseq &seq, bool is_product)
Adds missing MolInfo descriptor to sequence.
static void SetMrnaName(CSeq_feat &mrna, const string &protein_name)
static CRef< CSeq_entry > AddProtein(const CSeq_feat &cds, CScope &scope)
static bool OkToPromoteNpPub(const CPubdesc &pd)
Some pubs should not be promoted to nuc-prot set from sequence.
static void GetPubdescLabels(const CPubdesc &pd, vector< TEntrezId > &pmids, vector< TEntrezId > &muids, vector< int > &serials, vector< string > &published_labels, vector< string > &unpublished_labels)
For Publication Citations Get labels for a pubdesc.
static bool DecodeXMLMarkChanged(std::string &str)
decodes various tags, including carriage-return-line-feed constructs
static bool SetFeaturePartial(CSeq_feat &f)
Set feature partial based on feature location.
static bool AddProteinTitle(CBioseq_Handle bsh)
Creates missing protein title descriptor.
static size_t MakeSmallGenomeSet(CSeq_entry_Handle entry)
static bool ExtendToStopIfShortAndNotPartial(CSeq_feat &f, CBioseq_Handle bsh, bool check_for_stop=true)
Extends a coding region up to 50 nt.
static bool IsGeneXrefUnnecessary(const CSeq_feat &sf, CScope &scope, const CGene_ref &gene_xref)
Calculates whether a Gene-xref is unnecessary (because it refers to the same gene as would be calcula...
static bool ClearInternalPartials(CSeq_loc &loc, bool is_first=true, bool is_last=true)
Clear internal partials.
static bool RepackageProteins(CSeq_entry_Handle seh)
Find proteins that are not packaged in the same nuc-prot set as the coding region for which they are ...
CCleanup(CScope *scope=nullptr, EScopeOptions scope_handling=eScope_Copy)
static bool WGSCleanup(CSeq_entry_Handle entry, bool instantiate_missing_proteins=true, Uint4 options=0, bool run_extended_cleanup=true, bool also_fix_location=true)
Performs WGS specific cleanup.
static bool ParseCodeBreaks(CSeq_feat &feat, CScope &scope)
Parses all valid transl_except Gb-quals into code-breaks for cdregion, then removes the transl_except...
static bool SetMolinfoTech(CBioseq_Handle seq, CMolInfo::ETech tech)
Sets MolInfo::tech for a sequence.
static bool AddLowQualityException(CSeq_entry_Handle entry)
For table2asn -c s Adds an exception of "low-quality sequence region" to coding regions and mRNAs tha...
static bool RemoveUnseenTitles(CSeq_entry_EditHandle::TSeq seq)
Remove all titles in Seqdescr except the last, because it is the only one that would be displayed in ...
static bool RemoveDupBioSource(CSeq_descr &descr)
Remove duplicate biosource descriptors.
static bool ExtendStopPosition(CSeq_feat &f, const CSeq_feat *cdregion, size_t extension=0)
TChanges ExtendedCleanup(CSeq_entry &se, Uint4 options=0)
Cleanup a Seq-entry.
static bool s_IsProductOnFeat(const CSeq_feat &cds)
static bool SetGenePartialByLongestContainedFeature(CSeq_feat &gene, CScope &scope)
Set partialness of gene to match longest feature contained in gene.
static CConstRef< CCode_break > GetCodeBreakForLocation(size_t pos, const CSeq_feat &cds)
utility function for finding the code break for a given amino acid position pos is the position of th...
TChanges BasicCleanup(CSeq_entry &se, Uint4 options=0)
static bool SetCDSPartialsByFrameAndTranslation(CSeq_feat &cds, CScope &scope)
1.
static bool RemoveBadECNumbers(CProt_ref::TEc &ec_num_list)
Delete EC numbers.
static bool AddPartialToProteinTitle(CBioseq_Handle bsh)
Adjusts protein title to reflect partialness.
void SetScope(CScope *scope)
static bool RepairXrefs(const CSeq_feat &f, const CTSE_Handle &tse)
Repairs non-reciprocal xref pairs for specified feature if xrefs between subtypes are permitted and f...
static bool ExtendToStopCodon(CSeq_feat &f, CBioseq_Handle bsh, size_t limit)
Extends a feature up to limit nt to a stop codon, or to the end of the sequence if limit == 0 (partia...
static CRef< CSeq_loc > GetProteinLocationFromNucleotideLocation(const CSeq_loc &nuc_loc, CScope &scope)
static bool ParseCodeBreak(const CSeq_feat &feat, CCdregion &cds, const CTempString &str, CScope &scope, IObjtoolsListener *pMessageListener=nullptr)
Parse string into code break and add to coding region.
static void SetCodeBreakLocation(CCode_break &cb, size_t pos, const CSeq_feat &cds)
utility function for setting code break location given offset pos is the position of the amino acid w...
static bool x_AddLowQualityException(CSeq_feat &feat)
static const string & GetProteinName(const CProt_ref &prot)
static CRef< CBioSource > BioSrcFromFeat(const CSeq_feat &f)
Get BioSource from feature to use for source descriptor.
static bool MergeDupBioSources(CSeq_descr &descr)
static bool SetFrameFromLoc(CCdregion &cdregion, const CSeq_loc &loc, CScope &scope)
Chooses best frame based on location 1.
static bool SetMolinfoBiomol(CBioseq_Handle seq, CMolInfo::EBiomol biomol)
Sets MolInfo::biomol for a sequence.
static bool MoveProteinSpecificFeats(CSeq_entry_Handle seh)
Moves protein-specific features from nucleotide sequences in the Seq-entry to the appropriate protein...
static bool TaxonomyLookup(CSeq_entry_Handle seh)
Looks up Org-refs in the Seq-entry.
static bool PubAlreadyInSet(const CPubdesc &pd, const CSeq_descr &descr)
static bool NormalizeDescriptorOrder(CSeq_descr &descr)
Normalize Descriptor Order on a specific Seq-entry.
static bool ConvertSrcFeatsToSrcDescs(CSeq_entry_Handle seh)
Convert full-length source features to source descriptors.
static bool SetBestFrame(CSeq_feat &cds, CScope &scope)
Translates coding region and selects best frame (without stops, or longest)
static bool x_MergeDupOrgNames(COrgName &on1, const COrgName &add)
static bool FindMatchingLocusGene(CSeq_feat &f, const CGene_ref &gene_xref, CBioseq_Handle bsh)
Detects gene features with matching locus.
static bool MoveFeatToProtein(CSeq_feat_Handle fh)
Moves one feature from nucleotide bioseq to the appropriate protein sequence.
static bool RemoveOrphanLocusGeneXrefs(CSeq_feat &f, CBioseq_Handle bsh)
Removes orphaned locus Gene-xrefs.
static void AddNcbiCleanupObject(int ncbi_cleanup_version, CSeq_descr &descr)
Adds NcbiCleanup User Object to Seq-descr.
static bool AreBioSourcesMergeable(const CBioSource &src1, const CBioSource &src2)
static bool ExpandGeneToIncludeChildren(CSeq_feat &gene, CTSE_Handle &tse)
Expands gene to include features it cross-references.
static vector< CConstRef< CPub > > GetCitationList(CBioseq_Handle bsh)
Get list of pubs that can be used for citations for Seq-feat on a Bioseq-handle.
static bool LocationMayBeExtendedToMatch(const CSeq_loc &orig, const CSeq_loc &improved)
Checks whether it is possible to extend the original location up to improved one.
static bool UpdateECNumbers(CProt_ref::TEc &ec_num_list)
Update EC numbers.
static bool FixRNAEditingCodingRegion(CSeq_feat &cds)
From GB-7563 An action has been requested that will do the following: 1.
static bool x_HasShortIntron(const CSeq_loc &loc, size_t min_len=11)
static bool RemoveNcbiCleanupObject(CSeq_descr &descr)
Removes NcbiCleanup User Objects in the Seq-descr.
static bool SetGeneticCodes(CBioseq_Handle bsh)
Sets genetic codes for coding regions on Bioseq-Handle.
static bool RemoveUnnecessaryGeneXrefs(CSeq_feat &f, CScope &scope)
Removes unnecessary Gene-xrefs.
static bool CleanupCollectionDates(CSeq_entry_Handle seh, bool month_first)
static bool MakeIRDFeatsFromSourceXrefs(CSeq_entry_Handle entry)
From SQD-4329 For each sequence with a source that has an IRD db_xref, create a misc_feature across t...
static bool IsMinPub(const CPubdesc &pd, bool is_refseq_prot)
Is this a "minimal" pub? (If yes, do not rescue from a Seq-feat.cit)
static bool FindMatchingLocus_tagGene(CSeq_feat &f, const CGene_ref &gene_xref, CBioseq_Handle bsh)
Detects gene features with matching locus_tag.
static bool x_MergeDupOrgRefs(COrg_ref &org1, const COrg_ref &add)
static void AutodefId(CSeq_entry_Handle seh)
static bool RemoveNonsuppressingGeneXrefs(CSeq_feat &f)
Removes non-suppressing Gene-xrefs.
static bool RemoveDuplicatePubs(CSeq_descr &descr)
Remove duplicate publications.
static bool IsMethionine(const CCode_break &cb)
static bool SeqLocExtend(CSeq_loc &loc, size_t pos, CScope &scope)
Extends a location to the specificed position.
@Gb_qual.hpp User-defined methods of the data storage class.
static const CTrans_table & GetTransTable(int id)
bool RefersToSameGene(const CGene_ref &xref) const
bool IsSuppressed(void) const
static string GetKey(const COrg_ref &org)
void BasicCleanupBioseqHandle(const CBioseq_Handle &bsh)
void BasicCleanupSeqFeat(CSeq_feat &sf)
void ExtendedCleanup(CSeq_entry_Handle &seh)
void BasicCleanupBioseqSetHandle(CBioseq_set_Handle &bssh)
void SetScope(CScope &scope)
Main methods.
void ExtendedCleanupSeqEntryHandle(CSeq_entry_Handle &seh)
void BasicCleanupSeqEntryHandle(CSeq_entry_Handle &seh)
static bool ShouldRemoveAnnot(const CSeq_annot &annot)
void BasicCleanup(CPubdesc &pd, bool strip_serial)
void BasicCleanupSeqAnnotHandle(CSeq_annot_Handle &sah)
void BasicCleanupSeqFeatHandle(CSeq_feat_Handle &sfh)
@OrgMod.hpp User-defined methods of the data storage class.
bool IsSetOrgMod(void) const
static bool IsECNumberSplit(const string &old_ecno)
static const string & GetECNumberReplacement(const string &old_ecno)
Return a replaced EC number's replacement.
EECNumberStatus
Enzyme Commission number status.
@ eEC_replaced
Obsolete synonym for some other EC number.
@ eEC_unknown
Unrecognized; possibly malformed.
@ eEC_deleted
Withdrawn, with no (single?) replacement.
static EECNumberStatus GetECNumberStatus(const string &ecno)
Determine an EC number's validity and specificity.
@Pubdesc.hpp User-defined methods of the data storage class.
@RNA_ref.hpp User-defined methods of the data storage class.
string GetRnaProductName(void) const
ESubtype GetSubtype(void) const
static bool AllowXref(CSeqFeatData::ESubtype subtype1, CSeqFeatData::ESubtype subtype2)
SeqMap related exceptions.
SeqVector related exceptions.
@Seq_descr.hpp User-defined methods of the data storage class.
const CSeq_descr & GetDescr(void) const
void SetDescr(CSeq_descr &value)
bool IsSetDescr(void) const
CSeq_feat_EditHandle â.
namespace ncbi::objects::
bool HasExceptionText(const string &exception_text) const
Returns whether or not the given exception_text is set for this feature.
bool AddSeqFeatXref(const CSeqFeatXref::TId &id)
Seq-loc iterator class â iterates all intervals from a seq-loc in the correct order.
class CStaticArrayMap<> is an array adaptor that provides an STLish interface to statically-defined a...
TBase::const_iterator const_iterator
static string FixDateFormat(const string &orig_date)
Attempt to fix the format of the date Returns a blank if the format of the date cannot be determined.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id) const
Get Bioseq handle from this TSE.
TSeq_feat_Handles GetFeaturesWithId(CSeqFeatData::E_Choice type, TFeatureIdInt id) const
vector< CSeq_feat_Handle > TSeq_feat_Handles
virtual CRef< CTaxon3_reply > SendOrgRefList(const vector< CRef< COrg_ref > > &list, COrg_ref::fOrgref_parts result_parts=COrg_ref::eOrgref_default, fT3reply_parts t3result_parts=eT3reply_default)
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
char GetCodonResidue(int state) const
static int NextCodonState(int state, unsigned char ch)
EObjectType GetObjectType() const
@ fLabel_Unique
Append a unique tag [V1].
constexpr size_t size() const
const_iterator end() const
const_iterator find(const key_type &key) const
const unsigned int methionine_encoded
void s_GetAuthorsString(string *out_authors, const CAuth_list &auth_list)
SStaticPair< CSeqdesc::E_Choice, int > TSeqdescOrderElem
static CConstRef< CSeq_feat > s_GetCdsByLocation(CScope &scope, const CSeq_loc &feat_loc)
static bool s_NameCloseEnoughC(const CSubSource &s1, const CSubSource &s2)
void RescueProtProductQual(CSeq_feat &feat)
void GetSourceDescriptors(const CSeq_entry &se, vector< const CSeqdesc * > &src_descs)
bool s_IsLocationEndAtOtherLocationInternalEndpoint(const CSeq_loc &loc, const CSeq_loc &other_loc)
DEFINE_STATIC_ARRAY_MAP(TSeqdescOrderMap, sc_SeqdescOrderMap, sc_seqdesc_order_map)
static bool s_SameSubtypeC(const CSubSource &s1, const CSubSource &s2)
static const TRNALengthMap kTrnaLengthMap
static bool s_RemoveTaxnameFromProtRef(const string &taxname, CBioseq_Handle bsh)
string s_KeyFromProcessed(CProt_ref::EProcessed processed)
bool s_SubSourceListUniqued(CBioSource &biosrc)
static CConstRef< CSeqdesc > s_GetTitleDesc(const CSeq_descr &descr)
static int s_SeqDescToOrdering(CSeqdesc::E_Choice chs)
static const string & s_GetProteinNameFromXrefOrQual(const CSeq_feat &cds)
static SIZE_TYPE s_TitleEndsInOrganism(const string &sTitle, const string &sOrganism, SIZE_TYPE &OrganellePos)
bool HasMod(const COrg_ref &org, const string &mod)
static bool s_SubsourceCompareC(const CRef< CSubSource > &st1, const CRef< CSubSource > &st2)
static const TSeqdescOrderElem sc_seqdesc_order_map[]
bool IsSiteRef(const CSeq_feat &sf)
CProt_ref::EProcessed s_ProcessedFromKey(const string &key)
void AddIRDMiscFeature(CBioseq_Handle bh, const CDbtag &tag)
static void s_UpdateTitleString(const CBioSource &src, bool bPartial, string &sTitle)
map< string, TRNALength > TRNALengthMap
static constexpr std::array< string_view, CCleanupChangeCore::eNumberofChangeTypes > sm_ChangeDesc
pair< size_t, bool > TRNALength
CStaticPairArrayMap< CSeqdesc::E_Choice, int > TSeqdescOrderMap
static bool s_IsSwissProt(const CBioseq_Handle &bsh)
static CConstRef< CSeq_feat > s_GetCdsByProduct(CScope &scope, const CSeq_loc &product)
static bool s_RemoveSuffixFromNames(const string &suffix, list< string > &names)
static CRef< CCleanupChange > makeCleanupChange(Uint4 options)
bool s_FirstPubMatchesSecond(const CPubdesc &pd1, const CPubdesc &pd2)
static void s_GetMolInfoAndSrcDescriptors(const CSeq_descr &seq_descr, CConstRef< CSeqdesc > &pMolinfoDesc, CConstRef< CSeqdesc > &pSrcDesc)
const string kLowQualitySequence
bool s_IsPreprotein(CSeq_feat_Handle fh)
static bool s_IsPartial(const CMolInfo &molInfo)
static bool s_SeqDescLessThan(const CRef< CSeqdesc > &desc1, const CRef< CSeqdesc > &desc2)
bool ConvertProteinToImp(CSeq_feat_Handle fh)
bool IsCrossKingdom(const COrg_ref &org, string &first_kingdom, string &second_kingdom)
static bool s_CleanupIsShortrRNA(const CSeq_feat &f, CScope *scope)
static bool s_IsCleanupObject(const CSeqdesc &desc)
CRef< CSeq_loc > ReadLocFromText(const string &text, const CSeq_id *id, CScope *scope)
char x_ValidAminoAcid(string_view abbrev)
bool CleanVisStringJunk(string &str, bool allow_ellipses)
bool Asn2gnbkCompressSpaces(string &val)
weird space compression from C Toolkit
Include a standard set of the NCBI C++ Toolkit most basic headers.
static const char si[8][64]
static const struct name_t names[]
static void DLIST_NAME() append(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
static const char * str(char *buf, int n)
unsigned int TSeqPos
Type for sequence locations and lengths.
constexpr size_t ArraySize(const Element(&)[Size])
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
@ eDiag_Error
Error message.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
const TPrim & Get(void) const
virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const
Check if both objects contain the same values.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
void SetPacked_int(TPacked_int &v)
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
ENa_strand GetStrand(void) const
Get the location's strand.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Override Assign() to incorporate cache invalidation.
TSeqPos GetStart(ESeqLocExtremes ext) const
Return start and stop positions of the seq-loc.
bool IsSetStrand(void) const
Get strand.
const CInt_fuzz * GetFuzzFrom(void) const
const CInt_fuzz * GetFuzzTo(void) const
bool IsSetStrand(EIsSetStrand flag=eIsSetStrand_Any) const
Check if strand is set for any/all part(s) of the seq-loc depending on the flag.
bool IsEmpty(void) const
True if the current location is empty.
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
TRange GetRange(void) const
Get the range.
void ResetStrand(void)
Reset the strand on this location.
void SetPartialStart(bool val, ESeqLocExtremes ext)
set / remove e_Lim fuzz on start or stop (lt/gt - indicating partial interval)
ENa_strand GetStrand(void) const
void SetStrand(ENa_strand strand)
Set the strand for all of the location's ranges.
void SetPartialStop(bool val, ESeqLocExtremes ext)
bool IsPartialStop(ESeqLocExtremes ext) const
TSeqPos GetStop(ESeqLocExtremes ext) const
bool RetranslateCDS(const CSeq_feat &cds, CScope &scope)
RetranslateCDS A function to replace the protein Bioseq pointed to by cds.product with the current tr...
bool CopyFeaturePartials(CSeq_feat &dst, const CSeq_feat &src)
CopyFeaturePartials A function to copy the start and end partialness from one feature to another.
void AddProteinFeature(const CBioseq &seq, const string &protein_name, const CSeq_feat &cds, CScope &scope)
AddProteinFeature A function to create a protein feature with the specified protein name.
ELocationInFrame IsLocationInFrame(const CSeq_feat_Handle &cds, const CSeq_loc &loc)
Determines whether location loc is in frame with coding region cds.
bool AdjustFeaturePartialFlagForLocation(CSeq_feat &new_feat)
AdjustFeaturePartialFlagForLocation A function to ensure that Seq-feat.partial is set if either end o...
bool AdjustForCDSPartials(const CSeq_feat &cds, CSeq_entry_Handle seh)
AdjustForCDSPartials A function to make all of the necessary related changes to a Seq-entry after the...
@ eLocationInFrame_InFrame
@ eLocationInFrame_BadStart
@ eLocationInFrame_BadStop
@ eLocationInFrame_BadStartAndStop
TSeqPos GetLength(const CSeq_id &id, CScope *scope)
Get sequence length if scope not null, else return max possible TSeqPos.
TSeqPos LocationOffset(const CSeq_loc &outer, const CSeq_loc &inner, EOffsetType how=eOffset_FromStart, CScope *scope=0)
returns (TSeqPos)-1 if the locations don't overlap
sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)
Returns the sequence::ECompare containment relationship between CSeq_locs.
CRef< CSeq_loc > Seq_loc_Subtract(const CSeq_loc &loc1, const CSeq_loc &loc2, CSeq_loc::TOpFlags flags, CScope *scope)
Subtract the second seq-loc from the first one.
CRef< CSeq_loc > Seq_loc_Merge(const CSeq_loc &loc, CSeq_loc::TOpFlags flags, CScope *scope)
Merge ranges in the seq-loc.
CRef< CSeq_loc > Seq_loc_Add(const CSeq_loc &loc1, const CSeq_loc &loc2, CSeq_loc::TOpFlags flags, CScope *scope)
Add two seq-locs.
@ fCompareOverlapping
Check if seq-locs are overlapping.
@ eOverlap_Contained
2nd contained within 1st extremes
@ eContains
First CSeq_loc contains second.
@ eSame
CSeq_locs contain each other.
@ eContained
First CSeq_loc contained by second.
bool IsPseudo(const CSeq_feat &feat, CScope &scope)
Determines whether given feature is pseudo, using gene associated with feature if necessary Checks to...
static CRef< CBioseq > TranslateToProtein(const CSeq_feat &cds, CScope &scope)
CConstRef< CSeq_feat > GetOverlappingGene(const CSeq_loc &loc, CScope &scope, ETransSplicing eTransSplicing=eTransSplicing_Auto)
CConstRef< CSeq_feat > GetOverlappingCDS(const CSeq_loc &loc, CScope &scope)
static CCdregion::EFrame FindBestFrame(const CSeq_feat &cds, CScope &scope)
Find "best" frame for a coding region.
CConstRef< CSeq_feat > GetmRNAforCDS(const CSeq_feat &cds, CScope &scope)
GetmRNAforCDS A function to find a CSeq_feat representing the appropriate mRNA for a given CDS.
vector< TFeatScore > TFeatScores
void GetOverlappingFeatures(const CSeq_loc &loc, CSeqFeatData::E_Choice feat_type, CSeqFeatData::ESubtype feat_subtype, EOverlapType overlap_type, TFeatScores &feats, CScope &scope, const TBestFeatOpts opts=0, CGetOverlappingFeaturesPlugin *plugin=NULL)
Find all features overlapping the location.
static void Translate(const string &seq, string &prot, const CGenetic_code *code, bool include_stop=true, bool remove_trailing_X=false, bool *alt_start=NULL, bool is_5prime_complete=true, bool is_3prime_complete=true)
Translate a string using a specified genetic code.
CBioseq_Handle GetBioseqHandleFromTSE(const CSeq_id &id, const CTSE_Handle &tse)
Get bioseq handle for sequence withing one TSE.
CRef< CSeq_loc > Map(const CSeq_loc &src_loc)
Map seq-loc.
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
CSeq_entry_Handle GetSeq_entryHandle(CDataLoader *loader, const TBlobId &blob_id, EMissing action=eMissing_Default)
Get Seq-entry handle by its blob-id, with possible loading.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
CSeq_annot_Handle GetSeq_annotHandle(const CSeq_annot &annot, EMissing action=eMissing_Default)
void AddScope(CScope &scope, TPriority pri=kPriority_Default)
Add the scope's datasources as a single group with the given priority All data sources (data loaders ...
CSeq_entry_EditHandle GetSeq_entryEditHandle(const CSeq_entry &entry)
@ eLocationToProduct
Map from the feature's location to product.
vector< CSeq_id_Handle > TId
const CSeq_feat::TXref & GetXref(void) const
bool IsSetInst_Mol(void) const
TSeq ConvertSetToSeq(void) const
Do the same as CollapseSet() when sub-entry is of type bioseq.
const CTSE_Handle & GetTSE_Handle(void) const
void SetDescr(TDescr &v) const
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
TClass GetClass(void) const
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to seq-annot for this feature.
bool IsFtable(void) const
CRef< CSeqdesc > RemoveSeqdesc(const CSeqdesc &v) const
CBioseq_set_Handle GetParentBioseq_set(void) const
Return a handle for the parent Bioseq-set, or null handle.
CSeq_entry_Handle GetParentEntry(void) const
Get parent Seq-entry handle.
void SetDescr(TDescr &v) const
TBioseqCore GetBioseqCore(void) const
Get bioseq core structure.
CBioseq_set_EditHandle GetParentBioseq_set(void) const
Get parent bioseq-set edit handle.
void Remove(void) const
Remove current annot.
virtual CConstRef< CSeq_feat > GetSeq_feat(void) const
bool IsSetDescr(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
const CSeqFeatData & GetData(void) const
TSeqPos GetBioseqLength(void) const
bool AddSeqdesc(CSeqdesc &d) const
CSeq_entry_EditHandle TakeEntry(const CSeq_entry_EditHandle &entry, int index=-1) const
Remove seq-entry from its location and attach to current one.
bool IsSetXref(void) const
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
TSet ConvertSeqToSet(TClass set_class=CBioseq_set::eClass_not_set) const
Convert the entry from Bioseq to Bioseq-set.
void Remove(void) const
Remove the feature from Seq-annot.
const CTSE_Handle & GetTSE_Handle(void) const
CConstRef< CSeq_annot > GetCompleteSeq_annot(void) const
Complete and return const reference to the current seq-annot.
TInst_Mol GetInst_Mol(void) const
CSeq_feat_EditHandle AddFeat(const CSeq_feat &new_obj) const
CConstRef< CBioseq_set > GetCompleteBioseq_set(void) const
Return the complete bioseq-set object.
virtual const CSeq_loc & GetProduct(void) const
bool IsSetProduct(void) const
bool HasAnnots(void) const
CConstRef< CSeq_id > GetSeqId(void) const
Get id which can be used to access this bioseq handle Throws an exception if none is available.
virtual const CSeq_loc & GetLocation(void) const
void SetInst(TInst &v) const
void Remove(ERemoveMode mode=eRemoveSeq_entry) const
CRef< CSeqdesc > ReplaceSeqdesc(const CSeqdesc &old_desc, CSeqdesc &new_desc) const
CBioseq_Handle GetBioseqHandle(const CSeq_id &id) const
Get Bioseq handle from the TSE of this Seq-entry.
CSeq_annot_EditHandle AttachAnnot(CSeq_annot &annot) const
Attach an annotation.
CSeq_entry_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
const TDescr & GetDescr(void) const
CBioseq_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
CSeq_entry_Handle GetParentEntry(void) const
Return a handle for the parent seq-entry of the bioseq.
TInst_Length GetInst_Length(void) const
bool IsSetInst(void) const
bool IsSetClass(void) const
bool AddSeqdesc(CSeqdesc &d) const
CSeq_annot_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
const TDescr & GetDescr(void) const
CConstRef< CSeq_entry > GetCompleteSeq_entry(void) const
Complete and get const reference to the seq-entry.
CScope & GetScope(void) const
Get scope this handle belongs to.
CRef< CSeqdesc > RemoveSeqdesc(const CSeqdesc &d) const
CScope & GetScope(void) const
Get scope this handle belongs to.
CScope & GetScope(void) const
Get scope this handle belongs to.
CSeq_feat_EditHandle TakeFeat(const CSeq_feat_EditHandle &handle) const
CSeq_annot_EditHandle GetAnnot(void) const
CConstRef< CSeq_feat > GetOriginalSeq_feat(void) const
CSeq_entry_EditHandle AttachEntry(CSeq_entry &entry, int index=-1) const
Attach an existing seq-entry.
CScope & GetScope(void) const
Get scope this handle belongs to.
bool IsSetDescr(void) const
const CGene_ref * GetGeneXref(void) const
get gene (if present) from Seq-feat.xref list
void Replace(const CSeq_feat &new_feat) const
Replace the feature with new Seq-feat object.
bool AddSeqdesc(CSeqdesc &v) const
const TId & GetId(void) const
bool IsSetData(void) const
const TInst & GetInst(void) const
@ eCoding_Iupac
Set coding to printable coding (Iupacna or Iupacaa)
SAnnotSelector & SetFeatType(TFeatType type)
Set feature type (also set annotation type to feat)
const CSeq_loc & GetLocation(void) const
const CSeq_feat & GetOriginalFeature(void) const
Get original feature with unmapped location/product.
const CSeq_feat_Handle & GetSeq_feat_Handle(void) const
Get original feature handle.
SAnnotSelector & IncludeFeatType(TFeatType type)
Include feature type in the search.
CConstRef< CSeq_feat > GetSeq_feat(void) const
Get current seq-feat.
@ fIncludeGivenEntry
Include the top (given) entry.
@ fRecursive
Iterate recursively.
const_iterator begin(void) const
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
CConstRef< C > ConstRef(const C *object)
Template function for conversion of const object pointer to CConstRef.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
bool Empty(void) const THROWS_NONE
Check if CRef is empty â not pointing to any object, which means having a null value.
uint32_t Uint4
4-byte (32-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
void AddWord(const string &word, const MatchType &match)
int GetNextState(int state, char letter) const
const vector< MatchType > & GetMatches(int state) const
bool IsMatchFound(int state) const
bool IsPrimed(void) const
int GetInitialState(void) const
NCBI_NS_STD::string::size_type SIZE_TYPE
static CTempString TruncateSpaces_Unsafe(const CTempString str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string.
static int CompareNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive compare of a substring with another string.
static SIZE_TYPE FindNoCase(const CTempString str, const CTempString pattern, SIZE_TYPE start, SIZE_TYPE end, EOccurrence which=eFirst)
Find the pattern in the specified range of a string using a case insensitive search.
static bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static void TruncateSpacesInPlace(string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string (in-place)
static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)
Find the pattern in the string.
static string Join(const TContainer &arr, const CTempString &delim)
Join strings using the specified delimiter.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
static bool Equal(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2, ECase use_case=eCase)
Test for equality of a substring with another string.
@ eReverseSearch
Search in a backward direction.
@ eNocase
Case insensitive compare.
static const char label[]
void SetSerial_number(TSerial_number value)
Assign a value to Serial_number data member.
list< CRef< CAuthor > > TStd
list< CRef< CArticleId > > Tdata
bool IsSetNames(void) const
Check if a value has been assigned to Names data member.
void SetCit(const TCit &value)
Assign a value to Cit data member.
const TStr & GetStr(void) const
Get the variant data.
bool IsStr(void) const
Check if variant Str is selected.
const TNames & GetNames(void) const
Get the Names member data.
bool IsMl(void) const
Check if variant Ml is selected.
const TStd & GetStd(void) const
Get the variant data.
const TMl & GetMl(void) const
Get the variant data.
bool IsStd(void) const
Check if variant Std is selected.
const TSubtype & GetSubtype(void) const
Get the Subtype member data.
TGenome GetGenome(void) const
Get the Genome member data.
TOrigin GetOrigin(void) const
Get the Origin member data.
void SetSubtype(TSubtype value)
Assign a value to Subtype data member.
bool IsSetOrg(void) const
Check if a value has been assigned to Org data member.
list< CRef< CSubSource > > TSubtype
bool IsSetSubtype(void) const
Check if a value has been assigned to Subtype data member.
void SetIs_focus(void)
Set NULL data member (assign 'NULL' value to Is_focus data member).
void SetOrigin(TOrigin value)
Assign a value to Origin data member.
const TOrg & GetOrg(void) const
Get the Org member data.
bool IsSetOrigin(void) const
Check if a value has been assigned to Origin data member.
void SetGenome(TGenome value)
Assign a value to Genome data member.
TSubtype GetSubtype(void) const
Get the Subtype member data.
bool IsSetGenome(void) const
Check if a value has been assigned to Genome data member.
bool IsSetSubtype(void) const
Check if a value has been assigned to Subtype data member.
void SetOrg(TOrg &value)
Assign a value to Org data member.
void SetName(const TName &value)
Assign a value to Name data member.
const TName & GetName(void) const
Get the Name member data.
bool IsSetIs_focus(void) const
to distinguish biological focus Check if a value has been assigned to Is_focus data member.
EGenome
biological context
bool IsSetName(void) const
Check if a value has been assigned to Name data member.
TSubtype & SetSubtype(void)
Assign a value to Subtype data member.
@ eSubtype_collection_date
DD-MMM-YYYY format.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
bool IsSetLocus_tag(void) const
systematic gene name (e.g., MI0001, ORF0069) Check if a value has been assigned to Locus_tag data mem...
bool IsSetLocus(void) const
Official gene symbol Check if a value has been assigned to Locus data member.
const TLocus_tag & GetLocus_tag(void) const
Get the Locus_tag member data.
const TLocus & GetLocus(void) const
Get the Locus member data.
TId GetId(void) const
Get the variant data.
const TMod & GetMod(void) const
Get the Mod member data.
bool IsSetDb(void) const
ids in taxonomic or culture dbases Check if a value has been assigned to Db data member.
const TLineage & GetLineage(void) const
Get the Lineage member data.
const TDiv & GetDiv(void) const
Get the Div member data.
TFixed_level GetFixed_level(void) const
Get the Fixed_level member data.
TMgcode GetMgcode(void) const
Get the Mgcode member data.
TGcode GetGcode(void) const
Get the Gcode member data.
TDb & SetDb(void)
Assign a value to Db data member.
bool IsSetFixed_level(void) const
Check if a value has been assigned to Fixed_level data member.
bool IsSetLineage(void) const
lineage with semicolon separators Check if a value has been assigned to Lineage data member.
vector< CRef< CDbtag > > TDb
bool IsSetMod(void) const
unstructured modifiers Check if a value has been assigned to Mod data member.
bool IsPartial(void) const
Check if variant Partial is selected.
void SetDiv(const TDiv &value)
Assign a value to Div data member.
TSyn & SetSyn(void)
Assign a value to Syn data member.
const TName & GetName(void) const
Get the Name member data.
const TTaxname & GetTaxname(void) const
Get the Taxname member data.
bool IsSetMgcode(void) const
mitochondrial genetic code Check if a value has been assigned to Mgcode data member.
const TLevel & GetLevel(void) const
Get the Level member data.
bool IsSetName(void) const
Check if a value has been assigned to Name data member.
const TBinomial & GetBinomial(void) const
Get the variant data.
const TDb & GetDb(void) const
Get the Db member data.
const TSyn & GetSyn(void) const
Get the Syn member data.
bool IsSetDiv(void) const
GenBank division code Check if a value has been assigned to Div data member.
bool IsSetMod(void) const
Check if a value has been assigned to Mod data member.
const Tdata & Get(void) const
Get the member data.
const TName & GetName(void) const
Get the Name member data.
list< CRef< COrgMod > > TMod
void SetGcode(TGcode value)
Assign a value to Gcode data member.
bool IsSetGenus(void) const
required Check if a value has been assigned to Genus data member.
void SetMgcode(TMgcode value)
Assign a value to Mgcode data member.
const TSpecies & GetSpecies(void) const
Get the Species member data.
list< CRef< CTaxElement > > Tdata
void ResetDb(void)
Reset Db data member.
bool IsSetOrgname(void) const
Check if a value has been assigned to Orgname data member.
bool IsSetTaxname(void) const
preferred formal name Check if a value has been assigned to Taxname data member.
bool IsSetLevel(void) const
Check if a value has been assigned to Level data member.
TMod & SetMod(void)
Assign a value to Mod data member.
bool IsSetGcode(void) const
genetic code (see CdRegion) Check if a value has been assigned to Gcode data member.
TMod & SetMod(void)
Assign a value to Mod data member.
void SetOrgname(TOrgname &value)
Assign a value to Orgname data member.
const TGenus & GetGenus(void) const
Get the Genus member data.
const TPartial & GetPartial(void) const
Get the variant data.
bool IsSet(void) const
Check if a value has been assigned to data member.
const TMod & GetMod(void) const
Get the Mod member data.
bool IsSetSyn(void) const
synonyms for taxname or common Check if a value has been assigned to Syn data member.
bool IsSetSpecies(void) const
species required if subspecies used Check if a value has been assigned to Species data member.
bool IsSetName(void) const
Check if a value has been assigned to Name data member.
void SetLineage(const TLineage &value)
Assign a value to Lineage data member.
const TOrgname & GetOrgname(void) const
Get the Orgname member data.
bool IsBinomial(void) const
Check if variant Binomial is selected.
EProcessed
processing status
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.
bool IsSetName(void) const
protein name Check if a value has been assigned to Name data member.
const TEc & GetEc(void) const
Get the Ec member data.
TName & SetName(void)
Assign a value to Name data member.
@ eProcessed_signal_peptide
@ eProcessed_transit_peptide
TPmid & SetPmid(void)
Select the variant.
list< CRef< CPub > > Tdata
TMuid & SetMuid(void)
Select the variant.
const Tdata & Get(void) const
Get the member data.
list< CRef< CPub > > TPub
TGen & SetGen(void)
Select the variant.
bool IsSetExt(void) const
generic fields for ncRNA, tmRNA, miscRNA Check if a value has been assigned to Ext data member.
void SetAa(TAa &value)
Assign a value to Aa data member.
const TVal & GetVal(void) const
Get the Val member data.
TXref & SetXref(void)
Assign a value to Xref data member.
void SetQual(const TQual &value)
Assign a value to Qual data member.
const TKey & GetKey(void) const
Get the Key member data.
bool IsSetComment(void) const
Check if a value has been assigned to Comment data member.
vector< CRef< CDbtag > > TDbxref
const TPub & GetPub(void) const
Get the variant data.
bool IsSetData(void) const
the specific data Check if a value has been assigned to Data data member.
bool IsSetQual(void) const
qualifiers Check if a value has been assigned to Qual data member.
E_Choice Which(void) const
Which variant is currently selected.
bool IsSetCode(void) const
genetic code used Check if a value has been assigned to Code data member.
bool IsProt(void) const
Check if variant Prot is selected.
TNcbi8aa GetNcbi8aa(void) const
Get the variant data.
E_Choice Which(void) const
Which variant is currently selected.
void SetLocation(TLocation &value)
Assign a value to Location data member.
bool IsCdregion(void) const
Check if variant Cdregion is selected.
bool IsImp(void) const
Check if variant Imp is selected.
void ResetCode(void)
Reset Code data member.
void SetComment(const TComment &value)
Assign a value to Comment data member.
void SetProduct(TProduct &value)
Assign a value to Product data member.
const TQual & GetQual(void) const
Get the Qual member data.
bool IsSetKey(void) const
Check if a value has been assigned to Key data member.
const TId & GetId(void) const
Get the Id member data.
void SetCode(TCode &value)
Assign a value to Code data member.
bool IsSetXref(void) const
cite other relevant features Check if a value has been assigned to Xref data member.
const TLocation & GetLocation(void) const
Get the Location member data.
void SetExcept(TExcept value)
Assign a value to Except data member.
bool IsLocal(void) const
Check if variant Local is selected.
void ResetLoc(void)
Reset Loc data member.
bool IsGene(void) const
Check if variant Gene is selected.
list< CRef< CCode_break > > TCode_break
TFrame GetFrame(void) const
Get the Frame member data.
const TData & GetData(void) const
Get the Data member data.
bool IsSetExcept(void) const
something funny about this? Check if a value has been assigned to Except data member.
const TExcept_text & GetExcept_text(void) const
Get the Except_text member data.
bool IsSetExcept_text(void) const
explain if except=TRUE Check if a value has been assigned to Except_text data member.
const TCode & GetCode(void) const
Get the Code member data.
void SetData(TData &value)
Assign a value to Data data member.
TCode_break & SetCode_break(void)
Assign a value to Code_break data member.
void ResetComment(void)
Reset Comment data member.
const TCdregion & GetCdregion(void) const
Get the variant data.
bool IsSetAa(void) const
Check if a value has been assigned to Aa data member.
const TBiosrc & GetBiosrc(void) const
Get the variant data.
bool IsSetId(void) const
Check if a value has been assigned to Id data member.
const TAa & GetAa(void) const
Get the Aa member data.
void SetLoc(TLoc &value)
Assign a value to Loc data member.
const TProduct & GetProduct(void) const
Get the Product member data.
bool IsSetQual(void) const
Check if a value has been assigned to Qual data member.
TNcbieaa GetNcbieaa(void) const
Get the variant data.
const TComment & GetComment(void) const
Get the Comment member data.
void SetVal(const TVal &value)
Assign a value to Val data member.
const TGene & GetGene(void) const
Get the variant data.
void SetExcept_text(const TExcept_text &value)
Assign a value to Except_text data member.
const TProt & GetProt(void) const
Get the variant data.
void ResetLocation(void)
Reset Location data member.
TExcept GetExcept(void) const
Get the Except member data.
const TXref & GetXref(void) const
Get the Xref member data.
TNcbieaa & SetNcbieaa(void)
Select the variant.
vector< CRef< CSeqFeatXref > > TXref
void ResetProduct(void)
Reset Product data member.
const TQual & GetQual(void) const
Get the Qual member data.
const TRna & GetRna(void) const
Get the variant data.
TNcbistdaa GetNcbistdaa(void) const
Get the variant data.
TQual & SetQual(void)
Assign a value to Qual data member.
const TCode_break & GetCode_break(void) const
Get the Code_break member data.
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
bool IsRna(void) const
Check if variant Rna is selected.
void SetFrame(TFrame value)
Assign a value to Frame data member.
void ResetQual(void)
Reset Qual data member.
bool IsSetCode_break(void) const
individual exceptions Check if a value has been assigned to Code_break data member.
const TImp & GetImp(void) const
Get the variant data.
bool IsSetFrame(void) const
Check if a value has been assigned to Frame data member.
bool IsSetLocation(void) const
feature made from Check if a value has been assigned to Location data member.
@ e_not_set
No variant selected.
@ e_Pub
publication applies to this seq
@ eFrame_not_set
not set, code uses one
@ eFrame_three
reading frame
@ e_Ncbi8aa
NCBI8aa code.
@ e_Ncbieaa
ASCII value of NCBIeaa code.
bool IsMix(void) const
Check if variant Mix is selected.
list< CRef< CSeq_interval > > Tdata
ENa_strand
strand of nucleic acid
const Tdata & Get(void) const
Get the member data.
Tdata & Set(void)
Assign a value to data member.
const TWhole & GetWhole(void) const
Get the variant data.
list< CRef< CSeq_loc > > Tdata
E_Choice Which(void) const
Which variant is currently selected.
E_Choice Which(void) const
Which variant is currently selected.
bool IsPacked_int(void) const
Check if variant Packed_int is selected.
Tdata & Set(void)
Assign a value to data member.
bool IsWhole(void) const
Check if variant Whole is selected.
bool IsInt(void) const
Check if variant Int is selected.
bool IsPnt(void) const
Check if variant Pnt is selected.
const TPacked_int & GetPacked_int(void) const
Get the variant data.
TSet & SetSet(void)
Select the variant.
const TSet & GetSet(void) const
Get the variant data.
bool IsSeq(void) const
Check if variant Seq is selected.
bool IsSetSeq_set(void) const
Check if a value has been assigned to Seq_set data member.
list< CRef< CSeq_annot > > TAnnot
bool IsSet(void) const
Check if variant Set is selected.
const TSeq_set & GetSeq_set(void) const
Get the Seq_set member data.
void ResetDescr(void)
Reset Descr data member.
list< CRef< CSeq_entry > > TSeq_set
TSeq & SetSeq(void)
Select the variant.
TSeq_set & SetSeq_set(void)
Assign a value to Seq_set data member.
@ eClass_pop_set
population study
@ eClass_phy_set
phylogenetic study
@ eClass_wgs_set
whole genome shotgun project
@ eClass_mut_set
set of mutations
@ eClass_eco_set
ecological sample study
@ eClass_nuc_prot
nuc acid and coded proteins
@ eClass_gen_prod_set
genomic products, chrom+mRNA+protein
@ eClass_genbank
converted genbank
@ eClass_small_genome_set
viral segments or mitochondrial minicircles
const TIupacaa & GetIupacaa(void) const
Get the variant data.
bool IsSetComment(void) const
any comment on this pub in context Check if a value has been assigned to Comment data member.
bool IsSetCompleteness(void) const
Check if a value has been assigned to Completeness data member.
list< CRef< CSeqdesc > > Tdata
TId & SetId(void)
Assign a value to Id data member.
const TUser & GetUser(void) const
Get the variant data.
void ResetDescr(void)
Reset Descr data member.
bool IsSetSeq_data(void) const
the sequence Check if a value has been assigned to Seq_data data member.
void SetPub(TPub &value)
Assign a value to Pub data member.
const TInst & GetInst(void) const
Get the Inst member data.
TTitle & SetTitle(void)
Select the variant.
TPub & SetPub(void)
Select the variant.
bool IsIupacaa(void) const
Check if variant Iupacaa is selected.
const TComment & GetComment(void) const
Get the Comment member data.
bool IsSetAnnot(void) const
Check if a value has been assigned to Annot data member.
bool IsSetMol(void) const
Check if a value has been assigned to Mol data member.
const TTitle & GetTitle(void) const
Get the variant data.
const TSource & GetSource(void) const
Get the variant data.
const TPub & GetPub(void) const
Get the variant data.
bool IsSetFig(void) const
figure in paper Check if a value has been assigned to Fig data member.
const TAnnot & GetAnnot(void) const
Get the Annot member data.
const TId & GetId(void) const
Get the Id member data.
void SetReftype(TReftype value)
Assign a value to Reftype data member.
TTech GetTech(void) const
Get the Tech member data.
const Tdata & Get(void) const
Get the member data.
bool IsSetInst(void) const
the sequence data Check if a value has been assigned to Inst data member.
bool IsSetName(void) const
name used in paper Check if a value has been assigned to Name data member.
list< CRef< CSeq_id > > TId
TMol GetMol(void) const
Get the Mol member data.
TSource & SetSource(void)
Select the variant.
bool IsSetDescr(void) const
descriptors Check if a value has been assigned to Descr data member.
E_Choice
Choice variants.
bool IsSet(void) const
Check if a value has been assigned to data member.
TBiomol GetBiomol(void) const
Get the Biomol member data.
void SetBiomol(TBiomol value)
Assign a value to Biomol data member.
EMol
molecule class in living organism
void SetDescr(TDescr &value)
Assign a value to Descr data member.
bool IsSetTech(void) const
Check if a value has been assigned to Tech data member.
bool IsSetPub(void) const
the citation(s) Check if a value has been assigned to Pub data member.
TUser & SetUser(void)
Select the variant.
bool IsSetNum(void) const
numbering from paper Check if a value has been assigned to Num data member.
TCompleteness GetCompleteness(void) const
Get the Completeness member data.
list< CRef< CSeq_feat > > TFtable
E_Choice Which(void) const
Which variant is currently selected.
void SetComment(const TComment &value)
Assign a value to Comment data member.
Tdata & Set(void)
Assign a value to data member.
list< CRef< CSeq_annot > > TAnnot
void SetSeq_data(TSeq_data &value)
Assign a value to Seq_data data member.
const TPub & GetPub(void) const
Get the Pub member data.
const TSeq_data & GetSeq_data(void) const
Get the Seq_data member data.
void SetTech(TTech value)
Assign a value to Tech data member.
const TMolinfo & GetMolinfo(void) const
Get the variant data.
TMolinfo & SetMolinfo(void)
Select the variant.
bool IsUser(void) const
Check if variant User is selected.
@ eReftype_sites
refers to unspecified features
@ eReftype_feats
refers to specified features
@ eTech_concept_trans
conceptual translation
@ eTech_standard
standard sequencing
@ e_Embl
EMBL specific information.
@ e_Het
cofactor, etc associated but not bound
@ e_Org
if all from one organism
@ e_Num
a numbering system
@ e_User
user defined object
@ e_Update_date
date of last update
@ e_Pub
a reference to the publication
@ e_Pir
PIR specific info.
@ e_Genbank
GenBank specific info.
@ e_Prf
PRF specific information.
@ e_Mol_type
type of molecule
@ e_Sp
SWISSPROT specific info.
@ e_Dbxref
xref to other databases
@ e_Comment
a more extensive comment
@ e_Method
sequencing method
@ e_Modelev
model evidence for XM records
@ e_Region
overall region (globin locus)
@ e_Molinfo
info on the molecule and techniques
@ e_Maploc
map location of this sequence
@ e_Create_date
date entry first created/released
@ e_Title
a title for this sequence
@ e_Pdb
PDB specific information.
@ e_Name
a name for this sequence
@ e_Source
source of materials, includes Org-ref
@ eMol_na
just a nucleic acid
where boath are integers</td > n< td ></td > n</tr > n< tr > n< td > tse</td > n< td > optional</td > n< td > String</td > n< td class=\"description\"> TSE option controls what blob is orig
const struct ncbi::grid::netcache::search::fields::KEY key
const CharType(& source)[N]
static unsigned int ud(time_t one, time_t two)
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
static int match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, uint16_t top_bracket, PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb)
#define FOR_EACH_PUB_ON_PUBDESC(Itr, Var)
FOR_EACH_PUB_ON_PUBDESC EDIT_EACH_PUB_ON_PUBDESC.
CSubSource::TSubtype TSUBSOURCE_SUBTYPE
#define SUBSOURCE_ON_BIOSOURCE_IS_SORTED(Var, Func)
SUBSOURCE_ON_BIOSOURCE_IS_SORTED.
#define SORT_SUBSOURCE_ON_BIOSOURCE(Var, Func)
SORT_SUBSOURCE_ON_BIOSOURCE.
#define NCBI_SEQID(Type)
@NAME Convenience macros for NCBI objects
Utility macros and typedefs for exploring NCBI objects from seqset.asn.
#define RESET_FIELD(Var, Fld)
RESET_FIELD base macro.
#define FIELD_IS_SET(Var, Fld)
FIELD_IS_SET base macro.
#define GET_FIELD(Var, Fld)
GET_FIELD base macro.
bool seq_mac_is_sorted(Iter first, Iter last, Comp comp)
#define BEGIN_COMMA_END(container)
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
Template structure SStaticPair is simlified replacement of STL pair<> Main reason of introducing this...
int g(Seg_Gsm *spe, Seq_Mtf *psm, Thd_Gsm *tdg)
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