runCommandline {systemPipeR} | R Documentation

## Execute SYSargs and SYSargs2

### Description

Function to execute system parameters specified in `SYSargs` and `SYSargs2` object.

### Usage

    runCommandline(args, runid = "01", make_bam = TRUE, del_sam=TRUE, dir = FALSE, dir.name = NULL, force=FALSE, ...)

### Arguments

`args` | object of class `SYSargs` or `SYSargs2`.
`runid` | Run identifier used for log file to track system call commands. Default is `"01"`.
`make_bam` | Auto detects SAM file outputs and converts them to sorted and indexed BAM files. Default is `make_bam=TRUE`.
`del_sam` | This option allows deleting the SAM files created when the `make_BAM` converts the SAM files to sorted and indexed BAM files. Default is `del_sam=TRUE`.
`dir` | This option allows creating an exclusive results folder for each step in the workflow and a sub-folder for each sample defined in the `targets` file. All the outputs and log files for the particular step will be created in the respective folders. Default is `dir=FALSE`. Option available only for an object of class `SYSargs2`.
`dir.name` | Name of the workflow directory. Default is `dir.name=FALSE`. Note: This argument is required when the `dir=TRUE`.
`force` | Internally, the function checks if the expected `output` files exist, and it skips the command lines when the respective files exist. If the argument `force` is set to `TRUE`, the command line will be executed and the files overwrite. Default is `force=FALSE`.
`...` | Additional arguments to pass on to `runCommandline()`.

### Value

Output files, their paths can be obtained with `outpaths()` from `SYSargs` container or `output()` from `SYSargs2`. In addition, a `character vector` is returned containing the same paths.

### Author(s)

Daniela Cassol and Thomas Girke

### Examples

    #########################################
    ## Examples with \code{SYSargs} object ##
    #########################################
    ## Construct SYSargs object from param and targets files
    param <- system.file("extdata", "hisat2.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.
    file.copy(system.file("extdata", ".batchtools.conf.R", package="systemPipeR"), ".")
    file.copy(system.file("extdata", "batchtools.slurm.tmpl", package="systemPipeR"), ".")
    resources <- list(walltime=120, ntasks=1, ncpus=cores(args), memory=1024)
    reg <- clusterRun(args, FUN = runCommandline, 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))

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

    ## End(Not run)

    ##########################################
    ## Examples with \code{SYSargs2} object ##
    ##########################################
    ## 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/hisat2/hisat2-se", package="systemPipeR")
    WF <- loadWorkflow(targets=targets, wf_file="hisat2-mapping-se.cwl",
                      input_file="hisat2-mapping-se.yml", dir_path=dir_path)
    WF <- renderWF(WF, inputvars=c(FileName="_FASTQ_PATH1_", SampleName="_SampleName_"))
    WF
    names(WF); modules(WF); targets(WF)[1]; cmdlist(WF)[1:2]; output(WF)

    ## Not run:
    ## Execute SYSargs2 on single machine
    WF <- runCommandline(args=WF)

    ## Execute SYSargs on multiple machines of a compute cluster.
    file.copy(system.file("extdata", ".batchtools.conf.R", package="systemPipeR"), ".")
    file.copy(system.file("extdata", "batchtools.slurm.tmpl", package="systemPipeR"), ".")
    resources <- list(walltime=120, ntasks=1, ncpus=4, memory=1024)
    reg <- clusterRun(WF, FUN = runCommandline, more.args = list(args = WF, make_bam = TRUE), conffile=".batchtools.conf.R", template="batchtools.slurm.tmpl", Njobs=18, runid="01", resourceList=resources)

    ## Monitor progress of submitted jobs
    getStatus(reg=reg)

    ## Updates the path in the object \code{output(WF)}
    WF <- output_update(WF, dir=FALSE, replace=TRUE, extension=c(".sam", ".bam"))

    ## Alignment stats
    read_statsDF <- alignStats(WF)
    read_statsDF <- cbind(read_statsDF[targets$FileName,], targets)
    write.table(read_statsDF, "results/alignStats.xls", row.names=FALSE, quote=FALSE, sep="\t")

    ## End(Not run)

[Package systemPipeR version 1.21.6 Index]