54 using namespace sequence;
58 m_pMainFeat(&main_feat),
175 if (
NStr::Find(comment,
"gene cluster") != string::npos
176 ||
NStr::Find(comment,
"gene locus") != string::npos) {
226 for ( ; desc_iter; ++desc_iter) {
236 bool is_pseudo =
false;
237 if (
f.CanGetPseudo() &&
f.IsSetPseudo()) {
239 }
else if (
f.IsSetQual()) {
240 for (
auto& it :
f.GetQual()) {
272 string qual, comment;
275 typeword =
"LTR repeat region";
308 typeword =
"insertion sequence";
313 typeword =
"endogenous virus";
317 typeword =
"transposon";
320 typeword =
"repeat region";
327 typeword =
"control region";
338 typeword =
"endogenous virus";
345 if ((*q)->IsSetQual() &&
346 NStr::Equal((*q)->GetQual(),
"regulatory_class") &&
348 typeword = (*q)->GetVal();
360 typeword =
"pseudogene";
372 typeword =
"precursor RNA";
376 typeword =
"pseudogene mRNA";
383 typeword =
"pseudogene precursor RNA";
385 typeword =
"precursor RNA";
424 string::size_type start_pos = 0;
426 while (start_pos != NCBI_NS_STD::string::npos) {
427 start_pos =
NStr::Find(comment, keyword, start_pos);
428 if (start_pos != NCBI_NS_STD::string::npos) {
429 string possible = comment.substr(start_pos + keyword.length());
434 string::size_type end =
NStr::Find(product_name,
";");
435 if (end != NCBI_NS_STD::string::npos) {
436 product_name = product_name.substr(0, end);
440 product_name = product_name.substr(0, product_name.length() - 9);
444 product_name +=
"-like";
448 start_pos += keyword.length();
463 string::size_type start_pos =
NStr::Find(comment,
"nonfunctional ");
464 if (start_pos != NCBI_NS_STD::string::npos) {
465 string::size_type sep_pos =
NStr::Find (comment,
" due to ", start_pos);
466 if (sep_pos != NCBI_NS_STD::string::npos) {
467 product_name = comment.substr(start_pos, sep_pos - start_pos);
541 comment = comment.substr (0, comment.length() - 5);
543 comment = comment.substr (0, comment.length() - 6);
546 string::size_type pos =
NStr::Find(comment,
"(");
547 if (pos == NCBI_NS_STD::string::npos) {
549 product_name = comment;
555 product_name = comment.substr(0, pos);
556 comment = comment.substr (pos + 1);
558 if (pos == NCBI_NS_STD::string::npos) {
561 gene_name = comment.substr (0, pos);
570 if (product_name.length() < 8
571 || !
isalpha(product_name.c_str()[5]) || !
isupper(product_name.c_str()[5])
572 || !
isalpha(product_name.c_str()[6]) || !
islower(product_name.c_str()[6])
573 || !
isalpha(product_name.c_str()[7]) || !
islower(product_name.c_str()[7])) {
581 && (gene_name.length() < 4
583 || !
isalpha(gene_name.c_str()[3])
584 || !
isupper(gene_name.c_str()[3]))) {
628 if (pos != NCBI_NS_STD::string::npos) {
663 string::size_type pos =
NStr::Find(comment,
";");
664 if (pos != NCBI_NS_STD::string::npos) {
665 comment = comment.substr(0, pos);
667 product_name = comment;
671 product_name =
"tmRNA";
684 if ((*q)->IsSetQual() &&
NStr::Equal((*q)->GetQual(),
"recombination_class") &&
686 product_name = (*q)->GetVal();
713 if (!mat_pi && !m_name.empty()) {
718 label +=
", " + m_name +
" region,";
746 product_name =
label;
761 if ((*it)->IsSetQual() && (*it)->IsSetVal()
763 description = (*it)->GetVal();
804 description = description.substr(0, description.length() - 4);
814 description = (*subSrcI)->GetName();
834 comment = comment.substr(4);
836 comment = comment.substr(0, comment.length() - 4);
838 description = comment;
919 if ((*it)->IsSetQual() && (*it)->IsSetVal() &&
921 NStr::FindNoCase((*it)->GetVal(),
"long_terminal_repeat") != string::npos) {
931 bool has_promoter =
false;
934 if (it->IsPromoter()) {
940 interval +=
", promoter region, ";
961 interval =
"alternatively spliced";
989 (*it)->Label(suppress_allele);
1004 bool suppress_final_and =
false;
1006 suppress_final_and =
true;
1010 interval +=
ListClauses(
false, suppress_final_and, suppress_allele);
1016 interval +=
" and ";
1018 interval +=
", and ";
1027 interval +=
"partial ";
1029 interval +=
"complete ";
1036 interval +=
", alternatively spliced";
1039 interval +=
"sequence";
1040 string product_name;
1042 interval +=
", alternatively spliced";
1049 interval +=
" and 3' UTR";
1051 interval +=
", and 3' UTR";
1122 if (also_set_partials) {
1125 if (also_set_partials) {
1164 bool used_mRNA =
false;
1165 string clause_product, mRNA_product;
1166 bool adjust_partials =
true;
1175 adjust_partials =
false;
1214 bool used_gene =
false;
1222 string noncoding_product_name;
1259 Label(suppress_allele);
1267 Label(suppress_allele);
1276 bool ok_to_group =
false;
1278 if (parent_clause ==
NULL) {
1361 if (parent_clause ==
NULL) {
1384 || (parent_clause->
IsGeneCluster() && gene_cluster_opp_strand)) {
1392 if (promoter_stop == parent_start + 1) {
1395 }
else if (promoter_stop + 1 == parent_start) {
1401 CSeq_loc_CI seq_loc_it(*(parent_clause->
GetLocation()));
1405 int prev_start = seq_loc_it.GetRange().GetFrom();
1406 int prev_stop = seq_loc_it.GetRange().GetTo();
1408 while (seq_loc_it) {
1409 int cds_start = seq_loc_it.GetRange().GetFrom();
1410 int cds_stop = seq_loc_it.GetRange().GetTo();
1411 if ((intron_start == prev_stop + 1 && intron_stop == cds_start - 1)
1412 || (intron_start == cds_stop + 1 && intron_stop == prev_start - 1)) {
1415 prev_start = cds_start;
1416 prev_stop = cds_stop;
1420 if (intron_start > prev_stop && intron_start - 1 == prev_stop) {
1422 }
else if (prev_start > intron_stop && prev_start - 1 == intron_stop) {
1436 if (subclause ==
NULL || subclause ==
this) {
1465 for (
unsigned int k = 0; k <
m_ClauseList.size(); k++) {
1502 if ((*it)->IsSetQual() &&
1504 (*it)->IsSetVal() &&
1526 m_UseComment (m_Opts.GetUseNcRNAComment())
1538 string ncrna_product;
1544 ncrna_product = ext.
GetName();
1548 }
else if (ext.
IsGen()) {
1568 string ncrna_comment;
1572 string::size_type pos =
NStr::Find(ncrna_comment,
";");
1573 if (pos != NCBI_NS_STD::string::npos) {
1574 ncrna_comment = ncrna_comment.substr(0, pos);
1580 product_name = ncrna_product;
1582 product_name +=
" " + ncrna_class;
1585 product_name = ncrna_class;
1587 product_name = ncrna_comment;
1589 product_name =
"non-coding RNA";
1597 "insertion sequence",
1599 "non-LTR retrotransposon",
1602 "transposable element",
1616 mobile_element_name = mobile_element_name.substr(6);
1618 bool found_keyword =
false;
1644 found_keyword =
true;
1651 found_keyword =
true;
1653 &&
isspace(mobile_element_name.c_str()[pos])) {
1661 if (!found_keyword) {
1719 string::size_type pos =
NStr::Find(comment,
";");
1720 if (pos != NCBI_NS_STD::string::npos) {
1721 comment = comment.substr(0, pos);
1735 comment = prefix +
" " + comment;
1738 comment = comment.substr (0,
len) +
" " + comment.substr (
len + 1);
1809 comment = comment.substr(9);
1813 comment = comment.substr(17);
1831 string::size_type pos =
NStr::Find(comment,
"intergenic spacer");
1832 if (pos != NCBI_NS_STD::string::npos) {
1861 string::size_type pos =
NStr::Find(comment,
";");
1862 if (pos != NCBI_NS_STD::string::npos) {
1863 comment = comment.substr(0, pos);
1882 const string& description,
bool is_first,
bool is_last,
const CAutoDefOptions& opts)
1888 if (pos != string::npos) {
1963 string product_name;
1985 string gene_name,
string product_name,
2007 string::size_type pos =
NStr::Find(comment,
"gene cluster");
2008 if (pos == NCBI_NS_STD::string::npos) {
2017 if (pos != NCBI_NS_STD::string::npos) {
2018 comment = comment.substr(0, pos);
2045 if (pos != NCBI_NS_STD::string::npos) {
2077 if (elements.empty()) {
2080 ITERATE(vector<string>, it, elements) {
2083 if (*it == elements.back()) {
2144 if (parent_clause ==
NULL) {
2154 bool ok_to_group =
false;
2156 if (parent_clause ==
NULL) {
2229 vector<CRef<CAutoDefFeatureClause > > rval;
2231 string::size_type pos;
2261 bool is_region =
false;
2270 if (pos != string::npos) {
2271 comment = comment.substr(0, pos);
2278 if (!elements.empty()) {
2279 for (
auto s : elements) {
2281 (s == elements.front()), (s == elements.back()), opts));
2282 new_clause->SetMiscRNAWord(s);
2283 rval.push_back(new_clause);
2287 if (!elements.empty()) {
2288 for (
auto s : elements) {
2289 size_t pos =
NStr::Find(s,
"intergenic spacer");
2290 if (pos != string::npos) {
2295 (s == elements.front()),
2296 (s == elements.back()), opts)));
2318 vector<CRef<CAutoDefFeatureClause> > rval;
2325 if (phrases.size() < 2) {
2330 string last = phrases.back();
2332 ITERATE(vector<string>, it, phrases) {
2344 vector<CRef<CAutoDefFeatureClause> > rval;
2364 if (misc_rna.empty()) {
2367 for (
auto it : misc_rna) {
2380 if (misc_rna.empty()) {
2384 if (misc_rna.empty()) {
2388 for (
auto it : misc_rna) {
2397 if (misc_rna.empty()) {
2401 if (misc_rna.empty()) {
2404 if (!is_single_misc_feat &&
2415 misc_rna.push_back(new_clause);
2418 if (!misc_rna.empty()) {
2419 for (
auto it : misc_rna) {
@ eExtreme_Biological
5' and 3'
User-defined methods of the data storage class.
vector< CRef< CAutoDefFeatureClause > > AddMiscRNAFeatures(const CBioseq_Handle &bh, const CSeq_feat &cf, const CSeq_loc &mapped_loc, const CAutoDefOptions &opts)
CAutoDefParsedtRNAClause * s_tRNAClauseFromNote(CBioseq_Handle bh, const CSeq_feat &cf, const CSeq_loc &mapped_loc, string comment, bool is_first, bool is_last, const CAutoDefOptions &opts)
vector< CRef< CAutoDefFeatureClause > > AddtRNAAndOther(const CBioseq_Handle &bh, const CSeq_feat &cf, const CSeq_loc &mapped_loc, const CAutoDefOptions &opts)
const char * kMicrosatellite
void s_UseCommentBeforeSemicolon(const CSeq_feat &feat, string &label)
static string mobile_element_keywords[]
vector< CRef< CAutoDefFeatureClause > > FeatureClauseFactory(CBioseq_Handle bh, const CSeq_feat &cf, const CSeq_loc &mapped_loc, const CAutoDefOptions &opts, bool is_single_misc_feat)
const char * kMinisatellite
@ eMiscRnaWordType_InternalSpacer
@ eMiscRnaWordType_RNAIntergenicSpacer
@ eMiscRnaWordType_ExternalSpacer
@ eMiscRnaWordType_IntergenicSpacer
virtual bool SameStrand(const CSeq_loc &loc) const
virtual CSeqFeatData::ESubtype GetMainFeatureSubtype() const
static vector< string > GetFeatureClausePhrases(string comment)
const string & GetProductName() const
virtual CRef< CSeq_loc > GetLocation() const
virtual bool OkToGroupUnderByType(const CAutoDefFeatureClause_Base *) const
virtual bool IsMobileElement() const
bool IsAltSpliced() const
virtual bool IsNoncodingProductFeat() const
virtual bool IsGeneCluster() const
string ListClauses(bool allow_semicolons, bool suppress_final_and, bool suppress_allele)
static ERnaMiscWord x_GetRnaMiscWordType(const string &phrase)
virtual CAutoDefFeatureClause_Base * FindBestParentClause(CAutoDefFeatureClause_Base *subclause, bool gene_cluster_opp_strand)
static CRef< CAutoDefFeatureClause > ClauseFromPhrase(const string &phrase, CBioseq_Handle bh, const CSeq_feat &cf, const CSeq_loc &mapped_loc, bool first, bool last, const CAutoDefOptions &opts)
const CAutoDefOptions & m_Opts
const string & GetGeneName() const
virtual bool IsInsertionSequence() const
static vector< string > GetMiscRNAElements(const string &product)
const string & GetAlleleName() const
virtual bool OkToGroupUnderByLocation(const CAutoDefFeatureClause_Base *, bool) const
virtual sequence::ECompare CompareLocation(const CSeq_loc &loc) const
virtual bool IsEndogenousVirusSourceFeature() const
static vector< string > GetTrnaIntergenicSpacerClausePhrases(const string &comment)
bool GetGeneIsPseudo() const
bool m_SuppressSubfeatures
static const string & x_GetRnaMiscWord(ERnaMiscWord word_type)
string x_GetGeneName(const CGene_ref &gref, bool suppress_locus_tag) const
bool x_GetFeatureTypeWord(string &typeword)
bool DoesmRNAProductNameMatch(const string &mrna_product) const
virtual bool OkToGroupUnderByType(const CAutoDefFeatureClause_Base *parent_clause) const
virtual bool IsExonWithNumber() const
virtual bool IsRecognizedFeature() const
virtual bool IsPartial() const
bool x_GetNoncodingProductFeatProduct(string &product) const
virtual bool IsPromoter() const
virtual void ReverseCDSClauseLists()
@ eEndogenousVirusRepeatRegion
void x_GetOperonSubfeatures(string &interval)
virtual CAutoDefFeatureClause_Base * FindBestParentClause(CAutoDefFeatureClause_Base *subclause, bool gene_cluster_opp_strand)
virtual bool IsMobileElement() const
virtual bool IsInsertionSequence() const
virtual bool IsGeneCluster() const
static bool IsPseudo(const CSeq_feat &f)
virtual bool ShouldRemoveExons() const
virtual void Label(bool suppress_allele)
virtual CSeqFeatData::ESubtype GetMainFeatureSubtype() const
virtual bool IsSatelliteClause() const
CConstRef< CSeq_feat > m_pMainFeat
virtual bool OkToGroupUnderByLocation(const CAutoDefFeatureClause_Base *parent_clause, bool gene_cluster_opp_strand) const
virtual bool IsBioseqPrecursorRNA() const
virtual bool x_IsPseudo()
virtual bool SameStrand(const CSeq_loc &loc) const
virtual void AddToLocation(CRef< CSeq_loc > loc, bool also_set_partials=true)
bool x_FindNoncodingFeatureKeywordProduct(string comment, string keyword, string &product_name) const
virtual sequence::ECompare CompareLocation(const CSeq_loc &loc) const
static bool IsSatellite(const CSeq_feat &feat)
virtual bool IsNoncodingProductFeat() const
virtual bool x_GetProductName(string &product_name)
virtual bool IsControlRegion() const
virtual bool AddmRNA(CAutoDefFeatureClause_Base *mRNAClause)
void x_TypewordFromSequence()
virtual bool AddGene(CAutoDefFeatureClause_Base *gene_clause, bool suppress_allele)
virtual CRef< CSeq_loc > GetLocation() const
virtual bool IsLTR() const
CMolInfo::TBiomol m_Biomol
bool x_GetExonDescription(string &description)
bool x_GetGenericInterval(string &interval, bool suppress_allele)
virtual bool IsEndogenousVirusSourceFeature() const
CRef< CSeq_loc > m_ClauseLocation
bool x_ShowTypewordFirst(string typeword)
bool x_GetDescription(string &description)
virtual EClauseType GetClauseType() const
bool GetSuppressLocusTag()
virtual bool x_IsPseudo()
CAutoDefGeneClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, const CAutoDefOptions &opts)
virtual bool x_GetProductName(string &product_name)
~CAutoDefGeneClusterClause()
virtual void Label(bool suppress_allele)
CAutoDefGeneClusterClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, const CAutoDefOptions &opts)
~CAutoDefIntergenicSpacerClause()
void InitWithString(string comment, bool suppress_allele)
virtual void Label(bool suppress_allele)
CAutoDefIntergenicSpacerClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, const CAutoDefOptions &opts)
virtual void Label(bool suppress_allele)
~CAutoDefMobileElementClause()
CAutoDefMobileElementClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, const CAutoDefOptions &opts)
virtual bool x_GetProductName(string &product_name)
CAutoDefNcRNAClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, const CAutoDefOptions &opts)
TMiscFeatRule GetMiscFeatRule() const
bool IsFeatureSuppressed(CSeqFeatData::ESubtype subtype) const
void SetTypewordFirst(bool typeword_first)
CAutoDefParsedClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, bool is_first, bool is_last, const CAutoDefOptions &opts)
void SetTypeword(string typeword)
void SetMiscRNAWord(const string &phrase)
CAutoDefParsedIntergenicSpacerClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, const string &description, bool is_first, bool is_last, const CAutoDefOptions &opts)
~CAutoDefParsedIntergenicSpacerClause()
CAutoDefParsedRegionClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, string product, const CAutoDefOptions &opts)
virtual void Label(bool suppress_allele)
~CAutoDefParsedRegionClause()
~CAutoDefParsedtRNAClause()
CAutoDefParsedtRNAClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, string gene_name, string product_name, bool is_first, bool is_last, const CAutoDefOptions &opts)
static bool ParseString(string comment, string &gene_name, string &product_name)
CAutoDefSatelliteClause(CBioseq_Handle bh, const CSeq_feat &main_feat, const CSeq_loc &mapped_loc, const CAutoDefOptions &opts)
~CAutoDefSatelliteClause()
virtual void Label(bool suppress_allele)
bool IsSuppressed(void) const
string GetRnaProductName(void) const
ESubtype GetSubtype(void) const
@ eSubtype_mobile_element
@ eSubtype_sig_peptide_aa
@ eSubtype_mat_peptide_aa
namespace ncbi::objects::
const string & GetNamedQual(const CTempString &qual_name) const
Return a named qualifier.
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
static DLIST_TYPE *DLIST_NAME() last(DLIST_LIST_TYPE *list)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
static int BestRank(const CRef< CSeq_id > &id)
string GetLabel(const CSeq_id &id)
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 Add(const CSeq_loc &other)
Simple adding of seq-locs.
void SetPartialStart(bool val, ESeqLocExtremes ext)
set / remove e_Lim fuzz on start or stop (lt/gt - indicating partial interval)
void SetPartialStop(bool val, ESeqLocExtremes ext)
bool IsPartialStop(ESeqLocExtremes ext) const
@ fFGL_Content
Include its content if there is any.
TSeqPos GetStop(const CSeq_loc &loc, CScope *scope, ESeqLocExtremes ext=eExtreme_Positional)
If only one CBioseq is represented by CSeq_loc, returns the position at the stop of the location.
TSeqPos GetStart(const CSeq_loc &loc, CScope *scope, ESeqLocExtremes ext=eExtreme_Positional)
If only one CBioseq is represented by CSeq_loc, returns the position at the start of the location.
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_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.
@ eContains
First CSeq_loc contains second.
@ eSame
CSeq_locs contain each other.
@ eContained
First CSeq_loc contained by second.
CConstRef< CSeq_feat > GetGeneForFeature(const CSeq_feat &feat, CScope &scope)
Finds gene for feature, but obeys SeqFeatXref directives.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
TBioseqCore GetBioseqCore(void) const
Get bioseq core structure.
const CSeqFeatData & GetData(void) const
TInst_Length GetInst_Length(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
CConstRef< CSeq_feat > GetSeq_feat(void) const
Get current seq-feat.
void Reset(void)
Reset reference object.
#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.
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 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 void TrimPrefixInPlace(string &str, const CTempString prefix, ECase use_case=eCase)
Trim prefix from a string (in-place)
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 string & ReplaceInPlace(string &src, const string &search, const string &replace, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
@ eNocase
Case insensitive compare.
C::value_type FindBestChoice(const C &container, F score_func)
Find the best choice (lowest score) for values in a container.
static const char label[]
const TSubtype & GetSubtype(void) const
Get the Subtype member data.
bool CanGetSubtype(void) const
Check if it is safe to call GetSubtype method.
list< CRef< CSubSource > > TSubtype
@ eSubtype_endogenous_virus_name
const TDesc & GetDesc(void) const
Get the Desc member data.
bool IsSetPseudo(void) const
pseudogene Check if a value has been assigned to Pseudo data member.
bool CanGetLocus(void) const
Check if it is safe to call GetLocus method.
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 IsSetDesc(void) const
descriptive name Check if a value has been assigned to Desc data member.
bool CanGetAllele(void) const
Check if it is safe to call GetAllele method.
bool CanGetDesc(void) const
Check if it is safe to call GetDesc method.
bool CanGetPseudo(void) const
Check if it is safe to call GetPseudo method.
const TLocus_tag & GetLocus_tag(void) const
Get the Locus_tag member data.
const TLocus & GetLocus(void) const
Get the Locus member data.
const TAllele & GetAllele(void) const
Get the Allele member data.
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.
bool IsSetProduct(void) const
Check if a value has been assigned to Product data member.
bool IsSetExt(void) const
generic fields for ncRNA, tmRNA, miscRNA Check if a value has been assigned to Ext data member.
bool IsGen(void) const
Check if variant Gen is selected.
const TGen & GetGen(void) const
Get the variant data.
const TName & GetName(void) const
Get the variant data.
bool IsSetClass(void) const
for ncRNAs, the class of non-coding RNA: examples: antisense_RNA, guide_RNA, snRNA Check if a value h...
const TProduct & GetProduct(void) const
Get the Product member data.
const TExt & GetExt(void) const
Get the Ext member data.
bool IsName(void) const
Check if variant Name is selected.
const TClass & GetClass(void) const
Get the Class member data.
bool IsSetComment(void) const
Check if a value has been assigned to Comment 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.
E_Choice Which(void) const
Which variant is currently selected.
const TQual & GetQual(void) const
Get the Qual member data.
bool IsSetPartial(void) const
incomplete in some way? Check if a value has been assigned to Partial data member.
const TData & GetData(void) const
Get the Data member data.
const TBiosrc & GetBiosrc(void) const
Get the variant data.
const TProduct & GetProduct(void) const
Get the Product member data.
bool IsSetPseudo(void) const
annotated on pseudogene? Check if a value has been assigned to Pseudo data member.
const TComment & GetComment(void) const
Get the Comment member data.
const TGene & GetGene(void) const
Get the variant data.
TPartial GetPartial(void) const
Get the Partial member data.
const TProt & GetProt(void) const
Get the variant data.
vector< CRef< CGb_qual > > TQual
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 CanGetPseudo(void) const
Check if it is safe to call GetPseudo method.
bool CanGetComment(void) const
Check if it is safe to call GetComment method.
ENa_strand
strand of nucleic acid
bool IsSetBiomol(void) const
Check if a value has been assigned to Biomol data member.
const TId & GetId(void) const
Get the Id member data.
TBiomol GetBiomol(void) const
Get the Biomol member data.
const TMolinfo & GetMolinfo(void) const
Get the variant data.
@ eBiomol_pre_RNA
precursor RNA of any sort really
@ eBiomol_cRNA
viral RNA genome copy intermediate
@ eBiomol_other_genetic
other genetic material
@ e_Molinfo
info on the molecule and techniques
use n only the LMDB cache</td > n</tr > n< tr > n< td ></td > n< td > use the LMDB cache if at all possible
Miscellaneous common-use basic types and functionality.