У меня есть формат файла, который выглядит, как этотКак читать файлы с разделителями в Python и добавлять символы в конце?
>1ATGC>2TTTT>3ATGC>$$$>B1ATCG>B2TT-G>3TTCG>B4TT-G>B5TTCG>B6TTCG$$$>C1TTTT>C2ATGC
Примечание: «$$$» делит файл, например, что-нибудь перед тем $$$ устанавливается на 1 и после $$$ устанавливается 2 и после того следующий $$$ set3 т.д.
я должен сделать следующее:
а. Объедините последовательности, следующие за «>». Итак, я должен присоединиться к «ATGC» «TTTT» «ATGC» и сохранить в (1), и мне нужно объединить «ATCG» «TT-G» «TTCG» «TT-G» «TTCG» «TTCG» и сохранить в (2) ... сцепить снова и хранить в (3)
Вывод должен быть список, который выглядит следующим образом:
("ATGCTTTTATGC","ATCGTT-GTTCGTT-GTTCGTTCG","TTTTATGC")
(2) Тогда, я считаю набор, который имеет максимум length => здесь Set (2)
(3) Если длина Set i не равна Set (2), тогда я добавляю «Z» в конце Set i, так что длина Set i теперь равна на длину набора (2)
(4) я заменить все "-" с "Z"
Вывод должен выглядеть следующим образом:
("ATGCTTTTATGCZZZZZZZZZZZZ",
"ATCGTTZGTTCGTTZGTTCGTTCG",
"TTTTATGCZZZZZZZZZZZZZZZZ")
Вот код, я попытался:
in_file = open('c:/test.txt','r')
org = []
seqlist = []
seqstring = ""
for line in in_file:
if line.startswith("$$$"):
if seqstring!= "":
seqlist.append(seqstring)
seqstring = ""
org.append(line.rstrip("\n"))
elif line.startswith(">"):
seqstring += line.rstrip("\n")
seqlist.append(seqstring)
setdraft = seqlist
maxsetlength = max(len(seqlist))
setdraft2 =[]
for i in setdraft:
if len(i) != maxsetlength:
setdraft2 = i.append("Z")
setfinal =[]
for j in setdraft2:
if j in setdraft2 =="-":
setfinal = j.insert ("Z")
выше сценарий не работает. Это дает мне несколько ошибок. Например. Когда я печатаю setdraft
это дает мне выход
['>1ATGC>2TTTT>3ATGC>$$$>B1ATCG>B2TT-G>3TTCG>B4TT-G>B5TTCG>B6TTCG$$$>C1TTTT>C2ATGC']
, которая является такой же, как вход
Traceback (most recent call last):
File "C:/Users/ACER/Desktop/trial.py", line 25, in <module>
maxsetlength = max(len(seqlist))
TypeError: 'int' object is not iterable
Так же код работает? Если нет, то какой результат он производит вместо этого (включая полную трассировку для любых ошибок)? –
Нет, до сих пор я боюсь, что нет. Когда я печатаю «setdraft», он дает мне вывод ['> 1ATGC> 2TTTT> 3ATGC> $$$> B1ATCG> B2TT-G> 3TTCG> B4TT-G> B5TTCG> B6TTCG $$$> C1TTTT> C2ATGC'] == => который является таким же, как на входе Traceback (самый последний вызов последнего): Файл "C: /Users/ACER/Desktop/trial.py", строка 25, в maxsetlength = макс (LEN (seqlist)) TypeError: объект 'int' не итерируется –
Biotechgeek
Пожалуйста, отредактируйте ваш вопрос, чтобы добавить эту информацию. –