我目前在使用 Snakemake 的 conda 环境中使用 TinyTeX 时遇到问题。tinytex::install_tinytex()
在运行管道之前,我必须使用命令安装 TinyTeX 安装文件。这会将 TinyTeX 安装在创建的环境之外(这不是什么大问题……但也不是首选)。主要问题是每次我执行我的 Snakemake 管道时,它都会尝试重新安装我不想要的这个安装。谁能告诉我检查它是否已经安装的最简单方法是什么?我应该使用Rscript -e \"tinytex:::is_tinytex()\"
带有 if 语句的命令吗?Rscript -e
通过调用Snakemake来编写 if 语句的最佳方法是什么?或者我应该在第一次运行时写一个布尔文本文件,指定之前是否安装过 TinyTeX?
TinyTeX conda 依赖项在没有额外安装的情况下无法自行工作,这有点糟糕......
Snakemake 规则(忽略输入/输出):
rule assembly_report_rmarkdown:
input:
rules.assembly_graph2image_bandage.output,
rules.assembly_assessment_quast.output,
rules.coverage_calculator_shortreads.output,
rules.coverage_calculator_longreads.output
output:
config["outdir"] + "Hybrid_assembly_report.pdf"
conda:
"envs/r-rmarkdown.yaml"
shell:
"""
cp report/RMarkdown/Hybrid_assembly_report.Rmd {config[outdir]}Hybrid_assembly_report.Rmd
Rscript -e \"tinytex::install_tinytex()\"
Rscript -e \"rmarkdown::render('{config[outdir]}Hybrid_assembly_report.Rmd')\"
rm -f {config[outdir]}Hybrid_assembly_report.Rmd {config[outdir]}Hybrid_assembly_report.tex
"""
康达 YAML:
name: r-rmarkdown
channels:
- conda-forge
- bioconda
dependencies:
- r-base=4.0.3
- r-rmarkdown=2.5
- r-tinytex=0.27
提前致谢。