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

文章目录[隐藏]

合并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
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy