2015-02-08 42 views
1

所以,我想要創建一個shell腳本來幫助我提交一個陣列作業,其中每個作業都有多個輸入文件。我如何運行具有每工作一個輸入如下陣列作業的一個例子:具有多個輸入的SGE陣列作業

DIR=/WhereMyFilesAre 
LIST=($DIR/*fastq) #files I want to process 
INDEX=$((SGE_TASK_ID-1)) 
INPUT_FILE=${LIST[$INDEX]} 

bwa aln ${DIR}/referencegenome.fasta $INPUT_FILE > ${INPUT_FILE%.fastq}.sai 

所以,基本上我想要做的是類似的東西,但如果我有文件的2名或多個列表,而不是一個。這些文件需要正確配對。舉例來說,如果我有File1_A.txt,File1_B.txt,File2_A.txt,File2_B.txt和東西看起來像一般

program input1 input2 > output 

我希望得到的就業機會有看起來像

program File1_A.txt File1_B.txt > File1.txt 

program File2_A.txt File2_B.txt > File2.txt 
+0

你就不能重複的名單,INDEX,INPUT_FILE在你原來的腳本,以便您可以編寫程序$ INPUT_FILE1 $ INPUT_FILE2> resultfile $ INDEX.txt? – lib 2015-02-09 09:07:28

+0

我對這種工作和XML使用qmake(GNU make for SGE http://gridscheduler.sourceforge.net/htmlman/htmlman1/qmake.html):請參閱https://github.com/lindenb/ngsxml for一個例子。 – Pierre 2015-02-09 09:56:06

回答

1

當你指定,如果兩個輸入文件都是固定的命名命名的除外$ INDEX就用SGE_TASK_ID爲索引在作業腳本:

program File${SGE_TASK_ID}_A.txt File${SGE_TASK_ID}_B.txt > File${SGE_TASK_ID}.txt 
+0

接受答案的原因被刪除了? – Vince 2015-02-10 19:58:34