NCBI C++ ToolKit
rna_panel.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: rna_panel.cpp 42593 2019-03-22 19:03:13Z filippov $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Roman Katargin
27  */
28 
29 
30 #include <ncbi_pch.hpp>
31 ////@begin includes
32 #include "wx/imaglist.h"
33 ////@end includes
34 
37 #include <serial/serialbase.hpp>
38 #include <serial/typeinfo.hpp>
39 
47 #include <objects/seq/Seq_inst.hpp>
49 #include <objmgr/scope.hpp>
50 #include <objmgr/bioseq_ci.hpp>
52 
53 #include "rna_panel.hpp"
54 #include "mrna_subpanel.hpp"
55 #include "rrna_subpanel.hpp"
56 #include "trna_subpanel.hpp"
57 #include "ncrna_subpanel.hpp"
58 #include "tmrna_subpanel.hpp"
59 
60 
61 #include <wx/sizer.h>
62 #include <wx/bitmap.h>
63 #include <wx/icon.h>
64 #include <wx/radiobox.h>
65 #include <wx/stattext.h>
66 #include <wx/combobox.h>
67 #include <wx/textctrl.h>
68 
69 
72 
73 ////@begin XPM images
74 ////@end XPM images
75 
76 
77 /*!
78  * CRNAPanel type definition
79  */
80 
81 IMPLEMENT_DYNAMIC_CLASS( CRNAPanel, wxPanel )
82 
83 
84 /*!
85  * CRNAPanel event table definition
86  */
87 
88 BEGIN_EVENT_TABLE( CRNAPanel, wxPanel )
89 ////@begin CRNAPanel event table entries
90 ////@end CRNAPanel event table entries
92 
93 
94 /*!
95  * CRNAPanel constructors
96  */
97 
99 {
100  Init();
101 }
102 
103 CRNAPanel::CRNAPanel( wxWindow* parent, CSerialObject& object, CScope& scope,
104  wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
105  : m_Object(0), m_Scope(&scope), m_trna(new CTrna_ext()), m_ncRNAGen(new CRNA_gen()), m_tmRNAGen(new CRNA_gen())
106 {
107  m_Object = &object;
108  _ASSERT(m_Object->GetThisTypeInfo()->GetName() == "Seq-feat");
109  Init();
110  Create(parent, id, pos, size, style);
111 }
112 
113 
114 /*!
115  * CRNAPanel creator
116  */
117 
118 bool CRNAPanel::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
119 {
120 ////@begin CRNAPanel creation
121  wxPanel::Create( parent, id, pos, size, style );
122 
123  CreateControls();
124  if (GetSizer())
125  {
126  GetSizer()->SetSizeHints(this);
127  }
128  Centre();
129 ////@end CRNAPanel creation
130  return true;
131 }
132 
133 
134 /*!
135  * CRNAPanel destructor
136  */
137 
139 {
140 ////@begin CRNAPanel destruction
141 ////@end CRNAPanel destruction
142 }
143 
144 
145 /*!
146  * Member initialisation
147  */
148 
150 {
151 ////@begin CRNAPanel member initialisation
152  m_Choicebook = NULL;
154 ////@end CRNAPanel member initialisation
155 }
156 
157 
158 /*!
159  * Control creation for CRNAPanel
160  */
161 
163 {
164 ////@begin CRNAPanel content construction
165  CRNAPanel* itemPanel1 = this;
166 
167  wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
168  itemPanel1->SetSizer(itemBoxSizer2);
169 
170  m_Choicebook = new wxChoicebook( itemPanel1, ID_CHOICEBOOK1, wxDefaultPosition, wxDefaultSize, wxBK_DEFAULT );
171 
172  itemBoxSizer2->Add(m_Choicebook, 0, wxGROW|wxALL, 5);
173 
174  wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
175  itemBoxSizer2->Add(itemBoxSizer4, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0);
176 
177  wxStaticText* itemStaticText5 = new wxStaticText( itemPanel1, wxID_STATIC, _("Transcript Sequence ID"), wxDefaultPosition, wxDefaultSize, 0 );
178  itemBoxSizer4->Add(itemStaticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
179 
180  wxArrayString m_TranscriptIDStrings;
181  m_TranscriptID = new wxComboBox( itemPanel1, ID_COMBOBOX1, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_TranscriptIDStrings, wxCB_DROPDOWN );
183  m_TranscriptID->SetToolTip(_("Please use accession and version to specify transcript sequence."));
184  itemBoxSizer4->Add(m_TranscriptID, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
185 
186 ////@end CRNAPanel content construction
187  CSeq_feat& seq_feat = dynamic_cast<CSeq_feat&>(*m_Object);
188  CRNA_ref& rna = seq_feat.SetData().SetRna();
189 
190  m_Choicebook->AddPage(new wxWindow(m_Choicebook, wxID_ANY), wxT("unknown"));
191 
192  string name;
193  if (rna.IsSetExt()) {
194  const CRNA_ref::C_Ext& ext = rna.GetExt();
195  if (ext.IsName()) {
196  name = ext.GetName();
197  } else if (ext.IsTRNA()) {
198  m_trna->Assign(ext.GetTRNA());
199  } else if (ext.IsGen()) {
200  m_ncRNAGen->Assign(ext.GetGen());
201  m_tmRNAGen->Assign(ext.GetGen());
202  if (ext.GetGen().IsSetProduct()) {
203  name = ext.GetGen().GetProduct();
204  }
205  }
206  }
207 
209  namePanel->SetRnaName(ToWxString(name));
210  m_Choicebook->AddPage(namePanel, wxT("preRNA"));
211 
212  namePanel = new CmRNASubPanel(m_Choicebook, wxID_ANY);
213  namePanel->SetRnaName(ToWxString(name));
214  m_Choicebook->AddPage(namePanel, wxT("mRNA"));
215 
216  CtRNASubPanel* trnaPanel = new CtRNASubPanel(m_Choicebook, m_trna, ConstRef(&seq_feat), *m_Scope, wxID_ANY);
217  m_Choicebook->AddPage(trnaPanel, wxT("tRNA"));
218 
219  CrRNASubPanel* namePanel2 = new CrRNASubPanel(m_Choicebook, wxID_ANY);
220  namePanel2->SetRnaName(ToWxString(name));
221  m_Choicebook->AddPage(namePanel2, wxT("rRNA"));
222 
224  m_Choicebook->AddPage(ncrnaPanel, wxT("ncRNA"));
225 
227  m_Choicebook->AddPage(tmrnaPanel, wxT("tmRNA"));
228 
229  namePanel2 = new CrRNASubPanel(m_Choicebook, wxID_ANY);
230  namePanel2->SetRnaName(ToWxString(name));
231  m_Choicebook->AddPage(namePanel2, wxT("misc_RNA"));
232 
233  CRNA_ref::TType type = rna.GetType();
234 
235  size_t page_index = 0;
236 
237  switch (type) {
238  case CRNA_ref::eType_unknown: page_index = 0; break;
239  case CRNA_ref::eType_premsg: page_index = 1; break;
240  case CRNA_ref::eType_mRNA: page_index = 2; break;
241  case CRNA_ref::eType_tRNA: page_index = 3; break;
242  case CRNA_ref::eType_rRNA: page_index = 4; break;
243  case CRNA_ref::eType_ncRNA: page_index = 5; break;
244  case CRNA_ref::eType_snRNA: page_index = 5; break;
245  case CRNA_ref::eType_scRNA: page_index = 5; break;
246  case CRNA_ref::eType_snoRNA: page_index = 5; break;
247  case CRNA_ref::eType_tmRNA: page_index = 6; break;
248  case CRNA_ref::eType_miscRNA: page_index = 7; break;
249  case CRNA_ref::eType_other: page_index = 7; break;
250  default: page_index = 0; break;
251  }
252 
253  m_Choicebook->SetSelection(page_index);
255 }
256 
258 {
259  CtRNASubPanel* trna_panel = 0;
260  for (size_t i = 0; i < m_Choicebook->GetPageCount(); ++i) {
261  if ((trna_panel = dynamic_cast<CtRNASubPanel*>(m_Choicebook->GetPage(i))) != 0) {
262  trna_panel->SetGBQualPanel(gbqual_panel);
263  }
264  }
265 }
266 
267 
269 {
270  _ASSERT(m_Scope);
271 
272  CSeq_feat& seq_feat = dynamic_cast<CSeq_feat&>(*m_Object);
273  CRNA_ref& rna = seq_feat.SetData().SetRna();
274 
275  CConstRef<CSeq_id> transcript_id;
276  if (seq_feat.IsSetProduct()) {
277  transcript_id.Reset(seq_feat.GetProduct().GetId());
278  }
279 
280  int match = -1, pos = 0;
281  wxArrayString TranscriptIDs;
283  m_Scope->GetAllTSEs(tses, CScope::eAllTSEs);
284  ITERATE (CScope::TTSE_Handles, handle, tses) {
285  for (CBioseq_CI b_iter(*handle, CSeq_inst::eMol_rna); b_iter; ++b_iter) {
286  CConstRef<CSeq_id> id = b_iter->GetId().front().GetSeqId();
287  if (id) {
288  string id_label = kEmptyStr;
289  x_GetLabelForSeqID(*id, id_label);
290  if (transcript_id) {
291  ITERATE (CBioseq_Handle::TId, id_it, b_iter->GetId()) {
292  if (id_it->GetSeqId()->Compare(*transcript_id) == CSeq_id::e_YES) {
293  match = pos;
294  x_GetLabelForSeqID(*transcript_id, id_label);
295  }
296  }
297  }
298  TranscriptIDs.Add(ToWxString(id_label));
299  ++pos;
300  }
301  }
302  }
303 
304  m_TranscriptID->Append (TranscriptIDs);
305  if (seq_feat.IsSetProduct() ||
306  (rna.IsSetType() && rna.GetType() == CRNA_ref::eType_mRNA)) {
307  if (match > -1) {
308  m_TranscriptID->SetSelection(match);
309  } else if (transcript_id) {
310  string id_label = kEmptyStr;
311  x_GetLabelForSeqID(*transcript_id, id_label);
312  m_TranscriptID->SetValue(ToWxString(id_label));
313  }
314  } else {
315  m_TranscriptID->Enable(false);
316  }
317 }
318 
319 void CRNAPanel::x_GetLabelForSeqID(const CSeq_id& id, string& id_label)
320 {
321  id_label.clear();
322  id.GetLabel(&id_label);
323 }
324 
325 static bool s_EndsWithDigitsAndVersion (string str, int num_digits_expected)
326 {
327  int pos = 0;
328 
329  while (pos < num_digits_expected && pos < str.length() && isdigit(str.c_str()[pos])) {
330  pos++;
331  }
332  if (pos < num_digits_expected) {
333  return false;
334  } else if (pos == str.length()) {
335  return false;
336  } else if (str.c_str()[pos] != '.') {
337  return false;
338  }
339  pos++;
340  if (pos == str.length()) {
341  return false;
342  }
343  while (pos < str.length()) {
344  if (!isdigit(str.c_str()[pos])) {
345  return false;
346  }
347  pos++;
348  }
349  return true;
350 }
351 
352 
353 static CRef<CSeq_id> s_GuessId (const string& id_str, CScope* scope)
354 {
355  // is this local?
356  CRef<CSeq_id> tid(new CSeq_id("lcl|" + id_str));
357  CBioseq_Handle bsh = scope->GetBioseqHandle(*tid);
358  if (!bsh) {
359  try {
360  // not local - is RefSeq accession?
361  if (id_str.length() > 8
362  && NStr::StartsWith(id_str, "N") && isalpha (id_str.c_str()[1])
363  && isupper (id_str.c_str()[1])
364  && id_str.c_str()[2] == '_'
365  && s_EndsWithDigitsAndVersion(id_str.substr(3), 6)) {
366  tid = new CSeq_id("ref|" + id_str);
367  } else if (id_str.length() >= 8
368  && isalpha (id_str.c_str()[0])
369  && isupper (id_str.c_str()[0])
370  && isalpha (id_str.c_str()[1])
371  && isupper (id_str.c_str()[1])
372  && s_EndsWithDigitsAndVersion(id_str.substr(2), 6)) {
373  tid = new CSeq_id("gb|" + id_str);
374  }
375  } catch (CException&) {
376  tid = new CSeq_id("lcl|" + id_str);
377  }
378  }
379  return tid;
380 }
381 
382 
383 void x_SetNameFromName(const wxString& input_name, CRNA_ref& rna)
384 {
385  string name = GetAdjustedRnaName(ToStdString(input_name));
386  if (NStr::IsBlank(name)) {
387  rna.ResetExt();
388  } else {
389  rna.SetExt().SetName(name);
390  }
391 }
392 
393 
395 {
396  bool result = wxPanel::TransferDataFromWindow();
397 
398  for (size_t i = 0; i < m_Choicebook->GetPageCount(); ++i) {
399  m_Choicebook->GetPage(i)->TransferDataFromWindow();
400  }
401 
402  CSeq_feat& seq_feat = dynamic_cast<CSeq_feat&>(*m_Object);
403  CRNA_ref& rna = seq_feat.SetData().SetRna();
404  rna.SetExt().Reset();
405 
406  size_t page_index = m_Choicebook->GetSelection();
407  wxWindow* page = m_Choicebook->GetPage(page_index);
408  switch(page_index) {
409  case 0:
410  rna.SetType(CRNA_ref::eType_unknown);
411  break;
412  case 1:
413  rna.SetType(CRNA_ref::eType_premsg);
414  {{
415  CmRNASubPanel* namePanel = (CmRNASubPanel*)page;
416  x_SetNameFromName(namePanel->GetRnaName(), rna);
417  }}
418  break;
419  case 2:
420  rna.SetType(CRNA_ref::eType_mRNA);
421  {{
422  CmRNASubPanel* namePanel = (CmRNASubPanel*)page;
423  x_SetNameFromName(namePanel->GetRnaName(), rna);
424  }}
425  break;
426  case 3:
427  rna.SetType(CRNA_ref::eType_tRNA);
428  rna.SetExt().SetTRNA(*m_trna);
429  break;
430  case 4:
431  rna.SetType(CRNA_ref::eType_rRNA);
432  {{
433  CrRNASubPanel* namePanel = (CrRNASubPanel*)page;
434  x_SetNameFromName(namePanel->GetRnaName(), rna);
435  }}
436  break;
437  case 5:
438  rna.SetType(CRNA_ref::eType_ncRNA);
439  rna.SetExt().SetGen(*m_ncRNAGen);
440  break;
441  case 6:
442  rna.SetType(CRNA_ref::eType_tmRNA);
443  rna.SetExt().SetGen(*m_tmRNAGen);
444  break;
445  case 7:
446  rna.SetType(CRNA_ref::eType_miscRNA);
447  {{
448  CrRNASubPanel* namePanel = (CrRNASubPanel*)page;
449  x_SetNameFromName(namePanel->GetRnaName(), rna);
450  }}
451  break;
452 
453  }
454 
455  string transcript_id = ToStdString(m_TranscriptID->GetValue());
456  if (NStr::IsBlank(transcript_id)) {
457  seq_feat.ResetProduct();
458  } else {
459  CRef<CSeq_id> tid;
460  if (NStr::Find(transcript_id, "|") == string::npos) {
461  tid = s_GuessId(transcript_id, m_Scope);
462  } else {
463  try {
464  tid = (new CSeq_id(transcript_id));
465  } catch (CException&) {
466  tid = new CSeq_id();
467  tid->SetLocal().SetStr(transcript_id);
468  }
469  }
470  seq_feat.SetProduct().SetWhole().Assign(*tid);
471  }
472 
473  return result;
474 }
475 
476 
478 {
479  bool result = wxPanel::TransferDataToWindow();
480 
481  for (size_t i = 0; i < m_Choicebook->GetPageCount(); ++i) {
482  result &= m_Choicebook->GetPage(i)->TransferDataToWindow();
483  }
484  return result;
485 }
486 
487 
488 /*!
489  * Should we show tooltips?
490  */
491 
493 {
494  return true;
495 }
496 
497 /*!
498  * Get bitmap resources
499  */
500 
501 wxBitmap CRNAPanel::GetBitmapResource( const wxString& name )
502 {
503  // Bitmap retrieval
504 ////@begin CRNAPanel bitmap retrieval
505  wxUnusedVar(name);
506  return wxNullBitmap;
507 ////@end CRNAPanel bitmap retrieval
508 }
509 
510 /*!
511  * Get icon resources
512  */
513 
514 wxIcon CRNAPanel::GetIconResource( const wxString& name )
515 {
516  // Icon retrieval
517 ////@begin CRNAPanel icon retrieval
518  wxUnusedVar(name);
519  return wxNullIcon;
520 ////@end CRNAPanel icon retrieval
521 }
522 
static CRef< CScope > m_Scope
User-defined methods of the data storage class.
User-defined methods of the data storage class.
CBioseq_CI –.
Definition: bioseq_ci.hpp:69
CBioseq_Handle –.
CRNAPanel()
Constructors.
Definition: rna_panel.cpp:98
virtual bool TransferDataToWindow()
Definition: rna_panel.cpp:477
CRef< objects::CRNA_gen > m_ncRNAGen
Definition: rna_panel.hpp:143
static bool ShowToolTips()
Should we show tooltips?
Definition: rna_panel.cpp:492
@ ID_CHOICEBOOK1
Definition: rna_panel.hpp:127
bool Create(wxWindow *parent, wxWindowID id=ID_CRNAPANEL, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(400, 300), long style=wxTAB_TRAVERSAL)
Creation.
Definition: rna_panel.cpp:118
void Init()
Initialises member variables.
Definition: rna_panel.cpp:149
void x_PopulateTranscriptID()
Definition: rna_panel.cpp:268
void SetGBQualPanel(CGBQualPanel *gbqual_panel)
Definition: rna_panel.cpp:257
objects::CScope * m_Scope
Definition: rna_panel.hpp:141
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
Definition: rna_panel.cpp:501
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
Definition: rna_panel.cpp:514
virtual bool TransferDataFromWindow()
Definition: rna_panel.cpp:394
wxComboBox * m_TranscriptID
Definition: rna_panel.hpp:123
void CreateControls()
Creates the controls and sizers.
Definition: rna_panel.cpp:162
CRef< objects::CTrna_ext > m_trna
Definition: rna_panel.hpp:142
~CRNAPanel()
Destructor.
Definition: rna_panel.cpp:138
CSerialObject * m_Object
Definition: rna_panel.hpp:140
static void x_GetLabelForSeqID(const objects::CSeq_id &id, string &id_label)
Definition: rna_panel.cpp:319
CRef< objects::CRNA_gen > m_tmRNAGen
Definition: rna_panel.hpp:144
wxChoicebook * m_Choicebook
Definition: rna_panel.hpp:122
@RNA_ref.hpp User-defined methods of the data storage class.
Definition: RNA_ref.hpp:54
CScope –.
Definition: scope.hpp:92
namespace ncbi::objects::
Definition: Seq_feat.hpp:58
Base class for all serializable objects.
Definition: serialbase.hpp:150
void SetRnaName(wxString value)
wxString GetRnaName() const
void SetRnaName(wxString value)
wxString GetRnaName() const
void SetGBQualPanel(CGBQualPanel *gbqual_panel)
#define _(proto)
Definition: ct_nlmzip_i.h:78
static void Init(void)
Definition: cursor6.c:76
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
Definition: ncbimisc.hpp:815
#define NULL
Definition: ncbistd.hpp:225
virtual const CTypeInfo * GetThisTypeInfo(void) const =0
@ e_YES
SeqIds compared, but are different.
Definition: Seq_id.hpp:551
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
Definition: Seq_loc.hpp:941
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
Definition: scope.cpp:95
vector< CSeq_entry_Handle > TTSE_Handles
Definition: scope.hpp:645
@ eAllTSEs
Definition: scope.hpp:643
vector< CSeq_id_Handle > TId
CConstRef< C > ConstRef(const C *object)
Template function for conversion of const object pointer to CConstRef.
Definition: ncbiobj.hpp:2024
void Reset(void)
Reset reference object.
Definition: ncbiobj.hpp:1439
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define kEmptyStr
Definition: ncbistr.hpp:123
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
Definition: ncbistr.cpp:106
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.
Definition: ncbistr.cpp:2887
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
Definition: ncbistr.hpp:5412
const string & GetName(void) const
Get name of this type.
Definition: typeinfo.cpp:249
TStr & SetStr(void)
Select the variant.
Definition: Object_id_.hpp:304
bool IsSetProduct(void) const
Check if a value has been assigned to Product data member.
Definition: RNA_gen_.hpp:294
bool IsTRNA(void) const
Check if variant TRNA is selected.
Definition: RNA_ref_.hpp:498
EType
type of RNA feature
Definition: RNA_ref_.hpp:95
bool IsGen(void) const
Check if variant Gen is selected.
Definition: RNA_ref_.hpp:504
const TGen & GetGen(void) const
Get the variant data.
Definition: RNA_ref_.cpp:156
const TName & GetName(void) const
Get the variant data.
Definition: RNA_ref_.hpp:484
const TProduct & GetProduct(void) const
Get the Product member data.
Definition: RNA_gen_.hpp:306
const TTRNA & GetTRNA(void) const
Get the variant data.
Definition: RNA_ref_.cpp:134
bool IsName(void) const
Check if variant Name is selected.
Definition: RNA_ref_.hpp:478
@ eType_scRNA
will become ncRNA, with RNA-gen.class = scRNA
Definition: RNA_ref_.hpp:102
@ eType_snoRNA
will become ncRNA, with RNA-gen.class = snoRNA
Definition: RNA_ref_.hpp:103
@ eType_ncRNA
non-coding RNA; subsumes snRNA, scRNA, snoRNA
Definition: RNA_ref_.hpp:104
@ eType_snRNA
will become ncRNA, with RNA-gen.class = snRNA
Definition: RNA_ref_.hpp:101
void SetProduct(TProduct &value)
Assign a value to Product data member.
Definition: Seq_feat_.cpp:110
void SetData(TData &value)
Assign a value to Data data member.
Definition: Seq_feat_.cpp:94
const TProduct & GetProduct(void) const
Get the Product member data.
Definition: Seq_feat_.hpp:1096
void ResetProduct(void)
Reset Product data member.
Definition: Seq_feat_.cpp:105
bool IsSetProduct(void) const
product of process Check if a value has been assigned to Product data member.
Definition: Seq_feat_.hpp:1084
TLocal & SetLocal(void)
Select the variant.
Definition: Seq_id_.cpp:199
string GetAdjustedRnaName(const string &orig_rna_name)
Definition: utilities.cpp:70
END_EVENT_TABLE()
int i
#define wxT(x)
Definition: muParser.cpp:41
const struct ncbi::grid::netcache::search::fields::SIZE size
int isalpha(Uchar c)
Definition: ncbictype.hpp:61
int isdigit(Uchar c)
Definition: ncbictype.hpp:64
int isupper(Uchar c)
Definition: ncbictype.hpp:70
static int match(register const pcre_uchar *eptr, register const pcre_uchar *ecode, const pcre_uchar *mstart, int offset_top, match_data *md, eptrblock *eptrb, unsigned int rdepth)
Definition: pcre_exec.c:513
USING_SCOPE(objects)
static bool s_EndsWithDigitsAndVersion(string str, int num_digits_expected)
Definition: rna_panel.cpp:325
void x_SetNameFromName(const wxString &input_name, CRNA_ref &rna)
Definition: rna_panel.cpp:383
static CRef< CSeq_id > s_GuessId(const string &id_str, CScope *scope)
Definition: rna_panel.cpp:353
static static static wxID_ANY
static const char * str(char *buf, int n)
Definition: stats.c:84
Definition: type.c:6
#define _ASSERT
else result
Definition: token2.c:20
wxString ToWxString(const string &s)
Definition: wx_utils.hpp:173
string ToStdString(const wxString &s)
Definition: wx_utils.hpp:161
Modified on Thu Feb 29 12:16:51 2024 by modify_doxy.py rev. 669887