loadWorkflow.Rd
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. 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