背景/动机:我正在运行一个生物信息学管道,如果从头到尾线性执行,则需要几天才能完成。幸运的是,有些任务不相互依赖,因此可以单独执行。例如,任务 2、3 和 4 都依赖于任务 1 的输出,但彼此不需要信息。任务 5 使用 2、3 和 4 的输出作为输入。
我正在尝试编写一个脚本,该脚本将为三个任务中的每一个打开 R 的新实例并同时运行它们。一旦这三个都完成了,我就可以继续剩下的管道了。
对于更线性的工作流程,我过去所做的是拥有一个“主”脚本,该脚本依次获取(source())每个任务的下标。
我已经搜索了 SO 和 google,但无法找到解决这个特定问题的方法。希望大家能帮忙。
在 R 中,您可以运行system()以在终端中调用命令并打开以打开文件。例如,以下将打开一个新的终端实例:
system("open -a Terminal .",wait=FALSE)
同样,我可以通过使用开始一个新的 r 会话
system("open -a r .")
我一生无法弄清楚的是如何设置“输入”参数,以便它获取我的脚本之一。例如,我希望以下内容打开一个新的终端实例,在新实例中调用 r,然后获取脚本。
system("open -a Terminal .",wait=FALSE,input=paste0("r; source(\"/path/to/script/M_01-A.R\",verbose=TRUE,max.deparse.length=Inf)"))