use*_*331 3 arrays r bioinformatics sungridengine
我目前编写了一个 R 脚本来执行群体遗传模拟,然后将包含结果的表格写入文本文件。我想使用数组作业(我大学的集群使用 SGE)以某种方式并行运行此脚本的多个实例,当全部完成后,我将生成与每个作业相对应的结果文件(Results_1.txt、Results_2.txt 等) .)。
花了下午的大部分时间阅读并试图找出如何做到这一点,但还没有真正找到任何符合我想做的事情。我想知道是否有人可以提供示例,或者为我指明一些我可以阅读的内容以帮助解决此问题。
总结一下米特拉多对基本要点的回答:
创建作业脚本 ,pop_gen.bash该脚本可能会也可能不会将 SGE 任务 id 参数作为输入,将结果存储在由相同 SGE 任务 id 标识的特定文件中:
#!/bin/bash
Rscript pop_gen.R ${SGE_TASK_ID} > Results_${SGE_TASK_ID}.txt
Run Code Online (Sandbox Code Playgroud)
将此脚本作为作业数组提交,例如 1000 个作业:
qsub -t 1-1000 pop_gen.bash
Run Code Online (Sandbox Code Playgroud)
Grid Engine 将执行 pop_gen.bash 1000 次,每次将 SGE_TASK_ID 设置为 1-1000 范围内的值。
此外,如上所述,通过将 SGE_TASK_ID 作为命令行变量传递给pop_gen.R您可以使用 SGE_TASK_ID 写入输出文件:
args <- commandArgs(trailingOnly = TRUE)
out.file <- paste("Results_", args[1], ".txt", sep="")
# d <- "some data frame"
write.table(d, file=out.file)
Run Code Online (Sandbox Code Playgroud)
华泰