(feat_it->IsSetProduct()
77&& feat_it->GetProduct().Equals(product_loc)
78&& feat_it->GetOriginalSeq_feat().GetPointer() != orig_feat.
GetPointer()) {
113 if(
data.IsPub()) {
123 cmd->AddCommand(*cit_cmd);
128 cmd->AddCommand(*del_feat);
138 cmd->AddCommand(*del_product);
148product_to_cds.clear();
151 for(
autotse : tses)
155 if(feat_it->IsSetProduct())
159product_to_cds[product].insert(fh);
170 if(
data.IsPub()) {
180 cmd->AddCommand(*cit_cmd);
185 cmd->AddCommand(*del_feat);
193product_to_cds[product].erase(fh);
194 if(product && product.
IsProtein() && product_to_cds[product].empty()) {
196 cmd->AddCommand(*del_product);
216 cmd->AddCommand(*delSet);
222 cmd->AddCommand(*scmd);
235 if(!bsh || !bsh.
IsNa())
262 returndelete_features_cmd;
276 for(
CFeat_CIit(new_seh); it; ++it) {
282 if(
data.IsPub()) {
299 if(prot_bsh && prot_bsh.
IsProtein()) {
300proteins.
insert(prot_bsh);
309 const auto& feat_list = annoth.GetSeq_annotCore()->GetData().GetFtable();
310 if(feat_list.empty()) {
316 for(
autoit : proteins) {
324 if(proteins.
find(bsh) == proteins.
end()) {
332 cmd->AddCommand(*swap_cmd);
341 if((*it)->IsSource() && (*it)->GetSource().IsSetOrg()) {
342src_descs.emplace_back(*it, &se);
358 copy->Assign(*entry);
390 cmd->AddCommand(*clean);
399 copy->Assign(*entry);
420 if(rmv_user_object) {
429changes =
cleanup.ExtendedCleanup(new_seh, cleanup_flags);
440 cmd->AddCommand(*clean);
450validator::CTaxValidationAndCleanup tval;
453vector<CRef<COrg_ref> > original_orgs = tval.GetTaxonomyLookupRequest();
454 if(original_orgs.empty())
459vector< CRef<COrg_ref> > edited_orgs;
464 while(
i< original_orgs.size())
467vector< CRef<COrg_ref> > tmp_original_orgs(original_orgs.begin() +
i, original_orgs.begin() +
i+
len);
468vector< CRef<COrg_ref> > tmp_edited_orgs;
473tmp_edited_orgs.push_back(cpy);
476 if(tmp_lookup_reply) {
477 stringerror_message;
478tval.AdjustOrgRefsWithTaxLookupReply(*tmp_lookup_reply, tmp_edited_orgs, error_message);
485edited_orgs.insert(edited_orgs.end(), tmp_edited_orgs.begin(), tmp_edited_orgs.end());
497vector< CRef<COrg_ref> > spec_host_rq = tval.GetSpecificHostLookupRequest(
true);
499 while(
i< spec_host_rq.size())
502vector< CRef<COrg_ref> > tmp_spec_host_rq(spec_host_rq.begin() +
i, spec_host_rq.begin() +
i+
len);
504 stringerror_message = tval.IncrementalSpecificHostMapUpdate(tmp_spec_host_rq, *tmp_spec_host_reply);
514tval.AdjustOrgRefsForSpecificHosts(edited_orgs);
517 size_tnum_descs = tval.NumDescs();
518 size_tnum_updated_descs = 0;
519 for(
size_t n= 0;
n< num_descs;
n++) {
520 if(!original_orgs[
n]->
Equals(*(edited_orgs[
n]))) {
523 if(original_desc && orig_entry) {
525new_desc->
Assign(*original_desc);
529 cmd->AddCommand(*subcmd);
536 size_tnum_updated_feats = 0;
537 for(
size_t n= 0;
n< tval.NumFeats();
n++) {
538 if(!original_orgs[
n+ num_descs]->
Equals(*edited_orgs[
n+ num_descs])) {
541new_feat->
Assign(*feat);
542new_feat->
SetData().SetBiosrc().SetOrg().Assign(*(edited_orgs[
n+ num_descs]));
546 cmd->AddCommand(*chgFeat);
559validator::CTaxValidationAndCleanup tval;
562vector<CRef<COrg_ref> > original_orgs = tval.GetTaxonomyLookupRequest();
563 if(original_orgs.empty()) {
568vector< CRef<COrg_ref> > edited_orgs;
571 while(
i< original_orgs.size())
574vector< CRef<COrg_ref> > tmp_original_orgs(original_orgs.begin() +
i, original_orgs.begin() +
i+
len);
576vector< CRef<COrg_ref> > tmp_edited_orgs;
581tmp_edited_orgs.push_back(cpy);
585 if(tmp_lookup_reply) {
586 stringerror_message;
587tval.AdjustOrgRefsWithTaxLookupReply(*tmp_lookup_reply, tmp_edited_orgs, error_message);
594edited_orgs.insert(edited_orgs.end(), tmp_edited_orgs.begin(), tmp_edited_orgs.end());
608vector< CRef<COrg_ref> > spec_host_rq = tval.GetSpecificHostLookupRequest(
true);
610 while(
i< spec_host_rq.size()) {
612vector< CRef<COrg_ref> > tmp_spec_host_rq(spec_host_rq.begin() +
i, spec_host_rq.begin() +
i+
len);
615 stringerror_message = tval.IncrementalSpecificHostMapUpdate(tmp_spec_host_rq, *tmp_spec_host_reply);
625tval.AdjustOrgRefsForSpecificHosts(edited_orgs);
628 size_tnum_descs = tval.NumDescs();
629 size_tnum_updated_descs = 0;
630 for(
size_t n= 0;
n< num_descs;
n++) {
631 if(!original_orgs[
n]->
Equals(*(edited_orgs[
n]))) {
634 if(original_desc && orig_entry) {
636new_desc->
Assign(*original_desc);
640 cmd->AddCommand(*subcmd);
647 size_tnum_updated_feats = 0;
648 for(
size_t n= 0;
n< tval.NumFeats();
n++) {
649 if(!original_orgs[
n+ num_descs]->
Equals(*edited_orgs[
n+ num_descs])) {
652new_feat->
Assign(*feat);
653new_feat->
SetData().SetBiosrc().SetOrg().Assign(*(edited_orgs[
n+ num_descs]));
657 cmd->AddCommand(*chgFeat);
671validator::CTaxValidationAndCleanup tval;
674vector<CRef<COrg_ref> > original_orgs = tval.GetTaxonomyLookupRequest();
675 if(original_orgs.empty())
680vector< CRef<COrg_ref> > edited_orgs;
685 while(
i< original_orgs.size())
688vector< CRef<COrg_ref> > tmp_original_orgs(original_orgs.begin() +
i, original_orgs.begin() +
i+
len);
689vector< CRef<COrg_ref> > tmp_edited_orgs;
694tmp_edited_orgs.push_back(cpy);
698 stringerror_message;
699tval.AdjustOrgRefsWithTaxLookupReply(*tmp_lookup_reply, tmp_edited_orgs, error_message);
707edited_orgs.insert(edited_orgs.end(), tmp_edited_orgs.begin(), tmp_edited_orgs.end());
711vector< CRef<COrg_ref> > spec_host_rq = tval.GetSpecificHostLookupRequest(
true);
713 while(
i< spec_host_rq.size())
716vector< CRef<COrg_ref> > tmp_spec_host_rq(spec_host_rq.begin() +
i, spec_host_rq.begin() +
i+
len);
718 stringerror_message = tval.IncrementalSpecificHostMapUpdate(tmp_spec_host_rq, *tmp_spec_host_reply);
728tval.AdjustOrgRefsForSpecificHosts(edited_orgs);
731 size_tnum_descs = tval.NumDescs();
732 size_tnum_updated_descs = 0;
733 for(
size_t n= 0;
n< num_descs;
n++) {
734 if(!original_orgs[
n]->
Equals(*(edited_orgs[
n]))) {
737 if(original_desc && orig_entry) {
739new_desc->
Assign(*original_desc);
743 cmd->AddCommand(*subcmd);
750 size_tnum_updated_feats = 0;
751 for(
size_t n= 0;
n< tval.NumFeats();
n++) {
752 if(!original_orgs[
n+ num_descs]->
Equals(*edited_orgs[
n+ num_descs])) {
755new_feat->
Assign(*feat);
756new_feat->
SetData().SetBiosrc().SetOrg().Assign(*(edited_orgs[
n+ num_descs]));
760 cmd->AddCommand(*chgFeat);
774vector<pair<const CSeqdesc*, const CSeq_entry*>> src_descs;
775vector<CConstRef<CSeq_feat> > src_feats;
779 for(
auto&& desc_it : src_descs) {
780 const CSeqdesc& old_desc = *desc_it.first;
782new_desc->
Assign(old_desc);
785 cmd->AddCommand(*subcmd);
792new_feat->
Assign(*old_feat);
793new_feat->
SetData().SetBiosrc().SetDisableStrainForwarding(disable);
796 cmd->AddCommand(*chgFeat);
818rq->SetOrg().Assign(org);
825CTaxon3_reply::TReply::const_iterator reply_it = reply->GetReply().begin();
826 while(reply_it != reply->GetReply().end()) {
827 if((*reply_it)->IsData()
828&& (*reply_it)->GetData().GetOrg().IsSetTaxname()) {
829 boolis_species_level =
false, force_consult =
false, has_nucleomorphs =
false;
830(*reply_it)->GetData().GetTaxFlags (is_species_level, force_consult, has_nucleomorphs);
831 if(is_species_level) {
847vector<pair<const CSeqdesc*, const CSeq_entry*>> src_descs;
848vector<bool> is_species_level;
853 for(
auto&& desc_it : src_descs) {
854 const CSeqdesc& desc = *desc_it.first;
858is_species_level.push_back(
false);
866is_species_level.push_back(
false);
874CTaxon3_reply::TReply::const_iterator reply_it = reply->GetReply().begin();
876 while(reply_it != reply->GetReply().end()) {
877 if((*reply_it)->IsData()
878&& (*reply_it)->GetData().GetOrg().IsSetTaxname()) {
879 boolspecies_level =
false, force_consult =
false, has_nucleomorphs =
false;
880(*reply_it)->GetData().GetTaxFlags (species_level, force_consult, has_nucleomorphs);
882is_species_level[pos] =
true;
892 for(
auto&& desc_it : src_descs) {
893 const CSeqdesc& old_desc = *desc_it.first;
895new_desc->
Assign(old_desc);
898 cmd->AddCommand(*subcmd);
906new_feat->
Assign(*old_feat);
907new_feat->
SetData().SetBiosrc().RemoveCultureNotes(is_species_level[pos]);
910 cmd->AddCommand(*chgFeat);
926 if(!product || (product && product.
IsNa())) {
933 boolmolinfo_changed =
false;
939molinfo_changed =
true;
944 if(molinfo_changed) {
948 cmd->AddCommand(*ecmd);
951 cmd->AddCommand(*ecmd);
971 boolany_cmd =
false;
976 cmd->AddCommand(*synch_molinfo);
984new_prot->
Assign(*(
f->GetSeq_feat()));
1002 prot.SetData().SetProt();
1004 id->Assign(*(product.
GetId().front().GetSeqId()));
1005 prot.SetLocation().SetInt().SetId(*
id);
1006 prot.SetLocation().SetInt().SetFrom(0);
1010 prot.SetPartial(partial5 || partial3);
1019 if((*it)->IsSetData() && (*it)->GetData().IsProt()) {
1020 prot.SetData().SetProt().Assign((*it)->GetData().GetProt());
1026 if(cds.
GetXref().size() == 0) {
1040 prot->Assign(*((*existing).GetSeq_feat()));
1061cds_change =
false;
1062 if(!new_product->
IsSetId()) {
1072cds.
SetProduct().SetWhole().Assign(*product_id);
1076new_product->
SetId().push_back(product_id);
1080prot_entry->
SetSeq(*new_product);
1087 if((*it)->IsSetData() && (*it)->GetData().IsProt()) {
1088 prot->SetData().SetProt().Assign((*it)->GetData().GetProt());
1094 if(cds.
GetXref().size() == 0) {
1105 cmd->AddCommand(*subcmd);
1124cds_change =
false;
1155 if(new_protein_bioseq && new_protein_bioseq->
IsSetInst())
1158 if( !new_protein_bioseq ) {
1166 if(prot_seq.empty()) {
1174prot_seq = prot_seq.substr(0, prot_seq.length() - 1);
1178new_protein_bioseq->
SetInst().SetSeq_data().SetNcbieaa().Set(prot_seq);
1179new_protein_bioseq->
SetInst().SetLength(
TSeqPos(prot_seq.length()));
1189 cmd->AddCommand(*chgInst);
1193 if(synch_molinfo) {
1194 cmd->AddCommand(*synch_molinfo);
1201new_feat->
Assign(prot_feat_ci->GetOriginalFeature());
1211 id->Assign(*prot_bsh.
GetSeqId());
1212sub->
SetId(*
id);
1232 cmd->AddCommand(*chgFeat);
1254 boolcds_change =
false;
1268 cmd->AddCommand(*chgFeat);
1303 cmd->AddCommand(*chgFeat);
1305 if(adjust_gene && gene) {
1310 if(gene_stop > cds_stop) {
1311diff = gene_stop - cds_stop;
1314 if(gene_stop < cds_stop) {
1315diff = cds_stop - gene_stop;
1320new_gene->
Assign(*gene);
1324 cmd->AddCommand(*chgGene);
1352 cmd->AddCommand(*flip);
1393 if(!product || !product.
IsProtein()) {
1411 boolmodified =
false;
1413prot_seq.erase(prot_seq.end() - 1);
1415new_inst->
SetSeq_data().SetIupacaa().Set(prot_seq);
1419new_inst->
SetSeq_data().SetNcbieaa().Set(prot_seq);
1427 cmd->AddCommand(*chgInst);
1432 for( ; feat_ci; ++feat_ci ) {
1440 if(feat_stop > new_inst->
GetLength() -1 ) {
1443 cmd->AddCommand(*chgFeat);
1458 stringfname = reg_view.
GetString(
"ProductRules");
1463 #ifdef NEW_DISCREPANCY_API 1468 copy->Assign(*entry);
1471scope2.AddDefaults();
1476 if(suspect_rules.empty()) {
1480discrSet->SetSuspectRules(suspect_rules);
1484 autoproduct = discrSet->RunTests({
test_name}, *
copy,
"");
1485product->Summarize();
1486 autoreport = discrSet->Autofix();
1487 if(report.empty()) {
1491 for(
auto J: report) {
1499 cmd->AddCommand(*clean);
1508 copy->Assign(*entry);
1517 if(suspect_rules.empty()) {
1521discrSet->SetSuspectRules(suspect_rules);
1523discrSet->Parse(*
copy.GetNCPointer());
1524discrSet->Summarize();
1527 if(
tests.size() != 1) {
1533 for(
autoit : reports) {
1534 for(
autoobj : it->GetDetails()) {
1535 if(obj->CanAutofix()) {
1540 if(tofix.empty()) {
1545discrSet->Autofix(tofix,
result);
1555 cmd->AddCommand(*clean);
1566 copy->Assign(*entry);
1573 if(suspect_rules.empty()) {
1577discrSet->SetSuspectRules(suspect_rules);
1581 autolcl_product = discrSet->RunTests({
test_name}, *
copy,
"");
1582lcl_product->Summarize();
1583 autolcl_report = discrSet->Autofix();
1584 if(lcl_report.empty()) {
1588report = lcl_report;
1593 cmd->AddCommand(*clean);
1603 boolretranslate,
booladjust_gene,
const CSeq_feat& orig_feat,
CScope& scope,
1604 int&
offset,
boolcreate_general_only)
1608new_feat->
Assign(orig_feat);
1610 boolany_change = policy.ApplyPolicyToFeature(*new_feat, scope);
1616 if(adjust_gene_cmd) {
1617 cmd->AddCommand(*adjust_gene_cmd);
1631 if(retranslate_cmd) {
1632 cmd->AddCommand(*retranslate_cmd);
1638 cmd->AddCommand(*synch);
1660new_gene->
Assign(*old_gene);
1662 boolgene_change =
false;
1667gene_change =
true;
1672gene_change =
true;
1681gene_change =
true;
1693 boolany_change =
false;
1696 for(
autocopy_pair : cds_gene_pairs) {
1698new_cds->
Assign(*(copy_pair.first.GetOriginalSeq_feat()));
1700new_gene->
Assign(*(copy_pair.second.GetOriginalSeq_feat()));
1703 cmd->AddCommand(*chgGene);
1705 cmd->AddCommand(*chgCDS);
1732 boolany_change =
false;
1737cp->
Assign(*(
f->GetSeq_feat()));
1741 cmd->AddCommand(*chgFeat);
1781new_mrna->
Assign(*mrna);
1783 boolmodified =
false;
1786 if(product.empty()) {
1788message +=
"reset the mRNA product name ";
1791 else if(!
rna.IsSetExt() || (
rna.IsSetExt() && !
NStr::Equal(
rna.GetExt().GetName(), product))) {
1792 rna.SetExt().SetName(product);
1793message =
"applied "+ product +
" to mRNA product name ";
1801 cmd.Reset(
new CCmdComposite(
"Update mRNA product to match CDS product name"));
1802 cmd->AddCommand(*chgFeat);
1812 const CSeq_feat* seq_feat =
dynamic_cast<const CSeq_feat*
>(
object.GetPointer());
1840new_mrna->
Assign(*orig_mrna);
1842 boolmodified =
false;
1845new_mrna->
SetData().SetRna().SetRnaProductName(prot_product, remainder);
1852 cmd->AddCommand(*chgFeat);
@ eExtreme_Positional
numerical value
@ eExtreme_Biological
5' and 3'
void ExtendStop(CSeq_loc &loc, TSeqPos len, CScope &scope)
bool AdjustProteinFeaturePartialsToMatchCDS(CSeq_feat &new_prot, const CSeq_feat &cds)
AdjustProteinFeaturePartialsToMatchCDS A function to change an existing MolInfo to match a coding reg...
CRef< objects::CSeq_id > GetNewProtId(objects::CBioseq_Handle bsh, int &offset, string &id_label, bool general_only)
void RemoveCultureNotes(bool is_species_level=true)
void SetDisableStrainForwarding(bool val)
TSeqPos GetLength(void) const
static vector< TFeatGenePair > GetNormalizableGeneQualPairs(CBioseq_Handle bsh)
@ eClean_NoNcbiUserObjects
static bool NormalizeGeneQuals(CSeq_feat &cds, CSeq_feat &gene)
void AddCommand(IEditCommand &command)
virtual void Execute()
Do the editing action.
virtual void Execute()
Do the editing action.
static CIRef< IEditCommand > RemoveCitations(objects::CSeq_entry_Handle &seh, const objects::CPub_equiv &pubs)
static CGuiRegistry & GetInstance()
access the application-wide singleton
CRegistryReadView GetReadView(const string §ion) const
get a read-only view at a particular level.
Base class for all object manager exceptions.
@RNA_ref.hpp User-defined methods of the data storage class.
class CRegistryReadView provides a nested hierarchical view at a particular key.
string GetString(const string &key, const string &default_val=kEmptyStr) const
ESubtype GetSubtype(void) const
SeqMap related exceptions.
const CSeq_descr & GetDescr(void) const
bool IsSetDescr(void) const
CSeq_feat_EditHandle â.
namespace ncbi::objects::
Seq-loc iterator class â iterates all intervals from a seq-loc in the correct order.
virtual CRef< CTaxon3_reply > SendRequest(const CTaxon3_request &request)
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)
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
const_iterator end() const
void SetMolinfoForProtein(CRef< objects::CSeq_entry > protein, bool partial5, bool partial3)
CRef< objects::CSeq_feat > AddEmptyProteinFeatureToProtein(CRef< objects::CSeq_entry > protein, bool partial5, bool partial3)
static const int chunk_size
vector< CRef< CReportItem > > TReportItemList
vector< CRef< CReportObj > > TReportObjectList
eTestNames GetDiscrepancyCaseName(string_view)
static void cleanup(void)
static SQLCHAR output[256]
static DbTestEntry * tests
static char test_name[128]
void ReverseComplement(const BidirectionalIterator &first, const BidirectionalIterator &last)
bool RemoveDuplicateGoTerms(CSeq_feat &feat)
unsigned int TSeqPos
Type for sequence locations and lengths.
#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.
#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)
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const string & GetMsg(void) const
Get message string.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
C * SerialClone(const C &src)
Create on heap a clone of the source object.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
CConstRef< CSeq_id > GetSeqId(void) const
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
ENa_strand GetStrand(void) const
Get the location's strand.
void SetId(CSeq_id &id)
set the 'id' field in all parts of this location
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
bool AdjustProteinMolInfoToMatchCDS(CMolInfo &molinfo, const CSeq_feat &cds)
AdjustProteinMolInfoToMatchCDS A function to change an existing MolInfo to match a coding region.
const CSeq_feat * GetCDSForProduct(const CBioseq &product, CScope *scope)
Get the encoding CDS feature of a given protein sequence.
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 > GetmRNAforCDS(const CSeq_feat &cds, CScope &scope)
GetmRNAforCDS A function to find a CSeq_feat representing the appropriate mRNA for a given CDS.
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.
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...
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.
void AddDefaults(TPriority pri=kPriority_Default)
Add default data loaders from object manager.
void GetAllTSEs(TTSE_Handles &tses, enum ETSEKind kind=eManualTSEs)
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
vector< CSeq_entry_Handle > TTSE_Handles
virtual CSeq_id_Handle GetLocationId(void) 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.
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.
const CSeqFeatData & GetData(void) const
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
void Remove(void) const
Remove the feature from Seq-annot.
virtual const CSeq_loc & GetProduct(void) const
bool IsSetProduct(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
CBioseq_set_Handle GetParentBioseq_set(void) const
Get parent bioseq-set handle.
bool IsProtein(void) const
CSeq_entry_Handle GetParentEntry(void) const
Return a handle for the parent seq-entry of the bioseq.
TInst_Length GetInst_Length(void) const
bool IsSetClass(void) const
CSeq_annot_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
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.
CScope & GetScope(void) const
Get scope this handle belongs to.
const TInst_Seq_data & GetInst_Seq_data(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
Return a handle for the top-level seq-entry.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
const TId & GetId(void) const
virtual CSeq_id_Handle GetProductId(void) const
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_Ncbi
Set coding to binary coding (Ncbi4na or Ncbistdaa)
const CSeq_loc & GetLocation(void) const
const CSeq_feat & GetOriginalFeature(void) const
Get original feature with unmapped location/product.
CConstRef< CSeq_feat > GetSeq_feat(void) const
Get current seq-feat.
CSeq_entry_Handle GetSeq_entry_Handle(void) const
void GetSeqData(TSeqPos start, TSeqPos stop, string &buffer) const
Fill the buffer string with the sequence data for the interval [start, stop).
void SetCoding(TCoding coding)
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
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.
uint32_t Uint4
4-byte (32-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
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 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.
const TOrg & GetOrg(void) const
Get the Org member data.
void SetOrg(TOrg &value)
Assign a value to Org data member.
const TName & GetName(void) const
Get the Name member data.
bool IsSetName(void) const
protein name Check if a value has been assigned to Name data member.
TType GetType(void) const
Get the Type member data.
TXref & SetXref(void)
Assign a value to Xref data member.
bool IsSetData(void) const
the specific data Check if a value has been assigned to Data data member.
void SetLocation(TLocation &value)
Assign a value to Location data member.
bool IsCdregion(void) const
Check if variant Cdregion is selected.
void SetPartial(TPartial value)
Assign a value to Partial data member.
void SetProduct(TProduct &value)
Assign a value to Product 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.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
bool CanGetLocation(void) const
Check if it is safe to call GetLocation method.
const TBiosrc & GetBiosrc(void) const
Get the variant data.
const TProduct & GetProduct(void) const
Get the Product member data.
const TProt & GetProt(void) const
Get the variant data.
const TXref & GetXref(void) const
Get the Xref member data.
vector< CRef< CSeqFeatXref > > TXref
void ResetXref(void)
Reset Xref data member.
const TRna & GetRna(void) const
Get the variant 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.
bool IsSetLocation(void) const
feature made from Check if a value has been assigned to Location data member.
bool CanGetTo(void) const
Check if it is safe to call GetTo method.
TTo GetTo(void) const
Get the To member data.
bool IsInt(void) const
Check if variant Int is selected.
const TInt & GetInt(void) const
Get the variant data.
const TSet & GetSet(void) const
Get the variant data.
bool IsSetSeq_set(void) const
Check if a value has been assigned to Seq_set data member.
bool IsSet(void) const
Check if variant Set is selected.
const TSeq_set & GetSeq_set(void) const
Get the Seq_set member data.
list< CRef< CSeq_entry > > TSeq_set
TSeq & SetSeq(void)
Select the variant.
@ eClass_nuc_prot
nuc acid and coded proteins
list< CRef< CSeqdesc > > Tdata
TId & SetId(void)
Assign a value to Id data member.
bool IsSetSeq_data(void) const
the sequence Check if a value has been assigned to Seq_data data member.
bool IsNcbieaa(void) const
Check if variant Ncbieaa is selected.
const TInst & GetInst(void) const
Get the Inst member data.
bool IsIupacaa(void) const
Check if variant Iupacaa is selected.
const TSource & GetSource(void) const
Get the variant 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.
TLength GetLength(void) const
Get the Length member data.
void SetInst(TInst &value)
Assign a value to Inst data member.
TSource & SetSource(void)
Select the variant.
void SetBiomol(TBiomol value)
Assign a value to Biomol data member.
bool IsSetId(void) const
equivalent identifiers Check if a value has been assigned to Id data member.
void SetLength(TLength value)
Assign a value to Length data member.
void ResetInst(void)
Reset Inst data member.
void SetSeq_data(TSeq_data &value)
Assign a value to Seq_data data member.
const TMolinfo & GetMolinfo(void) const
Get the variant data.
TMolinfo & SetMolinfo(void)
Select the variant.
@ eRepr_raw
continuous sequence
@ e_Ncbieaa
extended ASCII 1 letter aa codes
@ e_Molinfo
info on the molecule and techniques
@ eMol_na
just a nucleic acid
TRequest & SetRequest(void)
Assign a value to Request data member.
function< CRef< CTaxon3_reply >(const vector< CRef< COrg_ref > > &list)> taxupdate_func_t
void ReverseComplementFeature(CSeq_feat &feat, CScope &scope)
CRef< CSeq_loc > SeqLocExtend(const CSeq_loc &loc, size_t pos, CScope *scope)
constexpr bool empty(list< Ts... >) noexcept
static bool Equals(const CVariation::TPlacements &p1, const CVariation::TPlacements &p2)
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
CRef< CCmdComposite > GetDeleteAllFeaturesCommand(CSeq_entry_Handle seh, size_t &count, bool remove_proteins)
CRef< CCmdComposite > TrimStopsFromCompleteCDS(const CSeq_feat &cds, CScope &scope)
TrimStopsFromCompleteCDS If the CDS is 3' complete and the protein sequence ends with a stop codon,...
static bool s_IsNucLocation(CSeq_feat_Handle fh)
void SetProteinFeature(CSeq_feat &prot, CBioseq_Handle product, const CSeq_feat &cds)
CRef< CCmdComposite > TranslateCDSCommand(CScope &scope, CSeq_feat &cds, bool &cds_change, int &offset, bool create_general_only)
bool GetRemoveDuplicateGOTermsCommand(CBioseq_Handle bsh, CRef< CCmdComposite > cmd)
CRef< CCmdComposite > CleanupCommand(CSeq_entry_Handle orig_seh, bool extended, bool do_tax)
static bool s_IsFarLocation(CSeq_feat_Handle fh)
CRef< CCmdComposite > GetDeleteFeatureCommand(const CSeq_feat_Handle &fh, bool remove_proteins)
static const char * kDiscrepancyEdit
CRef< CCmdComposite > GetEditLocationCommand(const edit::CLocationEditPolicy &policy, bool retranslate, bool adjust_gene, const CSeq_feat &orig_feat, CScope &scope, int &offset, bool create_general_only)
GetEditLocationCommand Changes the location properties of a feature according to a location policy.
static bool s_AreThereOtherCDSForThisProduct(const CSeq_feat_Handle &fh)
CRef< CCmdComposite > GetSynchronizeProductMolInfoCommand(CScope &scope, const CSeq_feat &cds)
CRef< CCmdComposite > TaxonomyLookupCommand(CSeq_entry_Handle seh)
bool s_IsSpeciesLevel(const COrg_ref &org)
CRef< CCmdComposite > GetEnableStrainForwardingCommand(CSeq_entry_Handle seh)
CRef< CCmdComposite > GetRetranslateCDSCommand(CScope &scope, CSeq_feat &cds, bool &cds_change, bool create_general_only)
CRef< CCmdComposite > GetSynchronizeProteinPartialsCommand(CScope &scope, const CSeq_feat &cds)
CRef< CCmdComposite > GetChangeStrainForwardingCommand(CSeq_entry_Handle seh, bool disable)
CRef< CCmdComposite > CreateOrAdjustProteinFeature(CBioseq_Handle product, CSeq_feat &cds, bool &cds_change)
CRef< CCmdComposite > GetDeleteSequenceCommand(CBioseq_Handle bsh)
CRef< CCmdComposite > GetDeleteAllFeaturesCommand_Ex(CSeq_entry_Handle seh, size_t &count, bool remove_proteins)
CRef< CCmdChangeSeq_feat > AdjustGene(const CSeq_feat &orig_feat, const CSeq_feat &new_feat, CScope &scope)
CRef< CCmdComposite > SpecificHostCleanupCommand(CSeq_entry_Handle seh)
bool GetNormalizeGeneQualsCommand(CBioseq_Handle bsh, CRef< CCmdComposite > cmd)
void GetProductToCDSMap(CScope &scope, map< CBioseq_Handle, set< CSeq_feat_Handle > > &product_to_cds)
CRef< CCmdComposite > AutofixCommand(CSeq_entry_Handle orig_seh, const string &test_name, string *output, const string &suspect_rules)
CRef< CCmdComposite > GetRmCultureNotesCommand(CSeq_entry_Handle seh)
static void s_GetSourceDescriptors(const CSeq_entry &se, vector< pair< const CSeqdesc *, const CSeq_entry * >> &src_descs)
CRef< CCmdComposite > CleanupHugeFileCommand(CSeq_entry_Handle orig_seh, bool extended, bool do_tax, objects::taxupdate_func_t &updater, bool rmv_user_object)
CRef< CCmdComposite > GetDisableStrainForwardingCommand(CSeq_entry_Handle seh)
CRef< CCmdComposite > SetTranslExcept(CSeq_entry_Handle seh, const string &comment, bool strict, bool extend, bool adjust_gene)
SetTranslExcept A function to set a code break at the 3' end of coding regions in a Seq-entry to indi...
CRef< CCmdComposite > AutofixCommandHugeMode(CSeq_entry_Handle orig_seh, const string &str_test_name, map< string, size_t > &report, const string &suspect_rules)
CRef< CCmdComposite > GetReverseComplimentSequenceCommand(CBioseq_Handle bsh)
CRef< CCmdComposite > UpdatemRNAProduct(const CSeq_feat &protein, CScope &scope, string &message)
void AdjustProteinFeature(CSeq_feat &prot, CBioseq_Handle product, CSeq_feat &cds, bool &cds_change)
static string s_GetProductRules()
CRef< CCmdComposite > CachedTaxonomyLookupCommand(CSeq_entry_Handle seh, objects::taxupdate_func_t &updater)
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