如何解决带有 R 脚本的 Snakemake,错误:找不到蛇形对象
我在尝试运行调用 R 脚本的蛇形规则时遇到问题。相关的蛇形规则如下所示:
p.wait()
这是我的 R 脚本的顶部,它在 S4 对象调用中失败:
rule summarize_transcripts:
input:
lineages = expand("../final/{seq_run}/{exp}_transcript_lineages.csv",exp=EXP,seq_run=SEQ_RUN),salmon_dir = expand("../salmon_quant_results/{experiment_id}",experiment_id=EXP),output:
species_counts = expand("../final/{seq_run}/{exp}_sp_counts.csv",family_counts = expand("../final/{seq_run}/{exp}_family_counts.csv",seq_run=SEQ_RUN)
shell:
'''
Rscript ./deseq2.R
'''
库加载正常,错误消息指出:
library('DESeq2')
library('tximport')
#Read in dataframe that contains the trinity ID's linked to lineage information
df <- read.csv(snakemake@input[["lineages"]],header=TRUE)
我试图在 conda .yml 文件中组织我的依赖项,如下所示:
Error in read.table(file = file,header = header,sep = sep,quote = quote,:
object 'snakemake' not found
Calls: read.csv -> read.table
Execution halted
为什么 R 不能识别snakemake 文档中描述的snakemake 输入?我运行的是snakemake 6.5.1版。
解决方法
示例使用 script:
而不是 shell:
所以改为
script:
"./deseq2.R"
而不是
shell:
'''
Rscript ./deseq2.R
'''
看起来snakemake 需要inject R code 进入脚本来定义snakemake
变量,而它不能用任意shell 命令来做到这一点。仅当脚本文件以“.R”结尾时才会这样做
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。