52 #include <wx/arrstr.h>
53 #include <wx/msgdlg.h>
62 : m_Descriptor(
"BLAST",
"",
63 "Align sequences using BLAST",
64 "Perform sequence similarity comparison "
65 "with sets of sequences, NCBI BLAST database or local BLAST database",
66 "https://www.ncbi.nlm.nih.gov/tools/gbench/tutorial1/#tools"),
69 m_UseNucForMixInput(
true),
79 return "blast_tool_manager";
195 return action ==
eNext;
197 return action ==
eNext;
284 task->SetLoadingOptions(options);
322 return handle->SetOptions().Validate();
328 return "Alignment Creation";
342 if (scope != it2->scope) {
343 return "This tool gives unpredictable results with objects\nfrom different projects.\n\nPlease move all objects to the same project\nand try again.";
403 vector<CProjectService::TProjectId> projects;
405 if (projects.empty()){
427 const CSeq_loc* seqLoc =
dynamic_cast<const CSeq_loc*
>(o.object.GetPointer());
428 const CSeq_id* seqId =
dynamic_cast<const CSeq_id*
>(o.object.GetPointer());
430 const CBioseq* bioSeq =
dynamic_cast<const CBioseq*
>(o.object.GetPointer());
434 original.push_back(o);
438 if (h && seqSet.
insert(h).second) {
452 if (h && seqSet.
insert(h).second) {
464 if (h && seqSet.
insert(h).second) {
472 else if (bioSeqSet) {
474 for (; iter; ++iter) {
476 if (h && seqSet.
insert(h).second) {
498 if (it != seqLocs.
end()) {
504 if (!original.empty())
507 for (
auto&
i : seqLocs) {
508 for (
auto& j :
i.second) {
509 const CSeq_loc* seq_loc =
dynamic_cast<const CSeq_loc*
>(j.object.GetPointer());
510 if (!seq_loc || !seq_loc->
GetId())
517 target[
i.first].push_back(j);
560 field->
SetData().SetObject(*param_obj);
596 if (wxOK != wxMessageBox(
"The active page settings will be restored to their original defaults.",
"Confirm", wxOK | wxCANCEL))
void AsyncConvertObjects(const CTypeInfo *typeInfo, const TConstScopedObjects &inputObjects, map< string, TConstScopedObjects > &results)
static TDSRET convert(TDSSOCKET *tds, TDSICONV *conv, TDS_ICONV_DIRECTION direction, const char *from, size_t from_len, char *dest, size_t *dest_len)
CDataLoadingAppTask - a task that executes CDataLoadingAppJob.
static string MakeKey(const string §ion, const string &key, const string &delim=CGuiRegistry::kDecimalDot)
create a key from a section and a subkey
CRegistryWriteView GetWriteView(const string §ion)
get a read-write view at a particular level.
static CGuiRegistry & GetInstance()
access the application-wide singleton
CRegistryReadView GetReadView(const string §ion) const
get a read-only view at a particular level.
string GetString(const string &key, const string &default_val=kEmptyStr) const
CProjectService - a service providing API for operations with Workspaces and Projects.
void GetObjProjects(TConstScopedObjects &objects, vector< TProjectId > &ids)
class CRegistryReadView provides a nested hierarchical view at a particular key.
bool GetBool(const string &key, bool default_val=false) const
bool HasField(const string &key) const
Does a field with this section and key exist in this view?
CConstRef< objects::CUser_field > GetField(const string &key) const
provide raw field access
CRef< objects::CUser_field > SetField(const string &key)
provide raw field access
void Set(const string &key, int val)
access a named key at this level, with no recursion
CProjectSelectOptions - describes how new Project Items shall be added to a workspace.
Template class for iteration on objects of class C (non-medifiable version)
IServiceLocator - an abstract mechanism for locating services.
IUIObject - object that provides basic properties often required in a UI object.
const_iterator begin() const
const_iterator end() const
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
const string & GetMsg(void) const
Get message string.
void Trace(CExceptionArgs_Base &args)
string ReportAll(TDiagPostFlags flags=eDPF_Exception) const
Report all exceptions.
CIRef< T > GetServiceByType()
retrieves a typed reference to a service, the name of C++ type is used as the name of the service.
virtual string GetExtensionIdentifier() const
returns the unique human-readable identifier for the extension the id should use lowercase letters se...
CRef< blast::CBlastOptionsHandle > ToBlastOptions(bool local=false) const
virtual void LoadSettings()
virtual string GetExtensionLabel() const
returns a displayable label for this extension ( please capitalize the key words - "My Extension" )
bool TransferDataFromWindow()
bool TransferDataToWindow()
virtual const IUIObject & GetDescriptor() const
Returns the object describing this tool (UI meta data).
vector< TConstScopedObjects > m_InputObjects
void Setup(CNetBLASTUIDataSource &ds, const string &tool_name)
bool x_ValidateParams()
validate parameters after Params page
virtual void InitUI()
Initializes the Manager before using it in UI.
TConstScopedObjects & GetSeqLocs()
virtual wxPanel * GetMaxPanel()
Return the panel that occupies max size on display, to calculate dialog window size.
CBLASTSearchParamsPanel * m_ParamsPanel
IServiceLocator * m_SrvLocator
virtual bool CanDo(EAction action)
Indicates whether given transition is possible in the current state.
virtual void x_CreateOptionsPanelIfNeeded()
virtual bool DoTransition(EAction action)
Performs transition if possible and returns true, otherwise the function shall warn the user about th...
wxWindow * m_ParentWindow
SProjectSelectorParams m_ProjectParams
virtual IAppTask * QuickLaunch()
virtual wxPanel * GetCurrentPanel()
Return the panel corresponding to the current state of Tool Manager.
virtual IAppTask * GetTask()
Once parameters are gathered and validated this function is called to produce the final Task object t...
CBLASTToolManager()
CBLASTToolManager.
map< string, TConstScopedObjects > m_ProtObjects
void FromUserObject(const objects::CUser_object &user_obj)
CUIObject m_Descriptor
describes the Manager's UI properties
string m_LocalWinMaskDirPath
virtual void SetRegistryPath(const string &path)
virtual void SetServiceLocator(IServiceLocator *srv_locator)
Sets / unsets Service Locator.
virtual bool CanQuickLaunch() const
bool TransferDataToWindow()
virtual bool x_IsNucInput() const
defines whether Nucleotide or Protein options shall be selected by default
virtual void SaveSettings() const
virtual bool IsCompletedState()
Manager goes into "Complete" state when "Finish" button is pressed and all input data is gatherred an...
CBLASTSearchOptionsPanel * m_OptionsPanel
void SetParams(CBLASTParams *params)
void x_InitProjectParams()
virtual void x_SelectCompatibleInputObjects()
virtual void RestoreDefaults()
Restores the default options for the current panel.
virtual string SetInputObjects(const vector< TConstScopedObjects > &input)
sets input objects that can be used as arguments for the tool.
bool Create(wxWindow *parent, wxWindowID id=ID_CBLASTSEARCHOPTIONSPANEL, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(), long style=wxTAB_TRAVERSAL)
virtual void CleanUI()
CleanUI() is called after the host finished using the manager.
virtual void SetParentWindow(wxWindow *parent)
void SetParams(CBLASTParams *params, map< string, TConstScopedObjects > *nuc_objects, map< string, TConstScopedObjects > *prot_objects)
void PrintParams(const string &log_title) const
LOG_POST params for forensic purposes.
CRef< CNetBLASTUIDataSource > GetBLASTDataSource()
bool TransferDataFromWindow()
virtual bool IsFinalState()
True if Tool Manager has reached its final state, i.e.
virtual void SaveSettings() const
override in derived classes
virtual bool x_CreateParamsPanelIfNeeded()
virtual string GetCategory()
returns the name for the ToolCategory to which the tool belongs.
virtual void LoadSettings()
ESubjectType GetSubjectType() const
map< string, TConstScopedObjects > m_NucObjects
objects::CUser_object * ToUserObject() const
void NcbiErrorBox(const string &message, const string &title="Error")
specialized Message Box function for reporting critical errors
virtual void SetLogEvent(const string &log_event)
virtual const string & GetLabel() const
vector< SConstScopedObject > TConstScopedObjects
const CSeq_id * GetId(void) const
Get the id of the location return NULL if has multiple ids or no id at all.
CConstRef< CSeq_id > GetSeqId(void) const
Get id which can be used to access this bioseq handle Throws an exception if none is available.
@ fIncludeGivenEntry
Include the top (given) entry.
@ fRecursive
Iterate recursively.
TObjectType * Release(void)
Release a reference to the object and return a pointer to the object.
TObjectType & GetObject(void) const
Get object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
void SetData(TData &value)
Assign a value to Data data member.
const struct ncbi::grid::netcache::search::fields::KEY key
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
SProjectSelectorParams - holds data for CProjectSelectorPanel.
void SelectProjectByObjects(TConstScopedObjects &objects, CProjectService *srv)
is all objects belong to the same project - selects the project
TProjectId m_SelectedProjectId
bool m_CreateFolder
package in a single item
void ToLoadingOptions(CSelectProjectOptions &options)