Python 基于第一个fastq的内容过滤第二个fastq文件
我正在比较两个大的gz文件(fastq格式),每个文件有几亿行 它们由四条线组成:Python 基于第一个fastq的内容过滤第二个fastq文件,python,gzip,enumerate,fastq,Python,Gzip,Enumerate,Fastq,我正在比较两个大的gz文件(fastq格式),每个文件有几亿行 它们由四条线组成: 地址 字符序列 间隔棒 另一个字符序列 第二个文件将比第一个文件有更多的行(在这些4行的组中) 我试图做的是过滤掉那些多余的行(四人一组) 我的策略是: 如果两个文件中的唯一地址相同: 写第二个文件的四行。这似乎有效,但速度很慢,有什么建议吗 from itertools import islice from gzip import open as gzopen # two inputs to compare f
from itertools import islice
from gzip import open as gzopen
# two inputs to compare
first_file = 'R1_001.fastq.gz'
second_file = 'R2_001.fastq.gz'
# output file
file_3 = 'test_out.gz'
with gzopen(first_file) as f1, gzopen(second_file) as f2, gzopen(file_3,'ab') as f3:
for line_number, line in enumerate(f1):
if line_number % 4 == 0:
check_lines = islice(f2,0,4)
my_lines = [*check_lines]
if line.split()[0] == my_lines[0].split()[0]:
f3.writelines(my_lines)```