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 @   小鲨鱼2018  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-02-03 linux shell中将fasta文件按照每行指定碱基数输出
2022-02-03 linux中如何使用变量提取连续的行
2021-02-03 c语言中求数组元素的最大值和最小值
2021-02-03 c语言中对象式宏(全局变量)
2021-02-03 c语言中实现数组的倒序排列
2021-02-03 linux系统 centos7.9 中安装 Rsudio-server
点击右上角即可分享
微信分享提示