71 objects::CSeq_inst::ETopology topology = objects::CSeq_inst::eTopology_not_set;
73 topology = objects::CSeq_inst::eTopology_circular;
75 topology = objects::CSeq_inst::eTopology_linear;
77 topology = objects::CSeq_inst::eTopology_other;
79 topology = objects::CSeq_inst::eTopology_tandem;
85 string s_GetBiomolName (objects::CSeq_inst::EMol mol, objects::CMolInfo::TBiomol biomol)
89 case objects::CMolInfo::eBiomol_genomic:
90 case objects::CMolInfo::eBiomol_unknown:
91 if (mol == objects::CSeq_inst::eMol_rna) {
93 }
else if (mol == objects::CSeq_inst::eMol_dna) {
97 case objects::CMolInfo::eBiomol_pre_RNA:
98 name =
"Precursor RNA";
100 case objects::CMolInfo::eBiomol_mRNA:
103 case objects::CMolInfo::eBiomol_rRNA:
104 name =
"Ribosomal RNA";
106 case objects::CMolInfo::eBiomol_tRNA:
107 name =
"Transfer RNA";
109 case objects::CMolInfo::eBiomol_peptide:
112 case objects::CMolInfo::eBiomol_other_genetic:
113 name =
"Other-Genetic";
115 case objects::CMolInfo::eBiomol_genomic_mRNA:
116 name =
"Genomic-mRNA";
118 case objects::CMolInfo::eBiomol_cRNA:
121 case objects::CMolInfo::eBiomol_transcribed_RNA:
122 name =
"Transcribed RNA";
124 case objects::CMolInfo::eBiomol_ncRNA:
125 case objects::CMolInfo::eBiomol_scRNA:
126 case objects::CMolInfo::eBiomol_snoRNA:
127 case objects::CMolInfo::eBiomol_snRNA:
128 case objects::CMolInfo::eBiomol_tmRNA:
129 name =
"Non-coding RNA";
131 case objects::CMolInfo::eBiomol_other:
141 mol = objects::CSeq_inst::eMol_na;
142 biomol = objects::CMolInfo::eBiomol_unknown;
145 biomol = objects::CMolInfo::eBiomol_genomic;
146 mol = objects::CSeq_inst::eMol_rna;
148 biomol = objects::CMolInfo::eBiomol_genomic;
149 mol = objects::CSeq_inst::eMol_dna;
154 biomol = objects::CMolInfo::eBiomol_pre_RNA;
155 mol = objects::CSeq_inst::eMol_rna;
159 biomol = objects::CMolInfo::eBiomol_mRNA;
160 mol = objects::CSeq_inst::eMol_rna;
163 biomol = objects::CMolInfo::eBiomol_rRNA;
164 mol = objects::CSeq_inst::eMol_rna;
167 biomol = objects::CMolInfo::eBiomol_tRNA;
168 mol = objects::CSeq_inst::eMol_rna;
171 biomol = objects::CMolInfo::eBiomol_peptide;
172 mol = objects::CSeq_inst::eMol_aa;
174 biomol = objects::CMolInfo::eBiomol_other_genetic;
175 mol = objects::CSeq_inst::eMol_na;
178 biomol = objects::CMolInfo::eBiomol_genomic_mRNA;
179 mol = objects::CSeq_inst::eMol_rna;
181 biomol = objects::CMolInfo::eBiomol_cRNA;
182 mol = objects::CSeq_inst::eMol_rna;
184 biomol = objects::CMolInfo::eBiomol_transcribed_RNA;
185 mol = objects::CSeq_inst::eMol_rna;
192 biomol = objects::CMolInfo::eBiomol_ncRNA;
193 mol = objects::CSeq_inst::eMol_rna;
195 biomol = objects::CMolInfo::eBiomol_other;
196 mol = objects::CSeq_inst::eMol_na;
203 vector<string> mol_options;
206 switch (wizard_type) {
208 mol_options.push_back(
"genomic RNA");
209 mol_options.push_back(
"cRNA");
210 mol_options.push_back(
"mRNA");
213 mol_options.push_back(
"mRNA");
219 mol_options.push_back(
"genomic RNA");
220 mol_options.push_back(
"cRNA");
221 mol_options.push_back(
"mRNA");
222 mol_options.push_back(
"Precursor RNA");
223 mol_options.push_back(
"Ribosomal RNA");
224 mol_options.push_back(
"Transfer RNA");
225 mol_options.push_back(
"Other-Genetic");
226 mol_options.push_back(
"Transcribed RNA");
227 mol_options.push_back(
"Transfer-messenger RNA");
228 mol_options.push_back(
"ncRNA");
237 vector<string> genome_options;
238 genome_options.clear();
240 genome_options.push_back(
"genomic");
241 genome_options.push_back(
"mitochondrion");
242 genome_options.push_back(
"chloroplast");
243 genome_options.push_back(
"plastid");
245 genome_options.push_back(
"genomic");
249 genome_options.push_back(
"mitochondrion");
253 genome_options.push_back(
"chloroplast");
254 genome_options.push_back(
"chromoplast");
255 genome_options.push_back(
"kinetoplast");
256 genome_options.push_back(
"plastid");
257 genome_options.push_back(
"macronuclear");
258 genome_options.push_back(
"cyanelle");
259 genome_options.push_back(
"nucleomorph");
260 genome_options.push_back(
"apicoplast");
261 genome_options.push_back(
"leucoplast");
262 genome_options.push_back(
"proplastid");
263 genome_options.push_back(
"hydrogenosome");
264 genome_options.push_back(
"chromatophore");
265 genome_options.push_back(
"extrachromosomal");
266 genome_options.push_back(
"plasmid");
267 genome_options.push_back(
"proviral");
268 genome_options.push_back(
"virion");
269 genome_options.push_back(
"endogenous-virus");
273 return genome_options;
281 id_col->SetHeader().SetField_id(objects::CSeqTable_column_info::eField_id_location_id);
283 table->SetColumns().push_back(id_col);
289 moltype_col =
new objects::CSeqTable_column();
291 moltype_col->SetHeader().SetField_name(
"biomol");
292 moltype_col->SetData().SetString();
293 table->SetColumns().push_back(moltype_col);
294 topology_col =
new objects::CSeqTable_column();
295 topology_col->SetHeader().SetTitle(
"Topology");
296 topology_col->SetHeader().SetField_name(
"topology");
297 topology_col->SetData().SetString();
298 table->SetColumns().push_back(topology_col);
301 objects::CBioseq_CI b_iter(seh, objects::CSeq_inst::eMol_na);
302 for ( ; b_iter ; ++b_iter ) {
303 objects::CSeqdesc_CI it (*b_iter, objects::CSeqdesc::e_Molinfo);
305 id->Assign (*(b_iter->GetSeqId()));
306 id_col->SetData().SetId().push_back(
id);
308 objects::CSeq_inst::ETopology topology = objects::CSeq_inst::eTopology_not_set;
309 if (b_iter->IsSetInst_Topology()) {
310 topology = b_iter->GetInst_Topology();
315 objects::CSeq_inst::EMol mol = objects::CSeq_inst::eMol_na;
316 if (b_iter->IsSetInst_Mol()) {
317 mol = b_iter->GetInst_Mol();
319 objects::CMolInfo::TBiomol biomol = objects::CMolInfo::eBiomol_unknown;
320 if (it && it->GetMolinfo().IsSetBiomol()) {
321 biomol = it->GetMolinfo().GetBiomol();
323 moltype_col->SetData().SetString().push_back(
s_GetBiomolName(mol, biomol));
344 if( ! values_table->IsSetColumns() || values_table->GetColumns().empty() ) {
348 for (
int row = 0;
row < values_table->GetNum_rows() && (
unsigned int) row < id_col->GetData().GetSize();
row++) {
349 objects::CBioseq_Handle bsh = seh.GetBioseqHandle(*(id_col->GetData().GetId()[
row]));
352 inst->Assign(bsh.GetInst());
353 bool inst_changed =
false;
357 if (inst->IsSetTopology()) {
358 if (new_topology != inst->GetTopology()) {
359 inst->SetTopology(new_topology);
363 if (new_topology != objects::CSeq_inst::eTopology_not_set) {
364 inst->SetTopology(new_topology);
371 objects::CMolInfo & molinfo = new_molinfo_desc->SetMolinfo();
372 bool molinfo_changed =
false;
373 objects::CSeqdesc_CI desc_ci( bsh, objects::CSeqdesc::e_Molinfo);
375 molinfo.Assign(desc_ci->GetMolinfo());
377 molinfo_changed =
true;
381 objects::CSeq_inst::EMol new_mol;
382 objects::CMolInfo::EBiomol new_biomol;
384 if (inst->IsSetMol()) {
385 if (new_mol != inst->GetMol()) {
386 inst->SetMol(new_mol);
390 if (new_mol != objects::CSeq_inst::eMol_not_set) {
391 inst->SetMol(new_mol);
396 if (molinfo.IsSetBiomol()) {
397 if (new_biomol != molinfo.GetBiomol()) {
398 molinfo.SetBiomol(new_biomol);
399 molinfo_changed =
true;
402 if (new_biomol != objects::CMolInfo::eBiomol_unknown) {
403 molinfo.SetBiomol(new_biomol);
404 molinfo_changed =
true;
411 cmd->AddCommand(*scmd);
413 if (molinfo_changed) {
416 cmd->AddCommand (*ecmd);
421 if (add_confirmed && (inst_changed || molinfo_changed)) {
435 id_col->SetHeader().SetField_id(objects::CSeqTable_column_info::eField_id_location_id);
437 table->SetColumns().push_back(id_col);
440 comment_col->SetHeader().SetTitle(
label);
441 comment_col->SetHeader().SetField_name(
"comment");
442 comment_col->SetData().SetString();
443 table->SetColumns().push_back(comment_col);
446 objects::CBioseq_CI b_iter(seh, objects::CSeq_inst::eMol_na);
447 for ( ; b_iter ; ++b_iter ) {
448 objects::CSeqdesc_CI it (*b_iter, objects::CSeqdesc::e_Comment);
450 id->Assign (*(b_iter->GetSeqId()));
451 id_col->SetData().SetId().push_back(
id);
454 comment = it->GetComment();
456 comment_col->SetData().SetString().push_back(comment);
475 if( ! values_table->IsSetColumns() || values_table->GetColumns().empty() ) {
479 for (
int row = 0;
row < values_table->GetNum_rows() && (
unsigned int) row < id_col->GetData().GetSize();
row++) {
480 objects::CBioseq_Handle bsh = seh.GetBioseqHandle(*(id_col->GetData().GetId()[
row]));
481 string new_comment =
"";
482 if ((
unsigned int) row < comment_col->GetData().GetSize()) {
483 new_comment = comment_col->GetData().GetString()[
row];
485 string old_comment =
"";
486 objects::CSeqdesc_CI desc_ci( bsh, objects::CSeqdesc::e_Comment);
488 old_comment = desc_ci->GetComment();
492 new_desc->SetComment(new_comment);
495 cmd->AddCommand (*ecmd);
512 if (src.IsSetGenome() && src.GetGenome() == objects::CBioSource::eGenome_mitochondrion) {
514 }
else if (src.IsSetOrg() && src.GetOrg().IsSetOrgname() && src.GetOrg().GetOrgname().IsSetLineage()) {
515 const string& lineage = src.GetOrg().GetOrgname().GetLineage();
535 id_col->SetHeader().SetField_id(objects::CSeqTable_column_info::eField_id_location_id);
537 table->SetColumns().push_back(id_col);
540 comment_col->SetHeader().SetTitle(
label);
541 comment_col->SetHeader().SetField_name(
"comment");
542 comment_col->SetData().SetString();
543 table->SetColumns().push_back(comment_col);
546 objects::CBioseq_CI b_iter(seh, objects::CSeq_inst::eMol_na);
547 for ( ; b_iter ; ++b_iter ) {
548 objects::CSeqdesc_CI desc (*b_iter, objects::CSeqdesc::e_Source);
555 objects::CFeat_CI fit (*b_iter);
556 while (fit && this_count < 2) {
558 if (fit->IsSetData() && fit->GetData().IsRna()
559 && fit->GetData().GetRna().IsSetType()
560 && fit->GetData().GetRna().GetType() == objects::CRNA_ref::eType_rRNA
561 && fit->GetData().GetRna().IsSetExt()
562 && fit->GetData().GetRna().GetExt().IsName()
563 &&
NStr::Equal(fit->GetData().GetRna().GetExt().GetName(),
"16S ribosomal RNA")) {
570 if (this_count == 1 && any) {
572 id->Assign (*(b_iter->GetSeqId()));
573 id_col->SetData().SetId().push_back(
id);
574 objects::CSeqdesc_CI it (*b_iter, objects::CSeqdesc::e_Comment);
578 string prog_ver =
"";
582 comment_col->SetData().SetString().push_back(prog_ver);
606 if( ! values_table->IsSetColumns() || values_table->GetColumns().empty() ) {
610 for (
int row = 0;
row < values_table->GetNum_rows() && (
unsigned int) row < id_col->GetData().GetSize();
row++) {
611 objects::CBioseq_Handle bsh = seh.GetBioseqHandle(*(id_col->GetData().GetId()[
row]));
612 string new_comment = comment_col->GetData().GetString()[
row];
616 string old_comment =
"";
617 objects::CSeqdesc_CI desc_ci( bsh, objects::CSeqdesc::e_Comment);
622 old_comment = desc_ci->GetComment();
626 new_desc->SetComment(new_comment);
629 cmd->AddCommand (*ecmd);
647 id_col->SetHeader().SetField_id(objects::CSeqTable_column_info::eField_id_location_id);
649 table->SetColumns().push_back(id_col);
654 objects::CBioseq_CI b_iter(seh, objects::CSeq_inst::eMol_na);
655 for ( ; b_iter ; ++b_iter ) {
657 id->Assign (*(b_iter->GetSeqId()));
658 id_col->SetData().SetId().push_back(
id);
660 objects::CSeqdesc_CI it (*b_iter, objects::CSeqdesc::e_User);
662 if (it->GetUser().IsSetType()
663 && it->GetUser().GetType().IsStr()
665 ITERATE (objects::CUser_object::TData, field_it, it->GetUser().GetData()) {
666 if ((*field_it)->IsSetLabel()
667 && (*field_it)->GetLabel().IsStr()
668 && (*field_it)->IsSetData()) {
669 string existing_val =
"";
670 if ((*field_it)->GetData().IsStr()) {
671 existing_val = (*field_it)->GetData().GetStr();
672 }
else if ((*field_it)->GetData().IsStrs()) {
673 for (vector<CStringUTF8>::const_iterator str_it = (*field_it)->GetData().GetStrs().begin();
674 str_it != (*field_it)->GetData().GetStrs().end();
676 existing_val +=
", " + *str_it;
679 existing_val = existing_val.substr(2);
706 const objects::CSeq_table::TColumns &
columns = values_table->GetColumns();
707 size_t num_cols =
columns.size();
709 for (
int row = 0;
row < values_table->GetNum_rows() && (
size_t) row < id_col->GetData().GetSize();
row++) {
710 objects::CBioseq_Handle bsh = seh.GetBioseqHandle(*(id_col->GetData().GetId()[
row]));
713 objects::CSeqdesc_CI desc_ci( bsh, objects::CSeqdesc::e_User);
715 while (desc_ci && !found) {
716 if (desc_ci->GetUser().IsSetType()
717 && desc_ci->GetUser().GetType().IsStr()
720 new_desc->SetUser().Assign(desc_ci->GetUser());
726 bool any_change =
false;
727 for (
size_t i = 1;
i < num_cols;
i++) {
728 string col_name = values_table->GetColumns()[
i]->GetHeader().GetTitle();
730 objects::CUser_field& field = new_desc->SetUser().SetField(col_name);
731 if (!field.IsSetLabel() || !field.GetLabel().IsStr() ||
NStr::IsBlank(field.GetLabel().GetStr())) {
732 field.SetLabel().SetStr(col_name);
735 if ((
size_t) row < values_table->GetColumns()[
i]->GetData().GetSize()) {
736 new_val = values_table->GetColumns()[
i]->GetData().GetString()[
row];
738 vector<string> values;
741 for (vector<string>::iterator str_it = values.begin(); str_it != values.end(); str_it++) {
742 field.SetData().SetStrs().push_back(*str_it);
744 if (values.size() == 0) {
745 field.SetData().SetStrs().push_back(
" ");
753 cmd->AddCommand (*ecmd);
755 new_desc->SetUser().SetType().SetStr(
"DBLink");
776 inst = &(
b->GetInst());
836 vector<string> rvals;
837 rvals.push_back(
GetVal(
object));
967 vector<CConstRef<CObject> > objs;
989 vector<CRef<edit::CApplyObject> > objs;
1000 new_desc->
Assign(*desc_ci);
1004 objs.push_back(new_obj);
1014 objs.push_back(new_obj);
1029 objs.push_back(new_obj);
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
static string GetBiomolLabel(objects::CMolInfo::TBiomol biomol)
static objects::CSeq_inst::TStrand GetStrandFromLabel(const string &val)
static objects::CSeq_inst::TMol GetMolFromLabel(const string &val)
static string GetTechLabel(objects::CMolInfo::TTech tech)
static objects::CSeq_inst::TTopology GetTopologyFromLabel(const string &val)
static EMolInfoFieldType GetFieldType(const string &field_name)
static objects::CMolInfo::TTech GetTechFromLabel(const string &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 objects::CMolInfo::TCompleteness GetCompletenessFromLabel(const string &val)
static objects::CMolInfo::TBiomol GetBiomolFromLabel(const string &val)
static string GetCompletenessLabel(objects::CMolInfo::TCompleteness tech)
virtual void SetConstraint(const string &field, CConstRef< objects::edit::CStringConstraint > string_constraint)
virtual bool SetVal(CObject &object, const string &val, objects::edit::EExistingText existing_text)
CMolInfoFieldType::EMolInfoFieldType m_FieldType
virtual vector< string > GetVals(const CObject &object)
virtual string GetVal(const CObject &object)
CMolInfoFieldType::EMolInfoFieldType m_ConstraintFieldType
virtual vector< CConstRef< CObject > > GetObjects(CBioseq_Handle bsh)
virtual vector< CRef< objects::edit::CApplyObject > > GetApplyObjects(CBioseq_Handle bsh)
virtual bool IsEmpty(const CObject &object) const
virtual void ClearVal(CObject &object)
CRef< objects::edit::CStringConstraint > m_StringConstraint
@ eWizardSrcType_bacteria_or_archaea
@ eWizardType_microsatellite
@ eWizardType_rrna_its_igs
static CRef< CCmdComposite > SetWizardFieldInSeqEntry(objects::CSeq_entry_Handle entry, string field_name, string value)
objects::CSeqdesc::E_Choice m_Subtype
virtual vector< CConstRef< CObject > > GetObjects(objects::CBioseq_Handle bsh)
const char * kMoleculeType
const char * kDefaultMoleculeType
const char * kSequenceIdColLabel
static const column_t columns[]
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
CSeq_entry_Handle GetParentEntry(void) const
Get parent Seq-entry handle.
bool IsSetInst(void) const
const TInst & GetInst(void) const
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
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 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 bool Equal(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2, ECase use_case=eCase)
Test for equality of a substring with another string.
static const char label[]
void SetCompleteness(TCompleteness value)
Assign a value to Completeness data member.
void ResetStrand(void)
Reset Strand data member.
bool IsSetCompleteness(void) const
Check if a value has been assigned to Completeness data member.
bool IsMolinfo(void) const
Check if variant Molinfo is selected.
TStrand GetStrand(void) const
Get the Strand member data.
void ResetMol(void)
Reset Mol data member.
TTopology GetTopology(void) const
Get the Topology member data.
bool IsSetTechexp(void) const
explanation if tech not enough
bool IsSetMol(void) const
Check if a value has been assigned to Mol data member.
bool IsSetStrand(void) const
Check if a value has been assigned to Strand data member.
void ResetCompleteness(void)
Reset Completeness data member.
bool IsSetBiomol(void) const
Check if a value has been assigned to Biomol data member.
TTech GetTech(void) const
Get the Tech member data.
void ResetTechexp(void)
Reset Techexp data member.
TMol GetMol(void) const
Get the Mol member data.
const TTechexp & GetTechexp(void) const
Get the Techexp member data.
void SetInst(TInst &value)
Assign a value to Inst data member.
void ResetTech(void)
Reset Tech data member.
void ResetTopology(void)
Reset Topology data member.
TBiomol GetBiomol(void) const
Get the Biomol member data.
void SetTopology(TTopology value)
Assign a value to Topology data member.
void ResetBiomol(void)
Reset Biomol data member.
void SetBiomol(TBiomol value)
Assign a value to Biomol data member.
bool IsSetTech(void) const
Check if a value has been assigned to Tech data member.
void SetTechexp(const TTechexp &value)
Assign a value to Techexp data member.
TCompleteness GetCompleteness(void) const
Get the Completeness member data.
void SetStrand(TStrand value)
Assign a value to Strand data member.
void SetTech(TTech value)
Assign a value to Tech data member.
const TMolinfo & GetMolinfo(void) const
Get the variant data.
TMolinfo & SetMolinfo(void)
Select the variant.
void SetMol(TMol value)
Assign a value to Mol data member.
bool IsSetTopology(void) const
Check if a value has been assigned to Topology data member.
@ eTech_other
use Source.techexp
<!DOCTYPE HTML >< html > n< header > n< title > PubSeq Gateway Help Page</title > n< style > n table
CRef< CCmdComposite > ApplyCommentValuesTableToSeqEntry(CRef< objects::CSeq_table >values_table, objects::CSeq_entry_Handle seh, const string &label)
CRef< objects::CSeq_table > BuildCommentDescriptorValuesTableFromSeqEntry(objects::CSeq_entry_Handle seh, const string &label)
objects::CSeq_inst::ETopology s_TopologyFromName(string name)
static void s_GetBiomolValuesFromName(string name, objects::CSeq_inst::EMol &mol, objects::CMolInfo::EBiomol &biomol)
CRef< CCmdComposite > ApplyMolInfoValuesTableToSeqEntry(CRef< objects::CSeq_table >values_table, objects::CSeq_entry_Handle seh, bool add_confirmed)
vector< string > GetSrcGenomeOptions(CSourceRequirements::EWizardType wizard_type, CSourceRequirements::EWizardSrcType src_type)
vector< string > GetMoleculeTypeOptions(CSourceRequirements::EWizardType wizard_type)
string s_GetBiomolName(objects::CSeq_inst::EMol mol, objects::CMolInfo::TBiomol biomol)
CRef< objects::CSeq_table > BuildMolInfoValuesTableFromSeqEntry(objects::CSeq_entry_Handle seh, CSourceRequirements::EWizardType wizard_type)
CRef< objects::CSeq_table > BuildChimeraValuesTableFromSeqEntry(objects::CSeq_entry_Handle seh, const string &label, CSourceRequirements::EWizardSrcType src_type)
static bool s_WantChimeraForSource(const objects::CBioSource &src, CSourceRequirements::EWizardSrcType src_type)
CRef< CCmdComposite > ApplyDBLinkValuesTableToSeqEntry(CRef< objects::CSeq_table >values_table, objects::CSeq_entry_Handle seh)
CRef< CCmdComposite > ApplyChimeraValuesTableToSeqEntry(CRef< objects::CSeq_table >values_table, objects::CSeq_entry_Handle seh, const string &label)
CRef< objects::CSeq_table > BuildDBLinkValuesTableFromSeqEntry(objects::CSeq_entry_Handle seh)
const string kChimeraCommentStart
CRef< CSeqTable_column > FindSeqTableColumnByName(CRef< objects::CSeq_table > values_table, string column_name)
void AddValueToTable(CRef< CSeq_table > table, string subtype_name, string value, size_t row, edit::EExistingText existing_text=edit::eExistingText_replace_old)
#define row(bind, expected)