2014-11-06 195 views
0

我有一個R腳本可以在一條染色體上執行分析。我想爲每個染色體重複運行此腳本(1-22,X和Y)。現在我已經設置了腳本來接受命令行中的一個參數,染色體編號。我想同時向我的服務器提交多個作業,因爲一個染色體的分析需要幾個小時。在玩弄了一些選項並搜索了所有內容之後,我仍然不確定最佳選擇是什麼,因爲我從未將任務併入服務器(Sun Grid Engine服務器)。我看着GNU parallel,但我不確定如何使用它,或者它甚至運行R腳本。也許把所有東西都放在shell腳本中並提交給服務器?這是一個非常基本的問題,但任何方向將不勝感激!使用命令行參數並行運行多個R腳本

+0

你讀過https://www.biostars.org/p/63816/ pi.dk/1 pi.dk/4 – 2014-11-06 19:35:15

+0

顯示你現在怎麼辦的代碼示例。 – 2014-11-06 19:36:26

+0

是的,我現在實際上已經打開了這個窗口。那麼這種方法將與R腳本一起工作?現在我沒有任何東西我只知道我可以使用'Rscript plot_LRR_BAF_chromosome_parallel ' – kinsigne 2014-11-06 19:45:28

回答

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

從命令行調用此命令似乎正常工作。我試圖將它提交給服務器,但是當我從.sh腳本中或直接從'qsub 並行Rscript plot_LRR_BAF_chromosome_parallel ::: {1..22} XY'調用它時,它說'無法讀取腳本文件由於錯誤:打開並行的錯誤:沒有這樣的文件或目錄。有任何想法嗎? – kinsigne 2014-11-06 22:32:31

+0

顯示通常情況下qsub作業的示例。 – 2014-11-07 00:04:38

0

使用GNU 使與選項-j,與染色體的名字你的[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 > [email protected] 

endef 

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

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