89 ITERATE(vector<const CFeatListItem *>, feat_it, featlist) {
94 if (existing.
find(desc) == existing.
end()) {
117 auto left_it = str_bimap.left.find(
type);
118 if (left_it != str_bimap.left.end()) {
119 return left_it->second;
122 auto right_it = str_bimap.right.find(
type);
123 if (right_it != str_bimap.right.end()) {
124 return right_it->second;
131 bool allow_other =
false;
182 return{
"Local id",
"Definition line" };
192 return vector<string>();
197 vector<string> fieldnames;
203 fieldnames.push_back((qual_name));
207 catch (
const exception&) {
219 fieldnames.push_back(
kHost);
222 fieldnames.push_back(qual_name);
235 catch (
const exception&) {
248 sort(fieldnames.begin(), fieldnames.end());
254 return {
"taxname",
"common name",
"division",
"lineage" };
261 fieldnames.reserve(fieldnames.size() + text_names.size() + 2);
262 move(text_names.begin(), text_names.end(), inserter(fieldnames, fieldnames.end()));
263 fieldnames.push_back(
"location");
264 fieldnames.push_back(
"origin");
270 return {
"Field",
"Database name",
"Field name" };
275 vector<string> fieldnames;
277 fieldnames.push_back(it.first);
279 sort(fieldnames.begin(), fieldnames.end());
287 "protein description",
296 vector<string> fieldnames;
299 for (
auto& it : values) {
300 if (it.first ==
"gi" || it.first ==
"gibb") {
303 toupper((
unsigned char)it.first[0]);
304 fieldnames.push_back(it.first);
315 for (
auto&& it : fieldnames) {
329 vector<string> feat_list;
331 feat_list.push_back(
"Gene");
332 feat_list.push_back(
"misc_feature");
337 feat_list.push_back(
"All");
344 feat_list.push_back(it);
346 feat_list.push_back(it);
363 vector<string> qual_names;
364 for (
auto it : quals) {
373 vector<string>
names;
389 vector<string>
types{
"any" };
391 types.reserve(class_types.size() + 1);
392 copy(class_types.begin(), class_types.end(), back_inserter(
types));
400 "4.5S ribosomal RNA",
402 "5.8S ribosomal RNA",
412 "large subunit ribosomal RNA",
413 "small subunit ribosomal RNA" };
451 vector<string> bond_list;
452 for (
auto it = list->
begin(); it != list->
end(); ++it) {
453 bond_list.push_back(it->first);
461 vector<string> site_list;
462 for (
auto it = list->
begin(); it != list->
end(); ++it) {
463 site_list.push_back(it->first);
520 string qual_name(qual);
525 if (qual_name ==
"description") {
526 path =
"data.gene.desc";
527 }
else if (qual_name ==
"locus") {
528 path =
"data.gene.locus";
530 path =
"data.gene.locus-tag";
532 path =
"data.gene.syn";
533 }
else if (qual_name ==
"allele") {
534 path =
"data.gene.allele";
539 if (qual_name ==
"product" || qual_name ==
"name") {
540 path =
"data.prot.name";
541 }
else if (qual_name ==
"description") {
542 path =
"data.prot.desc";
543 }
else if (qual_name ==
"activity") {
544 path =
"data.prot.activity";
546 path =
"data.prot.ec";
550 if (qual_name ==
"product") {
551 if (feat.find(
"RNA") !=
NPOS) {
556 path =
"data.rna.ext.name";
564 path =
"data.rna.ext.gen.product";
570 if (qual_name ==
"product") {
571 path =
"data.prot.name";
572 }
else if (qual_name ==
"activity") {
573 path =
"data.prot.activity";
576 path =
"data.prot.ec";
579 path =
"data.cdregion.frame";
583 if (qual_name ==
"note" || qual_name ==
"comment") {
587 if (qual_name ==
"db_xref") {
592 path =
"data.rna.ext.gen.class";
595 path =
"data.rna.ext.gen.quals,tag_peptide";
599 path =
"qual," + qual_name;
608 string asn_path_to_feature;
631 return asn_path_to_feature;
699 return "PUB_AFFIL()";
701 return "PUB_AFFIL()";
727 return macro::CMacroFunction_SeqID::GetFuncName() +
"()";
738 path =
"org.taxname";
744 path =
"org.orgname.div";
747 path =
"org.orgname.lineage";
757 path =
"org.orgname.mod,nat-host";
760 path =
"org.orgname.mod,other";
763 path =
"subtype,other";
766 path =
"pcr-primers..forward..seq";
769 path =
"pcr-primers..reverse..seq";
772 path =
"pcr-primers..forward..name";
775 path =
"pcr-primers..reverse..name";
781 path =
"org.orgname.mod," +
m_Field;
817 return "definition line";
828 field_name =
"origin";
832 field_name =
"location";
838 if (field_name.empty()) {
895 if (!field_name.empty()) {
901 if (!field_name.empty()) {
910 if (!field_name.empty()) {
922 if (!field_name.empty()) {
931 if (!field_name.empty()) {
943 if (!field_name.empty()) {
954 if (!field_name.empty()) {
955 field_name =
"mRNA " + field_name;
963 if (!field_name.empty()) {
984 if (field_name.empty() && macro::CMacroBioData::s_IsFeatSelector(target)) {
994 field_name =
"db-xref";
1001 if (field_name.empty()) {
1015 pos =
tmp.find(
",");
1025 if (!field_name.empty()) {
1035 if (!field_name.empty())
1050 if (!field_name.empty()) {
1057 if (!field_name.empty()) {
1058 field_name =
"mRNA " + field_name;
1061 if (!field_name.empty()) {
1064 return (!field_name.empty());
1070 if (macro_field ==
"data.gene.allele") {
1071 field_name =
"allele";
1073 else if (macro_field ==
"data.gene.syn") {
1074 field_name =
"gene_synonym";
1076 else if (macro_field ==
"data.gene.locus-tag") {
1077 field_name =
"locus_tag";
1086 field ==
"allele" ||
1087 field ==
"maploc" ||
1095 if (!field_name.empty()) {
1105 static const TBimapStrings::relation bsrc_tax_bm[] = {
1106 {
"taxname",
"org.taxname"},
1107 {
"common name",
"org.common"},
1108 {
"division",
"org.orgname.div"},
1109 {
"lineage",
"org.orgname.lineage"} };
1110 TBimapStrings const data{ begin(bsrc_tax_bm), end(bsrc_tax_bm) };
1113 if (!field_name.empty()) {
1122 static const TBimapStrings::relation bsrc_text_bm[] = {
1123 {
kHost,
"org.orgname.mod,nat-host"},
1132 TBimapStrings const data{ begin(bsrc_text_bm), end(bsrc_text_bm) };
1145 pos =
tmp.find(
",");
1147 sv_part =
"-" +
tmp.substr(pos + 1,
NPOS);
1148 tmp =
tmp.substr(0, pos);
1158 ret = ret + sv_part;
1171 static const TBimapStrings::relation struct_comm_bm[] = {
1176 TBimapStrings const data{ begin(struct_comm_bm), end(struct_comm_bm) };
1183 if (!field_name.empty()) {
1186 field_name =
"Structured comment " + field_name;
1203 path =
"completeness";
1207 if ((target == macro::CMacroBioData::sm_Seq ||
1208 target == macro::CMacroBioData::sm_SeqNa ||
1209 target == macro::CMacroBioData::sm_SeqAa) && !path.empty()) {
1210 path =
"descr..molinfo." + path;
1217 path =
"inst.topology";
1220 path =
"inst.strand";
1227 static const TBimapStrings::relation molinfo_descr_bm[] = {
1228 {
"biomol",
"molecule"},
1229 {
"tech",
"technique"},
1230 {
"completeness",
"completedness"},
1231 {
"inst.mol",
"class"},
1232 {
"inst.topology",
"topology"},
1233 {
"inst.strand",
"strand"} };
1235 TBimapStrings const data{ begin(molinfo_descr_bm), end(molinfo_descr_bm) };
1237 if (!field_name.empty()) {
1247 [
this](
const auto& elem) { return NStr::EqualNocase(elem, m_MacroField); });
1274 if (find(fields.begin(), fields.end(),
m_MacroField) != fields.end())
1278 if (!field_name.empty()) {
1304 static const TBimapStrings::relation misc_descr_bm[] = {
1309 TBimapStrings const data{ begin(misc_descr_bm), end(misc_descr_bm) };
1321 if (!field_name.empty()) {
1338 path =
"genbank.keywords";
1341 if ((target == macro::CMacroBioData::sm_Seq ||
1342 target == macro::CMacroBioData::sm_SeqNa ||
1343 target == macro::CMacroBioData::sm_SeqAa) && !path.empty()) {
1344 path =
"descr.." + path;
1363 if (target == macro::CMacroBioData::sm_SeqNa) {
1364 return macro::CMacroFunction_GetDBLink::GetFuncName() +
"(\"" +
m_Field +
"\")";
1366 return "data.data.strs";
1387 return "postal-code";
1410 static const CMacroEditorContext::TBimapStrings::relation gene_qual_bm[] = {
1411 {
"gene locus",
"data.gene.locus"},
1412 {
"gene description",
"data.gene.desc"},
1413 {
"gene comment",
"comment"},
1414 {
"gene allele",
"data.gene.allele"},
1415 {
"gene maploc",
"data.gene.maploc"},
1416 {
"gene locus tag",
"data.gene.locus-tag"},
1417 {
"gene synonym",
"data.gene.syn"}
1431 path =
"qual," +
m_Field.substr(pos + 1);
1443 if (gui_elem.empty()) {
1445 gui_elem =
"gene inference";
1448 gui_elem =
"gene old_locus_tag";
1461 path =
"qual,inference";
1464 path =
"data.cdregion.frame";
1476 gui_elem =
"cds comment";
1479 gui_elem =
"cds inference";
1482 gui_elem =
"codon-start";
1503 static const CMacroEditorContext::TBimapStrings::relation protein_qual_bm[] = {
1504 {
"protein comment",
"comment"},
1505 {
"protein name",
"data.prot.name"},
1506 {
"protein description",
"data.prot.desc"},
1507 {
"protein EC number",
"data.prot.ec"},
1508 {
"protein activity",
"data.prot.activity"}
1553 vector<string> tokens;
1555 if (tokens.size() == 2) {
1565 if (field ==
"comment" || field ==
"note") {
1569 if (field ==
"product") {
1573 path =
"data.rna.ext.name";
1578 path =
"data.rna.ext.gen.product";
1582 path = rna_type +
"::" + field;
1587 path =
"data.rna.ext.gen.class";
1593 path =
"data.rna.ext.tRNA.codon";
1603 path =
"data.rna.ext.gen.quals,tag_peptide";
1606 path =
"qual,tag_peptide";
1613 path =
"data.rna.ext.tRNA.anticodon";
1616 path =
"qual," + field;
1646 return "tag-peptide";
1650 return "codons recognized";
1652 return "ncRNA class";
1659 static const CMacroEditorContext::TBimapStrings::relation strand_bm[] = {
1660 {
"na",
"nucleotide"},
1664 {
"pre-RNA",
"precursor RNA"} };
1678 if (choice ==
" ") {
1679 switch (field_type) {
1695 if (choice ==
"consensus")
1697 else if (choice ==
"constructed")
1699 else if (choice ==
"ordered map")
1701 else if (choice ==
"reference to another")
1703 else if (choice ==
"segmented")
1709 switch (field_type) {
1734 auto it = find_if(values.begin(), values.end(), [&choice](
const pair<string, TEnumValueType>& elem)
1735 { return edit::CFieldHandler::QualifierNamesAreEquivalent(elem.first, choice); });
1737 if (it != values.end()) {
1741 LOG_POST(
Error << choice <<
" could not be mapped onto an enum value");
1751 if (macro_field ==
"not-set" || macro_field ==
"unknown") {
1758 switch (field_type) {
1783 auto it = name_to_values.
find(macro_field);
1784 if (it != name_to_values.
end()) {
1785 switch (field_type) {
User-defined methods of the data storage class.
User-defined methods of the data storage class.
const_iterator end() const
const_iterator begin() const
static vector< string > GetStrings()
static CRef< CConvertFeatureBase > Create(objects::CSeqFeatData::ESubtype subtype_from, objects::CSeqFeatData::ESubtype subtype_to)
virtual string GetDescription()
static vector< string > GetFieldNames()
CFeatListItem - basic configuration data for one "feature" type.
string GetDescription() const
static wxArrayString s_FillFeatQualList(objects::CSeqFeatData::ESubtype subtype)
static bool s_IsRarelyUsedOrDiscouragedFeatureType(int subtype)
static bool s_IsGeneQualifier(const string &field)
vector< string > m_GeneKeywords
string x_GetAsnPathToRna()
string x_GetAsnPathToCdsGeneProt()
string x_GetGUIFieldForGene()
vector< string > m_RnaKeywords
vector< string > m_DescrKeywords
string GetGUIFieldName(const string ¯o_field, const string &target, EMacroFieldType &type, EMSection clause=EMSection::eDoSection)
vector< string > x_GetProteinFieldnames() const
string x_GetGUIFieldForRNA()
boost::bimap< boost::bimaps::set_of< string, PNocase >, boost::bimaps::set_of< string, PNocase > > TBimapStrings
vector< string > m_EmptyKeywords
static string s_GetGUIMappedMiscDescr(const string &value)
vector< string > GetFeatureTypes(bool for_removal=false, bool to_create=false, bool include_all=false) const
string GetGUIDateField(const string ¯o_field)
string GetGUIPubField(CPubFieldType::EPubFieldType)
vector< string > m_ProteinKeywords
vector< string > x_GetStrCommFieldnames() const
vector< string > GetRNATypes() const
string x_GetAsnPathtoGene()
pair< int, int > GetFeatureType(const string &name) const
string GetAsnPathToFieldName(const string &field, EMacroFieldType type, const string &target=kEmptyStr)
vector< string > m_DBLinkKeywords
string x_GetAsnPathToMolinfo(const string &target)
string x_GetAsnPathToMiscDescr(const string &target)
string x_GetAsnPathToAllBsrc()
vector< string > m_FeatQualKeywords
static string s_GetGUIMappedStructCommField(const string &value)
vector< string > m_SourceTaxKeys
vector< string > m_Featuretypes
string x_GetAsnPathToMiscFields()
string x_GetGUIFieldForProtein()
string GetGUIMolinfoValue(const string ¯o_field, const string &molinfo_field)
vector< string > m_BsrcAutodefWords
string x_GetAsnPathToDescriptors()
vector< string > m_MiscKeywordsToRmv
const vector< string > & GetKeywords(EMacroFieldType type) const
string x_GetAsnPathToBsrcTax()
string x_GetAsnPathToPub()
vector< string > GetncRNAClassTypes(bool include_any=true) const
TBimapStrings m_DescriptorMap
vector< string > m_SourceKeywords
bool x_GetGUIFieldForDBLink(string &field_name, EMacroFieldType &type)
vector< string > m_SourceTextKeys
bool x_GetGUIFieldForCdsGeneProtRna(string &field_name, EMacroFieldType &type)
string GetConversionDescr(const string &from_feat, const string &to_feat)
string GetGUIAuthorName(const string &author_part)
string x_GetGUIFieldForCDS()
string GetGUIFeatQualifier(const string ¯o_field)
string GetGUIAffilField(const string ¯o_field)
string x_GetAsnPathToCDS()
vector< string > x_GetBsrcTextFieldnames(bool complete=false) const
vector< string > x_GetDescriptorFieldnames() const
vector< string > GetFeatQualifiers() const
map< string, pair< int, int > > m_FeatureMap
bool x_GetGUIFieldForBsrcText(string &field_name, EMacroFieldType &type)
vector< string > m_PubdescKeywords
vector< string > m_MiscKeywords
vector< string > x_GetBsrcTaxFieldnames() const
string x_GetAsnPathToSet()
string x_GetAsnPathToBsrcText()
string x_GetAsnPathToDBLinkField(const string &target)
bool x_GetGUIFieldForPubdesc(string &field_name, EMacroFieldType &type)
string x_GetAsnPathToFeatQuals()
vector< string > m_CdsGeneProtKeywords
string x_GetAsnPathToAffilFields()
bool x_GetGUIFieldForMiscDescr(string &field_name, EMacroFieldType &type)
bool x_IsDescriptor(string &field_name, EMacroFieldType &type)
vector< string > x_GetAllBsrcFieldnames() const
string GetAsnPathToFeature(const string &feat_name) const
vector< string > m_MolinfoKeywords
bool x_GetGUIFieldForStructComm(string &field_name, EMacroFieldType &type, EMSection clause=EMSection::eDoSection)
bool x_GetGUIFieldForMolinfo(string &field_name, EMacroFieldType &type)
string GetAsnPathToAuthorFieldName(const string &author_name)
static string FindInBimapOrEmpty(const string &type, const TBimapStrings &str_bimap)
string GetGUIDescriptor(const string ¯o_field)
string GetAsnMolinfoValue(const string &molinfo_field, const string &choice)
vector< string > GetBondTypes() const
vector< string > GetRNAProductnames(const string &rna_type) const
bool x_GetGUIFieldForBsrcTax(string &field_name, EMacroFieldType &type)
string x_GetAsnPathToProtein()
vector< string > GetLegalQualifiers(const string &feat_name) const
vector< string > x_GetSetClassFieldnames(bool all=true) const
vector< string > GetFieldNames(EMacroFieldType type) const
vector< string > GetSiteTypes() const
string x_GetAsnPathToRnaFieldName(const string &rna_type, const string &field)
static string GetBiomolLabel(objects::CMolInfo::TBiomol biomol)
static vector< string > GetFieldNames()
static string GetTechLabel(objects::CMolInfo::TTech tech)
static EMolInfoFieldType GetFieldType(const string &field_name)
static string GetReprLabel(objects::CSeq_inst::TRepr val)
static string GetStrandLabel(objects::CSeq_inst::TStrand val)
static string GetMolLabel(objects::CSeq_inst::TMol val)
static string GetTopologyLabel(objects::CSeq_inst::TTopology tech)
static vector< string > GetChoicesForField(CMolInfoFieldType::EMolInfoFieldType field_type, bool &allow_other)
static string GetCompletenessLabel(objects::CMolInfo::TCompleteness tech)
static bool IsValidSubtypeName(const string &str, EVocabulary vocabulary=eVocabulary_raw)
static string GetSubtypeName(TSubtype stype, EVocabulary vocabulary=eVocabulary_raw)
@ ePubFieldType_AuthorLastName
@ ePubFieldType_AuthorFirstName
@ ePubFieldType_AffilDept
@ ePubFieldType_AffilState
@ ePubFieldType_AuthorConsortium
@ ePubFieldType_AuthorMiddleInitial
@ ePubFieldType_AuthorSuffix
@ ePubFieldType_AffilPostalCode
@ ePubFieldType_AffilAffil
static EPubFieldType GetTypeForLabel(string label)
static string NormalizePubFieldName(string orig_label)
static string GetLabelForType(EPubFieldType field_type)
static vector< string > GetFieldNames(bool extended=false)
static vector< string > GetChoicesForField(EPubFieldType field_type, bool &allow_other)
static string GetMacroLabelForType(EPubFieldType field_type)
static vector< string > GetRNAFields()
static vector< string > GetRNATypes()
static vector< string > GetncRNAClassList()
static const CSiteList * GetSiteList()
const TLegalQualifiers & GetLegalQualifiers(void) const
Get a list of all the legal qualifiers for the feature.
static E_Choice GetTypeFromSubtype(ESubtype subtype)
@ eSubtype_transit_peptide_aa
@ eSubtype_sig_peptide_aa
@ eSubtype_mat_peptide_aa
static EQualifier GetQualifierType(CTempString qual)
convert qual string to enumerated value
static const CBondList * GetBondList()
static CTempString GetQualifierAsString(EQualifier qual)
Convert a qualifier from an enumerated value to a string representation or empty if not found.
static ESubtype SubtypeNameToValue(CTempString sName)
Turn a string into its ESubtype which is NOT necessarily related to the identifier of the enum.
static CTempString SubtypeValueToName(ESubtype eSubtype)
Turns a ESubtype into its string value which is NOT necessarily related to the identifier of the enum...
static bool IsRegulatory(ESubtype subtype)
const_iterator begin() const
const_iterator end() const
static vector< string > s_GetSourceLocationOptions()
static vector< string > s_GetSourceOriginOptions()
static bool IsValidSubtypeName(const string &str, EVocabulary vocabulary=eVocabulary_raw)
static string GetSubtypeName(CSubSource::TSubtype stype, EVocabulary vocabulary=eVocabulary_raw)
static bool IsDiscouraged(const TSubtype subtype)
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
const_iterator end() const
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
const_iterator end() const
static const struct name_t names[]
const char * kDefinitionLineLabel
const char * kFwdPrimerSeq
const char * kFwdPrimerName
const char * kSubSourceNote
const char * kCommentDescriptorLabel
const char * kRevPrimerName
const char * kGenbankBlockKeyword
const char * kRevPrimerSeq
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
list< pair< string, TEnumValueType > > TValues
bool StringsAreEquivalent(const string &name1, const string &name2)
const char * kColl_suffix
objects::CSeqFeatData::ESubtype GetFeatSubtype(const string &feat_type)
const char * kStrCommFieldValue
bool IsStructVoucherPart(const string &field)
const char * kStrCommFieldName
const char * kInst_suffix
bool IsSatelliteSubfield(const string &field)
bool IsMobileElementTSubfield(const string &field)
const char * kSpecid_suffix
const char * kStrCommDbname
vector< const objects::CFeatListItem * > GetSortedFeatList(objects::CSeq_entry_Handle seh, size_t max=numeric_limits< size_t >::max())
#define ENUM_METHOD_NAME(EnumName)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
NCBI_NS_STD::string::size_type SIZE_TYPE
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 bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
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 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.
@ eSubtype_other
ASN5: old-name (254) will be added to next spec.
@ eSubtype_specimen_voucher
@ eSubtype_culture_collection
@ eClass_pop_set
population study
@ eClass_phy_set
phylogenetic study
@ eClass_wgs_set
whole genome shotgun project
@ eClass_mut_set
set of mutations
@ eClass_eco_set
ecological sample study
@ eClass_genbank
converted genbank
@ eClass_small_genome_set
viral segments or mitochondrial minicircles
ERepr
representation class
ETopology
topology of molecule
EMol
molecule class in living organism
EStrand
strandedness in living organism
static string SelectionName(E_Choice index)
Retrieve selection name (for diagnostic purposes).
@ e_Embl
EMBL specific information.
@ e_Het
cofactor, etc associated but not bound
@ e_Num
a numbering system
@ e_Update_date
date of last update
@ e_Pir
PIR specific info.
@ e_Genbank
GenBank specific info.
@ e_Prf
PRF specific information.
@ e_Sp
SWISSPROT specific info.
@ e_Dbxref
xref to other databases
@ e_Comment
a more extensive comment
@ e_Region
overall region (globin locus)
@ e_Maploc
map location of this sequence
@ e_Create_date
date entry first created/released
@ e_Title
a title for this sequence
@ e_Pdb
PDB specific information.
@ e_Name
a name for this sequence
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 smart and slim</td> n<td> orig</td> n</tr> n<tr> n<td> last_modified</td> n<td> optional</td> n<td> Integer</td> n<td class=\"description\"> The blob last modification If provided then the exact match will be requested with n the Cassandra storage corresponding field value</td> n<td> Positive integer Not provided means that the most recent match will be selected</td> n<td></td> n</tr> n<tr> n<td> use_cache</td> n<td> optional</td> n<td> String</td> n<td class=\"description\"> The option controls if the Cassandra LMDB cache and or database should be used It n affects the seq id resolution step and the blob properties lookup step The following n options are BIOSEQ_INFO and BLOB_PROP at all
static string s_MapStrandValues(const string &value)
static string s_GetGeneField(const string &value)
static string s_GetProteinField(const string &value)
constexpr auto sort(_Init &&init)
double value_type
The numeric datatype used by the parser.
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
bool QualifierNamesAreEquivalent(string name1, string name2)
static const struct type types[]
void FromArrayString(const wxArrayString &in, vector< string > &out)