Tom*_*omo 5 linux pipeline r snakemake singularity-container
我在建设有一个管道snakemake
,并使用conda
和singularity
环境以确保可重复性。我遇到了一个错误,我的绘图上的文本被矩形替换
在 Linux 和 Mac 系统上试验管道并禁用奇异容器后,问题似乎源于缺少字体库,因为当我仅在 Mac 上仅使用conda
( --use-conda
)运行管道时,文本绘制正常。
奇点容器是从这个使用 Debian GNU/Linux 的miniconda docker镜像构建的。我设法创建了一个最小的示例管道,其中没有绘制文本。
# Snakefile
singularity: "docker://continuumio/miniconda3"
rule all:
input:
"mtcars-plot.png"
rule plot_mtcars:
output:
"mtcars-plot.png"
conda:
"minimal.yaml"
script:
"mtcars-test.R"
Run Code Online (Sandbox Code Playgroud)
# mtcars-test.R
library(ggplot2)
png("mtcars-plot.png")
ggplot(mtcars, aes(factor(cyl), mpg)) + geom_boxplot()
dev.off()
Run Code Online (Sandbox Code Playgroud)
# minimal.yaml
channels:
- bioconda
- conda-forge
- defaults
dependencies:
- r-base =3.6
- r-ggplot2
Run Code Online (Sandbox Code Playgroud)
要绘制断开的图,请运行管道
snakemake --use-conda --use-singularity
Run Code Online (Sandbox Code Playgroud)
在 Debian GNU/Linux 上使用 R 正确绘制文本时,我可能缺少哪些软件包/库?
感谢 MrFlick 的评论,第二个链接说mscorefonts
R 中的文本支持需要该包。
添加mscorefonts
到conda
环境可以解决问题
# minimal.yaml
channels:
- bioconda
- conda-forge
- defaults
dependencies:
- r-base =3.6
- r-ggplot2
- mscorefonts
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
132 次 |
最近记录: |