gpt4 book ai didi

python - 通过生成器从fastq获取数据

转载 作者:行者123 更新时间:2023-12-01 08:15:14 25 4
gpt4 key购买 nike

我在训练中有一项任务,我必须读取和过滤大型 fastq 文件的“良好”读取。它包含一个标题、一个 dna 字符串、+ 号和一些符号(每个 dna 字符串的质量)。例如:

@hhhhhhhh
ATGCGTAGGGG
+
ⅢⅢⅢⅢ

我进行了下采样,让代码正常工作,保存在 python 字典中。但事实证明原始文件很大,我重写了代码以提供生成器。它确实适用于下采样样本。但我想知道取出所有数据并在字典中进行过滤是否是个好主意。这里有人有更好的主意吗?我这么问是因为我自己在做。我开始学习 python 几个月了,我仍在学习,但我一个人做。因为我在这里寻求提示和帮助,如果有时我问一些愚蠢的问题,我很抱歉。提前致谢。保罗我从映泰的代码中得到了一些想法:

import sys
import gzip

filename = sys.argv[1]

def parsing_fastq_files(filename):
with gzip.open(filename, "rb") as infile:
count_lines = 0
for line in infile:
line = line.decode()
if count_lines % 4 == 0:
ids = line[1:].strip()
yield ids
if count_lines == 1:
reads = line.rstrip()
yield reads
count_lines += 1

total_reads = parsing_fastq_files(filename)
print(next(total_reads))
print(next(total_reads))

我现在需要弄清楚如何使用 'if value.endswith('expression'):' 来过滤数据,但是如果我使用字典,但这是我的疑问,因为键和值的数量。

最佳答案

由于此训练迫使您手动编码,并且您拥有将 fastQ 作为生成器读取的代码,因此您现在可以使用您拥有的任何指标(可能是 phredscore?)来确定读取的质量。您可以将每个“良好”读取附加到一个新文件中,这样,如果几乎所有读取结果都是良好的,那么您的工作内存中就不会留下太多内容。

写入文件是一个缓慢的操作,因此您可以等到拥有 50000 个好的序列,然后将它们写入文件。

查看https://bioinformatics.stackexchange.com/如果您进行了大量的生物信息学编程。

关于python - 通过生成器从fastq获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55024209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com