66 : m_To(feat_to) , m_From(feat_from)
90 if (subtype ==
m_To) {
207 if (!remove_transcript || (remove_transcript && remove_transcript->IsBool() && remove_transcript->GetBool()->GetVal())) {
213 if (ncrna_class && ncrna_class->IsString() && !
NStr::IsBlank(ncrna_class->GetString()->GetVal())) {
214 new_feat->
SetData().SetRna().SetExt().SetGen().SetClass(ncrna_class->GetString()->GetVal());
219 if (site_type && site_type->IsString() && !
NStr::IsBlank(site_type->GetString()->GetVal())) {
220 new_feat->
SetData().SetSite(
m_SiteList.GetSiteType(site_type->GetString()->GetVal()));
225 if (bond_type && bond_type->IsString() && !
NStr::IsBlank(bond_type->GetString()->GetVal())) {
226 new_feat->
SetData().SetBond(
m_BondList.GetBondType(bond_type->GetString()->GetVal()));
231 if (on_prot && on_prot->IsBool() && on_prot->GetBool()->GetVal()) {
253 if (remove_gene && remove_gene->IsBool() && remove_gene->GetBool()->GetVal() && !(
orig.IsSetData() &&
orig.GetData().IsGene())) {
277 vector<string> products)
279 bool make_pseudo =
false;
281 if (is_pseudo && is_pseudo->IsBool() && is_pseudo->GetBool()->GetVal()) {
287 ITERATE(vector<string>, it, products) {
298 ITERATE(vector<string>, it, products) {
299 prot->SetData().SetProt().SetName().push_back(*it);
318 if (
orig.IsSetProduct()) {
322 if (
f &&
f->IsSetData() &&
f->GetData().IsProt()
323 &&
f->GetData().GetProt().IsSetName()
324 &&
f->GetData().GetProt().GetName().size() > 0) {
325 product =
f->GetData().GetProt().GetName().front();
328 }
else if (
orig.IsSetXref()) {
330 if ((*it)->IsSetData() && (*it)->GetData().IsProt()
331 && (*it)->GetData().GetProt().IsSetName()
332 && (*it)->GetData().GetProt().GetName().size() > 0) {
333 product = (*it)->GetData().GetProt().GetName().front();
361 if (
orig.GetData().IsCdregion() && keep_orig) {
362 if (!
orig.IsSetProduct()) {
398 CSeq_feat::TQual::iterator it = new_feat->
SetQual().begin();
399 while (it != new_feat->
SetQual().end()) {
402 vals.push_back((*it)->GetVal());
404 it = new_feat->
SetQual().erase(it);
409 if (new_feat->
GetQual().size() == 0) {
466 remove_mrna->SetBool();
469 remove_gene->SetBool();
472 remove_transcript->SetBool();
480 is_pseudo->SetBool();
491 ITERATE(vector<string>, it, class_vals) {
492 val->AddSuggestedValue(*it);
494 val->SetOnlySuggested(
false);
507 val->AddSuggestedValue(it->first);
510 val->SetDefaultVal(
"active");
511 val->SetOnlySuggested(
true);
522 val->AddSuggestedValue(it->first);
525 val->SetDefaultVal(
"disulfide");
526 val->SetOnlySuggested(
true);
631 while (it !=
m_SiteList.end() && site_type != it->second) {
647 if (
orig.IsSetComment()) {
648 new_feat->
SetData().SetGene().SetLocus(
orig.GetComment());
650 if (pos == string::npos) {
681 string remainder =
"";
682 new_feat->
SetData().SetRna().SetRnaProductName(product, remainder);
699 }
else if (
NStr::Find(product, field) == string::npos &&
NStr::Find(comment, field) == string::npos) {
700 comment = comment +
"; " + field;
713 if (
orig.IsSetLocus()) {
716 if (
orig.IsSetAllele()) {
719 if (
orig.IsSetDesc()) {
722 if (
orig.IsSetMaploc()) {
725 if (
orig.IsSetLocus_tag()) {
729 string remainder =
"";
730 new_feat->
SetData().SetRna().SetRnaProductName(product, remainder);
732 comment = comment +
"; " + remainder;
735 comment = comment.substr(1);
760 new_feat->
SetData().SetImp().SetKey(
"repeat_region");
762 bool is_transposon =
false;
763 bool is_insertion =
false;
764 string transposon_name =
"";
765 string insertion_name =
"";
767 if (
orig.IsSetComment()) {
768 comment =
orig.GetComment();
771 if (
orig.IsSetData() &&
orig.GetData().IsBiosrc()) {
772 if (
orig.GetData().GetBiosrc().IsSetSubtype()) {
774 if ((*it)->IsSetSubtype()) {
776 is_transposon =
true;
777 if ((*it)->IsSetName() && !
NStr::IsBlank((*it)->GetName())) {
779 transposon_name = (*it)->GetName();
781 transposon_name = transposon_name +
";" + (*it)->GetName();
786 if ((*it)->IsSetName() && !
NStr::IsBlank((*it)->GetName())) {
788 insertion_name = (*it)->GetName();
790 insertion_name = insertion_name +
";" + (*it)->GetName();
794 && (*it)->IsSetName()
797 comment = (*it)->GetName();
799 comment = comment +
";" + (*it)->GetName();
805 if (
orig.GetData().GetBiosrc().IsSetOrg()
806 &&
orig.GetData().GetBiosrc().GetOrg().IsSetOrgname()
807 &&
orig.GetData().GetBiosrc().GetOrg().GetOrgname().IsSetMod()) {
810 && (*it)->IsSetSubname() && !
NStr::IsBlank((*it)->GetSubname())) {
812 comment = (*it)->GetSubname();
814 comment = comment +
";" + (*it)->GetSubname();
822 new_feat->
SetQual().push_back(q);
827 new_feat->
SetQual().push_back(q);
845 new_feat->
SetData().SetImp().SetKey(
"misc_feature");
850 const string& qual_str = (*qual)->GetQual();
862 bool cross_origin =
false;
886 id->Assign(*
orig.GetLocation().GetId());
891 new_loc->
SetInt(*new_int);
896 if (!product.empty())
898 string comment = product;
901 comment =
"similar to "+product;
905 comment =
"nonfunctional "+product+
" due to mutation";
928 if (
f &&
f->IsSetData() &&
f->GetData().IsProt()
929 &&
f->GetData().GetProt().IsSetDesc()) {
930 desc =
f->GetData().GetProt().GetDesc();
949 new_feat->
SetData().SetProt().SetName().push_back(product);
952 CSeq_feat::TQual::iterator it = new_feat->
SetQual().begin();
953 while (it != new_feat->
SetQual().end()) {
955 if ((*it)->IsSetVal()) {
956 val = (*it)->GetVal();
958 if (!(*it)->IsSetQual()) {
963 new_feat->
SetData().SetProt().SetName().push_back((*it)->GetVal());
965 it = new_feat->
SetQual().erase(it);
969 new_feat->
SetData().SetProt().SetEc().push_back((*it)->GetVal());
971 it = new_feat->
SetQual().erase(it);
975 new_feat->
SetData().SetProt().SetActivity().push_back((*it)->GetVal());
977 it = new_feat->
SetQual().erase(it);
983 if (pos == string::npos) {
989 new_feat->
SetData().SetProt().SetDb().push_back(db);
991 it = new_feat->
SetQual().erase(it);
1012 if (!overlapping_cds) {
1032 if (
prot.IsSetName()
1033 &&
prot.GetName().size() > 0
1036 new_feat->
SetQual().push_back(q);
1037 }
else if (
prot.IsSetDesc()
1040 new_feat->
SetQual().push_back(q);
1044 if (
prot.IsSetEc()) {
1047 new_feat->
SetQual().push_back(q);
1052 if (
prot.IsSetActivity()) {
1055 new_feat->
SetQual().push_back(q);
1060 if (
prot.IsSetDb()) {
1063 (*it)->GetLabel(&
val);
1065 new_feat->
SetQual().push_back(q);
1093 if (products.size() > 0) {
1094 string product = products[0];
1095 for(
size_t i = 1;
i < products.size();
i++) {
1096 product +=
"; " + products[
i];
1098 string remainder =
"";
1099 new_feat->
SetData().SetRna().SetRnaProductName(product, remainder);
1113 new_feat->
SetData().SetCdregion();
1128 new_feat->
SetData().SetGene();
1136 if (gene_vals.size() > 0) {
1137 string gene = gene_vals[0];
1138 for(
size_t i = 1;
i < gene_vals.size();
i++) {
1139 gene +=
"; " + gene_vals[
i];
1141 new_feat->
SetData().SetGene().SetLocus(gene);
1169 string product =
orig.GetData().GetRegion();
1170 string remainder =
"";
1171 new_feat->
SetData().SetRna().SetRnaProductName(product, remainder);
1197 string orig_comment =
"";
1224 string product =
orig.GetData().GetRna().GetRnaProductName();
1237 new_feat->
SetData().SetCdregion();
1239 vector<string> products;
1240 products.push_back(
orig.GetData().GetRna().GetRnaProductName());
1251 string product =
orig.GetData().GetRna().GetRnaProductName();
1252 new_feat->
SetData().SetGene().SetDesc(product);
1281 new_feat->
SetData().SetProt().SetName().push_back(
orig.GetData().GetRegion());
1294 string product =
orig.GetData().GetRna().GetRnaProductName();
1295 string remainder =
"";
1296 new_feat->
SetData().SetRna().SetRnaProductName(product, remainder);
1348 return "Create region feature with the protein name as the region name";
1350 return "Create Region feature on nucleotide sequence or protein product sequence of overlapping coding region as specified. Use comment on feature for region name.\n\
1351 All feature ID, partialness, except, comment, product, location, genbank qualifiers, title, citation, experimental evidence, gene xrefs, db xrefs, and pseudo-ness information is discarded.";
1360 new_feat->
SetData().SetRegion();
1362 if (
orig.GetData().IsProt()) {
1363 if (
orig.GetData().GetProt().IsSetName() &&
orig.GetData().GetProt().GetName().size() > 0) {
1364 new_feat->
SetData().SetRegion(
orig.GetData().GetProt().GetName().front());
1366 }
else if (
orig.IsSetComment()) {
1378 string desc =
"If coding region is overlapped by another coding region, convert the coding region to a "
1380 +
" on the overlapping coding region's protein sequence, otherwise if you have checked \"Leave Original Feature\" it will create a "
1381 + subtype_name +
" with the same protein names and description on the protein sequence for the coding region.";
1394 new_feat->
SetData().SetProt().SetName().push_back(product);
1398 if (
orig.IsSetProduct())
1422 new_feat->
SetData().SetGene();
1424 if (
orig.IsSetProduct()) {
1428 if (
f &&
f->IsSetData() &&
f->GetData().IsProt()) {
1430 if (
prot.IsSetName()) {
1435 if (
prot.IsSetDesc()) {
1438 if (
prot.IsSetActivity()) {
1443 if (
prot.IsSetDb()) {
1446 (*it)->GetLabel(&
val);
1450 if (
prot.IsSetEc()) {
1472 if (subtype_from != subtype_to) {
1652 new_feat->
SetData().SetGene();
1656 copy_gene->
Assign(*gene);
1662 if (
orig.IsSetProduct()) {
1666 if (
f &&
f->IsSetData() &&
f->GetData().IsProt()) {
1669 if (
f->IsSetComment()) {
1672 if (
prot.IsSetDesc()) {
1676 if (
prot.IsSetName()) {
1684 string protein_names;
1702 }
else if (
orig.IsSetData() &&
orig.GetData().IsCdregion()) {
1725 string orig_val = gene->
GetLocus();
1741 string orig_val = gene->
GetDesc();
User-defined methods of the data storage class.
@ 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.
User-defined methods of the data storage class.
TBondMap::const_iterator const_iterator
CConstRef< CConversionOptionString > GetString() const
CRef< CConversionOptionBool > SetBool()
CRef< CConversionOptionString > SetString()
CConstRef< CConversionOptionBool > GetBool() const
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
string x_GetProteinDesc(const objects::CSeq_feat &cds, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual string GetDescription()
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
CConvertCDSToPseudoGene()
void x_AddToGeneDescr(string text, CRef< objects::CGene_ref > gene, objects::edit::EExistingText existing_text)
void x_AddToGeneLocus(string text, CRef< objects::CGene_ref > gene, objects::edit::EExistingText existing_text)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
static CRef< CConvertFeatureBase > Create(objects::CSeqFeatData::ESubtype subtype_from, objects::CSeqFeatData::ESubtype subtype_to)
CRef< CConversionOption > x_FindPseudo()
void x_AddToComment(string comment, CRef< objects::CSeq_feat > new_feat, objects::edit::EExistingText existing_text=objects::edit::eExistingText_prefix_semi)
bool x_IsRnaSubtype(objects::CSeqFeatData::ESubtype subtype)
static const string s_PlaceOnProt
void x_AddRnaDestinationConversionOptions()
bool x_IsImportSubtype(objects::CSeqFeatData::ESubtype subtype)
static const string s_RemoveTranscriptID
vector< string > x_ExtractProductQuals(CRef< objects::CSeq_feat > new_feat)
void x_AddCDSSourceConversionOptions()
virtual bool CanConvertFrom(objects::CSeqFeatData::ESubtype subtype)
CRef< CConversionOption > x_FindRemovemRNA()
CConvertFeatureBase(objects::CSeqFeatData::ESubtype feat_to=objects::CSeqFeatData::eSubtype_bad, objects::CSeqFeatData::ESubtype feat_from=objects::CSeqFeatData::eSubtype_bad)
void x_AddCDSDestinationConversionOptions()
bool x_MoveFeatureToProtein(const objects::CSeq_feat &orig, CRef< objects::CSeq_feat > new_feat, bool keep_orig, objects::CScope &scope)
static const string s_SiteType
void x_AddRegionDestionationConversionOptions()
CRef< CConversionOption > x_FindRemoveGene()
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
CRef< CCmdComposite > x_ConvertToCDS(const objects::CSeq_feat &orig, CRef< objects::CSeq_feat > new_feat, bool keep_orig, objects::CScope &scope, vector< string > product)
static const string s_BondType
virtual bool CanConvertTo(objects::CSeqFeatData::ESubtype subtype)
void x_AddSiteDestinationConversionOptions()
CRef< CCmdComposite > x_SimpleConversion(const objects::CSeq_feat &orig, CRef< objects::CSeq_feat > new_feat, bool keep_orig, objects::CScope &scope)
CRef< CConversionOption > x_FindSiteType()
static const string s_NcrnaClass
CRef< CConversionOption > x_FindNcrnaClass()
string x_GetCDSProduct(const objects::CSeq_feat &orig, objects::CScope &scope)
static const string s_IsPseudo
CRef< CConversionOption > FindRemoveTranscriptId()
bool m_create_general_only
static const string s_RemovemRNA
void x_ClearGenericFields(CRef< objects::CSeq_feat > new_feat)
vector< string > x_ExtractQuals(CRef< objects::CSeq_feat > new_feat, string qual_name)
objects::CBondList m_BondList
string GetSiteName(objects::CSeqFeatData::TSite site_type)
vector< CRef< CConversionOption > > TOptions
CRef< CConversionOption > x_FindPlaceOnProt()
objects::CSeqFeatData::ESubtype m_To
CRef< CConversionOption > x_FindBondType()
objects::CSeqFeatData::ESubtype m_From
static const string s_RemoveGene
CRef< CConversionOption > x_FindOption(const string &label)
void x_AddBondDestinationConversionOptions()
objects::CSiteList m_SiteList
bool x_IsProtSubtype(objects::CSeqFeatData::ESubtype subtype)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
void x_AddGeneFieldsToComment(const objects::CGene_ref &orig, CRef< objects::CSeq_feat > new_feat)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
void x_AddOneGeneField(string &product, string &comment, const string &field)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual string GetDescription()
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
virtual CRef< CCmdComposite > Convert(const objects::CSeq_feat &orig, bool keep_orig, objects::CScope &scope)
@Gb_qual.hpp User-defined methods of the data storage class.
static vector< string > GetncRNAClassList()
bool IsLegalQualifier(EQualifier qual) const
Test wheather a certain qualifier is legal for the feature.
EQualifier
List of available qualifiers for feature keys.
static E_Choice GetTypeFromSubtype(ESubtype subtype)
@ eSubtype_transit_peptide
@ eSubtype_transit_peptide_aa
@ eSubtype_sig_peptide_aa
@ eSubtype_mat_peptide_aa
static EQualifier GetQualifierType(CTempString qual)
convert qual string to enumerated value
static CTempString SubtypeValueToName(ESubtype eSubtype)
Turns a ESubtype into its string value which is NOT necessarily related to the identifier of the enum...
namespace ncbi::objects::
void SetPartialStart(bool val, ESeqLocExtremes ext)
void SetPartialStop(bool val, ESeqLocExtremes ext)
Seq-loc iterator class – iterates all intervals from a seq-loc in the correct order.
TSiteMap::const_iterator const_iterator
CRef< objects::CSeq_entry > CreateTranslatedProteinSequence(CRef< objects::CSeq_feat > cds, objects::CBioseq_Handle nuc_h, bool create_general_only, int *offset=nullptr)
CRef< objects::CSeq_feat > AddProteinFeatureToProtein(CRef< objects::CSeq_entry > protein, bool partial5, bool partial3)
CProt_ref::EProcessed GetProtProcessedFromFeatureSubtype(CSeqFeatData::ESubtype subtype)
CRNA_ref::EType GetRnaTypeFromFeatureSubtype(CSeqFeatData::ESubtype subtype)
static void AdjustMappedStop(CRef< CSeq_loc > loc, const CSeq_loc &product, CScope &scope)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
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.
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
const CSeq_id & GetSeq_id(void) const
Get seq_id of the current location.
void SetPartialStop(bool val, ESeqLocExtremes ext)
bool IsPartialStop(ESeqLocExtremes ext) const
TSeqPos GetStop(ESeqLocExtremes ext) const
CMappedFeat GetBestOverlappingFeat(const CMappedFeat &feat, CSeqFeatData::ESubtype need_subtype, sequence::EOverlapType overlap_type, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0)
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.
@ eOverlap_Contained
2nd contained within 1st extremes
const CSeq_feat * GetCDSForProduct(const CBioseq &product, CScope *scope)
Get the encoding CDS feature of a given protein sequence.
CConstRef< CSeq_feat > GetOverlappingmRNA(const CSeq_loc &loc, CScope &scope)
CConstRef< CSeq_feat > GetOverlappingGene(const CSeq_loc &loc, CScope &scope, ETransSplicing eTransSplicing=eTransSplicing_Auto)
@ fBestFeat_FavorLonger
favor longer features over shorter features
@ fBestFeat_Defaults
default options: do everything
CRef< CSeq_loc > Map(const CSeq_loc &src_loc)
Map seq-loc.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CSeq_loc_Mapper_Base & SetMergeAbutting(void)
Merge only abutting intervals, keep overlapping.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
@ eProductToLocation
Map from the feature's product to location.
@ eLocationToProduct
Map from the feature's location to product.
TSeqPos GetBioseqLength(void) const
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
bool IsProtein(void) const
const CSeq_feat & GetOriginalFeature(void) const
Get original feature with unmapped location/product.
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
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 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.
static const char label[]
list< CRef< CSubSource > > TSubtype
@ eSubtype_insertion_seq_name
@ eSubtype_transposon_name
const TDesc & GetDesc(void) const
Get the Desc member data.
bool IsSetLocus(void) const
Official gene symbol Check if a value has been assigned to Locus data member.
bool IsSetDesc(void) const
descriptive name Check if a value has been assigned to Desc data member.
void SetLocus(const TLocus &value)
Assign a value to Locus data member.
const TLocus & GetLocus(void) const
Get the Locus member data.
void SetDesc(const TDesc &value)
Assign a value to Desc data member.
void SetTag(TTag &value)
Assign a value to Tag data member.
void SetDb(const TDb &value)
Assign a value to Db data member.
list< CRef< COrgMod > > TMod
@ eSubtype_other
ASN5: old-name (254) will be added to next spec.
bool IsSetDesc(void) const
description (instead of name) Check if a value has been assigned to Desc data member.
EProcessed
processing status
vector< CRef< CDbtag > > TDb
const TDesc & GetDesc(void) const
Get the Desc member data.
@ eProcessed_signal_peptide
@ eProcessed_transit_peptide
@ eType_scRNA
will become ncRNA, with RNA-gen.class = scRNA
@ eType_snoRNA
will become ncRNA, with RNA-gen.class = snoRNA
@ eType_ncRNA
non-coding RNA; subsumes snRNA, scRNA, snoRNA
@ eType_snRNA
will become ncRNA, with RNA-gen.class = snRNA
bool IsSetComment(void) const
Check if a value has been assigned to Comment data member.
void ResetTitle(void)
Reset Title data member.
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.
bool IsProt(void) const
Check if variant Prot is selected.
void SetLocation(TLocation &value)
Assign a value to Location data member.
void SetComment(const TComment &value)
Assign a value to Comment data member.
void ResetExcept(void)
Reset Except data member.
const TQual & GetQual(void) const
Get the Qual member data.
void ResetExcept_text(void)
Reset Except_text data member.
const TLocation & GetLocation(void) const
Get the Location member data.
void ResetPseudo(void)
Reset Pseudo data member.
void ResetId(void)
Reset Id data member.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
void ResetComment(void)
Reset Comment data member.
const TProduct & GetProduct(void) const
Get the Product member data.
const TComment & GetComment(void) const
Get the Comment member data.
void SetPseudo(TPseudo value)
Assign a value to Pseudo data member.
const TGene & GetGene(void) const
Get the variant data.
const TProt & GetProt(void) const
Get the variant data.
vector< CRef< CSeqFeatXref > > TXref
void ResetProduct(void)
Reset Product data member.
void ResetDbxref(void)
Reset Dbxref data member.
TQual & SetQual(void)
Assign a value to Qual data member.
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
void ResetQual(void)
Reset Qual data member.
void ResetCit(void)
Reset Cit data member.
ENa_strand
strand of nucleic acid
E_Choice Which(void) const
Which variant is currently selected.
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
static void text(MDB_val *v)
range(_Ty, _Ty) -> range< _Ty >
Utility macros and typedefs for exploring NCBI objects from seqfeat.asn.
#define EDIT_EACH_GBQUAL_ON_SEQFEAT(Itr, Var)
#define ERASE_GBQUAL_ON_SEQFEAT(Itr, Var)
ERASE_GBQUAL_ON_SEQFEAT.
bool QualifierNamesAreEquivalent(string name1, string name2)
@ eExistingText_append_semi
bool AddValueToString(string &str, const string &value, EExistingText existing_text)
Add text to an existing string, using the "existing_text" directive to combine new text with existing...
CRef< CCmdComposite > GetDeleteFeatureCommand(const objects::CSeq_feat_Handle &fh, bool remove_proteins=true)