我正在用 Snakemake 构建管道。一条规则涉及一个 R 脚本,该脚本使用readr
. 当我使用--use-singularity
and运行管道时出现此错误--use-conda
Error: Unknown TZ UTC
In addition: Warning message:
In OlsonNames() : no Olson database found
Execution halted
谷歌建议readr
由于缺少tzdata而崩溃,但我不知道如何安装 tzdata 包并readr
查看它。我在Mambaforge容器中运行整个管道以确保可重复性。Snakemake 建议在 Miniconda 容器上使用 Mambaforge,因为它更快,但我认为我的错误涉及 Mambaforge,因为使用 Miniconda 可以解决错误。
这是重现错误的工作流程:
#Snakefile
singularity: "docker://condaforge/mambaforge"
rule targets:
input:
"out.txt"
rule readr:
input:
"input.csv"
output:
"out.txt"
conda:
"env.yml"
script:
"test.R"
#env.yml
name: env
channels:
- default
- bioconda
- conda-forge
dependencies:
- r-readr
- tzdata
#test.R
library(readr)
fp <- snakemake@input[[1]]
df <- read_csv(fp)
print(df)
write(df$x, "out.txt")
我使用snakemake --use-conda --use-singularity
. 当 Snakemake 工作流从 Mambaforge 奇点容器运行时,如何运行 R 脚本?