OpenMS
|
A vertex representing a TOPP tool. More...
#include <OpenMS/VISUAL/TOPPASToolVertex.h>
Classes | |
struct | IOInfo |
Stores the information for input/output files/lists. More... | |
Public Types | |
enum | TOOLSTATUS { TOOL_READY , TOOL_SCHEDULED , TOOL_RUNNING , TOOL_SUCCESS , TOOL_CRASH , TOOLSTATUS_SIZE } |
current status of the vertex More... | |
Public Types inherited from TOPPASVertex | |
enum | DFS_COLOR { DFS_WHITE , DFS_GRAY , DFS_BLACK } |
The color of a vertex during depth-first search. More... | |
enum | SUBSTREESTATUS { TV_ALLFINISHED , TV_UNFINISHED , TV_UNFINISHED_INBRANCH } |
The color of a vertex during depth-first search. More... | |
typedef QList< TOPPASEdge * > | EdgeContainer |
The container for in/out edges. More... | |
typedef EdgeContainer::iterator | EdgeIterator |
A mutable iterator for in/out edges. More... | |
typedef EdgeContainer::const_iterator | ConstEdgeIterator |
A const iterator for in/out edges. More... | |
using | RoundPackage = std::map< Int, VertexRoundPackage > |
using | RoundPackageConstIt = RoundPackage::const_iterator |
using | RoundPackageIt = RoundPackage::iterator |
using | RoundPackages = std::vector< RoundPackage > |
all information a node needs to process all rounds More... | |
Public Slots | |
void | executionFinished (int ec, QProcess::ExitStatus es) |
Called when the execution of this tool has finished. More... | |
void | forwardTOPPOutput () |
Called when the running TOPP tool produces output. More... | |
void | toolStartedSlot () |
Called when the tool is started. More... | |
void | toolFinishedSlot () |
Called when the tool has finished. More... | |
void | toolCrashedSlot () |
Called when the tool has crashed. More... | |
void | toolFailedSlot () |
Called when the tool has failed. More... | |
virtual void | toolScheduledSlot () |
Called when the tool was scheduled for running. More... | |
void | inEdgeHasChanged () override |
Called by an incoming edge when it has changed. More... | |
void | outEdgeHasChanged () override |
Called by an outgoing edge when it has changed. More... | |
Public Slots inherited from TOPPASVertex | |
virtual void | inEdgeHasChanged () |
Called by an incoming edge when it has changed. More... | |
virtual void | outEdgeHasChanged () |
Called by an outgoing edge when it has changed. More... | |
Signals | |
void | toolStarted () |
Emitted when the tool is started. More... | |
void | toolFinished () |
Emitted when the tool is finished. More... | |
void | toolCrashed () |
Emitted when the tool crashes. More... | |
void | toolFailed (int return_code=-1, const QString &message="") |
Emitted when the tool execution fails. More... | |
void | toppOutputReady (const QString &out) |
Emitted from forwardTOPPOutput() to forward the signal outside. More... | |
Signals inherited from TOPPASVertex | |
void | clicked () |
Emitted when this item is clicked. More... | |
void | released () |
Emitted when this item is released. More... | |
void | hoveringEdgePosChanged (const QPointF &new_pos) |
Emitted when the position of the hovering edge changes. More... | |
void | newHoveringEdge (const QPointF &pos) |
Emitted when a new out edge is supposed to be created. More... | |
void | finishHoveringEdge () |
Emitted when the mouse is released after having dragged a new edge somewhere. More... | |
void | somethingHasChanged () |
Emitted when something has changed. More... | |
void | itemDragged (qreal dx, qreal dy) |
Emitted when the item is dragged. More... | |
void | parameterChanged (const bool invalidates_running_pipeline) |
Public Member Functions | |
TOPPASToolVertex () | |
Default constructor. More... | |
TOPPASToolVertex (const String &name, const String &type="") | |
Constructor. More... | |
TOPPASToolVertex (const TOPPASToolVertex &rhs) | |
Copy constructor. More... | |
~TOPPASToolVertex () override=default | |
Destructor. More... | |
TOPPASToolVertex & | operator= (const TOPPASToolVertex &rhs) |
Assignment operator. More... | |
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) More... | |
String | getName () const override |
returns the name of the TOPP tool More... | |
const String & | getType () const |
Returns the type of the tool. More... | |
QVector< IOInfo > | getInputParameters () const |
Returns input file/list parameters together with their valid types. More... | |
QVector< IOInfo > | getOutputParameters () const |
Returns output file/list/dir parameters together with their valid types. More... | |
void | paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override |
QRectF | boundingRect () const override |
Returns the bounding rectangle of this item. More... | |
void | setTopoNr (UInt nr) override |
Sets the topological sort number (overridden in tool and output vertices) More... | |
void | reset (bool reset_all_files=false) override |
void | setParam (const Param ¶m) |
Sets the Param object of this tool. More... | |
const Param & | getParam () |
Returns the Param object of this tool. More... | |
void | run () override |
Checks if all parent nodes have finished the tool execution and, if so, runs the tool. More... | |
bool | updateCurrentOutputFileNames (const RoundPackages &pkg, String &error_message) |
TOOLSTATUS | getStatus () const |
return if tool failed or is ready etc. More... | |
void | editParam () |
Lets the user edit the parameters of the tool. More... | |
int | numIterations () |
Returns the number of iterations this tool has to perform. More... | |
String | getFullOutputDirectory () const |
Returns the full directory (including preceding tmp path) More... | |
String | getOutputDir () const |
Returns the directory where this tool stores its output files. More... | |
void | createDirs () |
Creates all necessary directories. More... | |
void | openContainingFolder () const |
Opens the folder where the file is contained. More... | |
void | openInTOPPView () |
Opens the files in TOPPView. More... | |
bool | refreshParameters () |
Refreshes the parameters of this tool, returns if their has been a change. More... | |
bool | isToolReady () const |
underlying TOPP tool found and parameters fetched?! (done in C'Tor) More... | |
void | toggleBreakpoint () |
Toggle breakpoint. More... | |
virtual void | emitToolStarted () |
Called when the QProcess in the queue is called: emits 'toolStarted()'. More... | |
bool | invertRecylingMode () override |
invert status of recycling (overriding base class) More... | |
Public Member Functions inherited from TOPPASVertex | |
TOPPASVertex () | |
Default Constructor. More... | |
TOPPASVertex (const TOPPASVertex &rhs) | |
Copy constructor. More... | |
~TOPPASVertex () override=default | |
Destructor. More... | |
TOPPASVertex & | operator= (const TOPPASVertex &rhs) |
Assignment operator. More... | |
void | paint (QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *, bool round_shape=true) |
base paint method for all derived classes. should be called first in child-class paint More... | |
bool | buildRoundPackages (RoundPackages &pkg, String &error_msg) |
bool | isUpstreamFinished () const |
check if all upstream nodes are ready to go ( 'finished_' is true) More... | |
QPainterPath | shape () const final |
Returns a more precise shape. More... | |
ConstEdgeIterator | outEdgesBegin () const |
Returns begin() iterator of outgoing edges. More... | |
ConstEdgeIterator | outEdgesEnd () const |
Returns end() iterator of outgoing edges. More... | |
ConstEdgeIterator | inEdgesBegin () const |
Returns begin() iterator of incoming edges. More... | |
ConstEdgeIterator | inEdgesEnd () const |
Returns end() iterator of incoming edges. More... | |
Size | incomingEdgesCount () |
Returns the number of incoming edges. More... | |
Size | outgoingEdgesCount () |
Returns the number of outgoing edges. More... | |
void | addInEdge (TOPPASEdge *edge) |
Adds an incoming edge. More... | |
void | addOutEdge (TOPPASEdge *edge) |
Adds an outgoing edge. More... | |
void | removeInEdge (TOPPASEdge *edge) |
Removes an incoming edge. More... | |
void | removeOutEdge (TOPPASEdge *edge) |
Removes an outgoing edge. More... | |
DFS_COLOR | getDFSColor () |
Returns the DFS color of this node. More... | |
void | setDFSColor (DFS_COLOR color) |
Sets the DFS color of this node. More... | |
TOPPASVertex::SUBSTREESTATUS | getSubtreeStatus () const |
Checks if all tools in the subtree below this node are finished. More... | |
bool | isTopoSortMarked () const |
Returns whether the vertex has been marked already (during topological sort) More... | |
void | setTopoSortMarked (bool b) |
(Un)marks the vertex (during topological sort) More... | |
UInt | getTopoNr () const |
Returns the topological sort number. More... | |
virtual void | markUnreachable () |
Marks this node (and everything further downstream) as unreachable. Overridden behavior in mergers. More... | |
bool | isReachable () const |
Returns whether this node is reachable. More... | |
bool | isFinished () const |
Returns whether this node has already been processed during the current pipeline execution. More... | |
bool | isRecyclingEnabled () const |
get status of recycling More... | |
void | setRecycling (const bool is_enabled) |
set status of recycling More... | |
QStringList | getFileNames (int param_index, int round) const |
gets filenames for a certain output parameter (from this vertex), for a certain TOPPAS round More... | |
QStringList | getFileNames () const |
get all output files for all parameters for all rounds More... | |
const RoundPackages & | getOutputFiles () const |
bool | allInputsReady () const |
check if all upstream nodes are finished More... | |
reimplemented Qt events | |
String | name_ |
The name of the tool. More... | |
String | type_ |
The type of the tool, or "" if it does not have a type. More... | |
String | tmp_path_ |
The temporary path. More... | |
Param | param_ |
The parameters of the tool. More... | |
TOOLSTATUS | status_ {TOOL_READY} |
current status of the tool More... | |
bool | tool_ready_ {true} |
tool initialization status: if C'tor was successful in finding the TOPP tool, this is set to 'true' More... | |
bool | breakpoint_set_ {false} |
Breakpoint set? More... | |
void | mouseDoubleClickEvent (QGraphicsSceneMouseEvent *e) override |
TOPPASScene * | getScene_ () const |
get parent Scene More... | |
bool | doesParamChangeInvalidate_ () |
determines if according to current status_, a parameter change would invalidate the pipeline status (e.g., because this node was already processed) More... | |
bool | renameOutput_ () |
renames SUFFICES of the output files created by the TOPP tool by inspecting file content More... | |
bool | initParam_ (const QString &old_ini_file="") |
Initializes the parameters with standard values (from -write_ini), uses the parameters from the old_ini_file if given, returns if parameters have changed (if old_ini_file was given) More... | |
QVector< IOInfo > | getParameters_ (bool input_params) const |
returns input/output file/list parameters. If input_params is true, input params are returned, otherwise output params. More... | |
void | writeParam_ (const Param ¶m, const QString &ini_file) |
Writes param to the ini_file . More... | |
QString | toolnameWithWhitespacesForFancyWordWrapping_ (QPainter *painter, const QString &str) |
Helper method for finding good boundaries for wrapping the tool name. Returns a string with whitespaces at the preferred boundaries. More... | |
void | smartFileNames_ (std::vector< QStringList > &filenames) |
Additional Inherited Members | |
Protected Member Functions inherited from TOPPASVertex | |
void | mouseReleaseEvent (QGraphicsSceneMouseEvent *e) override |
void | mousePressEvent (QGraphicsSceneMouseEvent *e) override |
void | mouseDoubleClickEvent (QGraphicsSceneMouseEvent *e) override |
void | mouseMoveEvent (QGraphicsSceneMouseEvent *e) override |
void | contextMenuEvent (QGraphicsSceneContextMenuEvent *event) override |
virtual void | moveNewEdgeTo_ (const QPointF &pos) |
Moves the target pos of the edge which is just being created to pos . More... | |
String | get3CharsNumber_ (UInt number) const |
Returns a three character string (i.e. 001 instead of 1) for the given number . More... | |
void | debugOut_ (const String &) const |
Displays the debug output message , if TOPPAS_DEBUG is defined. More... | |
Protected Attributes inherited from TOPPASVertex | |
EdgeContainer | in_edges_ |
The list of incoming edges. More... | |
EdgeContainer | out_edges_ |
The list of outgoing edges. More... | |
bool | edge_being_created_ {false} |
Indicates whether a new out edge is currently being created. More... | |
QColor | pen_color_ {Qt::black} |
The color of the pen. More... | |
QColor | brush_color_ { Qt::lightGray} |
The color of the brush. More... | |
DFS_COLOR | dfs_color_ {DFS_WHITE} |
The DFS color of this node. More... | |
bool | topo_sort_marked_ {false} |
"marked" flag for topological sort More... | |
UInt | topo_nr_ |
The number in a topological sort of the entire graph. More... | |
RoundPackages | output_files_ |
Stores the current output file names for each output parameter. More... | |
int | round_total_ {-1} |
number of rounds this node will do ('Merge All' nodes will pass everything, thus do only one round) More... | |
int | round_counter_ {0} |
currently finished number of rounds (TODO: do we need that?) More... | |
bool | finished_ {false} |
Stores whether this node has already been processed during the current pipeline execution. More... | |
bool | reachable_ {true} |
Indicates whether this node is reachable (i.e. there is an input node somewhere further upstream) More... | |
bool | allow_output_recycling_ {false} |
shall subsequent tools be allowed to recycle the output of this node to match the number of rounds imposed by other parent nodes? More... | |
A vertex representing a TOPP tool.
Besides TOPPASScene, this class contains most of the remaining functionality of TOPPAS regarding the execution of pipelines. Once a pipeline run is started from TOPPASScene, the execution is propagated from tool to tool and the TOPP tools are actually called from here.
enum TOOLSTATUS |
TOPPASToolVertex | ( | ) |
Default constructor.
TOPPASToolVertex | ( | const String & | name, |
const String & | type = "" |
||
) |
Constructor.
TOPPASToolVertex | ( | const TOPPASToolVertex & | rhs | ) |
Copy constructor.
|
overridedefault |
Destructor.
|
overridevirtual |
Returns the bounding rectangle of this item.
Implements TOPPASVertex.
|
overridevirtual |
Make a copy of this vertex on the heap and return a pointer to it (useful for copying nodes)
Implements TOPPASVertex.
void createDirs | ( | ) |
Creates all necessary directories.
|
protected |
determines if according to current status_, a parameter change would invalidate the pipeline status (e.g., because this node was already processed)
void editParam | ( | ) |
Lets the user edit the parameters of the tool.
|
virtual |
Called when the QProcess in the queue is called: emits 'toolStarted()'.
|
slot |
Called when the execution of this tool has finished.
|
slot |
Called when the running TOPP tool produces output.
String getFullOutputDirectory | ( | ) | const |
Returns the full directory (including preceding tmp path)
QVector<IOInfo> getInputParameters | ( | ) | const |
Returns input file/list parameters together with their valid types.
|
overridevirtual |
returns the name of the TOPP tool
Implements TOPPASVertex.
Referenced by TOPPASBase::toolCrashed(), TOPPASBase::toolFailed(), TOPPASBase::toolFinished(), and TOPPASBase::toolStarted().
String getOutputDir | ( | ) | const |
Returns the directory where this tool stores its output files.
QVector<IOInfo> getOutputParameters | ( | ) | const |
Returns output file/list/dir parameters together with their valid types.
|
protected |
returns input/output file/list parameters. If input_params
is true, input params are returned, otherwise output params.
|
protected |
get parent Scene
TOOLSTATUS getStatus | ( | ) | const |
return if tool failed or is ready etc.
const String& getType | ( | ) | const |
Returns the type of the tool.
Referenced by TOPPASBase::toolCrashed(), TOPPASBase::toolFailed(), TOPPASBase::toolFinished(), and TOPPASBase::toolStarted().
|
overrideslot |
Called by an incoming edge when it has changed.
|
protected |
Initializes the parameters with standard values (from -write_ini), uses the parameters from the old_ini_file if given, returns if parameters have changed (if old_ini_file was given)
|
overridevirtual |
invert status of recycling (overriding base class)
Reimplemented from TOPPASVertex.
bool isToolReady | ( | ) | const |
underlying TOPP tool found and parameters fetched?! (done in C'Tor)
Referenced by TOPPASBase::insertNewVertex_().
|
overrideprotected |
int numIterations | ( | ) |
Returns the number of iterations this tool has to perform.
void openContainingFolder | ( | ) | const |
Opens the folder where the file is contained.
void openInTOPPView | ( | ) |
Opens the files in TOPPView.
TOPPASToolVertex& operator= | ( | const TOPPASToolVertex & | rhs | ) |
Assignment operator.
|
overrideslot |
Called by an outgoing edge when it has changed.
|
override |
bool refreshParameters | ( | ) |
Refreshes the parameters of this tool, returns if their has been a change.
|
protected |
renames SUFFICES of the output files created by the TOPP tool by inspecting file content
|
overridevirtual |
Resets the status
reset_all_files | Not used in this implementation, but in derived classes |
Reimplemented from TOPPASVertex.
|
overridevirtual |
Checks if all parent nodes have finished the tool execution and, if so, runs the tool.
Reimplemented from TOPPASVertex.
|
overridevirtual |
Sets the topological sort number (overridden in tool and output vertices)
Reimplemented from TOPPASVertex.
|
protected |
smart naming of round-based filenames when basename is not unique we take the preceding directory name
void toggleBreakpoint | ( | ) |
Toggle breakpoint.
|
signal |
Emitted when the tool crashes.
|
slot |
Called when the tool has crashed.
|
signal |
Emitted when the tool execution fails.
|
slot |
Called when the tool has failed.
|
signal |
Emitted when the tool is finished.
|
slot |
Called when the tool has finished.
|
protected |
Helper method for finding good boundaries for wrapping the tool name. Returns a string with whitespaces at the preferred boundaries.
|
virtualslot |
Called when the tool was scheduled for running.
|
signal |
Emitted when the tool is started.
|
slot |
Called when the tool is started.
|
signal |
Emitted from forwardTOPPOutput() to forward the signal outside.
bool updateCurrentOutputFileNames | ( | const RoundPackages & | pkg, |
String & | error_message | ||
) |
Updates the vector containing the lists of current output files for all output parameters using the input files as guidance Returns true on success, on failure the error_message is filled
|
protected |
Writes param
to the ini_file
.
|
protected |
Breakpoint set?
|
protected |
The name of the tool.
|
protected |
The parameters of the tool.
|
protected |
current status of the tool
|
protected |
The temporary path.
|
protected |
tool initialization status: if C'tor was successful in finding the TOPP tool, this is set to 'true'
|
protected |
The type of the tool, or "" if it does not have a type.