44 #include <wx/stattext.h>
45 #include <wx/filename.h>
46 #include <wx/sstream.h>
47 #include <wx/txtstrm.h>
48 #include <wx/button.h>
49 #include <wx/msgdlg.h>
108 SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
114 GetSizer()->SetSizeHints(
this);
160 wxBoxSizer* itemBoxSizer2 =
new wxBoxSizer(wxVERTICAL);
161 itemCBulkCmdDlg1->SetSizer(itemBoxSizer2);
171 wxButton* itemButton5 =
new wxButton( itemCBulkCmdDlg1,
ID_REFRESH_STRAND_BTN,
_(
"Refresh Strand Results"), wxDefaultPosition, wxDefaultSize, 0 );
172 itemBoxSizer2->Add(itemButton5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
181 itemBoxSizer2->Add(
m_UseSmart, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
183 wxBoxSizer* itemBoxSizer8 =
new wxBoxSizer(wxHORIZONTAL);
184 itemBoxSizer2->Add(itemBoxSizer8, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
186 wxButton* itemButton9 =
new wxButton( itemCBulkCmdDlg1,
ID_AUTOCORRECT_STRAND_BTN,
_(
"Autocorrect Minus Strands"), wxDefaultPosition, wxDefaultSize, 0 );
187 itemBoxSizer8->Add(itemButton9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
189 wxButton* itemButton10 =
new wxButton( itemCBulkCmdDlg1,
ID_CANCEL_RNA_STRAND_BTN,
_(
"Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
190 itemBoxSizer8->Add(itemButton10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
268 wxOK | wxICON_ERROR,
NULL);
294 bool any_change =
false;
307 cmd->AddCommand(*flip);
335 if ((*it)->IsGenbank()) {
345 return (
first.second > second.second);
390 vector<pair<string,int> > values;
395 if ((*it2)->IsGenbank() && (*it2)->GetGenbank().IsSetAccession()) {
396 label = (*it2)->GetGenbank().GetAccession();
409 for (
unsigned int i=0;
i<values.size();
i++)
425 wxSizer *row_sizer =
new wxBoxSizer(wxHORIZONTAL);
431 row_sizer->Add(stat);
433 check->SetValue(selected);
434 row_sizer->Add(
check);
439 check->GetSize(&row_width, &row_height);
448 {
"Plus",
"Minus",
"Mixed",
"No Hits",
"Unexpected",
"Parse Error",
"In Progress" };
476 if (tab_pos != string::npos) {
477 string accession = line.
substr(0, tab_pos);
478 string status = line.
substr(tab_pos + 1);
481 for (
size_t i = pos;
i <
max && !found;
i++) {
484 if ((*it)->IsGenbank()) {
504 wxString strandcmd =
wxT(
"\\\\snowman\\win-coremake\\App\\Ncbi\\smart\\bin\\tmsgetstrand.bat");
506 wxString strandcmd =
wxT(
"/net/snowman/vol/export2/win-coremake/App/Ncbi/smart/bin/linux/tmsgetstrand.sh");
509 if (!wxFileName::FileExists(strandcmd)) {
510 wxMessageBox(
_(
"Path to RNA Strand executable does not exist!"),
wxT(
"Error"), wxOK | wxICON_ERROR,
NULL);
516 size_t max = pos + 25;
528 wxStringOutputStream strstr;
529 wxTextOutputStream os(strstr);
534 #ifndef NCBI_OS_MSWIN
537 for (
size_t i = pos;
i <
max;
i++) {
540 if ((*it)->IsGenbank() && (*it)->GetGenbank().IsSetAccession()) {
541 os << (*it)->GetGenbank().GetAccession();
550 #ifndef NCBI_OS_MSWIN
556 wxString cmdline = strstr.GetString();
560 long exit_code = ::wxExecute(cmdline,
output, wxEXEC_SYNC | wxEXEC_HIDE_CONSOLE);
563 wxMessageBox(
_(
"Failed to launch RNA Strand executable."),
wxT(
"Error"), wxOK | wxICON_ERROR,
NULL);
571 wxMessageBox(
_(
"Unable to read RNA Strand results."),
wxT(
"Error"), wxOK | wxICON_ERROR,
NULL);
574 for (
size_t i=0;
i<
output.GetCount();
i++)
virtual void ExecuteCmd(CRef< CCmdComposite > cmd)
objects::CSeq_entry_Handle m_TopSeqEntry
bool Create(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)
bool GetTopLevelSeqEntryAndProcessor()
void Init()
Initialises member variables.
void x_ProcessRNAStrandLine(const CTempString &line, size_t pos, size_t max)
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
CCorrectRNAStrandDlg()
Constructors.
ERNAstrand_return_val x_StrandFromString(const string &status)
static bool ShowToolTips()
Should we show tooltips?
wxScrolledWindow * m_SequenceListWindow
vector< ERNAstrand_return_val > m_StatusList
vector< CBioseq_Handle > m_SeqList
~CCorrectRNAStrandDlg()
Destructor.
void OnCancelRnaStrandBtnClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_CANCEL_RNA_STRAND_BTN
wxCheckBox * m_ReverseFeaturesBtn
void x_PopulateAccessionList()
void CreateControls()
Creates the controls and sizers.
void x_AddRow(const string &text, const string &status, bool selected)
vector< wxCheckBox * > m_PickList
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
wxBoxSizer * m_SequenceListSizer
void x_ReverseFeatures(CBioseq_Handle bsh, CRef< CCmdComposite > cmd)
void OnRefreshStrandBtnClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_REFRESH_STRAND_BTN
bool Create(wxWindow *parent, wxWindowID id=10299, const wxString &caption=_("Correct RNA Strandedness"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(400, 300), long style=wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL)
Creation.
vector< string > m_AccessionList
virtual string GetErrorMessage()
virtual CRef< CCmdComposite > GetCommand()
void OnAutocorrectStrandBtnClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_AUTOCORRECT_STRAND_BTN
string x_StringFromStrand(ERNAstrand_return_val rval)
map< string, CBioseq_Handle > m_SeqMap
namespace ncbi::objects::
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
IWorkbench is the central interface in the application framework.
static const size_t k_NumRNAstrand_strings
USING_SCOPE(ncbi::objects)
bool s_HasGenBankId(CBioseq_Handle bsh)
static const string RNAstrand_strings[]
static bool CompByStrand(const pair< string, int > &first, const pair< string, int > &second)
#define ID_AUTOCORRECT_STRAND_BTN
#define ID_CANCEL_RNA_STRAND_BTN
#define ID_USE_SMART_FOR_STRAND_BTN
#define ID_REFRESH_STRAND_BTN
#define ID_REVERSE_FEATURES_BTN
#define ID_RNA_STRAND_SCROLLEDWINDOW
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
void ReverseComplement(const BidirectionalIterator &first, const BidirectionalIterator &last)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Info(CExceptionArgs_Base &args)
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
CSeq_loc * SeqLocRevCmpl(const CSeq_loc &loc, CScope *scope)
Get reverse complement of the seq-loc (?)
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
CScope & GetScope(void) const
Get scope this handle belongs to.
const TInst & GetInst(void) const
CConstRef< CSeq_feat > GetSeq_feat(void) const
Get current seq-feat.
#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 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.
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.
size_type find(const CTempString match, size_type pos=0) const
Find the first instance of the entire matching string within the current string, beginning at an opti...
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 SetLocation(TLocation &value)
Assign a value to Location data member.
const TLocation & GetLocation(void) const
Get the Location member data.
const TId & GetId(void) const
Get the Id member data.
list< CRef< CSeq_id > > TId
@ eMol_na
just a nucleic acid
Lightweight interface for getting lines of data with minimal memory copying.
static void text(MDB_val *v)
void ReportUsage(const wxString &dialog_name)
Report opening & accepting events in the editing package.
const struct ncbi::grid::netcache::search::fields::SIZE size
Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...
double f(double x_, const double &y_)
static SQLCHAR output[256]
wxString ToWxString(const string &s)
string ToStdString(const wxString &s)