Directed Acyclic Graph (DAG) workflow implementation

DAGWorkflow

Format

An object of class R6ClassGenerator of length 25.

Class Constructor

new(name = "")

  • name: character string that identifies this workflow

Public

addConnections(connections)

  • Adds a list of connection to a workflow.

  • connection: list of implementation ConnectionInterface object.

  • Returns: NULL

addModules(modules)

  • Adds a list of modules to a workflow.

  • modules: list of implementation ModuleInterface objects.

  • Returns: NULL

errorCheck(executionCheck = FALSE, ...)

  • Runs error checking on the internal state of a workflow.

  • executionCheck: when set to TRUE, runs additional checks to determine if ready for execution.

  • ...: character vectors of additional argument names from sources outside of connections, such as an enviroment.

  • Returns: NULL, will raise a fatal error if an error is found

getWorkflowInputs()

  • Gets a named logical vector where names are the possible inputs into the workflow and the values indicate if an input is required.

  • Returns: logical vector

getModuleInputs(module)

  • Gets a named logical vector where the names are the inputs, excluding those provided by connections from upstream modules, into a module and the values indicate if an input is required.

  • module: implementation obj of ModuleInterface or a character string of a module in a workflow.

  • Returns: logical vector

getConnections(module1, module2)

  • Gets a list of connections between module1 and module2.

  • module1: implementation obj of ModuleInterface or a character string of a module in a workflow. Because this is a directed implementation class, module1 is the head module.

  • module2: implementation obj of ModuleInterface or a character string of a module in a workflow. Because this is a directed implementation class, module1 is the tail module.

  • Returns: vector of character strings

getDownstreamModules(module)

  • Gets a list of modules downstream of module.

  • module: valid implementation ModuleInterface obj or name of module that is present in a workflow.

  • Returns: list of downstream modules

hasCompletedAllDownstreamModules(module)

  • Checks the completion of all downstream modules of module.

  • module: valid implementation ModuleInterface obj or name of module that is present in a workflow.

  • Returns: logical indicating all downstream modules are complete

getEndingModules()

  • Gets a list of ending modules in a workflow.

  • Returns: a list of ending modules

getAllModules()

  • gets a list of all modules in a workflow.

  • Returns: a list of all modules

getName()

  • Gets the name of a workflow.

  • Returns: character string

getSaveInfo()

  • DOES NOT APPLY TO WORKFLOWS.

  • Returns: NULL

getStartingModules()

  • Gets a list of starting modules in a workflow.

  • Returns: a list of starting modules

getUpstreamModules(module)

  • Gets a list of modules upstream of module.

  • module: valid implementation ModuleInterface obj or name of module that is present in a workflow.

  • Returns: list of downstream modules

removeConnection(connection)

  • Removes a connection from a workflow.

  • connection: implementation object of ConnectionInterface, or a character vector of connection names

  • Returns: NULL

removeModule(module)

  • Removes a modules from a workflow. Also, removes associated connections with module.

  • module: implementation object of ModuleInterface, or a character vector of module names

  • Returns: NULL

save(filename)

  • Saves a workflow onto disk at filename.

  • filename: location to store file

  • Returns: NULL

visualize()

  • Visualizes a workflow.

  • Returns: NULL. Output will be on a plot, etc.

Private

connections

  • Stores a workflow's connections.

graph

  • Stores a workflow's internal graph representation.

modules

  • Stores a workflow's modules.

name

  • Stores a workflow's name.

getNeighbors(graph, module, direction)

  • Gets a list of the neighbor modules of module in graph.

  • graph: valid igraph object.

  • module: module obj or module name.

  • direction: "in" for upstream neighbors or "out" for downstream neighbors.

  • Returns: a list of neighbor modules.

getRevertState()

  • Gets a list of data that can be used with the revert method to revert a workflow to the state outputted from this method.

  • Returns: a list that contains revert state data.

revert(previousState)

  • Returns a workflow to the state stored in previousState.

  • Returns: NULL.

Static Class Methods

DAGWorkflow-cash-initFromFile