* testnames,
boolshowfatal,
CCustomTreeItem* parent = 0,
boolactive =
false);
78 virtual string GetText()
const;
93:
CCustomTreeItem(parent), m_ShowTestName(testnames), m_ShowFatal(showfatal), m_Item(item)
97vector<CRef<CReportItem> > sub = item->
GetSubitems();
98 for(
auto& it : sub) {
122 size_t n= s.find(
"[(]");
123 if(
n== string::npos) {
126 size_tk = s.find(
"[)]",
n+ 3);
127 if(k != string::npos) {
128s = s.substr(0,
n) +
"###"+ s.substr(k + 3);
131s = s.substr(0,
n) +
"###";
165m_Workbench->GetServiceByType<
CSelectionService>()->AttachClient(m_SelectionClient);
167Create(parent,
id, pos,
size, style);
180wxPanel::Create(parent,
id, pos,
size, style);
181wxVisualAttributes attr = wxPanel::GetClassDefaultAttributes();
182 if(attr.colBg != wxNullColour) {
183SetOwnBackgroundColour(attr.colBg);
192wxBoxSizer* box =
newwxBoxSizer(wxVERTICAL);
195wxBoxSizer* box1 =
newwxBoxSizer(wxHORIZONTAL);
197 m_Left->SetScrollbar(wxVERTICAL, 0, 0, 0);
198 m_Left->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
199box1->
Add(
m_Left, 1, wxGROW | wxALL, 5);
201 m_Right=
newwxListBox(
this,
ID_DISCR_RIGHT, wxDefaultPosition, wxSize(320, 300), 0, 0, wxLB_HSCROLL);
202box1->Add(
m_Right, 1, wxGROW | wxALL, 5);
204box->Add(box1, 1, wxGROW | wxALL, 5);
206wxFont font{10, wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL};
210wxBoxSizer* box2 =
newwxBoxSizer(wxHORIZONTAL);
211box->Add(box2, 0, wxCENTER | wxALL, 5);
214 auto label=
newwxStaticText(
this, 0,
"Search", wxDefaultPosition, wxSize(50, -1), 0);
215box2->Add(
label, 0, wxALIGN_CENTER_VERTICAL | wxALL, 0);
219box2->Add(
m_PrevBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 0);
221box2->Add(
m_FindText, 1, wxALIGN_CENTER_VERTICAL | wxALL, 0);
223box2->Add(
m_NextBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 0);
227 m_Loading=
newwxStaticText(
this, 0,
" Loading...");
275wxWindowList children = workbench->
GetMainWindow()->GetChildren();
276 for(wxWindowList::compatibility_iterator it = children.GetFirst(); it; it = it->GetNext()) {
277wxWindow *current = (wxWindow*)it->GetData();
297: m_Type(
type), m_Workbench(workbench)
314 return "Dialogs.Edit.Discrepancy";
316 return "Dialogs.Edit.Oncaller";
318 return "Dialogs.Edit.Submitter";
320 return "Dialogs.Edit.Megareport";
322 return "Dialogs.Edit.CdsTrnaOverlap";
325 return "Dialogs.Edit.Discrepancy";
353 if(!path.IsEmpty()) {
364 if(!path.IsEmpty() && wxFileName::FileExists(path)) {
374 stringfname = reg_view_common.
GetString(
"ProductRules");
380vector<string> add_tests;
383 for(
const auto&
test: add_tests) {
388vector<string> remove_tests;
391 for(
const auto&
test: remove_tests) {
405 for(
auto& it : keys) {
413 return "Product Rules: "+ (pr.empty() ?
" ##### Built-In #####": pr);
422caption =
"Discrepancy Report";
425caption =
"Oncaller Report";
428caption =
"Submitter Report";
431caption =
"Mega Report";
434caption =
"CDS tRNA Overlap";
437wxFrame::Create( parent,
id, caption, pos,
size, style );
438wxVisualAttributes attr = wxPanel::GetClassDefaultAttributes();
439 if(attr.colBg != wxNullColour) {
440SetOwnBackgroundColour(attr.colBg);
444wxRect rc = GetRect();
458SetSize(rc, wxSIZE_USE_EXISTING);
763 H.Reset(
new CDiscrepancyGroup(
"",
"AMPLIFIED_PRIMERS_NO_ENVIRONMENTAL_SAMPLE"));
G->Add(
H);
830wxBoxSizer* box =
newwxBoxSizer(wxVERTICAL);
833wxPanel* itemDialog1 =
newwxPanel(itemFrame1,
wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
834box->Add(itemDialog1, 1, wxGROW | wxALL, 0);
836wxBoxSizer* box0 =
newwxBoxSizer(wxVERTICAL);
837itemDialog1->SetSizer(box0);
842wxBoxSizer* box_p =
newwxBoxSizer(wxHORIZONTAL);
843box_p->Add(
m_Panel, 1, wxGROW | wxALL, 0);
844box0->Add(box_p, 1, wxGROW | wxALL);
847wxBoxSizer* box5 =
newwxBoxSizer(wxHORIZONTAL);
848box0->Add(box5, 0, wxCENTER | wxALL, 5);
850box5->Add(
m_TrimBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
859box5->Add(
m_ReportBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
864wxButton* closeButton =
newwxButton(itemDialog1,
ID_DISCR_CLOSE,
_(
"Close"), wxDefaultPosition, wxDefaultSize, 0);
865box5->Add(closeButton, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
869wxBoxSizer* box5 =
newwxBoxSizer(wxHORIZONTAL);
870box0->Add(box5, 0, wxCENTER | wxALL, 5);
872box5->Add(
m_ExpandBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
874box5->Add(
m_ContractBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
876box5->Add(
m_TestNameBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
879box5->Add(
m_Reopen, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
887wxBoxSizer* box6 =
newwxBoxSizer(wxHORIZONTAL);
888box0->Add(box6, 0, wxCENTER | wxALL, 5);
891box6->Add(
m_ReportBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
896box6->Add(
m_RefreshBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
901box6->Add(
m_AutofixBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
911box6->Add(
m_SettingsBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
913box6->Add(
m_SequesterBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
917box6->Add(
m_SegregateBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
920wxButton* closeButton =
newwxButton(itemDialog1,
ID_DISCR_CLOSE,
_(
"Close"), wxDefaultPosition, wxDefaultSize, 0);
921box6->Add(closeButton, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
923wxHyperlinkCtrl* itemHyperlinkCtrl =
newwxHyperlinkCtrl( itemDialog1, wxID_HELP,
_(
"Help"),
wxT(
"https://www.ncbi.nlm.nih.gov/tools/gbench/manual8/#submitter_report"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
924itemHyperlinkCtrl->SetForegroundColour(wxColour(192, 192, 192));
925box6->Add(itemHyperlinkCtrl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
928wxBoxSizer* box3 =
newwxBoxSizer(wxHORIZONTAL);
929 m_ProductRulesLabel=
newwxStaticText(itemDialog1, 0,
"Product Rules", wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_MIDDLE);
931box0->Add(box3, 0, wxGROW | wxALL, 5);
965wxRect rc = GetRect();
968reg_view.
Set(
"x", rc.x);
969reg_view.
Set(
"y", rc.y);
970reg_view.
Set(
"width", rc.width);
971reg_view.
Set(
"height", rc.height);
974 returnwxFrame::Destroy();
991 for(
auto test: all_tests) {
999DefaultTests[
test] =
true;
1004AddTests[name] =
true;
1007RemoveTests[name] =
true;
1009 for(
autoname : all_tests) {
1010 if((DefaultTests[name] || AddTests[name]) && !RemoveTests[name]) {
1029 m_Tests->SetUserData(
this);
1037wxBeginBusyCursor();
1044 ERR_POST(
"CTextDataSource::LoadFasta() - Failed to start job");
1062m_Panel->RunTests();
1069 for(
auto& it : items) {
1103 if(m_JobId != job_id) {
1104 ERR_POST(
"CTextDataSource::OnJobNotification() - unknown Job ID "<< job_id);
1111 for(
auto& it : list) {
1114m_Panel->m_Left->Finish();
1115m_Panel->RestoreTreeState();
1116m_Panel->m_Left->Refresh();
1118m_Panel->UpdateButtons();
1121m_Panel->m_Loading->Hide();
1133 for(
auto& obj : det) {
1149 boolnot_T_or_TA =
false;
1150 boolfive_prime =
false;
1153 for(
autotrna: trnas) {
1157 const CSeq_loc& loc_trna = trna->GetLocation();
1159 if(rr.
GetFrom() <
r.GetFrom()) {
1171 if(
n>= 1 && n <= 2 && cds->GetLocation().IsReverseStrand()) {
1174 else if(!trna->GetLocation().IsReverseStrand()) {
1175 if(
n== 1 && !not_T_or_TA) {
1177 if(seq[seq.
size() - 3] !=
'T'|| seq[seq.
size() - 2] !=
'A') {
1178not_T_or_TA =
true;
1181 else if(
n== 2 && !not_T_or_TA) {
1183 if(seq[seq.
size() - 3] !=
'T') {
1184not_T_or_TA =
true;
1190 int n=
r.GetToOpen() - rr.
GetFrom();
1201 if(
n>= 1 && n <= 2 && !cds->GetLocation().IsReverseStrand()) {
1204 else if(trna->GetLocation().IsReverseStrand()) {
1205 if(
n== 1 && !not_T_or_TA) {
1207 if(seq[seq.
size() - 3] !=
'T'|| seq[seq.
size() - 2] !=
'A') {
1208not_T_or_TA =
true;
1211 else if(
n== 2 && !not_T_or_TA) {
1213 if(seq[seq.
size() - 3] !=
'T') {
1214not_T_or_TA =
true;
1221 return(
count> 1 ?
"CDS is overlapped by more than one tRNA, longest overlap is [(]":
1225 return "CDS is overlapped by more than one tRNA!";
1228 return "CDS is overlapped at the 5' end";
1231 return "Base pairs in partial codon before trim are neither 'T' nor 'TA'";
1248vector<CCustomTreeItem*> children = item->
GetChildren();
1249 if(children.size()) {
1250 for(
autochild: children) {
1256vector<const CSeq_feat*> all_trnas;
1258 for(
auto& item: det) {
1261all_trnas.push_back(feat);
1262trnas.push_back(item);
1265 for(
auto& item: det) {
1287vector<CBioseq_Handle> V_src;
1288vector<CSeq_feat_Handle> V_cds;
1289vector<CSeq_feat_Handle> V_gen;
1290vector<CSeq_feat_Handle> V_rna;
1291 boolrefresh =
false;
1294 for(
autoit: det) {
1304 if(!seq.
Empty()) {
1311 if(
data.IsCdregion()) {
1315 else if(
data.IsGene()) {
1319 else if(
data.IsRna()) {
1326wxMessageBox(
m_NeedRefresh?
"Please refresh!":
"Oops! We have some problem...");
1335 if(dlg.ShowModal() == wxID_OK) {
1346 if(dlg.ShowModal() == wxID_OK) {
1359 if(dlg.ShowModal() == wxID_OK) {
1372 if(dlg.ShowModal() == wxID_OK) {
1382 if(det.size() == 1) {
1386wxMessageBox(
"No bulk editor available for this type!");
1393vector<CRef<CReportItem>> reps;
1397 auto& panel = dlg->
m_Panel;
1400 for(
autorep: reps) {
1403panel->m_Left->Finish();
1406 a[0] =
NStr::Replace(reps[0]->GetDetails()[0]->GetText(),
"\t",
" ");
1407panel->m_Right->InsertItems(1,
a, panel->m_Right->GetCount());
1413 unsigned charstatus = 0;
1416 for(
auto& w : all_items) {
1417 if(w->IsChecked()) {
1418vector<CSeq_entry_Handle> handles;
1420 if(handles.size() == 1) {
1442 unsigned charstatus = m_Panel->GetStatus();
1443 boolinvalid_job = m_Panel->IsInvalidJob();
1444 if(
m_Type== eCdsTrnaOverlap) {
1448m_ExpandBtn->Enable(invalid_job);
1450 if(m_ContractBtn) {
1451m_ContractBtn->Enable(invalid_job);
1453 if(m_TestNameBtn) {
1454m_TestNameBtn->Enable(invalid_job);
1456m_RefreshBtn->Enable(m_Panel->NeedRefresh());
1457 if(m_UncheckAllBtn) {
1458m_UncheckAllBtn->Enable(invalid_job);
1460 if(m_CheckFixableBtn) {
1461m_CheckFixableBtn->Enable(invalid_job);
1464m_AutofixBtn->Enable(invalid_job);
1467m_ReportBtn->Enable(invalid_job);
1470m_SettingsBtn->Enable(invalid_job);
1471m_SequesterBtn->Enable(invalid_job);
1474m_SegregateBtn->Enable(invalid_job);
1477 if(m_SequesterBtn) {
1478m_SequesterBtn->Enable(status & eSequester);
1480 if(m_SegregateBtn) {
1481m_SegregateBtn->Enable(status & eSequester);
1493 for(
auto& it :
all) {
1509 for(
auto& it :
all) {
1512 if(item->
GetTestName().compare(
"SUSPECT_PRODUCT_NAMES") == 0) {
1524 for(
auto& it :
all) {
1532m_Panel->ExpandAll();
1539 for(
auto& it :
all) {
1548m_Panel->OnContract(event);
1561m_Panel->OnCheckAll(event);
1575m_Panel->OnUncheckAll(event);
1583 for(
auto& it :
all) {
1584 bool check=
false;
1585 if(it->IsActive()) {
1603m_Panel->OnCheckFixable(event);
1613 for(
auto& it :
set->GetSeq_set()) {
1629 for(
auto& handle : tses) {
1630 for(
CBioseq_CIbioseq_it(handle); bioseq_it; ++bioseq_it) {
1631 for(
CSeqdesc_CIdesc_it(*bioseq_it); desc_it; ++desc_it) {
1632 if(&*desc_it == &seq_desc) {
1645 for(
auto& handle : tses) {
1646 for(
CBioseq_CIbioseq_it(handle); bioseq_it; ++bioseq_it) {
1647 for(
CFeat_CIfeat_it(*bioseq_it); feat_it; ++feat_it) {
1648 if(&*feat_it->GetSeq_feat() == &feat) {
1660vector<CCustomTreeItem*> items = disc.
GetChildren();
1662 if(items.empty()) {
1664 for(
auto& obj : det) {
1681 for(
auto& w : items) {
1689vector<CSeq_entry_Handle> handles;
1691 if(handles.size() != 1) {
1696 for(
auto& w : all_items) {
1697 if(w->IsChecked()) {
1707 for(
auto& w : items) {
1711 for(
auto& it :
m_Project->GetData().GetItems()) {
1714seq_submit.
Reset(ss);
1725m_Panel->OnSequester(event);
1730vector<CSeq_entry_Handle> handles;
1732 if(handles.size() != 1) {
1737 for(
auto& w : all_items) {
1738 if(w->IsChecked()) {
1746 for(
auto& w : items) {
1757m_Panel->OnSegregate(event);
1764 if(
n== wxNOT_FOUND) {
1772 if((
unsigned)
n>= det.size()) {
1781 if(
dynamic_cast<const CBioseq*
>(ref)) {
1786wxMessageBox(
m_NeedRefresh?
"Please refresh!":
"Oops! We have some problem...");
1795wxWindow* editorWindow = editor->CreateWindow(edit_dlg);
1796editorWindow->TransferDataToWindow();
1799editorWindow->GetParent()->CenterOnParent();
1800edit_dlg->Show(
true);
1814 else if(entry && entry->
IsSeq()) {
1825 catch(
const CException&) {
return true; }
catch(
constexception&) {
return true; }
1846 else if(entry && entry->
IsSeq()) {
1869 for(
auto& it : items) {
1880 for(
auto& it : items) {
1891 for(
auto& it : items) {
1914 constvector< CIRef<IProjectView> >& views = doc->
GetViews();
1916 for(
const auto& view : views)
1928prj_view->GetMainObject(
objects);
1933prj_view->SetOrigObject(obj);
1941 if(
n== wxNOT_FOUND) {
1949 if((
unsigned)
n>= det.size()) {
1956wxMessageBox(
m_NeedRefresh?
"Please refresh!":
"Oops! We have some problem...");
1979FlatFile->SetPosition(bsh, obj);
2004 dynamic_cast<wxWindow*
>(
m_Host)->Raise();
2025m_Panel->RefreshData();
2028 for(wxWindowList::compatibility_iterator it = children.GetFirst(); it; it = it->GetNext()) {
2029wxWindow* current = (wxWindow*)it->GetData();
2042 if(!subs.empty()) {
2043 for(
auto r: subs) {
2059 if(obj->CanAutofix()) {
2065vector<CCustomTreeItem*> items = disc.
GetChildren();
2066 for(
autow : items) {
2077wxMessageBox(
"Please refresh!");
2083 for(
autow : items) {
2087 if(!
Map.size()) {
2094 for(
auto J:
Map) {
2098report->SetTitle(
"Autofix Report");
2100report->Show(
true);
2109m_Panel->OnAutofix(event);
2118 for(
auto& it :
all) {
2128m_Panel->OnLongOverlap();
2134vector<CCustomTreeItem*> items = disc.
GetChildren();
2137 if(items.empty()) {
2139 for(
auto& obj : det) {
2140 out+= obj->GetText() +
"\n";
2145 for(
auto& w : items) {
2155 for(
auto& w : all_items) {
2156 if(w->IsChecked()) {
2161 if(
all&& wxOK != wxMessageBox(
"No discrepancies selected! Export all?",
"", wxICON_NONE | wxOK | wxCANCEL | wxOK_DEFAULT | wxCENTRE)) {
2167 for(
auto& w : items) {
2170 if(
out.empty()) {
2171 out=
"No items to report...";
2175report->SetTitle(
"Discrepancy Report");
2178report->Show(
true);
2184m_Panel->OnReport(event);
2190 stringfind =
m_FindText->GetLineText(0).Upper().ToStdString();
2199 for(
size_t i= 0;
i< items.size();
i++) {
2200 if(items[
i] == item) {
2207 for(
size_t i= current;
i< items.size();
i++) {
2208 string str= items[
i]->GetText();
2210 if(
str.find(find) != string::npos) {
2217 for(
size_t i= 0;
i< current;
i++) {
2218 string str= items[
i]->GetText();
2220 if(
str.find(find) != string::npos) {
2227 if(found && found != item) {
2229wxTreeListEvent evt;
2239 stringfind =
m_FindText->GetLineText(0).Upper().ToStdString();
2248 for(
size_t i= 0;
i< items.size();
i++) {
2249 if(items[
i] == item) {
2255 for(
size_t i= current;
i< items.size();
i++) {
2256 string str= items[
i]->GetText();
2258 if(
str.find(find) != string::npos) {
2264 for(
size_t i= 0;
i< current;
i++) {
2265 string str= items[
i]->GetText();
2267 if(
str.find(find) != string::npos) {
2273 if(found && found != item) {
2275wxTreeListEvent evt;
2283 stringfind =
m_FindText->GetLineText(0).Upper().ToStdString();
2292 for(
size_t i= 0;
i< items.size();
i++) {
2293 if(items[
i] == item) {
2299 for(
size_t i= current;
i< items.size();
i++) {
2300 string str= items[
i]->GetText();
2302 if(
str.find(find) != string::npos) {
2306 for(
size_t i= 0;
i< current;
i++) {
2307 string str= items[
i]->GetText();
2309 if(
str.find(find) != string::npos) {
2313 if(found && found != item) {
2315wxTreeListEvent evt;
2333m_Panel->OnTestName();
2334m_TestNameBtn->SetLabel(m_Panel->m_ShowTestName ?
"Hide Test Names":
"Show Test Names");
2340m_AutoReopen = m_Reopen->GetValue();
2386vector<eTestNames>* testlist,
2387vector<eTestNames>* default_tests,
2388vector<eTestNames>* add_tests,
2389vector<eTestNames>* remove_tests,
2390 CDiscrepancyDlg* parent, wxWindowID
id,
constwxString& caption,
constwxPoint& pos,
constwxSize&
size,
longstyle)
2392m_DiscrepancyDlg(parent)
2395 Create(parent,
id, caption, pos,
size, style);
2401SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
2402wxDialog::Create(parent,
id, caption, pos,
size, style);
2407GetSizer()->SetSizeHints(
this);
2421wxBoxSizer* box0 =
newwxBoxSizer(wxVERTICAL);
2423 m_List=
newwxTreeListCtrl(
this,
ID_DISCR_LIST, wxDefaultPosition, wxSize(500, 800), wxTL_CHECKBOX | wxTL_MULTIPLE | wxTL_NO_HEADER);
2424 m_List->AppendColumn(
"");
2425 m_List->AppendColumn(
"");
2426box0->Add(
m_List, 1, wxGROW | wxALL, 0);
2428wxBoxSizer* box1 =
newwxBoxSizer(wxHORIZONTAL);
2430box1->Add(
m_PrevBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 0);
2432box1->Add(
m_FindText, 1, wxALIGN_CENTER_VERTICAL | wxALL, 0);
2434box1->Add(
m_NextBtn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 0);
2437box0->Add(box1, 0, wxGROW | wxALL, 5);
2439wxBoxSizer* box2 =
newwxBoxSizer(wxHORIZONTAL);
2440 m_SelAll=
newwxButton(
this,
ID_DISCR_ALL,
"Sel. All", wxDefaultPosition, wxDefaultSize, 0);
2441box2->Add(
m_SelAll, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2443box2->Add(
m_SelNon, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2445box2->Add(
m_SelDef, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2446 m_Check=
newwxButton(
this,
ID_DISCR_CHECK,
"Check Sel.", wxDefaultPosition, wxDefaultSize, 0);
2447box2->Add(
m_Check, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2449box2->Add(
m_Unheck, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2451box2->Add(
m_Toggle, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2452box0->Add(box2, 0, wxGROW | wxALL, 5);
2454wxBoxSizer* box3 =
newwxBoxSizer(wxHORIZONTAL);
2455wxButton* buttonSPR =
newwxButton(
this,
ID_DISCR_SPR,
"Change", wxDefaultPosition, wxDefaultSize, 0);
2456box3->Add(buttonSPR, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2459box0->Add(box3, 0, wxGROW | wxALL, 5);
2461wxBoxSizer* box4 =
newwxBoxSizer(wxHORIZONTAL);
2462wxButton* buttonOk =
newwxButton(
this,
ID_DISCR_OK,
"OK", wxDefaultPosition, wxDefaultSize, 0);
2463box4->Add(buttonOk, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2464wxButton* closeButton =
newwxButton(
this,
ID_DISCR_CLOSE,
"Cancel", wxDefaultPosition, wxDefaultSize, 0);
2465box4->Add(closeButton, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2466box0->Add(box4, 0, wxGROW | wxALL, 5);
2470SetLabel(
"Discrepancy Report Settings");
2473SetLabel(
"Oncaller Tool Settings");
2476SetLabel(
"Submitter Report Settings");
2479SetLabel(
"Mega Report Settings");
2498wxFileDialog fd(
this,
"Product Rules",
"",
"",
"Product rule files (*.prt)|*.prt|Text files (*.txt)|*.txt|All files (*.*)|*.*");
2499 if(fd.ShowModal() == wxID_OK) {
2516 for(wxTreeListItem item =
m_List->GetFirstItem(); item.IsOk(); item =
m_List->GetNextItem(item)) {
2517 stringname =
m_List->GetItemText(item).ToStdString();
2520 if(
m_List->GetCheckedState(item) == wxCHK_CHECKED) {
2536vector<string> add_tests;
2541reg_view.
Set(
"Add", add_tests);
2543vector<string> remove_tests;
2548reg_view.
Set(
"Rem", remove_tests);
2550 boolchanged =
true;
2553 for(
unsigned i= 0;
i<
tests.size();
i++) {
2582 stringfind =
m_FindText->GetLineText(0).Upper().ToStdString();
2589 boollooking =
true;
2590 boolselected =
false;
2592 for(wxTreeListItem item =
m_List->GetFirstItem(); item.IsOk(); item =
m_List->GetNextItem(item)) {
2593 stringname =
m_List->GetItemText(item).Upper().ToStdString();
2594 if(
m_List->IsSelected(item)) {
2597 if(name.find(find) != string::npos) {
2601 if(looking && selected) {
2610 m_List->EnsureVisible(sel);
2619 stringfind =
m_FindText->GetLineText(0).Upper().ToStdString();
2624 boolselected =
false;
2626 for(wxTreeListItem item =
m_List->GetFirstItem(); item.IsOk(); item =
m_List->GetNextItem(item)) {
2627 stringname =
m_List->GetItemText(item).Upper().ToStdString();
2628 if(name.find(find) != string::npos) {
2638 if(
m_List->IsSelected(item)) {
2644 m_List->EnsureVisible(sel);
2651 stringfind =
m_FindText->GetLineText(0).Upper().ToStdString();
2656 boolselected =
false;
2658 for(wxTreeListItem item =
m_List->GetFirstItem(); item.IsOk(); item =
m_List->GetNextItem(item)) {
2659 stringname =
m_List->GetItemText(item).Upper().ToStdString();
2660 if(
m_List->IsSelected(item) && !selected) {
2666 if(name.find(find) != string::npos) {
2673 m_List->EnsureVisible(sel);
2686 for(
autoname : *
m_Tests) {
2691wxTreeListItem root =
m_List->GetRootItem();
2694 if(name[0] ==
'_') {
2697wxTreeListItem item =
m_List->AppendItem(root, name, -1, -1);
2699 m_List->CheckItemRecursively(item);
2717 for(wxTreeListItem item =
m_List->GetFirstItem(); item.IsOk(); item =
m_List->GetNextItem(item)) {
2718 stringname =
m_List->GetItemText(item).ToStdString();
2720 bool chk=
m_List->GetCheckedState(item) == wxCHK_CHECKED;
2721 boolsel =
m_List->IsSelected(item);
2724(def ? scd : scn) =
true;
2727(def ? sud : sun) =
true;
2733(def ? ucd : ucn) =
true;
2736(def ? uud : uun) =
true;
2740 m_SelAll->Enable(ucd || ucn || uud || uun);
2741 m_SelNon->Enable(scd || scn || sud || sun);
2742 m_SelDef->Enable(scn || sun || ucd || uud);
2745 m_Toggle->Enable(scd || scn || sud || sun);
2772 for(wxTreeListItem item =
m_List->GetFirstItem(); item.IsOk(); item =
m_List->GetNextItem(item)) {
2773 stringname =
m_List->GetItemText(item).ToStdString();
2784 for(wxTreeListItem item =
m_List->GetFirstItem(); item.IsOk(); item =
m_List->GetNextItem(item)) {
2785 if(
m_List->IsSelected(item)) {
2786 m_List->CheckItemRecursively(item);
2795 for(wxTreeListItem item =
m_List->GetFirstItem(); item.IsOk(); item =
m_List->GetNextItem(item)) {
2796 if(
m_List->IsSelected(item)) {
2797 m_List->CheckItemRecursively(item, wxCHK_UNCHECKED);
2806 for(wxTreeListItem item =
m_List->GetFirstItem(); item.IsOk(); item =
m_List->GetNextItem(item)) {
2807 if(
m_List->IsSelected(item)) {
2808 if(
m_List->GetCheckedState(item) == wxCHK_UNCHECKED) {
2809 m_List->CheckItemRecursively(item, wxCHK_CHECKED);
2812 m_List->CheckItemRecursively(item, wxCHK_UNCHECKED);
2838 Create(parent,
id, caption, pos,
size, style);
2845SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
2846wxFrame::Create(parent,
id, caption, pos,
size, style);
2847wxVisualAttributes attr = wxPanel::GetClassDefaultAttributes();
2848 if(attr.colBg != wxNullColour) {
2849SetOwnBackgroundColour(attr.colBg);
2853GetSizer()->SetSizeHints(
this);
2863wxBoxSizer* box0 =
newwxBoxSizer(wxVERTICAL);
2865 m_Text=
newwxTextCtrl(
this,
ID_DISCR_TEXT, wxEmptyString, wxDefaultPosition, wxSize(600, 800), wxTE_MULTILINE | wxTE_READONLY);
2866box0->Add(
m_Text, 1, wxGROW| wxALL, 0);
2868wxBoxSizer* box1 =
newwxBoxSizer(wxHORIZONTAL);
2870box1->Add(
m_Show, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2871wxButton* closeButton =
newwxButton(
this,
ID_DISCR_CLOSE,
"Close", wxDefaultPosition, wxDefaultSize, 0);
2872box1->Add(closeButton, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
2873box0->Add(box1, 0, wxGROW | wxALL, 5);
2881 for(
auto test: all_tests) {
2883 if(name[0] ==
'_')
EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX, CAdjustFeaturesForGaps::OnKnownUnknownSelected) EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX1
CSeq_entry_Handle GetSeqEntryForSeqdesc(CRef< CScope > scope, const CSeqdesc &seq_desc)
CIRef< IEditObject > CreateEditorForObject(CConstRef< CObject > obj, objects::CSeq_entry_Handle seh, bool create)
IAppJobListener Interface for components that need to be notified about changes in Jobs.
CAppJobNotification Notification send by CAppJobEventTranslator.
const vector< CRef< CAutofixReport > > & GetSubitems()
unsigned int GetN() const
CConstRef< CBioseq_set > GetParentSet(void) const
CRef< CCmdComposite > GetCommand()
CRef< CCmdComposite > GetCommand()
CRef< CCmdComposite > GetCommand()
vector< CCustomTreeItem * > m_List
CCustomTreeItem * m_Parent
vector< CCustomTreeItem * > GetChildren()
void CheckAll(bool check)
vector< CCustomTreeItem * > GetAllItems()
void SetCurrentItem(CCustomTreeItem *p)
CCustomTreeItem * GetCurrentItem()
vector< CCustomTreeItem * > GetRootItems()
void ExpandItem(CCustomTreeItem *item, bool expand)
void Add(CCustomTreeItem *item)
void CheckItem(CCustomTreeItem *item, bool check, bool propagate=true)
virtual string GetText() const
CRef< CReportItem > GetItem()
const bool * m_ShowTestName
CDiscRepItem(CRef< CReportItem > item, const bool *testnames, bool showfatal, CCustomTreeItem *parent=0, bool active=false)
CRef< CReportItem > m_Item
map< string, bool > m_MapDefaultTests
void OnSelectDefault(wxCommandEvent &event)
void OnSelectAll(wxCommandEvent &event)
wxStaticText * m_ProductRulesLabel
CDiscrepancyDlg::EReportType m_Type
bool Create(wxWindow *parent, wxWindowID id=10358, const wxString &caption=_("Discrepancy Test List"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxMINIMIZE_BOX|wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL|wxCLIP_CHILDREN)
void OnCheck(wxCommandEvent &event)
void OnFindPrev(wxCommandEvent &event)
vector< NDiscrepancy::eTestNames > * m_Tests
CDiscrepancyConf()
Constructors.
vector< NDiscrepancy::eTestNames > * m_DefaultTests
void OnFindNext(wxCommandEvent &event)
vector< NDiscrepancy::eTestNames > * m_RemoveTests
void OnToggle(wxCommandEvent &event)
vector< NDiscrepancy::eTestNames > * m_AddTests
map< NDiscrepancy::eTestNames, bool > m_MapTests
void OnClose(wxCommandEvent &event)
void OnSelectNone(wxCommandEvent &event)
void OnProductRules(wxCommandEvent &event)
CDiscrepancyDlg * m_DiscrepancyDlg
void OnOk(wxCommandEvent &event)
void OnUncheck(wxCommandEvent &event)
void OnTreeListCheck(wxTreeListEvent &event)
void OnFindText(wxCommandEvent &event)
void OnDetails(wxCommandEvent &event)
void OnCheckAll(wxCommandEvent &evt)
string RegisterRoot(bool separate=true)
wxStaticText * m_ProductRulesLabel
CDiscrepancyPanel * m_Panel
void OnReopen(wxCommandEvent &event)
wxButton * m_UncheckAllBtn
void SetWorkDir(const wxString &workDir)
void OnTestName(wxCommandEvent &evt)
static CDiscrepancyDlg * OpenDiscrepancyDlg(EReportType type, CScope &scope, IWorkbench *workbench, const wxString &workDir=wxEmptyString)
void OnUncheckAll(wxCommandEvent &evt)
wxButton * m_SegregateBtn
wxButton * m_SequesterBtn
const string GetProductRules()
void OnExpand(wxCommandEvent &evt)
ICommandProccessor * m_CmdProccessor
friend class CDiscrepancyPanel
void OnContract(wxCommandEvent &evt)
wxButton * m_SelectLongOverlapBtn
void OnAutofix(wxCommandEvent &evt)
void SetProductRules(const string rules)
void OnCheckFixable(wxCommandEvent &evt)
void OnReport(wxCommandEvent &evt)
void WriteSettings(CGuiRegistry &gui_reg)
objects::CGBProjectHandle * m_Project
bool Create(wxWindow *parent, wxWindowID id=10357, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxMINIMIZE_BOX|wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL|wxCLIP_CHILDREN)
void OnClose(wxCommandEvent &evt)
void OnLongOverlap(wxCommandEvent &evt)
void OnSegregate(wxCommandEvent &evt)
void OnSequester(wxCommandEvent &evt)
void OnSettings(wxCommandEvent &evt)
wxButton * m_CheckFixableBtn
void OnRefresh(wxCommandEvent &evt)
wxString GetSettingsPath()
void OnDataChanged(CEvent *evt)
void OnDetails(wxCommandEvent &event)
CDiscrepancyList()
Constructors.
bool Create(wxWindow *parent, wxWindowID id=10359, const wxString &caption=_("Discrepancy Test List"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxMINIMIZE_BOX|wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL|wxCLIP_CHILDREN)
void OnClose(wxCommandEvent &event)
void RunTests(CRef< CDiscrepancyReportJob > job)
void OnJobNotification(CEvent *evt)
CAppJobDispatcher::TJobID m_JobId
void CollectAutofix(CCustomTreeItem &item, NDiscrepancy::TReportObjectList &tofix)
void OnSegregate(wxCommandEvent &evt)
unsigned char GetStatus()
map< string, unsigned char > m_TreeState
vector< NDiscrepancy::eTestNames > m_TestList
CRef< CSelectionClient > m_SelectionClient
const CSerialObject * GetTopObject(const CSerialObject *obj)
CBioseq_Handle GetAccessionForObject(const CSerialObject *obj)
vector< NDiscrepancy::eTestNames > m_DefaultTests
wxString GetSettingsPath()
void OnDblClk(wxCommandEvent &evt)
void recursiveCdsTrnaOverlap(CDiscRepItem *item, vector< CRef< NDiscrepancy::CReportItem >> &reps, CScope &scope)
void OnRefresh(wxCommandEvent &evt)
void OnCheckAll(wxCommandEvent &evt)
ICommandProccessor * m_CmdProccessor
void OnClick(wxCommandEvent &evt)
void OnAutofix(wxCommandEvent &evt)
void OnListClk(wxCommandEvent &evt)
void WriteSettings(CGuiRegistry &gui_reg)
NDiscrepancy::CDiscrepancyGroup m_TGrp
void OnFindPrev(wxCommandEvent &evt)
IProjectView * FindGraphicalSequenceView(CConstRef< CSeq_id > id)
CDiscrepancyDlg::EReportType m_Type
string RegisterRoot(bool separate=true)
void OnFindNext(wxCommandEvent &evt)
objects::CGBProjectHandle * m_Project
void OpenCdsTrnaOverlapDlg(CDiscRepItem *item, CScope &scope)
bool Create(wxWindow *parent, wxWindowID id=10531, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL)
void OnUncheckAll(wxCommandEvent &evt)
CRef< NDiscrepancy::CDiscrepancySet > m_Tests
void OnListDblClk(wxCommandEvent &evt)
void OnFindText(wxCommandEvent &evt)
bool InvalidObject(const CSerialObject *obj, CScope &scope)
CRef< CDiscrepancyHelper > m_Helper
void OnReport(wxCommandEvent &evt)
void OnSequester(wxCommandEvent &evt)
void OnCheckFixable(wxCommandEvent &evt)
void Report(CCustomTreeItem &item, string &out, bool all)
vector< NDiscrepancy::eTestNames > m_RemoveTests
void Sequester(CCustomTreeItem &item, set< CBioseq_Handle > &out, CScope &scope, bool all)
void OpenEditor(const CSerialObject *ref, CScope &scope)
CDiscrepancyPanelHost * m_Host
vector< NDiscrepancy::eTestNames > m_AddTests
void OnContract(wxCommandEvent &evt)
virtual EJobState Run()
Function that does all the useful work, called by the Engine.
static CRef< CDiscrepancySet > New(objects::CScope &scope)
static string Format(const string &str, unsigned int count)
void SetEditorWindow(wxWindow *editorWindow)
void SetEditor(CIRef< IEditObject > editor)
virtual void SetUndoManager(ICommandProccessor *cmdProccessor)
CEvent - generic event implementation TODO TODO - Attachments.
virtual const TViews & GetViews(void) const
Retrieve the existing views for this class.
void SetText(const wxString &text)
void SetLineSpacing(int spacing)
void SetWorkDir(const wxString &workDir)
CSeqGraphicWidget * GetWidget()
CRegistryWriteView GetWriteView(const string §ion)
get a read-write view at a particular level.
void Write(CNcbiOstream &ostr, int priority=ePriority_Local) const
Write the local policy to a specified stream.
static CGuiRegistry & GetInstance()
access the application-wide singleton
CRegistryReadView GetReadView(const string §ion) const
get a read-only view at a particular level.
CRef< CRegistryFile > AddSite(CNcbiIstream &istr, int priority)
Add a site-specific repository.
CProjectService - a service providing API for operations with Workspaces and Projects.
CRef< objects::CGBWorkspace > GetGBWorkspace()
EEventSubtype GetSubtype() const
class CRegistryReadView provides a nested hierarchical view at a particular key.
int GetInt(const string &key, int default_val=0) const
access a named key at this level, with no recursion
bool GetBool(const string &key, bool default_val=false) const
list< SKeyInfo > TKeys
retrieve information about all keys in the registry
string GetString(const string &key, const string &default_val=kEmptyStr) const
void GetStringVec(const string &key, vector< string > &val) const
void GetKeys(TKeys &keys) const
Retrieve information about all keys in this view.
void Set(const string &key, int val)
access a named key at this level, with no recursion
static CRef< CReportItem > Create(const string &test_name, const string &name, const CReportObj &main_obj, const TReportObjectList &report_objs, bool autofix=false)
virtual string_view GetTitle() const =0
virtual vector< CRef< CReportItem > > GetSubitems() const =0
virtual string GetStr() const =0
virtual TReportObjectList GetDetails() const =0
virtual bool CanAutofix() const =0
virtual string GetMsg() const =0
virtual bool IsFatal() const =0
virtual bool IsReal() const =0
void SetSubsets(const set< objects::CBioseq_Handle > &selected)
void SetSelectedObjects(TConstScopedObjects &objs)
namespace ncbi::objects::
void SetSubsets(const set< objects::CBioseq_Handle > &selected)
Base class for all serializable objects.
static wxString ResolvePath(const wxString &path, const wxString &rel_name)
Utility function to hide the platform specifics of locating our standard directories and files.
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
Template class for iteration on objects of class C (non-medifiable version)
virtual void Execute(IEditCommand *command, wxWindow *window=0)=0
class IProjectView defines the abstract interface for views observing projects.
virtual wxWindow * GetWindow()=0
returns a pointer to the wxWindow representing the client
IWorkbench is the central interface in the application framework.
CRef< CCmdComposite > GetCommand()
static const char si[8][64]
vector< CRef< CReportItem > > TReportItemList
vector< CRef< CReportObj > > TReportObjectList
TGroup GetDiscrepancyGroup(eTestNames name)
eTestNames GetDiscrepancyCaseName(string_view)
TTestNamesSet GetDiscrepancyTests(TGroup group)
string_view GetDiscrepancyDescr(eTestNames name)
static string CdsTrnaOverlapStr(const CSeq_feat *cds, vector< const CSeq_feat * > trnas, CScope &scope)
static string ProductRulesStr(const string &pr)
static void CollectBioseqForSeqdesc(CScope &scope, const CSeqdesc &seq_desc, set< CBioseq_Handle > &out)
static void CollectBioseqForSeqFeat(CScope &scope, const CSeq_feat &feat, set< CBioseq_Handle > &out)
static const char * kExpectedOverlap
static bool sortCdsTrnaOverlap(CRef< CReportItem > A, CRef< CReportItem > B)
static void CollectNucProtBioseqs(CScope &scope, const CBioseq *seq, set< CBioseq_Handle > &out)
static void ReportAutofix(CAutofixReport &res, map< string, unsigned int > &out)
static const char * kLongOverlap
static const int REGISTER_MAGIC_NUMBER_DISCREPANCY
USING_SCOPE(NDiscrepancy)
#define ID_DISCR_CONTRACT
#define ID_DISCR_SETTINGS
#define ID_DISCR_SEQUESTER
#define ID_DISCR_CHECKFIXABLE
#define ID_DISCR_LONG_OVERLAP
#define ID_DISCR_UNCHECKALL
#define ID_DISCR_FIND_TEXT
#define ID_DISCR_CHECKALL
#define ID_DISCR_TESTNAME
#define ID_DISCR_SEGREGATE
std::ofstream out("events_result.xml")
main entry point for tests
static void chk(int check, const char *fmt,...)
#define test(a, b, c, d, e)
static void AllTests(void)
static const char * str(char *buf, int n)
static DbTestEntry * tests
static char test_name[128]
CRange< Position > Map(const CRange< Position > &target, const CRange< Position > &range)
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
virtual wxFrame * GetMainWindow()=0
returns a pointer to the main application frame window
CIRef< T > GetServiceByType()
retrieves a typed reference to a service, the name of C++ type is used as the name of the service.
ETaskState
List of task states defining the task management FSM.
CConstRef< objects::CBioseq > GetBioseqForSeqdescObject(const CSerialObject *obj, const objects::CSeq_entry_Handle &tse)
objects::CSeq_entry_Handle GetTopSeqEntryFromScopedObject(SConstScopedObject &obj)
virtual void RemoveListener(CEventHandler *listener)
Remove a listener.
static CAppJobDispatcher & GetInstance()
CRef< CObject > GetResult() const
returns non-null pointer only if Completed or Running and has temporary results available
bool DeleteJob(TJobID job_id)
when a Job is deleted the listener is not notified
EJobState
Job states (describe FSM)
TJobID StartJob(IAppJob &job, const string &engine_name, IEngineParams *params=NULL)
Starts a Job on the specified engine in "passive mode" - no notifications or progress reports will be...
#define ON_EVENT(type, id, handler)
#define END_EVENT_MAP()
Ends definition of Command Map.
CConstRef< CObject > object
#define BEGIN_EVENT_MAP(thisClass, baseClass)
Begins definition of Command Map for CEventHandler-derived class.
virtual void AddListener(CEventHandler *listener, int pool_name=ePool_Default)
Add a listener.
TJobState GetState() const
vector< SConstScopedObject > TConstScopedObjects
string GetLabel(const CSeq_id &id)
bool IsReverseStrand(void) const
Return true if all ranges have reverse strand.
TRange GetTotalRange(void) 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,...
bool IsSameBioseq(const CSeq_id &id1, const CSeq_id &id2, CScope *scope, CScope::EGetBioseqFlag get_flag=CScope::eGetBioseq_All)
Determines if two CSeq_ids represent the same CBioseq.
const CMolInfo * GetMolInfo(const CBioseq &bioseq)
Retrieve the MolInfo object for a given bioseq handle.
@ eGetId_Best
return the "best" gi (uses FindBestScore(), with CSeq_id::CalculateScore() as the score function
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
void GetAllTSEs(TTSE_Handles &tses, enum ETSEKind kind=eManualTSEs)
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
vector< CSeq_entry_Handle > TTSE_Handles
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
CScope & GetScope(void) const
Get scope this handle belongs to.
@ eCoding_Iupac
Set coding to printable coding (Iupacna or Iupacaa)
bool Empty(void) const THROWS_NONE
Check if CConstRef is empty â not pointing to any object which means having a null value.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
position_type GetToOpen(void) const
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ofstream CNcbiOfstream
Portable alias for ofstream.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static string & Replace(const string &src, const string &search, const string &replace, string &dst, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static string & ToUpper(string &str)
Convert string to upper case â string& version.
@ eNocase
Case insensitive compare.
static const char label[]
TFrom GetFrom(void) const
Get the From member data.
list< CRef< CProjectItem > > TItems
bool IsCdregion(void) const
Check if variant Cdregion is selected.
const TLocation & GetLocation(void) const
Get the Location member data.
const TData & GetData(void) const
Get the Data member data.
bool CanGetData(void) const
Check if it is safe to call GetData method.
bool IsSetLocation(void) const
feature made from Check if a value has been assigned to Location data member.
const TSeq & GetSeq(void) const
Get the variant data.
bool IsSeq(void) const
Check if variant Seq is selected.
list< CRef< CSeq_entry > > TSeq_set
@ eClass_nuc_prot
nuc acid and coded proteins
bool IsSource(void) const
Check if variant Source is selected.
void ReportUsage(const wxString &dialog_name)
Report opening & accepting events in the editing package.
constexpr auto sort(_Init &&init)
constexpr bool empty(list< Ts... >) noexcept
const struct ncbi::grid::netcache::search::fields::SIZE size
Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...
Defines: CTimeFormat - storage class for time format.
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
static bool GetSeqId(const T &d, set< string > &labels, const string name="", bool detect=false, bool found=false)
static SLJIT_INLINE sljit_ins st(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4