shell + python 计算 fastq文件的q20和q30值

 

001、 shell 

zcat ${i}_trim_1P.fastq.gz | cat - <(zcat ${i}_trim_2P.fastq.gz) | awk 'NR % 4 == 0' > ${i}_quality.txt       ## 将压缩后的fastq文件合并并提取出质量值

 

 

 

002、python

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import sys

in_file = open(sys.argv[1], "r")

q20 = 0
q30 = 0
total_base = 0
for i in in_file:
        i = i.strip()
        total_base += len(i)
        for j in i:
                j = ord(j) - 33
                if j > 20:
                        q20 += 1
                if j > 30:
                        q30 += 1

in_file.close()
print("q20= " + str(q20/total_base))
print("q30= " + str(q30/total_base))

 。

 

003、用法

python  xxx.py  ${i}_quality.txt

 

posted @ 2025-02-03 09:27  小鲨鱼2018  阅读(36)  评论(0)    收藏  举报