62 #include <wx/treebook.h>
71 #include <wx/hyperlink.h>
72 #include <wx/toplevel.h>
169 m_Window->AddPage(panel,
wxT(
"Protein Name and Description"));
178 m_Window->AddPage(panel,
wxT(
"Protein Properties"));
187 feat.
SetData().SetImp().SetKey(
"regulatory");
188 bool has_class =
false;
190 if ((*it)->IsSetQual() &&
NStr::EqualNocase((*it)->GetQual(),
"regulatory_class")) {
191 (*it)->SetVal(regulatory_class);
198 q->
SetQual(
"regulatory_class");
199 q->
SetVal(regulatory_class);
215 return edited_seq_feat;
228 "CEditObjectSeq_feat::CreateWindow - Window already created!");
230 wxTopLevelWindow* gui_widget =
dynamic_cast<wxTopLevelWindow*
>(parent);
235 m_Window =
new wxTreebook( parent,
ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxBK_DEFAULT );
241 string sub_type = seq_feat_data.
GetKey();
242 if (sub_type.find(
"RNA") == sub_type.length()-3)
248 if (seq_feat_data.
IsGene()) {
260 gui_widget->SetTitle(
_(
"Gene"));
263 help_client->
SetHelpUrl(
_(
"https://www.ncbi.nlm.nih.gov/tools/gbench/manual10/#gene"));
265 else if (seq_feat_data.
IsRna()) {
272 gui_widget->SetTitle(
_(
"RNA"));
276 help_client->
SetHelpUrl(
_(
"https://www.ncbi.nlm.nih.gov/tools/gbench/manual10/#rrna"));
278 help_client->
SetHelpUrl(
_(
"https://www.ncbi.nlm.nih.gov/tools/gbench/manual10/#trna"));
280 help_client->
SetHelpUrl(
_(
"https://www.ncbi.nlm.nih.gov/tools/gbench/manual10/#ncrna"));
301 prot_feat = &edited_protein->
SetData().SetProt();
303 bool has_xref =
false;
306 if ((*it)->IsSetData() && (*it)->GetData().IsProt()) {
307 prot_feat = &((*it)->SetData().SetProt());
315 xref->SetData().SetProt();
316 edited_seq_feat.
SetXref().push_back(xref);
317 prot_feat = &(xref->SetData().SetProt());
329 m_Window->AddPage(panel,
wxT(
"Translation Exceptions"));
335 gui_widget->SetTitle(
_(
"CDS"));
337 help_client->
SetHelpUrl(
_(
"https://www.ncbi.nlm.nih.gov/tools/gbench/manual10/#cds"));
338 }
else if (seq_feat_data.
IsPub()) {
346 gui_widget->SetTitle(
_(
"Pub feature"));
349 else if (seq_feat_data.
IsImp()) {
358 gui_widget->SetTitle(wxString(seq_feat_data.
GetImp().
GetKey()));
360 gui_widget->SetTitle(
_(
"Imp Feature"));
365 help_client->
SetHelpUrl(
_(
"https://www.ncbi.nlm.nih.gov/tools/gbench/manual10/#misc-feature"));
369 else if (seq_feat_data.
IsProt()) {
371 m_Window->AddPage(panel,
wxT(
"Protein Name and Description"));
373 m_Window->AddPage(panel,
wxT(
"Enzyme Commission Numbers"));
379 gui_widget->SetTitle(
_(
"Protein"));
381 else if (seq_feat_data.
IsBiosrc()) {
401 gui_widget->SetTitle(
_(
"BioSource"));
403 else if (seq_feat_data.
IsRegion()) {
410 gui_widget->SetTitle(
_(
"Region"));
412 else if (seq_feat_data.
IsBond()) {
419 gui_widget->SetTitle(
_(
"Bond"));
421 else if (seq_feat_data.
IsSite()) {
428 gui_widget->SetTitle(
_(
"Site"));
433 m_Window->AddPage(sec_panel,
wxT(
"Secondary Structure"));
435 gui_widget->SetTitle(
_(
"Secondary Structure"));
444 gui_widget->SetTitle(
_(
"Comment"));
461 m_Window->AddPage (panel,
wxT(
"GenBank Qualifiers"));
463 if (seq_feat_data.
IsRna()) {
465 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
482 m_Window->AddSubPage (panel,
wxT(
"Feature Identifiers"));
496 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
497 m_Window->GetPage(
i)->TransferDataToWindow();
525 if (gene_start_pos == cds_start_pos) {
540 if (gene_stop_pos == cds_stop_pos) {
554 bsh =
m_Scope->GetBioseqHandle(loc);
566 bsh =
m_Scope->GetBioseqHandle(new_loc);
571 bool origin_start =
false;
572 bool origin_stop =
false;
581 else if (stop == length - 1)
589 intervals.
insert(make_pair(start, stop));
591 if (origin_start && origin_stop && !intervals.
empty())
594 TSeqPos int_stop = intervals.rbegin()->second;
595 if (int_stop > length)
600 before_origin->
SetInt().SetFrom(int_start);
601 before_origin->
SetInt().SetTo(length - 1);
602 before_origin->
SetInt().SetId().Assign(*new_loc.
GetId());
604 after_origin->
SetInt().SetFrom(0);
605 after_origin->
SetInt().SetTo(int_stop);
606 after_origin->
SetInt().SetId().Assign(*new_loc.
GetId());
607 adjusted_gene->
SetLocation().SetMix().Set().clear();
608 adjusted_gene->
SetLocation().SetMix().Set().push_back(before_origin);
609 adjusted_gene->
SetLocation().SetMix().Set().push_back(after_origin);
614 adjusted_gene->
SetLocation().SetInt().SetFrom(int_start);
615 adjusted_gene->
SetLocation().SetInt().SetTo(int_stop);
622 for (
CSeq_loc_CI loc_iter(new_loc); loc_iter; ++loc_iter)
624 if (loc_iter.IsSetStrand())
625 strands.
insert(loc_iter.GetStrand());
629 if (strands.
size() > 1)
645 bool update_gene_span =
true;
648 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
650 if (cdsProductPanel) {
655 if (!update_gene_span && updated_gene->
Equals(old_gene))
663 adjusted_gene->
Assign(*updated_gene);
680 for (
CSeq_loc_CI loc_iter(new_loc); loc_iter; ++loc_iter)
682 if (loc_iter.IsSetStrand())
683 strands.
insert(loc_iter.GetStrand());
686 idhs.
insert(loc_iter.GetSeq_id_Handle());
688 if (strands.
size() > 1 || idhs.
size() > 1)
699 adjusted_gene->
SetLocation().SetInt().SetId().Assign(*
id);
712 if (!adjusted_gene->
Equals(old_gene)) {
728 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
747 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
757 edited_seq_feat.
SetData().SetImp().SetKey(
"misc_feature");
767 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
782 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
796 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
812 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
817 if (inferencePanel) {
828 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
830 if (experimentsPanel)
833 if (experimentsPanel) {
843 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
848 if (citationsPanel) {
857 bool has_xref =
false;
863 if ((*it)->IsSetId() && (*it)->GetId().IsLocal() && (*it)->GetId().GetLocal().IsId()) {
890 bool update_mrna_span =
false;
891 bool update_mrna_product =
false;
896 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
897 if (!cdsProteinPanel) {
900 if (!cdsProductPanel) {
907 if (cdsProteinPanel && cdsProductPanel && locPanel) {
911 if (cdsProteinPanel) {
914 if (cdsProductPanel) {
921 if (update_mrna_product || update_mrna_span) {
928 bool any_change =
false;
930 if (update_mrna_product) {
932 string new_prot_product =
"";
940 string orig_mrna_product =
"";
944 if (!
NStr::Equal(new_prot_product, orig_mrna_product)
947 new_mrna->
SetData().SetRna().SetExt().SetName(new_prot_product);
952 if (update_mrna_span) {
986 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
988 if (transl_except_panel)
991 if (transl_except_panel) {
1000 bool any_actions =
false;
1003 const CSeq_feat* orig_protein =
nullptr;
1009 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1017 cds.
SetData().SetImp().SetKey(
"misc_feature");
1039 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1051 if (product_seq && !ShouldCreateNewProductSeq) {
1055 edited_product->
Assign(*product_seq);
1076 edited_protein.
SetLocation().SetInt().SetId().Assign(*(edited_product->
GetId().front()));
1081 cleanup.BasicCleanup(edited_protein);
1089 bool cds_change =
false;
1110 bool found_existing =
false;
1113 if ((*it)->IsSetData() && (*it)->GetData().IsProt()) {
1114 (*it)->SetData().SetProt().Assign(edited_protein.
GetData().
GetProt());
1115 found_existing =
true;
1120 if (!found_existing) {
1122 prot_xref->SetData().SetProt().Assign(edited_protein.
GetData().
GetProt());
1123 cds.
SetXref().push_back(prot_xref);
1127 }
else if (ShouldCreateNewProductSeq) {
1139 bsh =
m_Scope->GetBioseqHandle(loc_iter.GetSeq_id());
1146 if (!new_product->
IsSetId() || new_product->
GetId().empty()) {
1155 new_product->
SetId().push_back(product_id);
1158 product_id = new_product->
SetId().front();
1167 prot_entry->
SetSeq(*new_product);
1175 prot->Assign(*orig_protein);
1176 prot->SetLocation().Assign(*keep_loc);
1177 if (partial5 || partial3) {
1178 prot->SetPartial(
true);
1182 if ((*it)->IsSetData() && (*it)->GetData().IsProt()) {
1183 prot->SetData().SetProt().Assign((*it)->GetData().GetProt());
1228 for (CSeq_feat::TQual::iterator qual = edited_feat.
SetQual().begin(); qual != edited_feat.
SetQual().end(); ++qual)
1230 if ((*qual)->IsSetQual() && !(*qual)->GetQual().empty() && (*qual)->IsSetVal() && !(*qual)->GetVal().empty())
1244 if (!mandatory.
empty())
1247 for (
auto q : mandatory)
1252 msg <<
"This feature is missing mandatory qualifier";
1260 msg <<
". Would you like to continue?";
1261 int answer = wxMessageBox(msg,
ToWxString(
"Warning"), wxYES_NO | wxICON_QUESTION);
1262 if (answer != wxYES)
1284 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1285 if (!
m_Window->GetPage(
i)->TransferDataFromWindow()) {
1300 fh =
m_Scope->GetSeq_featHandle(seq_feat);
1310 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1319 edited_seq_feat.
SetData().SetPub(*pub);
1324 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1334 bool is_biosrc =
false;
1336 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1338 if (biosource_panel)
1341 if (biosource_panel) {
1347 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1358 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1378 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1386 string region = regionPanel->
GetRegion();
1390 edited_seq_feat.
SetData().SetImp().SetKey(
"misc_feature");
1393 if (!region.empty())
1401 edited_seq_feat.
SetData().SetRegion(region);
1406 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1415 edited_seq_feat.
SetData().SetBond(bond);
1419 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1433 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1435 if (secondary_struc_panel)
1439 if (secondary_struc_panel) {
1442 edited_seq_feat.
SetData().SetPsec_str(struc);
1446 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1448 if (generic_props_panel)
1452 bool modify_pseudo =
false;
1453 string pseudo_choice;
1455 modify_pseudo =
true;
1465 cleanup.BasicCleanup(edited_seq_feat);
1477 for (
size_t i = 0;
i <
m_Window->GetPageCount(); ++
i) {
1479 if (addedGenePanel) {
1503 }
else if (new_gene) {
1509 bsh =
m_SEH.GetScope().GetBioseqHandle(loc_iter.GetSeq_id());
1522 if (handle_product) {
1544 unique_ptr<CObjectOStream>
1546 *
out << edited_seq_feat;
1561 wxPanel* panel_parent =
dynamic_cast<wxPanel*
>(
m_Window->GetParent());
1571 bool enable_import =
false;
1572 bool enable_export =
false;
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.
bool AdjustProteinFeaturePartialsToMatchCDS(CSeq_feat &new_prot, const CSeq_feat &cds)
AdjustProteinFeaturePartialsToMatchCDS A function to change an existing MolInfo to match a coding reg...
CRef< objects::CSeq_id > GetNewProtId(objects::CBioseq_Handle bsh, int &offset, string &id_label, bool general_only)
bool IsGeneralIdProtPresent(objects::CSeq_entry_Handle tse)
CRef< CGenetic_code > GetGeneticCodeForBioseq(CBioseq_Handle bh)
GetGeneticCodeForBioseq A function to construct the appropriate CGenetic_code object to use when cons...
void PopulateBioSource(objects::CBioSource &source)
TSeqPos GetLength(void) const
CSeqFeatData::EBond GetBond()
void SetExceptions(objects::CCdregion &cds)
bool ShouldUpdatemRNAProduct()
virtual bool TransferDataFromWindow()
void SetProduct(objects::CSeq_feat &feat)
bool ShouldUpdatemRNALocation()
bool ShouldCreateNewProductSeq()
void SetProtein(objects::CBioseq &bioseq)
bool ShouldUpdateGeneLocation()
void SetProductId(const string &val)
CRef< objects::CSeq_id > GetProductId()
void SetCitations(objects::CSeq_feat &seq_feat)
void AddCommand(IEditCommand &command)
void PopulateDbxrefs(objects::CSeq_feat &seq_feat)
CRef< CCmdComposite > x_HandleCdsProduct(const objects::CSeq_feat &old_cds, objects::CSeq_feat &cds)
void x_SetGbQuals(objects::CSeq_feat &edited_feat)
void x_AdjustCircularGene(CRef< objects::CSeq_feat > adjusted_gene, const objects::CSeq_loc &new_loc)
void x_SetCitations(objects::CSeq_feat &edited_feat)
void x_SetTranslExcept(objects::CSeq_feat &cds)
void x_SetInferences(objects::CSeq_feat &edited_feat)
virtual IEditCommand * GetEditCommand()
After placing the window in the Edit Object Dialog ShowModal() method of the dialog is called.
objects::CSeq_feat & x_GetSeqFeatCopy()
void x_ConvertCommentToMiscFeat(objects::CSeq_feat &edited_seq_feat)
void x_AdjustLocation(objects::CSeq_feat &edited_feat)
void x_AddCodingRegionProteinNamePanel(objects::CProt_ref &prot)
CRef< CSerialObject > m_EditedFeature
bool x_IsCircular(const objects::CSeq_loc &loc)
void x_SetIdentifiers(objects::CSeq_feat &edited_feat)
virtual wxWindow * CreateWindow(wxWindow *parent)
creates a child (not top level) windows that can contain whatever controls/subwindows etc.
objects::CSeq_entry_Handle m_SEH
void x_SetExperiments(objects::CSeq_feat &edited_feat)
CRef< objects::CScope > m_Scope
CIRef< IEditCommand > m_EditAction
void x_AddCodingRegionProteinPanels(objects::CProt_ref &prot, objects::CSeq_feat *edited_protein)
CIRef< IEditCommand > x_AdjustGene(const objects::CSeq_feat &old_gene, const objects::CSeq_loc &old_loc, const objects::CSeq_loc &new_loc, CRef< objects::CSeq_feat > updated_gene)
CRef< CSerialObject > m_EditedProtein
void x_SetCrossRefs(objects::CSeq_feat &edited_feat)
void OnPageChange(wxBookCtrlEvent &event)
wxWindow * CreateWindowImpl(wxWindow *parent, objects::CSeq_feat &edited_seq_feat)
CIRef< IEditCommand > x_UpdatemRNA(const objects::CSeq_feat &cds)
void PopulateGBQuals(objects::CSeq_feat &seq_feat)
CConstRef< objects::CSeq_feat > GetGeneToEdit()
void SetModifyPseudo(bool modify_pseudo, const string &pseudo_choice)
CRef< objects::CSeq_feat > GetNewGene()
CRef< objects::CSeq_feat > GetUpdatedGene()
void PopulateGBQuals(objects::CSeq_feat &seq_feat)
static bool PanelNeeded(objects::CSeq_feat &seq_feat)
@Gb_qual.hpp User-defined methods of the data storage class.
bool PseudoSelectionChanged() const
void PopulateIdentifiers(objects::CSeq_feat &seq_feat)
virtual bool IsImportEnabled(void)
virtual bool IsExportEnabled(void)
virtual void EnableImport(bool enable)=0
virtual void EnableExport(bool enable)=0
void PopulateImpFeat(objects::CSeq_feat &seq_feat)
void PopulateGBQuals(objects::CSeq_feat &seq_feat)
void PopulateLocAndGC(objects::CBioSource &source)
CRef< objects::CSeq_loc > GetSeq_loc() const
bool ShouldUpdatemRNALocation()
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
Base class for all object manager exceptions.
CRef< objects::CPubdesc > GetPubdesc() const
void SetGBQualPanel(CGBQualPanel *gbqual_panel)
bool GetConvertToMiscFeat(void)
void SetSecondaryStructure(objects::CSeqFeatData::EPsec_str struc)
objects::CSeqFeatData::EPsec_str GetSecondaryStructure()
static const string & GetRegulatoryClass(ESubtype subtype)
ESubtype GetSubtype(void) const
string GetKey(EVocabulary vocab=eVocabulary_full) const
const TQualifiers & GetMandatoryQualifiers(void) const
Get the list of all mandatory qualifiers for the feature.
void SetCdregion(TCdregion &v)
static EQualifier GetQualifierType(CTempString qual)
convert qual string to enumerated value
static CTempString GetQualifierAsString(EQualifier qual)
Convert a qualifier from an enumerated value to a string representation or empty if not found.
static bool IsRegulatory(ESubtype subtype)
namespace ncbi::objects::
Seq-loc iterator class – iterates all intervals from a seq-loc in the correct order.
Base class for all serializable objects.
CSeqFeatData::ESite GetSite()
void TransferToOrgRef(objects::COrg_ref &org)
void TransferFromOrgRef(const objects::COrg_ref &org)
CSeq_feat_Handle GetFeatureWithId(CSeqFeatData::E_Choice type, TFeatureIdInt id) const
Interface (functor) for object editing.
virtual void SetHelpUrl(const wxString &url)=0
constexpr const_iterator begin() const
constexpr const_iterator end() const
iterator_bool insert(const value_type &val)
const_iterator begin() const
void SetMolinfoForProtein(CRef< objects::CSeq_entry > protein, bool partial5, bool partial3)
CRef< objects::CSeq_feat > AddEmptyProteinFeatureToProtein(CRef< objects::CSeq_entry > protein, bool partial5, bool partial3)
static const char location[]
void RemapOtherProtFeats(const objects::CSeq_feat &old_cds, objects::CSeq_feat &cds, objects::CBioseq_Handle bh, CRef< CCmdComposite > composite, bool &any_actions)
static void cleanup(void)
bool s_ShouldSetFeaturePartial(const CSeq_loc &loc, CRef< CScope > scope)
bool s_ShouldSetGenePartialStart(const CSeq_loc &gene_loc, const CSeq_loc &cds_loc)
const char * kTransSplicing
void ConvertRegulatoryFeature(CSeq_feat &feat)
CConstRef< CSeq_feat > s_GetmRNAForCDS(const CSeq_feat &cds, const CSeq_feat &orig_cds, CScope &scope)
static const CBioseq * GetCDSProductSeq(const CSeq_feat *feat, CScope &scope)
bool s_ShouldSetGenePartialStop(const CSeq_loc &gene_loc, const CSeq_loc &cds_loc)
static const CSeq_feat * GetFeatureProtein(const CSeq_feat *feat, CScope &scope)
std::ofstream out("events_result.xml")
main entry point for tests
unsigned int TSeqPos
Type for sequence locations and lengths.
#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)
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const string & GetMsg(void) const
Get message string.
objects::CSeq_feat_Handle GetSeqFeatHandleForBadLocFeature(const objects::CSeq_feat &feat, objects::CScope &scope)
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
virtual const CTypeInfo * GetThisTypeInfo(void) const =0
virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const
Check if both objects contain the same values.
@ eSerial_AsnText
ASN.1 text.
void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const
Append a label for this Seq-id to the supplied string.
@ eFasta
Tagged ID in NCBI's traditional FASTA style.
bool IsPartialStart(ESeqLocExtremes ext) const
check start or stop of location for e_Lim fuzz
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Override Assign() to incorporate cache invalidation.
TSeqPos GetStart(ESeqLocExtremes ext) const
Return start and stop positions of the seq-loc.
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
bool IsPartialStop(ESeqLocExtremes ext) const
TSeqPos GetStop(ESeqLocExtremes ext) const
static CObjectOStream * Open(ESerialDataFormat format, CNcbiOstream &outStream, bool deleteOutStream)
Create serial object writer and attach it to an output stream.
CMappedFeat GetBestOverlappingFeat(const CMappedFeat &feat, CSeqFeatData::ESubtype need_subtype, sequence::EOverlapType overlap_type, CFeatTree *feat_tree=0, const SAnnotSelector *base_sel=0)
TSeqPos GetLength(const CSeq_id &id, CScope *scope)
Get sequence length if scope not null, else return max possible TSeqPos.
int SeqLocPartialCheck(const CSeq_loc &loc, CScope *scope)
sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)
Returns the sequence::ECompare containment relationship between CSeq_locs.
@ eSeqlocPartial_Internal
@ eSeqlocPartial_Nointernal
@ fCompareOverlapping
Check if seq-locs are overlapping.
@ eOverlap_CheckIntRev
1st is a subset of 2nd with matching boundaries
@ eContains
First CSeq_loc contains second.
@ eSame
CSeq_locs contain each other.
@ eContained
First CSeq_loc contained by second.
@ eNoOverlap
CSeq_locs do not overlap or abut.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
const CTSE_Handle & GetTSE_Handle(void) const
Get CTSE_Handle of containing TSE.
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
virtual CConstRef< CSeq_feat > GetSeq_feat(void) const
TSeqPos GetBioseqLength(void) const
CSeq_entry_Handle GetSeq_entry_Handle(void) const
Get parent Seq-entry handle.
TInst_Topology GetInst_Topology(void) const
bool IsSetInst_Topology(void) const
CSeq_entry_Handle GetTopLevelEntry(void) const
Get top level Seq-entry handle.
const CSeq_loc & GetLocation(void) const
const CSeq_feat & GetOriginalFeature(void) const
Get original feature with unmapped location/product.
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 bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
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 Join(const TContainer &arr, const CTempString &delim)
Join strings using the specified delimiter.
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.
TObjectPtr Create(CObjectMemoryPool *memoryPool=0) const
Create object of this type on heap (can be deleted by operator delete)
static const char label[]
const TName & GetName(void) const
Get the Name member data.
bool IsSetName(void) const
protein name Check if a value has been assigned to Name data member.
bool IsSetExt(void) const
generic fields for ncRNA, tmRNA, miscRNA Check if a value has been assigned to Ext data member.
bool IsGen(void) const
Check if variant Gen is selected.
const TGen & GetGen(void) const
Get the variant data.
const TName & GetName(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.
bool IsName(void) const
Check if variant Name is selected.
const TClass & GetClass(void) const
Get the Class member data.
TXref & SetXref(void)
Assign a value to Xref data member.
void SetQual(const TQual &value)
Assign a value to Qual data member.
const TKey & GetKey(void) const
Get the Key member data.
bool IsSetComment(void) const
Check if a value has been assigned to Comment data member.
void ResetPartial(void)
Reset Partial data member.
EPsec_str
protein secondary structure
bool IsSetData(void) const
the specific data Check if a value has been assigned to Data data member.
bool IsSetQual(void) const
qualifiers Check if a value has been assigned to Qual data member.
TPsec_str GetPsec_str(void) const
Get the variant data.
bool IsBond(void) const
Check if variant Bond is selected.
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.
bool IsImp(void) const
Check if variant Imp is selected.
void SetComment(const TComment &value)
Assign a value to Comment data member.
void SetPartial(TPartial value)
Assign a value to Partial data member.
const TQual & GetQual(void) const
Get the Qual member data.
bool IsSetKey(void) const
Check if a value has been assigned to Key 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 IsGene(void) const
Check if variant Gene is selected.
const TData & GetData(void) const
Get the Data member data.
const TExcept_text & GetExcept_text(void) const
Get the Except_text member data.
bool IsPub(void) const
Check if variant Pub is selected.
void ResetData(void)
Reset Data data member.
bool IsSetExcept_text(void) const
explain if except=TRUE Check if a value has been assigned to Except_text data member.
bool IsPsec_str(void) const
Check if variant Psec_str is selected.
void SetData(TData &value)
Assign a value to Data data member.
const TProduct & GetProduct(void) const
Get the Product member data.
const TComment & GetComment(void) const
Get the Comment member data.
void SetVal(const TVal &value)
Assign a value to Val data member.
bool IsBiosrc(void) const
Check if variant Biosrc is selected.
void SetExcept_text(const TExcept_text &value)
Assign a value to Except_text data member.
const TProt & GetProt(void) const
Get the variant data.
bool IsSite(void) const
Check if variant Site is selected.
const TXref & GetXref(void) const
Get the Xref member data.
vector< CRef< CSeqFeatXref > > TXref
void ResetProduct(void)
Reset Product data member.
vector< CRef< CGb_qual > > TQual
bool IsComment(void) const
Check if variant Comment is selected.
void ResetXref(void)
Reset Xref data member.
const TRna & GetRna(void) const
Get the variant data.
TQual & SetQual(void)
Assign a value to Qual data member.
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
bool IsRna(void) const
Check if variant Rna is selected.
bool IsRegion(void) const
Check if variant Region is selected.
void ResetQual(void)
Reset Qual data member.
const TImp & GetImp(void) const
Get the variant data.
bool IsSetLocation(void) const
feature made from Check if a value has been assigned to Location data member.
TSeq & SetSeq(void)
Select the variant.
TRepr GetRepr(void) const
Get the Repr member data.
TId & SetId(void)
Assign a value to Id data member.
const TInst & GetInst(void) const
Get the Inst member data.
bool IsSetRepr(void) const
Check if a value has been assigned to Repr data member.
const TId & GetId(void) const
Get the Id member data.
bool IsSetInst(void) const
the sequence data Check if a value has been assigned to Inst data member.
bool IsSetId(void) const
equivalent identifiers Check if a value has been assigned to Id data member.
range(_Ty, _Ty) -> range< _Ty >
void TestForNonAsciiText(wxWindow *win)
#define FOR_EACH_SEQFEATXREF_ON_SEQFEAT(Itr, Var)
FOR_EACH_SEQFEATXREF_ON_SEQFEAT EDIT_EACH_SEQFEATXREF_ON_SEQFEAT.
CRef< CCmdComposite > GetSynchronizeProductMolInfoCommand(objects::CScope &scope, const objects::CSeq_feat &cds)
CRef< CCmdComposite > CreateOrAdjustProteinFeature(objects::CBioseq_Handle product, objects::CSeq_feat &cds, bool &cds_change)
wxString ToWxString(const string &s)