如何用Biopython实现批量FastQ文件质控的循环处理?
批量处理FastQ文件的Biopython实现
当然可以改成批量处理,直接用循环遍历所有目标文件就行,给你写个具体的实现方案:
首先把要处理的所有FastQ文件名整理成一个列表,然后循环每个文件,复用你原来的过滤逻辑,最后把过滤后的结果保存成新文件(建议给输出文件加个_filtered后缀,避免覆盖原文件)。
完整代码示例:
from Bio import SeqIO # 定义要处理的所有FastQ文件列表 input_files = ["rec1.fastq", "rec2.fastq", "rec3.fastq"] # 按需添加更多文件 for input_file in input_files: # 过滤符合质量要求的reads good_reads = ( rec for rec in SeqIO.parse(input_file, "fastq") if max(rec.letter_annotations["phred_quality"]) >= 30 ) # 生成输出文件名,避免覆盖原文件 output_file = f"{input_file.split('.')[0]}_filtered.fastq" # 写入过滤后的结果 count = SeqIO.write(good_reads, output_file, "fastq") print(f"处理完成{input_file},保留了{count}条合格reads,已保存到{output_file}")
如果你的文件是按规律命名的(比如rec1、rec2...recN),还可以用循环自动生成文件名列表,比如:
input_files = [f"rec{i}.fastq" for i in range(1, 10)] # 生成rec1到rec9的文件名
这样就能一次性处理所有目标文件了。
内容的提问来源于stack exchange,提问作者Alejandra Diaz
相关产品推荐
相关产品推荐

