У меня есть задание на тренинге, которое я должен прочитать и отфильтровать «хорошие» чтения больших fastq файлов. Он содержит заголовок, строку днк, знак + и некоторые символы (качества каждой строки днк). Пример:
@ hhhhhhhh
ATGCGTAGGGG
+
IIIIIIIIIIIII
Я опробовал, получил работающий код, сохранив его в словаре Python. Но оказалось, что оригинальные файлы огромны, и я переписал код, чтобы дать генератор. Это сработало для уменьшенной выборки. Но мне было интересно, если это хорошая идея, чтобы получить все данные и фильтрацию в словаре. У кого-нибудь есть идея получше?
Я спрашиваю, потому что я делаю это сам. Я начинаю изучать Python в течение нескольких месяцев, и я все еще учусь, но я делаю один. Потому что здесь я прошу советы и помощь, и извините, если иногда я задаю глупые вопросы.
заранее спасибо.
Пауло
Я получил некоторые идеи из кода в Biostar:
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 '):', но если я, например, использую dict, но это мое сомнение, потому что количество ключей и значений.