( type1 != type2 ) {
120 intdiff = order1 - order2;
139 intdiff = subtype1 - subtype2;
173 if(diff)
returndiff;
177 returns1.str().compare(s2.str());
185 if((*it)->IsSetData () && (*it)->GetData ().IsGene ()) {
186 return&((*it)->GetData ().GetGene ());
204xref.push_back(gref);
205gref->SetData().SetGene(
value);
214 returnref.
SetData().SetGene();
218xref.push_back(gref);
219 returngref->SetData().SetGene();
226 if((*it)->IsSetData () && (*it)->GetData ().IsProt ()) {
227 return&((*it)->GetData ().GetProt ());
245xref.push_back(pref);
246pref->SetData().SetProt(
value);
256 returnref.
SetData().SetProt();
260xref.push_back(pref);
261 returnpref->SetData().SetProt();
271 if((*xit)->IsSetId() && (*xit)->GetId().Equals(
id)) {
285x1->SetId().Assign(
id);
300 const string& qual_name,
const string& qual_val)
304 if( (*iter)->GetQual() == qual_name ) {
305(*iter)->SetVal(qual_val);
331 if( (*iter)->GetQual() != qual_name ) {
332new_qual_vec.push_back(*iter);
336 if( new_qual_vec.size() !=
GetQual().
size() ) {
338 if( new_qual_vec.empty() ) {
380 if( ! sCurrentExceptTextContents.empty() ) {
381sCurrentExceptTextContents +=
", ";
392list<CTempString> list_of_except_texts;
396 stringnew_except_texts;
397 ITERATE(list<CTempString>, text_it, list_of_except_texts) {
399 if( ! new_except_texts.empty() ) {
400new_except_texts +=
", ";
407 if( new_except_texts.empty() ) {
419 if( (*iter)->GetDb() == db) {
433 if( (*iter)->GetQual() == qual_name && (*iter)->IsSetVal()) {
434 return(*iter)->GetVal();
454vector<CTempStringEx> exception_parts;
457 ITERATE( vector<CTempStringEx>, part_it, exception_parts ) {
469 if( sCleanedInputText.
empty() ) {
478 return( p_exception_text_set->find(sCleanedInputText) !=
479p_exception_text_set->end() );
487{
"16S ribosomal RNA and 23S ribosomal RNA overlap",
true},
488{
"16S ribosomal RNA and 5S ribosomal RNA overlap",
true},
489{
"23S ribosomal RNA and 16S ribosomal RNA overlap",
true},
490{
"23S ribosomal RNA and 5S ribosomal RNA overlap",
true},
491{
"5S ribosomal RNA and 16S ribosomal RNA overlap",
true},
492{
"5S ribosomal RNA and 23S ribosomal RNA overlap",
true},
493{
"adjusted for low-quality genome",
true},
494{
"alternative processing",
false},
495{
"alternative start codon",
false},
496{
"annotated by transcript or proteomic data",
false},
497{
"artificial frameshift",
false},
498{
"artificial location",
false},
499{
"circular RNA",
false},
500{
"dicistronic gene",
false},
501{
"gene split at contig boundary",
false},
502{
"gene split at sequence boundary",
false},
503{
"genetic code exception",
false},
504{
"heterogeneous population sequenced",
false},
505{
"low-quality sequence region",
false},
506{
"mismatches in transcription",
true},
507{
"mismatches in translation",
true},
508{
"modified codon recognition",
false},
509{
"nonconsensus splice site",
false},
510{
"rearrangement required for product",
false},
511{
"reasons given in citation",
false},
512{
"ribosomal slippage",
false},
513{
"RNA editing",
false},
514{
"trans-splicing",
false},
515{
"transcribed product replaced",
false},
516{
"transcribed pseudogene",
false},
517{
"translated product replaced",
false},
518{
"translation initiation by tRNA-Leu at CUG codon",
true},
519{
"unclassified transcription discrepancy",
true},
520{
"unclassified translation discrepancy",
true},
521{
"unextendable partial coding region",
false}
528vector<string> exception_list;
531 while(it != sc_ExceptionPairMap.end()) {
532 if(include_refseq || !it->second) {
533exception_list.push_back(it->first);
538 returnexception_list;
545 if(it != sc_ExceptionPairMap.end() && (allow_refseq || !it->second)) {
556 if(it == sc_ExceptionPairMap.end()) {
569 const CObject_id& obj_type = (*it)->GetType();
570 if( obj_type.
IsStr() && obj_type.
GetStr() == ext_type ) {
571ret.
Reset(it->GetPointer());
577 if(
GetExt().GetType().IsStr()) {
578 if(
GetExt().GetType().GetStr() == ext_type) {
581 else if(
GetExt().GetType().GetStr() ==
"CombinedFeatureUserObjects") {
584 if(
f.GetData().IsObject() &&
585 f.GetData().GetObject().GetType().IsStr() &&
586 f.GetData().GetObject().GetType().GetStr() == ext_type) {
587ret.
Reset(&
f.GetData().GetObject());
602 const CObject_id& obj_type = (*it)->GetType();
603 if( obj_type.
IsStr() && obj_type.
GetStr() == ext_type ) {
604ret.
Reset(it->GetPointer());
610 if(
GetExt().GetType().IsStr()) {
611 if(
GetExt().GetType().GetStr() == ext_type) {
614 else if(
GetExt().GetType().GetStr() ==
"CombinedFeatureUserObjects") {
617 if(
f.GetData().IsObject() &&
618 f.GetData().GetObject().GetType().IsStr() &&
619 f.GetData().GetObject().GetType().GetStr() == ext_type) {
620ret.
Reset(&
f.SetData().SetObject());
655 const CObject_id& obj_type = (*it)->GetType();
656 if( obj_type.
IsStr() && obj_type.
GetStr() == ext_type ) {
660 if( exts.empty() ) {
665 if(
GetExt().GetType().IsStr()) {
666 if(
GetExt().GetType().GetStr() == ext_type) {
669 else if(
GetExt().GetType().GetStr() ==
"CombinedFeatureUserObjects") {
676 if(
f.GetData().IsObject() &&
677 f.GetData().GetObject().GetType().IsStr() &&
678 f.GetData().GetObject().GetType().GetStr() == ext_type) {
681new_ext_data.push_back(*it);
684 if( new_ext_data.empty() ) {
686}
else if( new_ext_data.size() != curr_ext_data.size() ) {
688new_ext_data.swap(curr_ext_data);
bool IsReverse(ENa_strand s)
static int s_GetCdregionOrder(const CSeqFeatData &fd)
DEFINE_STATIC_ARRAY_MAP(TExceptionPairMap, sc_ExceptionPairMap, k_LegalExceptionMap)
static bool s_IsOperon(const CSeqFeatData &fd)
CStaticArrayMap< const char *, bool, PNocase_CStr > TExceptionPairMap
SStaticPair< const char *, bool > TExceptionPairElem
static const TExceptionPairElem k_LegalExceptionMap[]
@Gb_qual.hpp User-defined methods of the data storage class.
ESubtype GetSubtype(void) const
namespace ncbi::objects::
const CProt_ref * GetProtXref(void) const
get protein (if present) from Seq-feat.xref list
const string & GetNamedQual(const CTempString &qual_name) const
Return a named qualifier.
int GetTypeSortingOrder(void) const
Return relative importance order of features by their type.
void RemoveExceptText(const string &exception_text)
Remove all instances of the given exception text in this feature, and reset the except flag if there ...
void AddExceptText(const string &exception_text)
Add the given exception_text and set the except flag to true.
bool HasSeqFeatXref(const CSeqFeatXref::TId &id) const
CProt_ref & SetProtXref(void)
int CompareNonLocation(const CSeq_feat &f2, const CSeq_loc &loc1, const CSeq_loc &loc2) const
Compare relative order of this feature and feature f2 similarily to the Compare() method,...
void RemoveExt(const string &ext_type)
Remove all Exts with the given type.
CConstRef< CDbtag > GetNamedDbxref(const CTempString &db) const
Return a specified DB xref.
int CompareStrict(const CSeq_feat &f2) const
Compare features more thoroughly than Compare() - return zero only if the features are identical,...
CConstRef< CUser_object > FindExt(const string &ext_type) const
Find extension by type in exts container.
CGene_ref & SetGeneXref(void)
static vector< string > GetListOfLegalExceptions(bool include_refseq)
Produces the list of legal exceptions.
int TAddExt
binary OR of EAddExt
bool HasExceptionText(const string &exception_text) const
Returns whether or not the given exception_text is set for this feature.
int Compare(const CSeq_feat &f2) const
Compare relative order of this feature and feature f2, ordering first by features' coordinates,...
void AddOrReplaceQualifier(const string &qual_name, const string &qual_val)
Add a qualifier to this feature, or replace the value for the first one if it already exists.
static bool IsExceptionTextInLegalList(const string &exception_text, bool allow_refseq)
Indicates whether this specific text occurs in the list of legal exceptions.
void AddQualifier(const string &qual_name, const string &qual_val)
Add a qualifier to this feature.
void RemoveQualifier(const string &qual_name)
Remove all qualifiers with the given name; do nothing if no such qualifier exists.
@ fAddExt_ReplaceAll
Before adding, remove all previous.
AutoPtr< TExceptionTextSet > GetTempExceptionTextSet(void) const
Returns a case-insensitive set of exception texts.
const CGene_ref * GetGeneXref(void) const
See related function in util/feature.hpp.
void AddDbxref(const string &db_name, const string &db_key)
add a DB xref to this feature
void AddExt(CRef< CUser_object > ext, TAddExt add_flags=0)
Add an extension by type in exts container.
bool AddSeqFeatXref(const CSeqFeatXref::TId &id)
static bool IsExceptionTextRefSeqOnly(const string &exception_text)
Indicates whether this specific text is a RefSeq-only exception.
~CSeq_feat(void)
destructor
class CStaticArrayMap<> provides access to a static array in much the same way as CStaticArraySet<>,...
TBase::const_iterator const_iterator
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define ERASE_ITERATE(Type, Var, Cont)
Non-constant version with ability to erase current element, if container permits.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define NCBI_USER_THROW(message)
Throw a quick-and-dirty runtime exception of type 'CException' with the given error message and error...
#define MSerial_AsnText
I/O stream manipulators â.
ENa_strand GetStrand(void) const
Get the location's strand.
int CompareSubLoc(const CSeq_loc &loc, ENa_strand strand, const ISubLocFilter *filter=NULL) const
Compare first-level sub-locations sequentially to order them by biological "complexity".
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
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 list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
bool empty(void) const
Return true if the represented string is empty (i.e., the length is zero)
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 string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string.
@ fSplit_Tokenize
All delimiters are merged and trimmed, to get non-empty tokens only.
bool IsStr(void) const
Check if variant Str is selected.
bool IsSetType(void) const
type of object within class Check if a value has been assigned to Type data member.
void SetTag(TTag &value)
Assign a value to Tag data member.
TData & SetData(void)
Assign a value to Data data member.
const TStr & GetStr(void) const
Get the variant data.
const TType & GetType(void) const
Get the Type member data.
void SetDb(const TDb &value)
Assign a value to Db data member.
vector< CRef< CUser_field > > TData
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.
vector< CRef< CDbtag > > TDbxref
TDbxref & SetDbxref(void)
Assign a value to Dbxref data member.
void SetData(TData &value)
Assign a value to Data data member.
const TData & GetData(void) const
Get the Data member data.
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 TExts & GetExts(void) const
Get the Exts member data.
bool IsProt(void) const
Check if variant Prot is selected.
bool IsSetExt(void) const
user defined structure extension Check if a value has been assigned to Ext data member.
TExcept & SetExcept(void)
Assign a value to Except data member.
list< CRef< CUser_object > > TExts
void ResetExcept(void)
Reset Except data member.
const TQual & GetQual(void) const
Get the Qual member data.
bool IsSetXref(void) const
cite other relevant features Check if a value has been assigned to Xref data member.
TExts & SetExts(void)
Assign a value to Exts data member.
E_Choice
Choice variants.
TData & SetData(void)
Assign a value to Data data member.
void ResetExts(void)
Reset Exts data member.
bool IsGene(void) const
Check if variant Gene is selected.
TFrame GetFrame(void) const
Get the Frame member data.
const TData & GetData(void) const
Get the Data member data.
bool IsSetData(void) const
the specific data Check if a value has been assigned to Data data member.
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 TDbxref & GetDbxref(void) const
Get the Dbxref member data.
const TCdregion & GetCdregion(void) const
Get the variant data.
void ResetExt(void)
Reset Ext data member.
void SetVal(const TVal &value)
Assign a value to Val data member.
bool IsSetExts(void) const
set of extensions; will replace 'ext' field Check if a value has been assigned to Exts data member.
TExt & SetExt(void)
Assign a value to Ext data member.
TExcept GetExcept(void) const
Get the Except member data.
const TXref & GetXref(void) const
Get the Xref member data.
vector< CRef< CSeqFeatXref > > TXref
vector< CRef< CGb_qual > > TQual
bool IsSetDbxref(void) const
support for xref to other databases Check if a value has been assigned to Dbxref data member.
TQual & SetQual(void)
Assign a value to Qual data member.
const TExt & GetExt(void) const
Get the Ext member data.
TExcept_text & SetExcept_text(void)
Assign a value to Except_text data member.
void ResetQual(void)
Reset Qual data member.
const TImp & GetImp(void) const
Get the variant data.
@ eFrame_not_set
not set, code uses one
ENa_strand
strand of nucleic acid
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
Template structure SStaticPair is simlified replacement of STL pair<> Main reason of introducing this...
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