• Welcome to LiuJason's Blog!

Linux shell合并fastq测序数据/批量fastqc小脚本|merge|multiqc

Linux笔记 Jason 3 years ago (2021-02-04) 612 Views 0 Comments
文章目录[隐藏]

合并fastq测序数据

不同泳道的同一个样品测序数据经过质量检查QC后是可以合并的。本例中文件命名情况如下:
示例文件名:83b_S156_L004_R1_001.fastq.gz,其中83b_S156是样品名,L004是泳道,R1是正向序列。
这时候只需要用这个小脚本即可:

ls *R1* | cut -d _ -f 1,2 | sort | uniq \
    | while read id; do \
        cat $id*R1*.fastq.gz > ../merged/$id.R1_001.fastq.gz;
        echo "Sample" $id "Merged";
      done

注释

我这里只是取了R1的样品进行merge,所以ls只选取文件名中含有R1的文件;
cut是将文件名以-d后的参数_进行分割,然后选取第1和第2个项(根据实际情况来)作为id
然后sort进行排序,uniq来去除重复;
最后用循环来合并所有的数据。

批量fastqc

这个就不用说了,就一行:

ls *fastq.gz | while read id ; do nohup fastqc $id & done

但是如果文件数量过多,且内存不足的话可能会出现错误,这时候运行目录下会出现形如hs_err_pid50531.log的文件。
这种时候就需要限制运行的线程数量了:

ls *fastq.gz | xargs fastqc -P 32

其中-P参数表示线程限制,这里是32线程,最好综合考虑内存和CPU的情况。

stringtie进行定量

ls *Aligned.sortedByCoord.out.bam | xargs -I bamfile -P 32 sh -c 'FILENAME=bamfile; stringtie -p 64 -G /ssd/gencode.v37.chr_patch_hapl_scaff.annotation.gtf -o /ssd/cleandata/EVA_Part2/${FILENAME::-69}.gtf bamfile'

This article is under CC BY-NC-SA 4.0 license.
Please quote the original link:https://www.liujason.com/article/1163.html
Like (2)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址