You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:用Python3统计FASTQ文件中不同Phred碱基质量的碱基数

Python3 统计FASTQ文件碱基质量分布

需要编写Python3程序读取FASTQ文件,统计Phred碱基质量在以下区间的碱基数:0、1-10(含)、11-20、21-30、31-40及40以上。基于你已实现的质量字符解码函数,以下是完整实现:

def decode(c):
    return ord(c) - 33

# 初始化各区间计数器
count_zero = 0
count_1_10 = 0
count_11_20 = 0
count_21_30 = 0
count_31_40 = 0
count_above_40 = 0

# 替换为你的FASTQ文件路径
fastq_path = "your_file.fastq"

with open(fastq_path, 'r') as f:
    lines = f.readlines()
    # FASTQ格式:每4行一组,第4行是碱基质量数据
    for i in range(3, len(lines), 4):
        quality_line = lines[i].strip()
        for c in quality_line:
            q_score = decode(c)
            if q_score == 0:
                count_zero += 1
            elif 1 <= q_score <= 10:
                count_1_10 += 1
            elif 11 <= q_score <= 20:
                count_11_20 += 1
            elif 21 <= q_score <= 30:
                count_21_30 += 1
            elif 31 <= q_score <= 40:
                count_31_40 += 1
            elif q_score > 40:
                count_above_40 += 1

# 按指定格式输出统计结果
print(f"碱基质量为0: {count_zero} 个")
print(f"碱基质量1-10: {count_1_10} 个")
print(f"碱基质量11-20: {count_11_20} 个")
print(f"碱基质量21-30: {count_21_30} 个")
print(f"碱基质量31-40: {count_31_40} 个")
print(f"碱基质量40以上: {count_above_40} 个")

关键说明

  • 替换代码中的fastq_path为你的FASTQ文件实际路径
  • 解码函数采用Phred+33编码标准(当前通用格式),若你的文件使用Phred+64编码,需将ord(c)-33修改为ord(c)-64
  • 程序遵循FASTQ文件结构:每4行作为一组序列数据,第4行是碱基质量信息,遍历该行所有字符完成统计

内容的提问来源于stack exchange,提问作者Victoria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:07:44