使用命令行参数并行运行多个R脚本

时间:2014-11-06 19:27:23

标签: r parallel-processing batch-processing bioinformatics

我有一个R脚本,可以在一条染色体上进行分析。我想为每条染色体重复运行这个脚本(1-22,X和Y)。现在我将脚本设置为从命令行接受一个参数,即染色体编号。我想并行地向我的服务器提交多个作业,因为对一条染色体的分析需要几个小时。在玩了一些选项并搜索了所有内容后,我仍然不确定最佳选择是什么,因为我从未向服务器(Sun Grid Engine服务器)并行提交作业。我查看了GNU parallel,但我不确定如何使用它,或者它是否运行R脚本。也许把所有内容都放在shell脚本中并将其提交给服务器?这是一个非常基本的问题,但任何方向都将非常感谢!

2 个答案:

答案 0 :(得分:0)

parallel Rscript plot_LRR_BAF_chromosome_parallel ::: {1..22} X Y

答案 1 :(得分:0)

使用带有选项-j的GNU make ,将R脚本中的__CHROM__替换为染色体名称。

chroms=1 2 3 4 5 6 7 8 9 10

define method1

$$(addsuffix .out,$(1)) : script.R
    cat $$< | sed 's/__CHROM__/$(1)/g' | R --nosave > $$@

endef

all: $(addsuffix .out,$(chroms))

$(foreach C, $(chroms),$(eval $(call method1, $(C) )))