【发布时间】:2017-02-25 05:13:41
【问题描述】:
我正在尝试使用从命令行输入的参数在 RScript 中运行 DESeq。我使用optparse 解析用户参数,并试图将设计参数传递给DESeqDataSetFromMatrix() 函数。
我直接测试了这个功能,效果很好:
DESeq_tbl <- DESeqDataSetFromMatrix(countData=counts_tbl,
colData=coldata, design=~taxonomy)
但是,如果我尝试传递变量 opt$design(它是一个字符串 = "~taxonomy"),我会收到以下错误:
DESeq_tbl <- DESeqDataSetFromMatrix(countData=counts_tbl,
colData=coldata, design=opt$design)
错误:$ 运算符对原子向量无效执行暂停
我尝试了noquote()、cat/paste 的各种组合,并将整个命令创建为字符串以传递给DESeqDataSetFromMatrix() 函数,但没有任何效果。任何建议将不胜感激。
解决方案
感谢 Ben Bolker 在下面的回答,以下方法奏效了:
DESeq_tbl <- DESeqDataSetFromMatrix(countData=counts_tbl,
colData=coldata, design=as.formula(opt$design))
【问题讨论】:
标签: r arguments string-parsing bioconductor optparse