转录组分析时,经常需要批量处理样本,但是那种只是批量处理而非并行处理。曾老师提供了神奇并行处理脚本submit.sh
#!/bin/bash
# 命令由曾老师提供
cat $1 | while read id
do
if ((i%$2==$3))
then
$id
fi
i=$((i+1))
done
# 最终执行代码为: for i in {0..3};do (nohup bash submit.sh script2.sh 4 $i 2>&1);done
# 上面命令中的script2.sh是我们需要运行的命令
# 在Linux的shell脚本中,行号是从0开始计数的。通过这种方式,我们将所有的命令分成了四份。而for in循环语句中的几个循环是并行的,也就代表这4个循环同时进行,即4份令>同时进行,每一份的上一条命令运行结束后,下一条命令才会执行。
# 如果想要把命令分为10份并行只需要,改成for i in {0..9};do (nohup bash submit.sh script2.sh 10 $i 2>&1);done。保证前面{0..9}和后面10对应上。