systemArgs {systemPipeR} | R Documentation

## Constructs SYSargs object from param and targets files

### Description

Constructs `SYSargs` S4 class objects from two simple tablular files: a `targets` file and a `param` file. The latter is optional for workflow steps lacking command-line software. Typically, a `SYSargs` instance stores all sample-level inputs as well as the paths to the corresponding outputs generated by command-line- or R-based software generating sample-level output files. Each sample level input/outfile operation uses its own `SYSargs` instance. The outpaths of `SYSargs` usually define the sample inputs for the next `SYSargs` instance. This connectivity is established by writing the outpaths with the `writeTargetsout` function to a new targets file that serves as input to the next `systemArgs` call. By chaining several `SYSargs` steps together one can construct complex workflows involving many sample-level input/output file operations with any combinaton of command-line or R-based software.

### Usage

    systemArgs(sysma, mytargets, type = "SYSargs")

### Arguments

`sysma` | path to 'param' file; file structure follows a simple name/value syntax that converted into JSON format; for details about the file structure see sample files provided by package. Assign `NULL` to run the pipeline without 'param' file. This can be useful for running partial workflows, e.g. with pregenerated BAM files.
`mytargets` | path to targets file
`type` | `type="SYSargs"` returns `SYSargs`, `type="json"` returns param file content in JSON format (requires `rjson` library)

### Value

`SYSargs` object or `character` string in JSON format

### Author(s)

Thomas Girke

### See Also

`showClass("SYSargs")`

### Examples

    ## Construct SYSargs object from param and targets files
    param <- system.file("extdata", "tophat.param", package="systemPipeR")
    targets <- system.file("extdata", "targets.txt", package="systemPipeR")
    args <- systemArgs(sysma=param, mytargets=targets)
    args
    names(args); modules(args); cores(args); outpaths(args); sysargs(args)

    ## Not run:
    ## Execute SYSargs on single machine
    runCommandline(args=args)

    ## Execute SYSargs on multiple machines of a compute cluster
    resources <- list(walltime=120, ntasks=1, ncpus=cores(args), memory=1024)
    reg <- clusterRun(args, conffile=".batchtools.conf.R", template="batchtools.slurm.tmpl", Njobs=18, runid="01", resourceList=resources)

    ## Monitor progress of submitted jobs
    getStatus(reg=reg)
    file.exists(outpaths(args))
    sapply(1:length(args), function(x) loadResult(reg, x)) # Works once all jobs have completed successfully.

    ## Alignment stats
    read_statsDF <- alignStats(args)
    write.table(read_statsDF, "results/alignStats.xls", row.names=FALSE, quote=FALSE, sep="\t")

    ## Write outpaths to new targets file for next SYSargs step
    writeTargetsout(x=args, file="default")

    ## End(Not run)

[Package systemPipeR version 2.0.8 Index]