2

我正在寻找有关使用Snakemake处理我的 R 管道的一些基本信息。据我了解,执行此操作的两种最常见方法是使用script标志并传递R脚本,或使用shell传递给Rscript. 如果我想使用这两种方法中的任何一种,我的R脚本应该是什么样的?如果为. R_ _ _loadRDataread.tableinput

另一个问题是关于集群提交/多线程。Snakemake据称将把任务提交到多个节点并自动使用多个核心,无需修改代码。那么让一个规则使用cluster和/或cores调用R脚本来执行整个管道或将管道分成多个规则/步骤并使用cluster和/或cores在该规则上会更好吗?

最后一个问题是,如果我的代码在代码本身中R使用并行/多线程包怎么办?mclapply这如何影响Snakemake及其参数?

无法在线找到这些问题的答案,因此任何信息将不胜感激。

4

1 回答 1

0

我遇到了与问题 1 中所述类似的问题。这就是有关在蛇形管道中使用 R 脚本的所有蛇形程序

在 R 脚本中,可以使用与上述 Python 案例类似的名为 snakemake 的 S4 对象,并允许访问输入和输出文件以及其他参数。这里的语法遵循具有 R 列表属性的 S4 类的语法,例如,我们可以使用 snakemake@input[[1]] 访问第一个输入文件(请注意,第一个文件在这里没有索引 0,因为 R 开始计数1)。命名的输入和输出文件可以以相同的方式访问,只需提供名称而不是索引,例如snakemake@input[["myfile"]]。

我按照说明以这种方式制作了我的 R 脚本的第一行:

avinp = read.table(snakemake@input[["avi"]], header= FALSE, sep = "\t")
anno = read.table(snakemake@input[["anno"]], header = TRUE, sep= "\t")

avi并且anno是snakemake规则输入。您可以为您的输出/输出做同样的事情。

于 2019-09-10T13:16:25.883 回答