OpenMS
Loading...
Searching...
No Matches
TOPPASToolVertex.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Johannes Veit $
6// $Authors: Johannes Junker, Chris Bielow $
7// --------------------------------------------------------------------------
8
9#pragma once
10
11// OpenMS_GUI config
12#include <OpenMS/VISUAL/OpenMS_GUIConfig.h>
13
17
18#include <QtCore/QVector>
19
20namespace OpenMS
21{
22 class TOPPASScene;
23
34 class OPENMS_GUI_DLLAPI TOPPASToolVertex :
35 public TOPPASVertex
36 {
37 Q_OBJECT
38
39public:
41 enum TOOLSTATUS {TOOL_READY, TOOL_SCHEDULED, TOOL_RUNNING, TOOL_SUCCESS, TOOL_CRASH, TOOLSTATUS_SIZE};
42
44 struct IOInfo
45 {
48 type(IOT_FILE),
49 param_name(),
50 valid_types()
51 {
52 }
53
55 IOInfo(const IOInfo& rhs) :
56 type(rhs.type),
57 param_name(rhs.param_name),
58 valid_types(rhs.valid_types)
59 {
60 }
61
63 enum IOType
64 {
67 IOT_DIR
68 };
69
71 bool operator<(const IOInfo& rhs) const
72 {
73 if (type != rhs.type)
74 {
75 return type == IOT_FILE;
76 }
77 else
78 {
79 return param_name.compare(rhs.param_name) < 0;
80 }
81 }
83 bool operator==(const IOInfo& rhs) const
84 {
85 return type == rhs.type && param_name == rhs.param_name;
86 }
87
89 IOInfo& operator=(const IOInfo& rhs)
90 {
91 type = rhs.type;
92 param_name = rhs.param_name;
93 valid_types = rhs.valid_types;
94
95 return *this;
96 }
97
99 static bool isAnyList(const QVector<IOInfo>& params)
100 {
101 for (const auto& p : params)
102 {
103 if (p.type == IOT_LIST) return true;
104 }
105 return false;
106 }
107
114 };
115
119 TOPPASToolVertex(const String& name, const String& type = "");
123 ~TOPPASToolVertex() override = default;
126
127 virtual std::unique_ptr<TOPPASVertex> clone() const override;
128
130 String getName() const override;
132 const String& getType() const;
134 QVector<IOInfo> getInputParameters() const;
136 QVector<IOInfo> getOutputParameters() const;
137 // documented in base class
138 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
139 // documented in base class
140 QRectF boundingRect() const override;
141 // documented in base class
142 void setTopoNr(UInt nr) override;
143 // documented in base class
144 void reset(bool reset_all_files = false) override;
146 void setParam(const Param& param);
148 const Param& getParam();
150 void run() override;
154 bool updateCurrentOutputFileNames(const RoundPackages& pkg, String& error_message);
158 void editParam();
174 bool isToolReady() const;
178 virtual void emitToolStarted();
180 bool invertRecylingMode() override;
181
182public slots:
183
185 void executionFinished(int ec, QProcess::ExitStatus es);
197 virtual void toolScheduledSlot();
199 void inEdgeHasChanged() override;
201 void outEdgeHasChanged() override;
202
203signals:
204
212 void toolFailed(int return_code = -1, const QString& message = "");
214 void toppOutputReady(const QString& out);
215
216protected:
217
219
220 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* e) override;
222
223
226
232 bool initParam_(const QString& old_ini_file = "");
234 QVector<IOInfo> getParameters_(bool input_params) const;
236 void writeParam_(const Param& param, const QString& ini_file);
238 QString toolnameWithWhitespacesForFancyWordWrapping_(QPainter* painter, const QString& str);
241 void smartFileNames_(std::vector<QStringList>& filenames);
242
252 TOOLSTATUS status_{TOOL_READY};
254 bool tool_ready_{true};
256 bool breakpoint_set_{false};
257 };
258}
259
Management and storage of parameters / INI files.
Definition Param.h:46
A more convenient string class.
Definition String.h:34
Definition TOPPASScene.h:62
A vertex representing a TOPP tool.
Definition TOPPASToolVertex.h:36
TOOLSTATUS getStatus() const
return if tool failed or is ready etc.
void toppOutputReady(const QString &out)
Emitted from forwardTOPPOutput() to forward the signal outside.
void setParam(const Param &param)
Sets the Param object of this tool.
void reset(bool reset_all_files=false) override
String type_
The type of the tool, or "" if it does not have a type.
Definition TOPPASToolVertex.h:246
void toggleBreakpoint()
Toggle breakpoint.
virtual std::unique_ptr< TOPPASVertex > clone() const override
Make a copy of this vertex on the heap and return a pointer to it (useful for copying nodes)
bool renameOutput_()
renames SUFFICES of the output files created by the TOPP tool by inspecting file content
QVector< IOInfo > getParameters_(bool input_params) const
returns input/output file/list parameters. If input_params is true, input params are returned,...
bool initParam_(const QString &old_ini_file="")
Initializes the parameters with standard values (from -write_ini), uses the parameters from the old_i...
Param param_
The parameters of the tool.
Definition TOPPASToolVertex.h:250
bool isToolReady() const
underlying TOPP tool found and parameters fetched?! (done in C'Tor)
void inEdgeHasChanged() override
Called by an incoming edge when it has changed.
void writeParam_(const Param &param, const QString &ini_file)
Writes param to the ini_file.
String name_
The name of the tool.
Definition TOPPASToolVertex.h:244
void toolStartedSlot()
Called when the tool is started.
QVector< IOInfo > getInputParameters() const
Returns input file/list parameters together with their valid types.
String getFullOutputDirectory() const
Returns the full directory (including preceding tmp path)
QVector< IOInfo > getOutputParameters() const
Returns output file/list/dir parameters together with their valid types.
void toolFailedSlot()
Called when the tool has failed.
void toolFinished()
Emitted when the tool is finished.
TOPPASToolVertex(const TOPPASToolVertex &rhs)
Copy constructor.
void outEdgeHasChanged() override
Called by an outgoing edge when it has changed.
void openContainingFolder() const
Opens the folder where the file is contained.
bool invertRecylingMode() override
invert status of recycling (overriding base class)
void openInTOPPView()
Opens the files in TOPPView.
void toolCrashedSlot()
Called when the tool has crashed.
void toolFinishedSlot()
Called when the tool has finished.
String getOutputDir() const
Returns the directory where this tool stores its output files.
const Param & getParam()
Returns the Param object of this tool.
TOPPASToolVertex()
Default constructor.
TOPPASToolVertex & operator=(const TOPPASToolVertex &rhs)
Assignment operator.
virtual void toolScheduledSlot()
Called when the tool was scheduled for running.
bool updateCurrentOutputFileNames(const RoundPackages &pkg, String &error_message)
void forwardTOPPOutput()
Called when the running TOPP tool produces output.
void editParam()
Lets the user edit the parameters of the tool.
int numIterations()
Returns the number of iterations this tool has to perform.
String getName() const override
returns the name of the TOPP tool
void smartFileNames_(std::vector< QStringList > &filenames)
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *e) override
QString toolnameWithWhitespacesForFancyWordWrapping_(QPainter *painter, const QString &str)
Helper method for finding good boundaries for wrapping the tool name. Returns a string with whitespac...
String tmp_path_
The temporary path.
Definition TOPPASToolVertex.h:248
TOOLSTATUS
current status of the vertex
Definition TOPPASToolVertex.h:41
@ TOOL_CRASH
Definition TOPPASToolVertex.h:41
bool refreshParameters()
Refreshes the parameters of this tool, returns if their has been a change.
QRectF boundingRect() const override
Returns the bounding rectangle of this item.
virtual void emitToolStarted()
Called when the QProcess in the queue is called: emits 'toolStarted()'.
void createDirs()
Creates all necessary directories.
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
void setTopoNr(UInt nr) override
Sets the topological sort number (overridden in tool and output vertices)
void run() override
Checks if all parent nodes have finished the tool execution and, if so, runs the tool.
TOPPASToolVertex(const String &name, const String &type="")
Constructor.
void toolStarted()
Emitted when the tool is started.
bool doesParamChangeInvalidate_()
determines if according to current status_, a parameter change would invalidate the pipeline status (...
const String & getType() const
Returns the type of the tool.
TOPPASScene * getScene_() const
get parent Scene
~TOPPASToolVertex() override=default
Destructor.
void toolFailed(int return_code=-1, const QString &message="")
Emitted when the tool execution fails.
void toolCrashed()
Emitted when the tool crashes.
void executionFinished(int ec, QProcess::ExitStatus es)
Called when the execution of this tool has finished.
The base class of the different vertex classes.
Definition TOPPASVertex.h:78
std::vector< RoundPackage > RoundPackages
all information a node needs to process all rounds
Definition TOPPASVertex.h:139
unsigned int UInt
Unsigned integer type.
Definition Types.h:64
std::vector< String > StringList
Vector of String.
Definition ListUtils.h:44
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Stores the information for input/output files/lists.
Definition TOPPASToolVertex.h:45
IOType
The type.
Definition TOPPASToolVertex.h:64
@ IOT_LIST
Definition TOPPASToolVertex.h:66
@ IOT_FILE
Definition TOPPASToolVertex.h:65
String param_name
The name of the parameter.
Definition TOPPASToolVertex.h:111
IOInfo & operator=(const IOInfo &rhs)
Assignment operator.
Definition TOPPASToolVertex.h:89
static bool isAnyList(const QVector< IOInfo > &params)
Is any of the input/output parameters a list?
Definition TOPPASToolVertex.h:99
StringList valid_types
The valid file types for this parameter.
Definition TOPPASToolVertex.h:113
IOInfo()
Standard constructor.
Definition TOPPASToolVertex.h:47
bool operator<(const IOInfo &rhs) const
Comparison operator.
Definition TOPPASToolVertex.h:71
bool operator==(const IOInfo &rhs) const
Comparison operator.
Definition TOPPASToolVertex.h:83
IOType type
The type of the parameter.
Definition TOPPASToolVertex.h:109
IOInfo(const IOInfo &rhs)
Copy constructor.
Definition TOPPASToolVertex.h:55