输入文件示例:
1 AAcgGGGGGGtacctgt yes
2 TTcccccctgtAAcgta no
3 tcgAAAAaatacgacc no
4 AAcgtataatacctgt no
...
我想写一个程序来扫描每个序列并检查单体核苷酸重复(mnr)
输出示例:
^{pr2}$定义:单体核苷酸是:A、T、C、G的重复(不区分大小写)
我要找的是这样的:
AAAAaaAAgtc
或
gtAAAAAAAAAAc
或
aaaaaaAAA
或
aaaaaaaaaa
或
ccccccccccc
或
CCCCCcccCCC
或者。。。在
我尝试了以下正则表达式,但不起作用:
import csv
import re
list=[]
with open('sequences.txt', 'r') as f:
reader = csv.reader(f,delimiter="\t")
seq=re.findall(r'[Aa]{6, }','sequences.txt')
for line in reader:
if line.__contains__(seq):
print(list.append(line))
感谢任何帮助。在
更新:使用正则表达式的部分解决方案已经被提出。请注意,下面的解决方案不能使用regex,而是查找长度为6或更多的任何字符的任何序列。在
试验数据:
查找长度为6或更大的MNR的代码:
^{pr2}$请注意,CSV方言可能需要根据运行代码和生成数据文件的系统进行调整。在
输出上述给定测试数据:
这里有一个紧凑的解决方案可以满足您的需求:
在这里,我假设您只考虑
a,c,g,t
的mnrs,因为您正在处理一个DNA序列。在相关问题 更多 >
编程相关推荐