78 vector<CConstRef<CObject> > objs;
82 if (
f->IsSetProduct()) {
89 objs.push_back(
object);
95 object.
Reset(
f->GetOriginalSeq_feat());
96 objs.push_back(
object);
104 object.
Reset(
f->GetOriginalSeq_feat());
105 objs.push_back(
object);
113 object.
Reset(
f->GetOriginalSeq_feat());
114 objs.push_back(
object);
126 vector<CRef<CApplyObject> > objs;
128 vector<CConstRef<CObject> > feats =
GetObjects(bsh);
144 vector<CRef<CApplyObject> > objs;
145 vector<CConstRef<CObject> > feats =
GetObjects(bsh);
174 (*it)->GetLabel(&
label);
175 if (!
label.empty()) {
202 "experimental":
"non-experimental");
252 rval = (
string)
"complement(" + (partial3 ?
"<" :
"")
254 +
".." + (partial5 ?
">" :
"")
257 rval = (partial5 ?
"<" :
"")
259 +
".." + (partial3 ?
">" :
"")
278 if ( (*it)->IsInt()) {
281 else return(
"complex location" );
302 if ((*it)->GetQual() ==
"tag_peptide" && !((*it)->GetVal()).empty()) {
303 rval += (*it)->GetVal() +
";";
325 string member_name = sTitle;
327 if (pos != string::npos) {
328 member_name = member_name.substr(0, pos);
335 member_name = member_name.substr(5);
339 member_name = member_name.substr(5);
622 current = (*iter)->GetVal();
624 (*iter)->SetVal(current);
631 in_out_feat.
SetQual().push_back(qual);
643 CSeq_feat::TQual::iterator it = in_out_feat.
SetQual().begin();
644 while (it != in_out_feat.
SetQual().end()) {
646 it = in_out_feat.
SetQual().erase(it);
661 && (*it)->IsSetVal()) {
662 val += (*it)->GetVal() +
";";
681 vector<string> problems;
682 bool any_errors =
false;
684 ITERATE(vector<string>, it, values) {
688 problems.push_back(
"");
692 if (div == string::npos) {
693 error =
"rpt_unit_range has invalid format";
695 string start_str = (*it).substr(0, div);
696 string end_str = (*it).substr(div + 2);
698 int range_end =
static_cast<int>(
m_Lens[pos]);
703 error =
"rpt_unit_range has invalid format";
705 if (pos <
m_Lens.size()) {
706 if (range_start < 1 || range_end < 1) {
707 error =
"rpt_unit_range start and end values must be between 1 and sequence length";
708 }
else if ((
size_t)range_start >
m_Lens[pos]) {
709 error =
"rpt_unit_range start exceeds sequence length";
710 }
else if ((
size_t)range_end >
m_Lens[pos]) {
711 error =
"rpt_unit_range end exceeds sequence length";
719 problems.push_back(
error);
737 if (!
isdigit(*it) && !
isalpha(*it) && *it !=
'(' && *it !=
')' && *it !=
',' && *it !=
';') {
747 vector<string> problems;
748 bool any_errors =
false;
749 ITERATE(vector<string>, it, values) {
751 problems.push_back(
"rpt_unit_seq value contains invalid characters");
754 problems.push_back(
"");
797 string newValue(
value);
799 bool type_added(
false);
815 string value(newValue);
817 bool proper_type(
false);
829 string current_type, current_name;
835 (*iter)->SetVal(current_type +
":" + current_name);
842 in_out_feat.
SetQual().push_back(qual);
851 string current_type, current_name;
857 (*iter)->SetVal(current_type +
":" + current_name);
865 in_out_feat.
SetQual().push_back(qual);
884 CSeq_feat::TQual::iterator it = in_out_feat.
SetQual().begin();
885 while (it != in_out_feat.
SetQual().end()) {
887 if (!(*it)->IsSetVal()) {
888 it = in_out_feat.
SetQual().erase(it);
896 if (newValue.empty()) {
897 it = in_out_feat.
SetQual().erase(it);
899 (*it)->SetVal(newValue);
929 return field.substr(0, pos);
944 return field.substr(pos + 1,
NPOS);
960 val +=
": " + newValue;
963 in_out_feat.
SetQual().push_back(qual);
981 CSeq_feat::TQual::iterator it = in_out_feat.
SetQual().begin();
982 while (it != in_out_feat.
SetQual().end()) {
984 it = in_out_feat.
SetQual().erase(it);
999 val += (*it)->GetVal() +
";";
1038 vector<string> sorted;
1039 sorted.assign(values.begin(), values.end());
1040 stable_sort(sorted.begin(), sorted.end());
1042 if (sorted.size() < 2) {
1047 vector<string>::iterator it_p = sorted.begin();
1048 vector<string>::iterator it_n = it_p;
1049 int match_count = 0;
1051 while (it_n != sorted.end()) {
1053 it_n = sorted.erase(it_n);
1056 if (match_count == 0) {
1057 it_p = sorted.erase(it_p);
1066 if (match_count == 0) {
1076 vector<string> sorted;
1077 sorted.assign(values.begin(), values.end());
1078 stable_sort(sorted.begin(), sorted.end());
1080 if (sorted.size() < 2) {
1084 vector<string>::iterator it_p = sorted.begin();
1085 vector<string>::iterator it_n = it_p;
1087 while (it_n != sorted.end()) {
1089 it_n = sorted.erase(it_n);
1102 vector<string> problems;
1106 bool any_errors =
false;
1109 ITERATE(vector<string>, it, values) {
1111 problems.push_back(
"missing " +
GetLabel());
1115 ITERATE(vector<string>, sit, sorted) {
1122 problems.push_back(
"duplicate " +
GetLabel());
1125 problems.push_back(
"");
1140 rna.SetRnaProductName(product, remainder);
1142 string current =
rna.GetRnaProductName();
1144 rna.SetRnaProductName(current, remainder);
1152 vector<CRef<CApplyObject> > objs;
1155 vector<CConstRef<CObject> > feats =
GetObjects(bsh);
1167 id->Assign(*(bsh.
GetId().front().GetSeqId()));
1171 new_feat->
SetData().SetProt();
1183 if (
f->IsSetProduct()) {
1187 objs.insert(objs.end(), p_objs.begin(), p_objs.end());
1197 vector<CConstRef<CObject> > feats =
GetObjects(bsh);
1228 in_out_feat.
SetData().SetProt().SetName().front() = current;
1231 in_out_feat.
SetData().SetProt().SetName().push_back(newValue);
1235 in_out_feat.
SetData().SetProt().SetName().push_back(newValue);
1253 in_out_feat.
SetData().SetProt().ResetName();
1279 vector<CRef<CApplyObject> > objs;
1300 edit::ApplyCDSFrame::ECdsFrame
f = edit::ApplyCDSFrame::s_GetFrameFromName(newValue);
1302 edit::ApplyCDSFrame::s_SetCDSFrame(in_out_feat,
f, *
m_Scope);
1316 in_out_feat.
SetData().SetCdregion().ResetFrame();
1355 in_out_feat.
SetData().SetCdregion().SetCode().SetId(gc);
1363 catch (
const exception&)
1373 in_out_feat.
SetData().SetCdregion().ResetCode();
1404 in_out_feat.
SetData().SetGene().SetDesc(current);
1413 in_out_feat.
SetData().SetProt().SetDesc(current);
1425 in_out_feat.
SetData().SetGene().ResetDesc();
1427 in_out_feat.
SetData().SetProt().ResetDesc();
1503 in_out_feat.
SetData().SetGene().SetLocus(current);
1512 in_out_feat.
SetData().SetGene().SetLocus_tag(current);
1521 in_out_feat.
SetData().SetGene().SetMaploc(current);
1527 in_out_feat.
SetData().SetGene().SetSyn().front() = newValue;
1529 in_out_feat.
SetData().SetGene().SetSyn().push_back(newValue);
1537 in_out_feat.
SetData().SetGene().SetAllele(current);
1586 in_out_feat.
SetGeneXref().SetSyn().front() = newValue;
1615 in_out_feat.
SetData().SetGene().ResetLocus();
1618 in_out_feat.
SetData().SetGene().ResetLocus_tag();
1621 in_out_feat.
SetData().SetGene().ResetMaploc();
1624 in_out_feat.
SetData().SetGene().ResetSyn();
1627 in_out_feat.
SetData().SetGene().ResetAllele();
1698 if ((*it)->IsSetData() && (*it)->GetData().IsGene()) {
1699 gene_ref = &((*it)->GetData().GetGene());
1747 vector<CRef<CApplyObject> > objs;
1801 in_out_feat.
SetData().SetProt().SetName().front() = current;
1805 in_out_feat.
SetData().SetProt().SetName().push_back(newValue);
1812 string current = *it;
1819 in_out_feat.
SetData().SetProt().SetEc().push_back(newValue);
1826 string current = *it;
1833 in_out_feat.
SetData().SetProt().SetActivity().push_back(newValue);
1853 in_out_feat.
SetData().SetProt().ResetName();
1856 in_out_feat.
SetData().SetProt().ResetEc();
1859 in_out_feat.
SetData().SetProt().ResetActivity();
1911 in_out_feat.
SetData().SetRna().SetExt().SetGen().SetClass(newValue);
1922 in_out_feat.
SetData().SetRna().SetExt().SetGen().ResetClass();
1948 for (
CFeat_CI feat_it(entry); feat_it; ++feat_it) {
1949 if (feat_it->IsSetId()) {
1950 const CFeat_id &
id = feat_it->GetId();
1951 if (
id.IsLocal() &&
id.GetLocal().IsId() &&
id.GetLocal().
GetId() > feat_id) {
1986 }
catch (
const exception& e) {
2004 table->SetColumns().push_back(id_col);
2014 table->SetColumns()[0]->SetData().SetId().push_back(
id);
2032 vector<CRef<CSeqTable_column> > column_list;
2033 bool need_gene =
false;
2034 bool need_mrna =
false;
2035 bool need_prot =
false;
2036 ITERATE (vector<string>, sit, fields) {
2038 field_list.push_back(featcol);
2050 string id_string =
table->GetColumns()[1]->GetData().GetString()[
row];
2068 prot =
f->GetOriginalSeq_feat();
2073 for (
size_t i = 0;
i < field_list.size();
i++) {
2078 val = field_list[
i]->GetFromFeat(*gene);
2083 val = field_list[
i]->GetFromFeat(*mrna);
2087 val = field_list[
i]->GetFromFeat(*
prot);
2103 bool any_change =
false;
2105 bool need_gene =
false;
2106 bool need_mrna =
false;
2107 bool need_prot =
false;
2110 for (
size_t col = 2; col <
table->GetColumns().
size(); col++) {
2111 string title =
table->GetColumns()[col]->GetHeader().GetTitle();
2113 field_list.push_back(featcol);
2124 string id_string =
table->GetColumns()[1]->GetData().GetString()[
row];
2142 prot =
f->GetOriginalSeq_feat();
2156 new_gene->
SetData().SetGene();
2169 bool changed_feat =
false;
2170 bool changed_gene =
false;
2171 bool changed_mrna =
false;
2172 bool changed_prot =
false;
2173 for (
size_t col = 2; col <
table->GetColumns().
size(); col++) {
2174 string title =
table->GetColumns()[col]->GetHeader().GetTitle();
2175 string new_val =
table->GetColumns()[col]->GetData().GetString()[
row];
2177 string orig_val =
"";
2179 orig_val = field_list[col - 2]->GetFromFeat(*gene);
2183 field_list[col - 2]->ClearInFeature(*new_gene);
2187 changed_gene =
true;
2190 string orig_val =
"";
2192 orig_val = field_list[col - 2]->GetFromFeat(*mrna);
2196 field_list[col - 2]->ClearInFeature(*new_mrna);
2200 changed_mrna =
true;
2203 string orig_val =
"";
2204 orig_val = field_list[col - 2]->GetFromFeat(*
prot);
2207 field_list[col - 2]->ClearInFeature(*new_prot);
2211 changed_prot =
true;
2214 string orig_val = field_list[col - 2]->GetFromFeat(*(orig_feat.
GetSeq_feat()));
2217 field_list[col - 2]->ClearInFeature(*new_feat);
2221 changed_feat =
true;
2264 loc->
SetInt().SetFrom(from);
2268 loc->
SetInt().SetId().Assign(*bioseq->
GetId().front());
2282 rna_ref->
SetExt().SetGen().SetProduct(name);
2286 rna->SetData().SetRna().Assign(*rna_ref);
2287 rna->SetLocation().Assign(*loc);
2288 if (ispartial5 || ispartial3)
2289 rna->SetPartial(
true);
2299 rna_ref->
SetExt().SetName(name);
2304 rna->SetData().SetRna().Assign(*rna_ref);
2305 rna->SetLocation().Assign(*loc);
2306 if (ispartial5 || ispartial3)
2307 rna->SetPartial(
true);
2321 for ( ; b_iter ; ++b_iter){
2340 bool partial5 =
true;
2341 bool partial3 =
true;
2342 for ( ; b_iter ; ++b_iter){
2348 new_feat->
SetData().SetImp().SetKey(
"misc_feature");
2368 bool partial5 =
false;
2369 bool partial3 =
false;
2370 for ( ; b_iter ; ++b_iter){
2376 new_feat->
SetData().SetImp().SetKey(
"repeat_region");
2381 new_feat->
SetQual().push_back(qual1);
2382 new_feat->
SetQual().push_back(qual2);
User-defined methods of the data storage class.
User-defined methods of the data storage class.
@ eExtreme_Positional
numerical value
@ eExtreme_Biological
5' and 3'
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
bool AdjustProteinFeaturePartialsToMatchCDS(CSeq_feat &new_prot, const CSeq_feat &cds)
AdjustProteinFeaturePartialsToMatchCDS A function to change an existing MolInfo to match a coding reg...
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual vector< CRef< objects::edit::CApplyObject > > GetApplyObjects(objects::CBioseq_Handle bsh)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
static CRef< CFeatureSeqTableColumnBase > Create(const string &sTitle, objects::CSeqFeatData::ESubtype subtype=objects::CSeqFeatData::eSubtype_any)
virtual vector< CConstRef< CObject > > GetObjects(objects::CBioseq_Handle bsh)
objects::CSeqFeatData::ESubtype m_Subtype
void SetMajorType(objects::CSeqFeatData::E_Choice major_type)
virtual vector< CRef< objects::edit::CApplyObject > > GetRelatedGeneApplyObjects(objects::CBioseq_Handle bsh)
objects::CSeqFeatData::E_Choice m_MajorType
void SetSubtype(objects::CSeqFeatData::ESubtype subtype)
virtual vector< CRef< objects::edit::CApplyObject > > GetApplyObjects(objects::CBioseq_Handle bsh)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
@Gb_qual.hpp User-defined methods of the data storage class.
static string IndexToCodon(int index)
static bool IsGeneRefField(string qual)
static EFieldType x_GetFieldTypeFromString(string qual)
CGeneRefColumn(string qual)
virtual vector< CRef< objects::edit::CApplyObject > > GetApplyObjects(objects::CBioseq_Handle bsh)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual vector< CRef< objects::edit::CApplyObject > > GetApplyObjects(objects::CBioseq_Handle bsh)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
static EFieldType x_GetFieldTypeFromString(string qual)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
static bool IsProtRefField(string qual)
CProtRefColumn(string qual)
@RNA_ref.hpp User-defined methods of the data storage class.
string GetRnaProductName(void) const
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
CRptUnitRangeColumn(const vector< size_t > lens)
virtual vector< string > IsValid(const vector< string > &values)
virtual vector< string > IsValid(const vector< string > &values)
string x_GetSatelliteName(const string &field) const
string x_AddSatellitePrefix(const string &value, objects::edit::EExistingText existing_text) const
bool x_AddSatelliteName(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
bool x_AddSatelliteType(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
CSatelliteColumn(const string &satellite_field)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
void x_ClearSatelliteSubFields(objects::CSeq_feat &in_out_feat) const
string x_GetSatelliteType(const string &field) const
bool x_IsQualAMatch(const CGb_qual &qual) const
virtual void ClearInFeature(objects::CSeq_feat &in_out_feat)
virtual string GetLabel() const
virtual bool RelaxedMatch(const objects::CSeq_feat &f1, const objects::CSeq_feat &f2) const
virtual vector< string > IsValid(const vector< string > &values)
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
virtual bool AddToFeature(objects::CSeq_feat &in_out_feat, const string &newValue, objects::edit::EExistingText existing_text)
ESubtype GetSubtype(void) const
static E_Choice GetTypeFromSubtype(ESubtype subtype)
@ eSubtype_bad
These no longer need to match the FEATDEF values in the C toolkit's objfdef.h.
namespace ncbi::objects::
const CGene_ref * GetGeneXref(void) const
See related function in util/feature.hpp.
void SetGeneXref(CGene_ref &value)
bool IsPartialStop(ESeqLocExtremes ext) const
TSeqPos GetStart(ESeqLocExtremes ext) const
bool IsPartialStart(ESeqLocExtremes ext) const
TSeqPos GetStop(ESeqLocExtremes ext) const
CSeq_feat_Handle GetFeatureWithId(CSeqFeatData::E_Choice type, TFeatureIdInt id) const
virtual string GetFromFeat(const objects::CSeq_feat &in_out_feat)
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
vector< string > FindNonUniqueStrings(const vector< string > &values)
static const int kNumIgnoreColumns
vector< string > SortUniqueStrings(const vector< string > &values)
USING_SCOPE(ncbi::objects)
CRef< CSeq_feat > AddMiscRNA(const CBioseq_Handle &bsh, string name, int from, int to, bool ispartial5, bool ispartial3)
CRef< CSeq_feat > AddRibosomalRNA(const CBioseq_Handle &bsh, string name, int from, int to, bool ispartial5, bool ispartial3)
CRef< CSeq_loc > CreateFeatLocation(const CBioseq_Handle &bsh, int from, int to, bool ispartial5, bool ispartial3)
void SetRnaProductName(CRNA_ref &rna, const string &product, string &remainder, EExistingText existing_text)
CRef< CCmdComposite > ApplyFeatureSeqTableToSeqEntry(CRef< CSeq_table > table, CSeq_entry_Handle entry)
CRef< CCmdComposite > AddNamedrRna(CSeq_entry_Handle entry, string rna_name, bool ispartial5, bool ispartial3)
static const string kIgnoreColumns[]
CSeq_feat_Handle GetFeatureFromTableId(const string &id_string, CSeq_entry_Handle entry)
void AddToFeatureIdColumn(CSeq_feat_Handle feat, CRef< CSeqTable_column > column, size_t row, int &top_id)
static bool IsAllRptUnitSeqChars(string seq)
int FindHighestFeatureId(const CSeq_entry_Handle &entry)
CRef< CSeq_table > BuildFeatureSeqTableFromSeqEntry(CSeq_entry_Handle entry, const SAnnotSelector &sel)
CRef< CCmdComposite > CreateControlRegion(CSeq_entry_Handle entry)
CRef< CCmdComposite > CreateMicrosatellite(CSeq_entry_Handle entry)
void AddColumnsToFeatureTable(const vector< string > &fields, CRef< CSeq_table > table, CSeq_entry_Handle entry)
string GetIntervalString(const CSeq_interval &seq_int)
vector< CRef< CFeatureSeqTableColumnBase > > TFeatureSeqTableColumnList
static const int kNumSatelliteTypes
const string kPartialStart
static const string kSatelliteTypes[]
const string kPartialStop
const string kStopColLabel
const string kStartColLabel
const char * kSequenceIdColLabel
static const char * column
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#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)
const string & GetMsg(void) const
Get message string.
virtual const char * what(void) const noexcept
Standard report (includes full backlog).
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
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
const CSeq_id & GetId(const CSeq_loc &loc, CScope *scope)
If all CSeq_ids embedded in CSeq_loc refer to the same CBioseq, returns the first CSeq_id found,...
const CSeq_feat * GetCDSForProduct(const CBioseq &product, CScope *scope)
Get the encoding CDS feature of a given protein sequence.
CConstRef< CSeq_feat > GetOverlappingmRNA(const CSeq_loc &loc, CScope &scope)
CConstRef< CSeq_feat > GetOverlappingGene(const CSeq_loc &loc, CScope &scope, ETransSplicing eTransSplicing=eTransSplicing_Auto)
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.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
const CFeat_id & GetId(void) const
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
virtual CConstRef< CSeq_feat > GetSeq_feat(void) const
const CSeqFeatData & GetData(void) const
TSeqPos GetBioseqLength(void) const
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
const CTSE_Handle & GetTSE_Handle(void) const
virtual const CSeq_loc & GetProduct(void) const
bool IsSetProduct(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.
virtual const CSeq_loc & GetLocation(void) const
CBioseq_Handle GetBioseqHandle(const CSeq_id &id) const
Get Bioseq handle from the TSE of this Seq-entry.
void SetFeatId(int id)
Set single feature id.
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
TInst_Length GetInst_Length(void) const
CScope & GetScope(void) const
Get scope this handle belongs to.
CScope & GetScope(void) const
Get scope this handle belongs to.
CConstRef< CSeq_feat > GetOriginalSeq_feat(void) const
const TId & GetId(void) const
const CSeq_loc & GetLocation(void) const
const CSeq_feat_Handle & GetSeq_feat_Handle(void) const
Get original feature handle.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
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.
NCBI_NS_STD::string::size_type SIZE_TYPE
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
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 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.
static string UIntToString(unsigned int value, TNumToStringFlags flags=0, int base=10)
Convert UInt to string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
CTempString substr(size_type pos) const
Obtain a substring from this string, beginning at a given offset.
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.
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.
@ fAllowTrailingSpaces
Ignore trailing whitespace characters.
@ fConvErr_NoThrow
Do not throw an exception on error.
@ fAllowLeadingSpaces
Ignore leading whitespace characters in converted string.
@ eNocase
Case insensitive compare.
static const char label[]
bool IsSetSyn(void) const
synonyms for locus Check if a value has been assigned to Syn data member.
const TSyn & GetSyn(void) const
Get the Syn member data.
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.
bool IsSetAllele(void) const
Official allele designation Check if a value has been assigned to Allele data member.
bool IsSetMaploc(void) const
descriptive map location Check if a value has been assigned to Maploc 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 TAllele & GetAllele(void) const
Get the Allele member data.
const TMaploc & GetMaploc(void) const
Get the Maploc member data.
bool IsId(void) const
Check if variant Id is selected.
TId GetId(void) const
Get the variant data.
bool IsSetDesc(void) const
description (instead of name) Check if a value has been assigned to Desc data member.
const TActivity & GetActivity(void) const
Get the Activity member data.
const TName & GetName(void) const
Get the Name member data.
bool IsSetEc(void) const
E.C.
bool IsSetName(void) const
protein name Check if a value has been assigned to Name data member.
const TDesc & GetDesc(void) const
Get the Desc member data.
bool IsSetActivity(void) const
activities Check if a value has been assigned to Activity data member.
const TEc & GetEc(void) const
Get the Ec member data.
const TQuals & GetQuals(void) const
Get the Quals member data.
const TAnticodon & GetAnticodon(void) const
Get the Anticodon member data.
const TCodon & GetCodon(void) const
Get the Codon member data.
bool IsTRNA(void) const
Check if variant TRNA is selected.
void SetExt(TExt &value)
Assign a value to Ext data member.
bool IsSetExt(void) const
generic fields for ncRNA, tmRNA, miscRNA Check if a value has been assigned to Ext data member.
const Tdata & Get(void) const
Get the member data.
bool IsGen(void) const
Check if variant Gen is selected.
bool CanGetExt(void) const
Check if it is safe to call GetExt method.
bool CanGetAnticodon(void) const
Check if it is safe to call GetAnticodon method.
void SetType(TType value)
Assign a value to Type data member.
const TGen & GetGen(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 TExt & GetExt(void) const
Get the Ext member data.
const TTRNA & GetTRNA(void) const
Get the variant data.
bool CanGetCodon(void) const
Check if it is safe to call GetCodon method.
bool CanGetQuals(void) const
Check if it is safe to call GetQuals method.
const TClass & GetClass(void) const
Get the Class member data.
void SetHeader(THeader &value)
Assign a value to Header data member.
@ eField_id_location_id
location Seq-id
bool CanGetDbxref(void) const
Check if it is safe to call GetDbxref method.
bool CanGetExp_ev(void) const
Check if it is safe to call GetExp_ev method.
const TVal & GetVal(void) const
Get the Val member data.
bool IsSetComment(void) const
Check if a value has been assigned to Comment data member.
void ResetPartial(void)
Reset Partial 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.
bool IsSetCode(void) const
genetic code used Check if a value has been assigned to Code data member.
bool IsProt(void) const
Check if variant Prot is selected.
void SetLocation(TLocation &value)
Assign a value to Location data member.
bool IsCdregion(void) const
Check if variant Cdregion is selected.
const TRegion & GetRegion(void) const
Get the variant data.
void SetComment(const TComment &value)
Assign a value to Comment data member.
void ResetExcept(void)
Reset Except data member.
void SetPartial(TPartial value)
Assign a value to Partial data member.
const TQual & GetQual(void) const
Get the Qual member data.
const TLocal & GetLocal(void) const
Get the variant data.
void ResetExcept_text(void)
Reset Except_text data member.
bool IsSetXref(void) const
cite other relevant features Check if a value has been assigned to Xref data member.
const TLocation & GetLocation(void) const
Get the Location member data.
void SetExcept(TExcept value)
Assign a value to Except data member.
bool IsLocal(void) const
Check if variant Local is selected.
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 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 TCode & GetCode(void) const
Get the Code member data.
const TDbxref & GetDbxref(void) const
Get the Dbxref member data.
void SetData(TData &value)
Assign a value to Data data member.
void ResetComment(void)
Reset Comment data member.
const TCdregion & GetCdregion(void) const
Get the variant data.
bool IsSetQual(void) const
Check if a value has been assigned to Qual data member.
const TComment & GetComment(void) const
Get the Comment member data.
const TGene & GetGene(void) const
Get the variant data.
void SetExcept_text(const TExcept_text &value)
Assign a value to Except_text data member.
const TProt & GetProt(void) const
Get the variant data.
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
const TQual & GetQual(void) const
Get the Qual member data.
const TRna & GetRna(void) const
Get the variant data.
void ResetDbxref(void)
Reset Dbxref data member.
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.
bool IsSetVal(void) const
Check if a value has been assigned to Val data member.
bool IsRna(void) const
Check if variant Rna is selected.
TExp_ev GetExp_ev(void) const
Get the Exp_ev member data.
bool IsRegion(void) const
Check if variant Region is selected.
bool IsSetFrame(void) const
Check if a value has been assigned to Frame data member.
@ e_not_set
No variant selected.
@ eExp_ev_experimental
any reasonable experimental check
@ eFrame_not_set
not set, code uses one
@ eFrame_three
reading frame
bool IsMix(void) const
Check if variant Mix is selected.
bool CanGetStrand(void) const
Check if it is safe to call GetStrand method.
const Tdata & Get(void) const
Get the member data.
TStrand GetStrand(void) const
Get the Strand member data.
bool IsInt(void) const
Check if variant Int is selected.
const TInt & GetInt(void) const
Get the variant data.
const TMix & GetMix(void) const
Get the variant data.
const TId & GetId(void) const
Get the Id member data.
@ eMol_na
just a nucleic acid
<!DOCTYPE HTML >< html > n< header > n< title > PubSeq Gateway Help Page</title > n< style > n table
constexpr bool empty(list< Ts... >) noexcept
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
static int match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, uint16_t top_bracket, PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb)
Utility macros and typedefs for exploring NCBI objects from seqset.asn.
bool QualifierNamesAreEquivalent(string name1, string name2)
CRef< CSeqTable_column > AddStringColumnToTable(CRef< CSeq_table > table, string label)
void AddValueToColumn(CRef< CSeqTable_column > column, string value, size_t row, edit::EExistingText existing_text=edit::eExistingText_replace_old)
void FillShortColumns(CRef< objects::CSeq_table > values_table)
#define row(bind, expected)
@ eExistingText_replace_old
bool AddValueToString(string &str, const string &value, EExistingText existing_text)
Add text to an existing string, using the "existing_text" directive to combine new text with existing...