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
  1. 使用shell或者其他编程语言写个生成命令的脚本
for i in read*;do  echo "bwa mem ref_name ${i} > ${i}.sam;" > "${i}.sh";done

再在服务器中批量提交任务,
for i in *.sh ; do qsub $i;

  1. 使用 xargs 命令配合& 并行处理
ls read* | xargs -n 1 -I file sh -c 'echo " bwa mem ref_name   file >  file.sam &" '
  1. 使用 parallel
    Linux下的并行神器——parallel
  2. 使用 ParaFly
ParaFly -c cmd.list -CPU $threads
上一篇下一篇

猜你喜欢

热点阅读