Я новичок в кодировании, и я столкнулся с проблемой, пытаясь создать свой собственный fastq masker. Первый модуль должен обрезать строку с помощью +, изменить заголовок последовательности (начинается с>) на номер строки, сохраняя последовательности и линии качества (линии A, G, C, T и Unicode) соответственно) ,Включение нескольких списков в один текстовый файл
class Import_file(object):
def trim_fastq (self, fastq_file):
f = open('path_to_file_a', 'a')
sanger = []
sequence = []
identifier = []
plus = []
f2 = open('path_to_file_b')
for line in f2.readlines():
line = line.strip()
if line[0]=='@':
identifier.append(line)
identifier.replace('@%s','>[i]' %(line))
elif line[0]==('A' or 'G'or 'T' or 'U' or 'C'):
seq = ','.join(line)
sequence.append(seq)
elif line[0]=='+'and line[1]=='' :
plus.append(line)
remove_line = file.writelines()
elif line[0]!='@' or line[0]!=('A' or 'G'or 'T' or 'U' or 'C') or line[0]!='+' and line[1]!='':
sanger.append(line)
else:
print("Danger Will Robinson, Danger!")
f.write("'%s'\n '%s'\n '%s'" %(identifier, sequence, sanger))
f.close()
return (sanger,sequence,identifier,plus)
Теперь на мой вопрос. Я запустил это и не появляется ошибка, однако целевой файл пуст. Мне интересно, что я делаю неправильно ... Это мой способ обработать списки или отсутствие .join? Прошу прощения, если это дубликат. Просто я не знаю, в чем тут ошибка. Кроме того, важно отметить ... Это не какая-то домашняя работа, мне просто нужен маскиратор для работы ... Любая помощь очень ценится, и все упоминания об улучшении кода приветствуются. Благодарю.
Примечание (формат fastq):
@SRR566546.970 HWUSI-EAS1673_11067_FC7070M:4:1:2299:1109 length=50
TTGCCTGCCTATCATTTTAGTGCCTGTGAGGTGGAGATGTGAGGATCAGT
+
hhhhhhhhhhghhghhhhhfhhhhhfffffe`ee[`X]b[d[ed`[Y[^Y
Edit: Тем не менее не в состоянии получить что-нибудь, но работать на нем.
Думаю, вам стоит взглянуть на [biopython] (http://biopython.org/wiki/SeqIO). – root
Я не уверен, что вы хотите проверить в своих операторах 'if' и' else', но код, который у вас есть, определенно не собирается его проверять. – alexis
Я думаю, что такие вещи, как 'if '@' == [0] в строке:' должны были быть 'if line [0] == '@':', но я не уверен. – Brian