loadWorkflow.RdThe 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. TheCWL 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.
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)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.
name and path to CWL parameters file.
name and path to input parameters file.
path to the parameters directory with the wf_file and
input_file files.
It is recommended to keep both files in the same directory.
A column from targets file, which will be used as an id for each one
of the samples. It is required to be unique.
Object of class SYSargs2, generated by loadWF .
named character vector. Variables defined in the input file that matches
the column names defined in the targets file.
logical. If set to TRUE, it will write to file the content of the
CWL files: *.yml. Default is FALSE.
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 files as list. 'targets' data.frame can be converted by
targets.as.list function. Default is NULL,
and it will maintain the original.
character. New header/comment lines of targets file. Default is NULL,
and it will maintain the original.
If set to TRUE, all messages returned by the function will be suppressed.
SYSargs2 object.
showClass("SYSargs2")
## 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
#> Instance of 'SYSargs2':
#> Slot names/accessors:
#> targets: 18 (M1A...V12B), targetsheader: 4 (lines)
#> modules: 1
#> wf: 0, clt: 1, yamlinput: 7 (inputs)
#> input: 18, output: 18
#> cmdlist: 18
#> Sub Steps:
#> 1. hisat2-mapping-se (rendered: TRUE)
#>
#>
## If required to update the object
yamlinput(WF, "thread") <- 6L
WF <- updateWF(WF)
cmdlist(WF)[1]
#> $M1A
#> $M1A$`hisat2-mapping-se`
#> [1] "hisat2 -S ./results/M1A.sam -x ./data/tair10.fasta -k 1 --min-intronlen 30 --max-intronlen 3000 -U ./data/SRR446027_1.fastq.gz --threads 6"
#>
#>
yamlinput(WF)$thread
#> [1] 6