Linux中 生信分析- 批量提交任务
2023-05-27 本文已影响0人
球果假水晶蓝
举一个简单需求:
有多个转录组数据需要比对到参考基因组
bwa mem ref_name read1 > read1.sam;
bwa mem ref_name read2 > read2.sam;
bwa mem ref_name read3 > read3.sam;
这样可以轮流一个一个比对,实际上这样也挺麻烦的,需要手动不断复制黏贴。
我们可以考虑使用更方便的方式
1.使用shell 脚本,写个循环处理多个数据的问题
for i in read*;do bwa mem ref_name ${i} > ${i}.sam;done
- 使用shell或者其他编程语言写个生成命令的脚本
for i in read*;do echo "bwa mem ref_name ${i} > ${i}.sam;" > "${i}.sh";done
再在服务器中批量提交任务,
for i in *.sh ; do qsub $i;
- 使用 xargs 命令配合& 并行处理
ls read* | xargs -n 1 -I file sh -c 'echo " bwa mem ref_name file > file.sam &" '
- 使用 parallel
Linux下的并行神器——parallel - 使用 ParaFly
ParaFly -c cmd.list -CPU $threads