loadWorkflow {systemPipeR} | R Documentation

## Constructs SYSargs2 object from CWL param and targets files

### Description

The constructor functions create an `SYSargs2` S4 class object from three input files: a `CWL param` and `input` files, and one simple tabular or yml file, a `targets` file. The latter is optional for workflow steps lacking input files. The`CWL param` provides all the parameters required for running command-line software, following the standard and specification defined on Common Workflow Language (CWL). The `input` file provides additional information for the command-line, allowing each sample level input/outfile operation uses its own `SYSargs2` instance. In the `targets` file users could provide the paths to the initial sample input files (e.g. FASTQ) along with sample labels, and if appropriate biological replicate and contrast information for controlling differential abundance analyses.

The `renderWF` function populates all the command-line for each sample in each step of the particular workflow. Each sample level input/outfile operation uses its own `SYSargs2` instance. The output of `SYSargs2` define all the expected output files for each step in the workflow, which usually it is the sample input for the next step in an `SYSargs2` instance. By chaining several `SYSargs2` steps together one can construct complex workflows involving many sample-level input/output file operations with any combination of command-line or R-based software. Between different instances, this connectivity is established by ``appendStep<-`` method. Please check more details from `SYSargsList-class` class.

### Usage

    loadWorkflow(targets = NULL, wf_file, input_file, dir_path = "param/cwl", id = "SampleName")

    renderWF(WF, inputvars = NULL)

    updateWF(WF, write.yaml=FALSE, name.yaml="default", new_targets=NULL,
                         new_targetsheader=NULL, inputvars=NULL, silent=FALSE)

### Arguments

`targets` | either the path to `targets` file or an object of `SummarizedExperiment` class. The `targets` file can be either a simple tabular or yml file. Also, it is possible to assign `NULL` to run the pipeline without the 'targets' file. This can be useful for running specific workflows that do not require input files.
`wf_file` | name and path to `CWL parameters` file.
`input_file` | name and path to `input parameters` file.
`dir_path` | path to the `parameters` directory with the `wf_file` and `input_file` files. It is recommended to keep both files in the same directory.
`id` | A column from `targets` file, which will be used as an id for each one of the samples. It is required to be unique.
`WF` | Object of class `SYSargs2`, generated by `loadWF` .
`inputvars` | named character vector. Variables defined in the `input` file that matches the column names defined in the `targets` file.
`write.yaml` | logical. If set to `TRUE`, it will write to file the content of the CWL files: `*.yml`. Default is `FALSE`.
`name.yaml` | name and path to `input parameters` file, if `write.yaml` is set to `TRUE`. Default value will write a file at the same directory of `dir_path` appending to the file name the current date.
`new_targets` | new targets files as list. 'targets' `data.frame` can be converted by `targets.as.list` function. Default is `NULL`, and it will maintain the original.
`new_targetsheader` | character. New header/comment lines of targets file. Default is `NULL`, and it will maintain the original.
`silent` | If set to `TRUE`, all messages returned by the function will be suppressed.

### Value

`SYSargs2` object.

### Author(s)

Daniela Cassol and Thomas Girke

### See Also

`showClass("SYSargs2")`

### Examples

    ## Construct SYSargs2 object from CWl param, CWL input, and targets files
    targets <- system.file("extdata", "targets.txt", package="systemPipeR")
    dir_path <- system.file("extdata/cwl", package="systemPipeR")
    WF <- loadWorkflow(targets=targets, wf_file="hisat2/hisat2-mapping-se.cwl",
                      input_file="hisat2/hisat2-mapping-se.yml", dir_path=dir_path)
    WF <- renderWF(WF, inputvars=c(FileName="_FASTQ_PATH1_", SampleName="_SampleName_"))
    WF

    ## If required to update the object
    yamlinput(WF, "thread")  <- 6L
    WF <- updateWF(WF)
    cmdlist(WF)[1]
    yamlinput(WF)$thread

[Package systemPipeR version 2.0.8 Index]