我在尝试运行调用R脚本的snakemake规则时遇到问题。相关的snakemake规则如下所示:
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", exp=EXP, seq_run=SEQ_RUN),
family_counts = expand("../final/{seq_run}/{exp}_family_counts.csv", exp=EXP, seq_run=SEQ_RUN)
shell:
'''
Rscript ./deseq2.R
'''
下面是我的R脚本的顶部,它在S4对象调用时失败:
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)
库加载正常,错误消息指出:
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
object 'snakemake' not found
Calls: read.csv -> read.table
Execution halted
我试图将我的依赖项组织在一个conda .yml文件中,它看起来像这样:
name: test_env
channels:
- conda-forge
- bioconda
- r
- default
dependencies:
- star =2.7.1a
- trinity =2.12.0
- samtools =1.12
- salmon =1.4.0
- snakemake
- pandas
- r=4.1.0
- r-essentials
- bioconductor-deseq2
- bioconductor-tximport
为什么R不能识别snakemake文档中描述的snakemake输入?我运行的是snakemake版本6.5.1。
发布于 2021-06-29 21:41:02
示例使用的是script:
而不是shell:
,因此请更改为
script:
"./deseq2.R"
而不是
shell:
'''
Rscript ./deseq2.R
'''
看起来snakemake需要进入脚本来定义snakemake
变量,但是它不能使用任意的inject R code命令。只有当脚本文件以".R“结尾时,才会执行此操作
https://stackoverflow.com/questions/68185241
复制