(
value.find_first_of(
"\"=") != string::npos) {
96 if(!
value.empty()) {
112 for(; (p2 =
value.find(replace_what, p1)) != string::npos;
113p1 = p2 + 1, p2 =
value.length()) {
160 #define SEQENTRY_HANDLE_ON_SEQENTRY_HANDLE_ITERATOR(Itr, Var) \ 161 CSeq_entry_CI Itr(Var) 163 #define FOR_EACH_SEQENTRY_HANDLE_ON_SEQENTRY_HANDLE(Itr, Var) \ 164 for (SEQENTRY_HANDLE_ON_SEQENTRY_HANDLE_ITERATOR(Itr, Var); Itr; ++Itr) 170 #define FOR_EACH_SEQID_ON_BIOSEQ_HANDLE(Itr, Var) \ 171 ITERATE (CBioseq_Handle::TId, Itr, Var.GetId()) 178 #define SEQFEAT_ON_BIOSEQ_HANDLE_ITERATOR(Itr, Var, Chs) \ 179 CFeat_CI Itr(Var, CSeqFeatData::e_##Chs) 181 #define FOR_EACH_SEQFEAT_ON_BIOSEQ_HANDLE(Itr, Var, Chs) \ 182 for (SEQFEAT_ON_BIOSEQ_HANDLE_ITERATOR(Itr, Var, Chs); Itr; ++Itr) 189 #define SEQFEAT_ON_SCOPE_ITERATOR(Itr, Var, Loc, Chs) \ 190 CFeat_CI Itr(Var, Loc, CSeqFeatData::e_##Chs) 192 #define FOR_EACH_SEQFEAT_ON_SCOPE(Itr, Var, Loc, Chs) \ 193 for (SEQFEAT_ON_SCOPE_ITERATOR(Itr, Var, Loc, Chs); Itr; ++Itr) 200 #define SELECTED_SEQFEAT_ON_BIOSEQ_HANDLE_ITERATOR(Itr, Var, Sel) \ 201 CFeat_CI Itr(Var, Sel) 203 #define FOR_SELECTED_SEQFEAT_ON_BIOSEQ_HANDLE(Itr, Var, Sel) \ 204 for (SELECTED_SEQFEAT_ON_BIOSEQ_HANDLE_ITERATOR(Itr, Var, Sel); Itr; ++Itr) 209 #define twochars(a,b) Uint2((a) << 8 | (b)) 210 #define twocommas twochars(',',',') 211 #define twospaces twochars(' ',' ') 212 #define space_comma twochars(' ',',') 213 #define space_bracket twochars(' ',')') 214 #define bracket_space twochars('(',' ') 215 #define space_semicolon twochars(' ',';') 216 #define comma_space twochars(',',' ') 217 #define semicolon_space twochars(';',' ') 221 size_tleft = instr.
size();
223 const char*
in= instr.
data();
226 while(left && *
in==
' ')
232 while(left &&
in[left - 1] ==
' ')
239 if(left < 1)
return;
242 char*
out= (
char*)dest.c_str();
248 Uint2two_chars = curr;
253two_chars =
Uint2((two_chars << 8) |
next);
278 while(
next==
' '||
next==
',') {
288 while(
next==
' '||
next==
';') {
304 if(curr > 0 && curr !=
' ') {
308dest.resize(
out- dest.c_str());
345 result=
"mitochondrial";
347 result=
"mitochondrion";
362 result=
"extrachromosomal";
412 result=
"endogenous virus";
415 result=
"hydrogenosome";
421 result=
"chromatophore";
545 intunverified_count = 0;
563 if(unverified_count > 1) {
747 switch(sid.
Which()) {
759 const CTextseq_id& tsid = *
id->GetTextseq_Id ();
793 const CDbtag& gen_id =
id->GetGeneral ();
799}
else if(oid.
IsId()) {
840 enumENeededDescChoices {
850 intneeded_desc_choices = fMolinfo | fUser | fSource | fGenbank | fEmbl | fComment;
853desc_choices.reserve(7);
863needed_desc_choices |= fTitle;
867needed_desc_choices |= fPdb;
871 constlist <string> *keywords =
NULL;
873 intnum_super_kingdom = 0;
874 boolsuper_kingdoms_different =
false;
877needed_desc_choices != 0 && desc_it; ++desc_it) {
878 switch(desc_it->Which()) {
882 if((needed_desc_choices & fMolinfo) == 0) {
886 const CMolInfo& molinf = desc_it->GetMolinfo();
897needed_desc_choices &= ~fTitle;
933needed_desc_choices &= ~fMolinfo;
940 if((needed_desc_choices & fUser) == 0) {
948 intunverified_count = 0;
949needed_desc_choices &= ~fUser;
967 if(unverified_count > 1) {
976}
else if(user_obj.
GetType().
GetStr() ==
"AutodefOptions") {
986}
else if(user_obj.
GetType().
GetStr() ==
"TpaAssembly") {
996 if((needed_desc_choices & fComment) == 0) {
1001 if(
NStr::Find(
m_Comment,
"[CAUTION] Could be the product of a pseudogene") != string::npos) {
1009 if((needed_desc_choices & fSource) != 0) {
1012needed_desc_choices &= ~fSource;
1014 const CBioSource&bsrc = desc_it->GetSource();
1018 for(
auto& omd : onp.
GetMod()) {
1019 if(omd->IsSetSubname()) {
1020 const string&
str= omd->GetSubname();
1034 if(! pon.
IsSet())
break;
1041 const string& lvl = te.
GetLevel();
1043num_super_kingdom++;
1048super_kingdoms_different =
true;
1052 if(num_super_kingdom > 1 && super_kingdoms_different) {
1061 if((needed_desc_choices & fTitle) != 0) {
1063 if(
m_IsPDB|| desc_it.GetSeq_entry_Handle().IsSeq() ) {
1067needed_desc_choices &= ~fTitle;
1073 if((needed_desc_choices & fGenbank) == 0) {
1076 const CGB_block& gbk = desc_it->GetGenbank();
1082needed_desc_choices &= ~(fGenbank | fEmbl);
1088 if((needed_desc_choices & fEmbl) == 0) {
1097needed_desc_choices &= ~fEmbl;
1103 if((needed_desc_choices & fPdb) == 0) {
1113needed_desc_choices &= ~fPdb;
1124 if(keywords !=
NULL) {
1126 const string& clause = *kw_itr;
1130 const string&
str= *k_itr;
1162 if(!
data.IsRsite())
continue;
1164 if(rsite.
IsStr()) {
1260}
catch(
constexception& ) {
1326 if(pon.
IsSet()) {
1335 const string& lvl = te.
GetLevel();
1349 const COrgMod& omd = **omd_itr;
1433}
catch(
constexception& ) {
1440vector<CTempString>& desc,
1446desc.push_back(
", pooled multiple clones");
1462desc.push_back(
", ");
1463desc.push_back(
buf);
1464desc.push_back(
" clones");
1467desc.push_back(
" clone ");
1479 if(strain.
size() >= taxname.
size()) {
1486pos = taxname.
find(
' ', pos + 1);
1492 if(pos == taxname.
size() - strain.
size()) {
1494 charch = taxname[pos - 1];
1498}
else if(pos == taxname.
size() - strain.
size() - 1
1499&& taxname[pos - 1] ==
'\'' 1500&& taxname[taxname.
size() - 1] ==
'\'') {
1511[](
charc) {
returnc ==
':'|| c ==
' '|| c ==
'\t'; }),
1519[](
charc) {
returnc ==
' '|| c ==
'\t'; }),
1531 if(!specimen_voucher.
empty()) {
1533joiner.
Add(
"voucher", specimen_voucher);
1537 if(!isolate.
empty() && (isolate != specimen_voucher)) {
1541joiner.
Add(
"isolate", isolate);
1557joiner.
Add(
"strain", add);
1563joiner.
Add(
"substr.", add);
1579joiner.
Add(
"location",
"linkage group",
eHideType);
1589vector<CTempString> clnvec;
1592 ITERATE(vector<CTempString>, it, clnvec) {
1618 booladd_gen_tag =
false;
1669add_gen_tag =
true;
1692 if(pos > 0 && !
isspace((
unsigned char)s[pos - 1]) ) {
1697 while(pos + 3 <
len&&
isdigit((
unsigned char)s[pos])) {
1700 if(s[pos] ==
'-'&& s[pos + 1] ==
'P'&&
1701 isalpha((
unsigned char)s[pos + 2]) &&
1702(pos + 3 ==
len|| strchr(
" ,;", s[pos + 3])) ) {
1713 unsigned intgenes = 0, cdregions = 0;
1728 const CSeq_feat& sft = feat_it->GetOriginalFeature();
1736cdregion.
Reset(&sft);
1744 stringcds_label, gene_label;
1754.
Add(gene_label).
Add(
"), mRNA");
1769 const CSeq_feat& sft = feat_it->GetOriginalFeature();
1822joiner.
Add(
"Sequence ").
Add(seqno).
Add(
" from Patent ")
1877joiner.
Add(
"strain", add);
1883joiner.
Add(
"substr.", add);
1891vector<CTempString> clnvec;
1893 ITERATE(vector<CTempString>, it, clnvec) {
1910joiner.
Add(
"completeness",
", complete sequence",
eHideType);
1939 const CSeq_feat& feat = feat_it->GetOriginalFeature();
1950 if(prot_length > longest) {
1952longest = prot_length;
1953bestprocessed = processed;
1954}
else if(prot_length == longest) {
1957 if(processed < bestprocessed) {
1959longest = prot_length;
1960bestprocessed = processed;
1965 if(longest == seq_len && prot_feat) {
2033}
catch(
constexception& ) {
2066cleaned_location->
Assign( *cds_loc );
2078cleaned_location->
Assign(*rev_loc);
2111 intcurrent_state = 0;
2113 const charch = *str_itr;
2118current_state = next_state;
2145 "endogenous virus",
2155 if(
str.empty())
return str;
2156 if(taxname.empty())
return str;
2159 if(
len< 5)
return str;
2160 if(
str[
len- 1] !=
']')
return str;
2163 stringsuffix =
str.substr(cp+1);
2165 if(suffix.length() != taxlen + 1)
return str;
2200 const char* prefix =
"";
2202 const string&
str= *prp_itr;
2230comma =
", isoform ";
2234comma =
" isoform ";
2255 if(! locus_tag.
empty()) {
2256 if(! isoform.empty()) {
2270 const string&
str= *act_itr;
2287 const string&
str= *syn_itr;
2315 if(! locus_tag.
empty()) {
2324 const string& low_qual =
"LOW QUALITY PROTEIN: ";
2348 if( organelle[0] !=
'\0'&& ! taxname.
empty()
2357 if((taxname.
empty() ||
2360taxname.
find(
"vector") ==
NPOS&&
2361taxname.
find(
"Vector") ==
NPOS)) &&
2383}
else if(! taxname.
empty()
) {
2413 const char* prefix =
"";
2415 const string&
str= *prp_itr;
2443comma =
", isoform ";
2447comma =
" isoform ";
2466 if(! locus_tag.
empty()) {
2478 const string&
str= *act_itr;
2494 const string&
str= *syn_itr;
2519 if(! locus_tag.
empty()) {
2527 const string& low_qual =
"LOW QUALITY PROTEIN: ";
2551 if( organelle[0] !=
'\0'&& ! taxname.
empty()
2560 if((taxname.
empty() ||
2563taxname.
find(
"vector") ==
NPOS&&
2564taxname.
find(
"Vector") ==
NPOS)) &&
2574}
else if(! taxname.
empty()
) {
2583 const char*& completeness,
2596 const CSeq_feat& cds = it->GetOriginalFeature();
2603completeness =
"partial";
2623 if(locus.empty()) {
2653 const char* completeness =
"complete";
2654 boolcds_found =
false;
2655 stringlocus, product;
2673vector<CTempString> clnvec;
2675 ITERATE(vector<CTempString>, it, clnvec) {
2682 if(! product.empty()) {
2686 if(! locus.empty()) {
2689 if((! product.empty()) || (! locus.empty())) {
2725vector<CTempString> clnvec;
2727 ITERATE(vector<CTempString>, it, clnvec) {
2749 if(!
tmp.empty()) {
2819prefix =
"TPA_exp: ";
2821prefix =
"TPA_inf: ";
2823prefix =
"TPA_asm: ";
2828 autonucx = bsxp.
Lock();
2830 if(nucx->IsTPAExp()) {
2831prefix =
"TPA_exp: ";
2832}
else if(nucx->IsTPAInf()) {
2833prefix =
"TPA_inf: ";
2834}
else if(nucx->IsTPAReasm()) {
2835prefix =
"TPA_asm: ";
2840 if(prefix.empty()) {
2848prefix =
"MULTISPECIES: ";
2851prefix =
"PUTATIVE PSEUDOGENE: ";
2862prefix =
"LOW QUALITY PROTEIN: ";
2885 type=
", LOW-PASS SEQUENCE SAMPLING";
2893 type=
", WORKING DRAFT SEQUENCE";
2897 type=
", *** SEQUENCING IN PROGRESS ***";
2906 unsigned intpieces = 1;
2914+
" "+ un +
"ordered pieces");
2923 type=
", complete sequence";
2928 type=
", mRNA sequence";
2933 type=
", sequence tagged site";
2938 type=
", genomic survey sequence";
2943 if(
m_MainTitle.find (
"whole genome shotgun sequencing project") ==
NPOS){
2944 type=
", whole genome shotgun sequencing project";
2946}
else if(
m_MainTitle.find (
"whole genome shotgun sequence") ==
NPOS) {
2957 type+=
", whole genome shotgun sequence";
2962 if(
m_MainTitle.find(
"transcriptome shotgun assembly") ==
NPOS) {
2963 type=
", transcriptome shotgun assembly";
2969 type=
", mRNA sequence";
2972 type=
", rRNA sequence";
2975 type=
", ncRNA sequence";
2983 type=
", transcribed RNA sequence";
2994 type=
", targeted locus study";
2998 type+=
", sequence";
3009 if(appendComplete) {
3013comp =
", complete sequence";
3019comp =
", complete genome";
3022comp =
", complete sequence";
3024comp =
", complete sequence";
3026comp =
", complete genome";
3034 unsigned intnum_gaps = 0;
3040+
" unordered pieces");
3044 if(! study.empty()) {
3045suffix =
" "+ study +
" "+
type+ comp;
3047suffix =
type+ comp;
3053 size_tpos =
str.find_last_not_of (
".,;~ ");
3055 str.erase (pos + 1);
3101len1 = title.length();
3102len2 = taxname.
length();
3104idx = len1 - len2 - 3;
3105 if(len1 > len2 + 4 && title [idx] ==
' '&& title [idx + 1] ==
'['&& title [len1 - 1] ==
']') {
3107 if(pos == idx + 2) {
3121 size_tpos, tpos =
NPOS, opos =
NPOS;
3149 if(len1 > len2 + 4) {
3151 if(tpos ==
NPOS) {
3155 if(tpos ==
NPOS) {
3160 if(tpos ==
NPOS) {
3174 if(tpos ==
NPOS)
return;
3187 if( !
str.empty() ) {
3188 stringparen =
"("+
str+
")";
3200 if(opos !=
NPOS) {
3223 if( organelle[0] !=
'\0'&& ! taxname.
empty()
3232 if((taxname.
empty() ||
3235taxname.
find(
"vector") ==
NPOS&&
3236taxname.
find(
"Vector") ==
NPOS)) &&
3242 autonucx = bsxp.
Lock();
3260}
else if(! taxname.
empty()
) {
3271 size_tpos, tpos =
NPOS, opos =
NPOS;
3306 if(len1 > len2 + 4) {
3308 if(tpos ==
NPOS) {
3313 if(tpos ==
NPOS) {
3327 if(tpos ==
NPOS)
return;
3340 if( !
str.empty() ) {
3341 stringparen =
"("+
str+
")";
3353 if(opos !=
NPOS) {
3376 if( organelle[0] !=
'\0'&& ! taxname.
empty()
3385 if((taxname.
empty() ||
3388taxname.
find(
"vector") ==
NPOS&&
3389taxname.
find(
"Vector") ==
NPOS)) &&
3395 autonucx = bsxp.
Lock();
3413}
else if(! taxname.
empty()
) {
3446 "UNVERIFIED_ASMBLY:",
3447 "UNVERIFIED_CONTAM:",
3478 boolstrain_seen =
false;
3493 if(
mod.IsSetSubtype() &&
mod.IsSetSubname()) {
3495 switch(
mod.GetSubtype()) {
3499<<
"key 'strain' would appear multiple times, but only using the first.");
3502strain_seen =
true;
3567joiner.
Add(
"specimen_voucher",
subname);
3603joiner.
Add(
"culture_collection",
subname);
3609joiner.
Add(
"metagenome_source",
subname);
3641gcode = std::to_string(icode);
3642joiner.
Add(
"gcode", gcode);
3660gcode = std::to_string(icode);
3661joiner.
Add(
"gcode", gcode);
3665joiner.
Add(
"gcode",
"11");
3674gcode = std::to_string(icode);
3675joiner.
Add(
"gcode", gcode);
3749joiner.
Add(
"insertion_seq_name",
subname);
3765joiner.
Add(
"endogenous_virus_name",
subname);
3768joiner.
Add(
"isolation_source",
subname);
3812joiner.
Add(
"germline",
"true");
3815joiner.
Add(
"rearranged",
"true");
3818joiner.
Add(
"transgenic",
"true");
3821joiner.
Add(
"environmental_sample",
"true");
3832 if( primers.
CanGet() ) {
3838 if( (*it)->IsSetForward() ) {
3840 if( forward.
CanGet() ) {
3842 const string&fwd_name = ( (*it2)->CanGetName() ? (*it2)->GetName().Get() :
kEmptyStr);
3843 if( ! fwd_name.empty() ) {
3844joiner.
Add(
"fwd-primer-name", fwd_name);
3846 const string&fwd_seq = ( (*it2)->CanGetSeq() ? (*it2)->GetSeq().Get() :
kEmptyStr);
3848 if( ! fwd_seq.empty() ) {
3849joiner.
Add(
"fwd-primer-seq", fwd_seq);
3855 if( (*it)->IsSetReverse() ) {
3857 if( reverse.
CanGet() ) {
3859 const string&rev_name = ((*it2)->CanGetName() ? (*it2)->GetName().Get() :
kEmptyStr);
3860 if( ! rev_name.empty() ) {
3861joiner.
Add(
"rev-primer-name", rev_name);
3863 const string&rev_seq = ( (*it2)->CanGetSeq() ? (*it2)->GetSeq().Get() :
kEmptyStr);
3865 if( ! rev_seq.empty() ) {
3866joiner.
Add(
"rev-primer-seq", rev_seq);
3914 if(pMolInfo !=
NULL) {
3915 const CMolInfo& molinfo = *pMolInfo;
3918 if(find_iter != sc_TechMap.end()) {
3924joiner.
Join(&modifiers);
3937 boolcapitalize =
true;
3938 boolappendComplete =
false;
3958 size_tpos =
m_MainTitle.find_last_not_of (
".,;~ ");
3963capitalize =
false;
4041appendComplete =
true;
4073 size_tpos = decoded.find_last_not_of (
",;~ ");
4075decoded.erase (pos + 1);
4087 if( prefix.empty() ) {
4096 stringpenult = mag + prefix + decoded + suffix;
4101 if(!
final.
empty() &&
islower((
unsigned char)
final[0]) && capitalize) {
4102 final[0] =
toupper((
unsigned char)
final[0]);
4139feature::CFeatTree& ftree,
4167feature::CFeatTree& ftree,
4180 AddWord(
"heterogeneous population sequenced", 1);
4181 AddWord(
"low-quality sequence region", 2);
4182 AddWord(
"unextendable partial coding region", 3);
User-defined methods of the data storage class.
User-defined methods of the data storage class.
void remove_if(Container &c, Predicate *__pred)
void SetOptions(const CAutoDefOptions &options)
void InitFromUserObject(const CUser_object &obj)
void SetOptionsObject(const CUser_object &user)
string GetOneDefLine(CAutoDefModifierCombo *mod_combo, const CBioseq_Handle &bh, CRef< feature::CFeatTree > featTree=null)
const string & GetTaxname(void) const
const COrgName & GetOrgname(void) const
bool IsSetOrgname(void) const
bool IsSetTaxname(void) const
CTempString GetSubstrain(void)
int GetPatentSequence(void) const
CSeq_inst::TLength GetLength(void) const
CTempString GetCultivar(void)
CTempString GetMetaGenomeSource(void)
CTempString GetBreed(void)
CTempString GetGenus(void)
CMolInfo::TTech GetTech(void)
CRef< CFeatureIndex > GetFeatureForProduct(void)
CTempString GetStrain(void)
bool IsTSAMaster(void) const
bool IsHTGSCancelled(void)
bool IsThirdParty(void) const
bool IsPatent(void) const
bool IsUnverifiedFeature(void)
CTempString GetSpecies(void)
CConstRef< CBioSource > GetBioSource(void)
bool IsWGSMaster(void) const
bool IsTLSMaster(void) const
string GetSecondSuperKingdom(void)
CMolInfo::TCompleteness GetCompleteness(void)
int GetPDBChain(void) const
string GetPatentCountry(void) const
bool IsCrossKingdom(void)
string GetPDBChainID(void) const
CTempString GetIsolate(void)
CTempString GetPDBCompound(void)
const string & GetTitle(void)
string GetPatentNumber(void) const
bool IsUnreviewedUnannotated(void)
CTempString GetSegment(void)
CTempString GetLinkageGroup(void)
const string & GetTaxname(void)
CSeq_inst::TTopology GetTopology(void) const
CWeakRef< CBioseqIndex > GetBioseqForProduct(void)
int GetGeneralId(void) const
const string & GetOrganelle(void)
CRef< CFeatureIndex > GetBestProteinFeature(void)
string GetGeneralStr(void) const
bool IsVirtual(void) const
CTempString GetSpecimenVoucher(void)
CTempString GetClone(void)
CBioSource::TGenome GetGenome(void)
CTempString GetChromosome(void)
bool IsUnverifiedMisassembled(void)
CMolInfo::TBiomol GetBiomol(void)
bool IsHTGSUnfinished(void)
CTempString GetPlasmid(void)
string GetFirstSuperKingdom(void)
bool IsUnverifiedContaminant(void)
bool IsMultispecies(void)
const string & GetComment(void)
bool IsUnverifiedOrganism(void)
CTempString GetTargetedLocus(void)
const string & GetDescTaxname(void)
bool IsSkippable(void) const
void ReplaceAndAdd(const CTempString &value, const CTempString &replace_what, const CTempString &replace_with)
void Add(const CTempString &name, const CTempString &value, EHidePart hide=eHideNone)
CDefLineJoiner(bool show_mods=false)
CTextJoiner< 64, CTempString > m_Joiner
void Join(std::string *result) const
CRef< CFeatureIndex > GetBestGene(void)
const CMappedFeat GetMappedFeat(void) const
const string & GetSomeNumber(void) const
@OrgMod.hpp User-defined methods of the data storage class.
CRef< CBioseqIndex > GetBioseqIndex(void)
namespace ncbi::objects::
class CStaticArrayMap<> is an array adaptor that provides an STLish interface to statically-defined a...
TBase::const_iterator const_iterator
static bool NCBI_UseGeoLocNameForCountry(void)
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
@ eObjectType_AutodefOptions
bool IsUnverifiedMisassembled() const
bool IsUnverifiedOrganism() const
bool IsUnverifiedContaminant() const
bool IsUnverifiedFeature() const
bool IsUnverified() const
bool IsUnreviewedUnannotated() const
bool IsUnreviewed() const
EObjectType GetObjectType() const
static size_t s_TitleEndsInOrganism(string &title, CTempString taxname)
static bool x_GetSegSeqInfoViaCDS(string &locus, string &product, const char *&completeness, const CBioseq_Handle &bsh)
static void s_AddVoucherAndIsolate(const CTempString &taxname, const CTempString &strain, const CTempString &specimen_voucher, const CTempString &isolate, CDefLineJoiner &joiner)
#define FOR_EACH_SEQID_ON_BIOSEQ_HANDLE(Itr, Var)
void x_CleanAndCompress(string &dest, const CTempString &instr, bool isProt)
#define FOR_SELECTED_SEQFEAT_ON_BIOSEQ_HANDLE(Itr, Var, Sel)
static string s_RemoveWhiteSpace(string str)
static string s_RemoveBracketedOrgFromEnd(string str, string taxname)
#define FOR_EACH_SEQFEAT_ON_BIOSEQ_HANDLE(Itr, Var, Chs)
static void x_FlyCG_PtoR(string &s)
#define FOR_EACH_SEQFEAT_ON_SCOPE(Itr, Var, Loc, Chs)
static void s_TrimMainTitle(string &str)
static bool s_EndsWithStrain(const CTempString &taxname, const CTempString &strain)
static const char * s_proteinOrganellePrefix[]
static string s_RemoveColonsAndWhiteSpace(string str)
static CConstRef< CBioSource > x_GetSourceFeatViaCDS(const CBioseq_Handle &bsh)
static const char * s_tpaPrefixList[]
static bool s_IsVirusOrPhage(const CTempString &taxname)
API (CDeflineGenerator) for computing sequences' titles ("definitions").
std::ofstream out("events_result.xml")
main entry point for tests
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
static const char * str(char *buf, int n)
#define FOR_EACH_USERFIELD_ON_USEROBJECT(Itr, Var)
FOR_EACH_USERFIELD_ON_USEROBJECT EDIT_EACH_USERFIELD_ON_USEROBJECT.
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define ERR_POST_X(err_subcode, message)
Error posting with default error code and given error subcode.
void Warning(CExceptionArgs_Base &args)
static EAccessionInfo IdentifyAccession(const CTempString &accession, TParseFlags flags=fParse_AnyRaw)
Deduces information from a bare accession a la WHICH_db_accession; may report false negatives on prop...
CConstRef< CSeq_id > GetSeqId(void) const
EAccessionInfo
For IdentifyAccession (below)
CSeq_id::E_Choice Which(void) const
string GetLabel(const CSeq_id &id)
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Override Assign() to incorporate cache invalidation.
CMappedFeat GetBestGeneForCds(const CMappedFeat &cds_feat, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0, CFeatTree::EBestGeneType lookup_type=CFeatTree::eBestGene_TreeOnly)
CMappedFeat GetBestOverlappingFeat(const CMappedFeat &feat, CSeqFeatData::ESubtype need_subtype, sequence::EOverlapType overlap_type, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0)
@ fFGL_Content
Include its content if there is any.
TSeqPos GetLength(const CSeq_id &id, CScope *scope)
Get sequence length if scope not null, else return max possible TSeqPos.
CSeq_loc * SeqLocRevCmpl(const CSeq_loc &loc, CScope *scope)
Get reverse complement of the seq-loc (?)
@ eOverlap_SubsetRev
1st is a subset of 2nd ranges
@ eOverlap_Contained
2nd contained within 1st extremes
void x_AdjustProteinTitleSuffixIdx(const CBioseq_Handle &bsh)
CRef< feature::CFeatTree > m_Feat_Tree
CTempString m_Chromosome
subsource fields
CTempString m_SpecimenVoucher
CDeflineGenerator(void)
Constructor.
void x_SetTitleFromNR(const CBioseq_Handle &bsh)
bool m_Reconstruct
ignore existing title is forced for certain types
const CSeq_feat * GetCDSForProduct(const CBioseq &product, CScope *scope)
Get the encoding CDS feature of a given protein sequence.
void x_SetTitleFromGPipe(void)
int TUserFlags
Binary "OR" of EUserFlags.
CTempString m_PDBCompound
pdb block fields
bool m_HTGSCancelled
genbank or embl block keyword fields
void x_DescribeClones(vector< CTempString > &desc, string &buf)
CTempString m_UnreviewedPrefix
void x_SetTitleFromMap(void)
string GenerateDefline(const CBioseq_Handle &bsh, TUserFlags flags=0)
Main method.
bool m_ConstructedFeatTree
string m_FirstSuperKingdom
CTempString m_LinkageGroup
void x_SetTitleFromWGS(void)
bool m_UsePDBCompoundForDefline
bool m_IsNA
seq-inst fields
void x_SetTitleFromProtein(const CBioseq_Handle &bsh)
void x_SetBioSrcIdx(const CBioseq_Handle &bsh)
void x_SetFlagsIdx(const CBioseq_Handle &bsh, TUserFlags flags)
CSeq_inst::TLength m_Length
string m_rEnzyme
map fields
const char * x_OrganelleName(CBioSource::TGenome genome) const
CConstRef< CGene_ref > x_GetGeneRefViaCDS(const CMappedFeat &mapped_cds)
CConstRef< CSeq_feat > x_GetLongestProtein(const CBioseq_Handle &bsh)
CTempString m_UnverifiedPrefix
void x_AdjustProteinTitleSuffix(const CBioseq_Handle &bsh)
void x_SetTitleFromProteinIdx(const CBioseq_Handle &bsh)
const CBioSource * GetBioSource(const CBioseq &bioseq)
Retrieve the BioSource object for a given bioseq handle.
bool m_InitializedFeatTree
CBioSource::TGenome m_Genome
string x_GetModifiers(const CBioseq_Handle &handle)
void x_SetTitleFromPatent(void)
const CMolInfo * GetMolInfo(const CBioseq &bioseq)
Retrieve the MolInfo object for a given bioseq handle.
CTempString m_Comment
comment fields
bool x_IsComplete() const
void x_SetTitleFromSegSeq(const CBioseq_Handle &bsh)
void x_SetTitleFromNC(void)
~CDeflineGenerator(void)
Destructor.
bool m_IsNC
seq-id fields
CMappedFeat GetMappedCDSForProduct(const CBioseq_Handle &product)
CConstRef< CBioSource > m_Source
biosource fields
CTempString m_TargetedLocus
static CSafeStatic< CLowQualityTextFsm > ms_p_Low_Quality_Fsa
void x_SetBioSrc(const CBioseq_Handle &bsh)
bool m_IsUnverified
user object fields
void x_SetTitleFromBioSrc(void)
void x_Init(void)
internal methods
void x_SetTitleFromPDB(void)
CSeq_entry_Handle m_TopSEH
internal feature tree for parent mapping
void x_SetSuffix(string &suffix, const CBioseq_Handle &bsh, bool appendComplete)
CMolInfo::TCompleteness m_MICompleteness
string m_SecondSuperKingdom
void x_SetTitleFromNM(const CBioseq_Handle &bsh)
bool x_CDShasLowQualityException(const CSeq_feat &sft)
void x_SetFlags(const CBioseq_Handle &bsh, TUserFlags flags)
CTempString m_Breed
orgmod fields
CRef< CSeqEntryIndex > m_Idx
index with feature tree for each Bioseq
CTempString m_MetaGenomeSource
CSeq_inst::TTopology m_Topology
void x_SetPrefix(string &prefix, const CBioseq_Handle &bsh)
CMolInfo::TBiomol m_MIBiomol
molinfo fields
@ fLocalAnnotsOnly
Never use related sequences' annotations.
@ fDevMode
Development mode for testing new features.
@ fDoNotUseAutoDef
Disable internal call to auto-def.
@ fLeavePrefixSuffix
Do not remove and recreate prefix or suffix.
@ fGpipeMode
Use GPipe defaults.
@ fOmitTaxonomicName
Do not add organism suffix to proteins.
@ fFastaFormat
Generate FASTA defline.
@ fShowModifiers
Show key-value pair modifiers (e.g. "[organism=Homo sapiens]")
@ fIgnoreExisting
Generate fresh titles unconditionally.
@ fAllProteinNames
List all relevant proteins, not just one.
CBioseq_Handle AddBioseq(CBioseq &bioseq, TPriority pri=kPriority_Default, EExist action=eExist_Throw)
Add bioseq, return bioseq handle.
@ kPriority_Default
Use default priority for added data.
const TInst_Ext & GetInst_Ext(void) const
bool IsSetInst_Ext(void) const
const CSeqFeatData & GetData(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.
bool IsSetInst_Length(void) const
TInst_Topology GetInst_Topology(void) const
TInst_Length GetInst_Length(void) const
bool IsSetInst(void) const
bool IsSetInst_Repr(void) const
bool CanGetInst_Topology(void) const
TInst_Repr GetInst_Repr(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
SAnnotSelector & SetResolveTSE(void)
SetResolveTSE() is equivalent to SetResolveMethod(eResolve_TSE).
SAnnotSelector & SetFeatType(TFeatType type)
Set feature type (also set annotation type to feat)
const CSeq_feat & GetOriginalFeature(void) const
Get original feature with unmapped location/product.
SAnnotSelector & IncludeFeatType(TFeatType type)
Include feature type in the search.
vector< CSeqdesc::E_Choice > TDescChoices
bool Empty(void) const THROWS_NONE
Check if CConstRef is empty â not pointing to any object which means having a null value.
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
TRefType Lock(void) const
Lock the object and return reference to it.
bool NotEmpty(void) const THROWS_NONE
Check if CConstRef is not empty â pointing to an object and has a non-null value.
bool Empty(void) const THROWS_NONE
Check if CRef is empty â not pointing to any object, which means having a null value.
uint16_t Uint2
2-byte (16-bit) unsigned integer
void AddWord(const string &word, const int &match)
static string HtmlDecode(const CTempString str, EEncoding encoding=eEncoding_Unknown, THtmlDecode *result_flags=NULL)
Decode HTML entities and character references.
NCBI_NS_STD::string::size_type SIZE_TYPE
CTextJoiner & Add(const TIn &s)
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.
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 void TruncateSpacesInPlace(string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string (in-place)
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
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.
void Join(TOut *result) const
const char * data(void) const
Return a pointer to the array represented.
bool empty(void) const
Return true if the represented string is empty (i.e., the length is zero)
static SIZE_TYPE FindCase(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 sensitive search.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
void clear(void)
Clears the string.
size_type length(void) const
Return the length of the represented array.
CTempString substr(size_type pos) const
Obtain a substring from this string, beginning at a given offset.
size_type find_first_not_of(const CTempString match, size_type pos=0) const
Find the first occurrence of any character not in the matching string within the current string,...
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 enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
size_type find(const CTempString match, size_type pos=0) const
Find the first instance of the entire matching string within the current string, beginning at an opti...
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.
const char *const kEmptyCStr
Empty "C" string (points to a '\0').
size_type size(void) const
Return the length of the represented array.
@ fSplit_Tokenize
All delimiters are merged and trimmed, to get non-empty tokens only.
@ eReverseSearch
Search in a backward direction.
@ eNocase
Case insensitive compare.
const TKeywords & GetKeywords(void) const
Get the Keywords member data.
bool IsSetKeywords(void) const
Check if a value has been assigned to Keywords data member.
const TKeywords & GetKeywords(void) const
Get the Keywords member data.
bool IsSetKeywords(void) const
Check if a value has been assigned to Keywords data member.
const TCountry & GetCountry(void) const
Get the Country member data.
const Tdata & Get(void) const
Get the member data.
const TSubtype & GetSubtype(void) const
Get the Subtype member data.
const TPcr_primers & GetPcr_primers(void) const
Get the Pcr_primers member data.
TGenome GetGenome(void) const
Get the Genome member data.
const Tdata & Get(void) const
Get the member data.
bool IsSetOrg(void) const
Check if a value has been assigned to Org data member.
list< CRef< CSubSource > > TSubtype
bool IsSetSubtype(void) const
Check if a value has been assigned to Subtype data member.
bool IsSetPcr_primers(void) const
Check if a value has been assigned to Pcr_primers data member.
bool CanGetGenome(void) const
Check if it is safe to call GetGenome method.
const TOrg & GetOrg(void) const
Get the Org member data.
TSubtype GetSubtype(void) const
Get the Subtype member data.
bool CanGet(void) const
Check if it is safe to call Get method.
bool IsSetGenome(void) const
Check if a value has been assigned to Genome data member.
bool IsSetSubtype(void) const
Check if a value has been assigned to Subtype data member.
bool CanGet(void) const
Check if it is safe to call Get method.
const TName & GetName(void) const
Get the Name member data.
list< CRef< CPCRReaction > > Tdata
bool IsSetName(void) const
Check if a value has been assigned to Name data member.
list< CRef< CPCRPrimer > > Tdata
@ eSubtype_collection_date
DD-MMM-YYYY format.
@ eSubtype_insertion_seq_name
@ eSubtype_transposon_name
@ eSubtype_lat_lon
+/- decimal degrees
@ eSubtype_collected_by
name of person who collected the sample
@ eSubtype_isolation_source
@ eSubtype_environmental_sample
@ eSubtype_endogenous_virus_name
@ eSubtype_identified_by
name of person who identified the sample
@ eSubtype_whole_replicon
@ eGenome_plasmid_in_mitochondrion
@ eGenome_plasmid_in_plastid
const TDesc & GetDesc(void) const
Get the Desc member data.
bool IsSetLocus_tag(void) const
systematic gene name (e.g., MI0001, ORF0069) Check if a value has been assigned to Locus_tag data mem...
bool IsSetLocus(void) const
Official gene symbol Check if a value has been assigned to Locus data member.
bool IsSetDesc(void) const
descriptive name Check if a value has been assigned to Desc data member.
const TLocus_tag & GetLocus_tag(void) const
Get the Locus_tag member data.
const TLocus & GetLocus(void) const
Get the Locus member data.
const TStr & GetStr(void) const
Get the variant data.
bool IsStr(void) const
Check if variant Str is selected.
const TTag & GetTag(void) const
Get the Tag member data.
bool IsId(void) const
Check if variant Id is selected.
const TData & GetData(void) const
Get the Data member data.
bool IsSetTag(void) const
appropriate tag Check if a value has been assigned to Tag data member.
bool IsStr(void) const
Check if variant Str is selected.
const TStr & GetStr(void) const
Get the variant data.
const TLabel & GetLabel(void) const
Get the Label member data.
const TType & GetType(void) const
Get the Type member data.
bool IsSetData(void) const
Check if a value has been assigned to Data data member.
TId GetId(void) const
Get the variant data.
const TMod & GetMod(void) const
Get the Mod member data.
bool IsSetPgcode(void) const
plastid genetic code Check if a value has been assigned to Pgcode data member.
TFixed_level GetFixed_level(void) const
Get the Fixed_level member data.
TMgcode GetMgcode(void) const
Get the Mgcode member data.
TGcode GetGcode(void) const
Get the Gcode member data.
const TSubname & GetSubname(void) const
Get the Subname member data.
bool IsSetFixed_level(void) const
Check if a value has been assigned to Fixed_level data member.
bool IsPartial(void) const
Check if variant Partial is selected.
const TName & GetName(void) const
Get the Name member data.
const TTaxname & GetTaxname(void) const
Get the Taxname member data.
bool IsSetMgcode(void) const
mitochondrial genetic code Check if a value has been assigned to Mgcode data member.
const TLevel & GetLevel(void) const
Get the Level member data.
bool IsSetName(void) const
Check if a value has been assigned to Name data member.
const TBinomial & GetBinomial(void) const
Get the variant data.
bool IsSetMod(void) const
Check if a value has been assigned to Mod data member.
const Tdata & Get(void) const
Get the member data.
const TName & GetName(void) const
Get the Name member data.
list< CRef< COrgMod > > TMod
bool IsSetGenus(void) const
required Check if a value has been assigned to Genus data member.
const TSpecies & GetSpecies(void) const
Get the Species member data.
list< CRef< CTaxElement > > Tdata
bool IsSetOrgname(void) const
Check if a value has been assigned to Orgname data member.
bool IsSetSubname(void) const
Check if a value has been assigned to Subname data member.
bool IsSetTaxname(void) const
preferred formal name Check if a value has been assigned to Taxname data member.
bool IsSetLevel(void) const
Check if a value has been assigned to Level data member.
bool IsSetGcode(void) const
genetic code (see CdRegion) Check if a value has been assigned to Gcode data member.
const TGenus & GetGenus(void) const
Get the Genus member data.
const TPartial & GetPartial(void) const
Get the variant data.
bool IsSet(void) const
Check if a value has been assigned to data member.
bool IsSetSpecies(void) const
species required if subspecies used Check if a value has been assigned to Species data member.
TPgcode GetPgcode(void) const
Get the Pgcode member data.
bool IsSetName(void) const
Check if a value has been assigned to Name data member.
const TOrgname & GetOrgname(void) const
Get the Orgname member data.
bool IsBinomial(void) const
Check if variant Binomial is selected.
@ eSubtype_gb_acronym
used by taxonomy database
@ eSubtype_gb_synonym
used by taxonomy database
@ eSubtype_other
ASN5: old-name (254) will be added to next spec.
@ eSubtype_dosage
chromosome dosage of hybrid
@ eSubtype_nat_host
natural host of this specimen
@ eSubtype_metagenome_source
@ eSubtype_specimen_voucher
@ eSubtype_nomenclature
code of nomenclature in subname (B,P,V,Z or combination)
@ eSubtype_gb_anamorph
used by taxonomy database
@ eSubtype_culture_collection
@ eSubtype_forma_specialis
bool IsSetDesc(void) const
description (instead of name) Check if a value has been assigned to Desc data member.
EProcessed
processing status
TProcessed GetProcessed(void) const
Get the Processed member data.
bool IsSetProcessed(void) const
Check if a value has been assigned to Processed data member.
const TDesc & GetDesc(void) const
Get the Desc member data.
bool IsStr(void) const
Check if variant Str is selected.
const TStr & GetStr(void) const
Get the variant 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 IsSetPartial(void) const
incomplete in some way? Check if a value has been assigned to Partial data member.
const TLocation & GetLocation(void) const
Get the Location member data.
bool IsGene(void) const
Check if variant Gene is selected.
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 TBiosrc & GetBiosrc(void) const
Get the variant data.
bool IsBiosrc(void) const
Check if variant Biosrc is selected.
const TGene & GetGene(void) const
Get the variant data.
const TProt & GetProt(void) const
Get the variant data.
TExcept GetExcept(void) const
Get the Except member data.
bool IsSetLocation(void) const
feature made from Check if a value has been assigned to Location data member.
TChain GetChain(void) const
Get the Chain member data.
bool IsSetChain_id(void) const
chain identifier; length-independent generalization of 'chain' Check if a value has been assigned to ...
bool IsSetChain(void) const
Deprecated: 'chain' can't support multiple character PDB chain identifiers (introduced in 2015).
bool IsSetAccession(void) const
Check if a value has been assigned to Accession data member.
bool IsSetCit(void) const
patent citation Check if a value has been assigned to Cit data member.
TSeqid GetSeqid(void) const
Get the Seqid member data.
const TChain_id & GetChain_id(void) const
Get the Chain_id member data.
bool IsSetSeqid(void) const
number of sequence in patent Check if a value has been assigned to Seqid data member.
const TCit & GetCit(void) const
Get the Cit member data.
const TAccession & GetAccession(void) const
Get the Accession member data.
bool IsMap(void) const
Check if variant Map is selected.
const TSeg & GetSeg(void) const
Get the variant data.
const TUser & GetUser(void) const
Get the variant data.
ERepr
representation class
const Tdata & Get(void) const
Get the member data.
const TMap & GetMap(void) const
Get the variant data.
TTech GetTech(void) const
Get the Tech member data.
list< CRef< CSeq_feat > > Tdata
TBiomol GetBiomol(void) const
Get the Biomol member data.
ETopology
topology of molecule
bool IsSetTech(void) const
Check if a value has been assigned to Tech data member.
TCompleteness GetCompleteness(void) const
Get the Completeness member data.
bool IsSet(void) const
Check if a value has been assigned to data member.
@ eRepr_seg
segmented sequence
@ eRepr_delta
sequence made by changes (delta) to others
@ eRepr_map
ordered map of any kind
@ eRepr_virtual
no seq data
@ eTech_htgs_2
ordered High Throughput sequence contig
@ eTech_physmap
from physical mapping techniques
@ eTech_htc
high throughput cDNA
@ eTech_both
concept transl. w/ partial pept. seq.
@ eTech_seq_pept_homol
sequenced peptide, ordered by homology
@ eTech_composite_wgs_htgs
composite of WGS and HTGS
@ eTech_sts
Sequence Tagged Site.
@ eTech_htgs_3
finished High Throughput sequence
@ eTech_seq_pept_overlap
sequenced peptide, ordered by overlap
@ eTech_htgs_1
unordered High Throughput sequence contig
@ eTech_concept_trans
conceptual translation
@ eTech_tsa
transcriptome shotgun assembly
@ eTech_standard
standard sequencing
@ eTech_wgs
whole genome shotgun sequencing
@ eTech_seq_pept
peptide was sequenced
@ eTech_survey
one-pass genomic sequence
@ eTech_barcode
barcode of life project
@ eTech_htgs_0
single genomic reads for coordination
@ eTech_derived
derived from other data, not a primary entity
@ eTech_fli_cdna
full length insert cDNA
@ eTech_est
Expressed Sequence Tag.
@ eTech_concept_trans_a
conceptual transl. supplied by author
@ eTech_genemap
from genetic mapping techniques
@ e_Embl
EMBL specific information.
@ e_User
user defined object
@ e_Genbank
GenBank specific info.
@ e_Comment
a more extensive comment
@ e_Molinfo
info on the molecule and techniques
@ e_Title
a title for this sequence
@ e_Pdb
PDB specific information.
@ e_Source
source of materials, includes Org-ref
unsigned int
A callback function used to compare two keys in a database.
Definition of all error codes used in objmgr libraries (xobjmgr.lib, xobjutil.lib and others).
constexpr bool empty(list< Ts... >) noexcept
const GenericPointer< typename T::ValueType > T2 value
const CharType(& source)[N]
Static variables safety - create on demand, destroy on application termination.
std::istream & in(std::istream &in_, double &x_)
Int4 delta(size_t dimension_, const Int4 *score_)
#define NCBI_BIOMOL(Type)
CMolInfo definitions.
#define NCBI_COMPLETENESS(Type)
#define NCBI_SEQTOPOLOGY(Type)
#define FOR_EACH_COMPOUND_ON_PDBBLOCK(Itr, Var)
FOR_EACH_COMPOUND_ON_PDBBLOCK EDIT_EACH_COMPOUND_ON_PDBBLOCK.
#define FOR_EACH_NAME_ON_PROT
#define FOR_EACH_ACTIVITY_ON_PROT
#define NCBI_GENOME(Type)
@NAME Convenience macros for NCBI objects
#define FOR_EACH_SYNONYM_ON_GENEREF(Itr, Var)
FOR_EACH_SYNONYM_ON_GENEREF EDIT_EACH_SYNONYM_ON_GENEREF.
#define SWITCH_ON_SUBSOURCE_CHOICE(Var)
SWITCH_ON_SUBSOURCE_CHOICE.
#define NCBI_ORGMOD(Type)
COrgMod definitions.
#define FOR_EACH_ORGMOD_ON_BIOSOURCE(Itr, Var)
FOR_EACH_ORGMOD_ON_BIOSOURCE EDIT_EACH_ORGMOD_ON_BIOSOURCE.
#define FOR_EACH_SEQFEATXREF_ON_FEATURE
#define SWITCH_ON_ORGMOD_CHOICE(Var)
SWITCH_ON_ORGMOD_CHOICE.
#define NCBI_SEQFEAT(Type)
CSeq_feat definitions.
#define FOR_EACH_SUBSOURCE_ON_BIOSOURCE(Itr, Var)
FOR_EACH_SUBSOURCE_ON_BIOSOURCE EDIT_EACH_SUBSOURCE_ON_BIOSOURCE.
#define FEATURE_CHOICE_IS
FEATURE_CHOICE_IS SWITCH_ON_FEATURE_CHOICE.
#define NCBI_SUBSOURCE(Type)
CSubSource definitions.
CBioSource::TGenome TBIOSOURCE_GENOME
#define SWITCH_ON_FEATURE_CHOICE
#define FOR_EACH_SEQFEATXREF_ON_SEQFEAT(Itr, Var)
FOR_EACH_SEQFEATXREF_ON_SEQFEAT EDIT_EACH_SEQFEATXREF_ON_SEQFEAT.
#define FOR_EACH_SYNONYM_ON_GENE
CSeq_id::EAccessionInfo TACCN_CHOICE
#define NCBI_SEQID(Type)
@NAME Convenience macros for NCBI objects
#define FIELD_IS_SET_AND_IS(Var, Fld, Chs)
FIELD_IS_SET_AND_IS base macro.
#define FIELD_IS(Var, Fld)
Generic FIELD macros.
#define FOR_EACH_STRING_IN_LIST(Itr, Var)
FOR_EACH_STRING_IN_LIST EDIT_EACH_STRING_IN_LIST.
#define FIELD_IS_SET(Var, Fld)
FIELD_IS_SET base macro.
#define GET_FIELD(Var, Fld)
GET_FIELD base macro.
#define FOR_EACH_CHAR_IN_STRING(Itr, Var)
FOR_EACH_CHAR_IN_STRING EDIT_EACH_CHAR_IN_STRING.
static const TTechMapEntry sc_TechArray[]
SStaticPair< const char *, CMolInfo::TTech > TTechMapEntry
CStaticPairArrayMap< const char *, CMolInfo::TTech, CSourceModParser::PKeyCompare > TTechMap
#define DEFINE_STATIC_ARRAY_MAP(Type, Var, Array)
Template structure SStaticPair is simlified replacement of STL pair<> Main reason of introducing this...
Template for collecting and joining strings with a minimum of heap churn.
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