diff --git a/NAMESPACE b/NAMESPACE index ed26bd9..2c6a547 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -40,6 +40,7 @@ export(trust4) export(trust4_gene_names) export(trust4_imgt_annot) export(uninstall_appmamba) +export(varscan) importFrom(R6,R6Class) importFrom(rlang,":=") importFrom(rlang,.data) diff --git a/R/cmd-varscan.R b/R/cmd-varscan.R new file mode 100644 index 0000000..1728d3b --- /dev/null +++ b/R/cmd-varscan.R @@ -0,0 +1,45 @@ +#' VarScan is a platform-independent software tool +#' developed at the Genome Institute at Washington University to detect variants in NGS data. +#' +#' @param subcmd Sub-Command of varscan. Details see: `r rd_help("varscan")`. +#' @param ... `r rd_dots("varscan")`. +#' @param varscan `r rd_cmd("varscan")`. +#' @seealso +#' - +#' +#' `r rd_seealso()` +#' @inherit exec return +#' @family command +#' @export +varscan <- make_command( + "varscan", + function( + subcmd = NULL, + ..., + varscan = NULL + ) { + assert_string(subcmd, allow_empty = FALSE, allow_null = TRUE) + assert_string(varscan, allow_empty = FALSE, allow_null = TRUE) + Varscan$new( + cmd = varscan, + ..., + subcmd = subcmd + ) + } +) + +Varscan <- R6Class( + "Varscan", + inherit = Command, + private = list( + alias = function() "varscan", + setup_help_params = function() "help", + combine_params = function(subcmd) { + if (private$help) { + c(super$combine_params(), subcmd) + } else { + c(subcmd, super$combine_params()) + } + } + ) +) \ No newline at end of file diff --git a/man/allele_counter.Rd b/man/allele_counter.Rd index af89e9b..e5a425d 100644 --- a/man/allele_counter.Rd +++ b/man/allele_counter.Rd @@ -55,6 +55,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/cellranger.Rd b/man/cellranger.Rd index c6132c1..bfe9836 100644 --- a/man/cellranger.Rd +++ b/man/cellranger.Rd @@ -59,6 +59,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/conda.Rd b/man/conda.Rd index 876b7ed..7dfc20b 100644 --- a/man/conda.Rd +++ b/man/conda.Rd @@ -40,6 +40,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/exec.Rd b/man/exec.Rd index 64e7f40..3b9ff68 100644 --- a/man/exec.Rd +++ b/man/exec.Rd @@ -34,6 +34,7 @@ Invoke a System Command \item \code{\link[=samtools]{samtools()}} \item \code{\link[=seqkit]{seqkit()}} \item \code{\link[=trust4]{trust4()}} +\item \code{\link[=varscan]{varscan()}} } } diff --git a/man/fastp.Rd b/man/fastp.Rd index 1be6075..a6c3156 100644 --- a/man/fastp.Rd +++ b/man/fastp.Rd @@ -44,6 +44,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/fastq_pair.Rd b/man/fastq_pair.Rd index f432d1b..52596ae 100644 --- a/man/fastq_pair.Rd +++ b/man/fastq_pair.Rd @@ -65,6 +65,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/gistic2.Rd b/man/gistic2.Rd index 487a27e..58f0f78 100644 --- a/man/gistic2.Rd +++ b/man/gistic2.Rd @@ -62,6 +62,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/kraken2.Rd b/man/kraken2.Rd index 37c439a..874acd5 100644 --- a/man/kraken2.Rd +++ b/man/kraken2.Rd @@ -68,6 +68,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/kraken_tools.Rd b/man/kraken_tools.Rd index cf873d6..853eb51 100644 --- a/man/kraken_tools.Rd +++ b/man/kraken_tools.Rd @@ -44,6 +44,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/perl.Rd b/man/perl.Rd index 89eed70..0cecea3 100644 --- a/man/perl.Rd +++ b/man/perl.Rd @@ -41,6 +41,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/pyscenic.Rd b/man/pyscenic.Rd index db6b9dd..d955cf3 100644 --- a/man/pyscenic.Rd +++ b/man/pyscenic.Rd @@ -41,6 +41,7 @@ Other \code{commands}: \code{\link{python}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/python.Rd b/man/python.Rd index 7b5c513..3f4e2bc 100644 --- a/man/python.Rd +++ b/man/python.Rd @@ -41,6 +41,7 @@ Other \code{commands}: \code{\link{pyscenic}()}, \code{\link{samtools}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/samtools.Rd b/man/samtools.Rd index ed59740..70d1227 100644 --- a/man/samtools.Rd +++ b/man/samtools.Rd @@ -43,6 +43,7 @@ Other \code{commands}: \code{\link{pyscenic}()}, \code{\link{python}()}, \code{\link{seqkit}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/seqkit.Rd b/man/seqkit.Rd index 6922f84..83a988c 100644 --- a/man/seqkit.Rd +++ b/man/seqkit.Rd @@ -41,6 +41,7 @@ Other \code{commands}: \code{\link{pyscenic}()}, \code{\link{python}()}, \code{\link{samtools}()}, -\code{\link{trust4}()} +\code{\link{trust4}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/trust4.Rd b/man/trust4.Rd index ae887a7..bd0cdd2 100644 --- a/man/trust4.Rd +++ b/man/trust4.Rd @@ -96,6 +96,7 @@ Other \code{commands}: \code{\link{pyscenic}()}, \code{\link{python}()}, \code{\link{samtools}()}, -\code{\link{seqkit}()} +\code{\link{seqkit}()}, +\code{\link{varscan}()} } \concept{command} diff --git a/man/varscan.Rd b/man/varscan.Rd new file mode 100644 index 0000000..791ea29 --- /dev/null +++ b/man/varscan.Rd @@ -0,0 +1,49 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/cmd-varscan.R +\name{varscan} +\alias{varscan} +\title{VarScan is a platform-independent software tool +developed at the Genome Institute at Washington University to detect variants in NGS data.} +\usage{ +varscan(subcmd = NULL, ..., varscan = NULL) +} +\arguments{ +\item{subcmd}{Sub-Command of varscan. Details see: \code{cmd_help(varscan())}.} + +\item{...}{<\link[rlang:dyn-dots]{dynamic dots}> Additional arguments passed to \code{varscan} command. Empty arguments are automatically trimmed. If a single argument, such as a file path, contains spaces, it must be quoted, for example using \code{\link[=shQuote]{shQuote()}}. Details see: \code{cmd_help(varscan())}.} + +\item{varscan}{A string of path to \code{varscan} command.} +} +\value{ +A \code{command} object. +} +\description{ +VarScan is a platform-independent software tool +developed at the Genome Institute at Washington University to detect variants in NGS data. +} +\seealso{ +\itemize{ +\item \url{https://varscan.sourceforge.net/} +\item \code{\link[=cmd_wd]{cmd_wd()}}/\code{\link[=cmd_envvar]{cmd_envvar()}}/\code{\link[=cmd_envpath]{cmd_envpath()}}/\code{\link[=cmd_condaenv]{cmd_condaenv()}} +\item \code{\link[=cmd_on_start]{cmd_on_start()}}/\code{\link[=cmd_on_exit]{cmd_on_exit()}} +\item \code{\link[=cmd_on_succeed]{cmd_on_succeed()}}/\code{\link[=cmd_on_fail]{cmd_on_fail()}} +\item \code{\link[=cmd_parallel]{cmd_parallel()}} +} + +Other \code{commands}: +\code{\link{allele_counter}()}, +\code{\link{cellranger}()}, +\code{\link{conda}()}, +\code{\link{fastp}()}, +\code{\link{fastq_pair}()}, +\code{\link{gistic2}()}, +\code{\link{kraken2}()}, +\code{\link{kraken_tools}()}, +\code{\link{perl}()}, +\code{\link{pyscenic}()}, +\code{\link{python}()}, +\code{\link{samtools}()}, +\code{\link{seqkit}()}, +\code{\link{trust4}()} +} +\concept{command} diff --git a/tests/testthat/test-exec.R b/tests/testthat/test-exec.R index acda33e..96557e5 100644 --- a/tests/testthat/test-exec.R +++ b/tests/testthat/test-exec.R @@ -66,3 +66,29 @@ testthat::test_that("`pipe()` method works well", { cmd_run() testthat::expect_identical(read_lines(file), read_lines(file2)) }) + +testthat::test_that("`varscan()` works as expected", { + testthat::skip_if_not(nzchar(Sys.which("varscan"))) + varscan() |> cmd_help() +}) + +testthat::test_that("`fastp()` works as expected", { + testthat::skip_if_not(nzchar(Sys.which("fastp"))) + fastp() |> cmd_help() +}) + + +testthat::test_that("`snpeff()` works as expected", { + testthat::skip_if_not(nzchar(Sys.which("snpeff"))) + snpeff() |> cmd_help() +}) + +testthat::test_that("`bcftools()` works as expected", { + testthat::skip_if_not(nzchar(Sys.which("bcftools"))) + bcftools() |> cmd_help() +}) + +testthat::test_that("`bowtie2()` works as expected", { + testthat::skip_if_not(nzchar(Sys.which("bowtie2"))) + bowtie2() |> cmd_help() +}) \ No newline at end of file