If statement 使用Conda在Snakemake中使用R标记(TinyTeX)创建PDF报告
我目前在Snakemake的conda环境中使用TinyTeX时遇到问题。在运行管道之前,我必须使用命令If statement 使用Conda在Snakemake中使用R标记(TinyTeX)创建PDF报告,if-statement,r-markdown,conda,snakemake,tinytex,If Statement,R Markdown,Conda,Snakemake,Tinytex,我目前在Snakemake的conda环境中使用TinyTeX时遇到问题。在运行管道之前,我必须使用命令TinyTeX::install\u TinyTeX()安装TinyTeX安装文件。这将在创建的环境之外安装TinyTeX(这不是什么大问题……但也不是首选)。主要的问题是,每次我执行Snakemake管道时,它都会尝试重新安装我不想要的安装。谁能告诉我最简单的方法是什么来检查它是否已经安装?我是否应该在if语句中使用命令Rscript-e\“tinytex:::is\u tinytex()\
TinyTeX::install\u TinyTeX()
安装TinyTeX安装文件。这将在创建的环境之外安装TinyTeX(这不是什么大问题……但也不是首选)。主要的问题是,每次我执行Snakemake管道时,它都会尝试重新安装我不想要的安装。谁能告诉我最简单的方法是什么来检查它是否已经安装?我是否应该在if语句中使用命令Rscript-e\“tinytex:::is\u tinytex()\”
?在Snakemake中调用Rscript-e
,编写if语句的最佳方法是什么?或者我应该在第一次运行时编写一个布尔文本文件,指定TinyTeX之前是否已安装
TinyTeX conda依赖项在没有额外安装的情况下无法独立工作,这有点糟糕
蛇行规则(忽略输入/输出):
康达·亚马尔:
name: r-rmarkdown
channels:
- conda-forge
- bioconda
dependencies:
- r-base=4.0.3
- r-rmarkdown=2.5
- r-tinytex=0.27
提前谢谢。我想我已经解决了这个问题。我没有调用
Rscript-e
,而是将下面的if语句放在R Markdown中的setup块中(如果我正确,它会在运行任何其他代码之前运行)。然后我继续卸载TinyTeX,看看它是否只会安装一次
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
if (!tinytex:::is_tinytex()){
tinytex::install_tinytex()
}
如果您知道一个文件安装了
tinytex::install\u tinytex()
程序,那么可以在调用Rscript之前测试它的存在性。如果这就是你所说的“使用命令Rscript-e\”tinytex:::is\u tinytex()\“
和If语句”的意思,我认为这确实是最简单的事情。不相关的。。。您不需要在shell指令中转义双引号,因为您将它包装为三重引号。也就是说,你可以用“tinytex foo bar”
代替“tinytex foo bar”
啊,当然,我错了。将更改thnx;)
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
if (!tinytex:::is_tinytex()){
tinytex::install_tinytex()
}