У меня есть CSV-файл с разделителями табуляции, содержит 3 поля, разделенных запятыми: номер, последовательность и статус.Каждая строка представляет различную последовательность.
пример входного файла, который называется sequence.txt:
1 tgctccatatcagtgcagatcgcgcgatacattcctcagtaggaaaaaagttcagagatgataatcgtccgtccgggatttcagatgaaagaggctggaagtcaaggctttagcgggtaggaggttaatgatttt no
2 tatactatttagttctgcagtgagccttcatacaaagggatgtggagttgtcatatggggggctctgtatccggagttcggttttgcttgagactcaaatcggggttttcgtacat no
3 ccggctagtgagaggcttaagacatccagatatctcgaatagtaatagcagtcgaaaccgaaattaaaccccaatcactaatggcattcacataatgaatagtgcttactcgacctaagggcgaatt no
4 ttaattgatttttgtgcaaaaattgatattagagtattacccccgtattgctatgcgcctttctaattgactgattacgtgagacgcgcgggtttggagttcactgggcagacgcgagctacatttgccaggtacgact yes
Я хочу написать программу для сканирования каждой последовательности и проверки наличия мономерных нуклеотидных повторов (mnr) 6 илибольше (верхний или нижний регистр не имеет значения, я ищу оба).Если я найду последовательность, которая соответствует этим критериям, я должен затем напечатать всю строку в новый выходной файл (со всеми 3 полями).
Определение: мономерные нуклеотиды: повторы A, T, C, G(не чувствительно к регистру)
mnr повторов подряд будет выглядеть примерно так: AAAAaaAAgtc или gtAAAAAAAAAAc, или aaaaaaAAA, или aaaaaaaaa, или ccccccccccc, или ccccccccccc, или CCCCCcccCCC или ...
1011но не работает:
import csv
import re
with open('sequences.txt','r') as f:
reader = csv.reader(f,delimiter=",")
for line in reader:
seq=re.findall(r'[Aa]{6, }',reader)
if line.__contains__(seq):
print(line)
with open('seqoutput.txt','w') as f:
for line in list1:
f.write(line)
ожидаемый вывод:
1 tgctccatatcagtgcagatcgcgcgatacattcctcagtaggaaaaaagttcagagatgataatcgtccgtccgggatttcagatgaaagaggctggaagtcaaggctttagcgggtaggaggttaatgatttt no
2 tatactatttagttctgcagtgagccttcatacaaagggatgtggagttgtcatatggggggctctgtatccggagttcggttttgcttgagactcaaatcggggttttcgtacat no
токовый выход:
Traceback (most recent call last):
File "sequence.py", line 6, in <module>
seq=re.findall(r'[Aa]{6, }',reader)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 181, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer