对于我的函数,我有一个给定输入文件的规则列表。如果在给定的文件中违反了其中任何一个,我希望我的程序返回错误消息并退出。
- 文件中的每个基因都应该在同一条染色体上
因此对于诸如以下的行:
NM_001003443 CHR11 + 5997152 5927598 5921052 5926098 1 5928752,5925972,5927204,5396098,NM_001003444 CHR11 + 5925152 5926098 5925152 5926098 2 5925152,5925652,5925404,5926098,NM_001003489 CHR11 + 5925145 5926093 5925115 5926045 4 5925151,5925762,5987404,5908098等。
文件中的每一行都是这一行的变体
因此,我想确保文件中的每一行都在 chr11
然而,我可能会得到一个包含不同 chr 列表(和任意数量的数字)的文件。因此,我想编写一个函数来确保在行中的 chr 上找到的任何数字对于每一行都是相同的。
我应该为此使用正则表达式,还是应该怎么做?顺便说一句,这是在python中。
如:chr\d+ ? 我不确定如何确保每行匹配的内容都是相同的......
我目前有:
from re import *
for line in file:
r = 'chr\d+'
i = search(r, line)
if i in line:
但我不知道如何确保每一行都相同......
关于 sajatack 的回答
fp = open(infile, 'r')
for line in fp:
filestring = ''
filestring +=line
chrlist = search('chr\d+', filestring)
chrlist = chrlist.group()
for chr in chrlist:
if chr != chrlist[0]:
print('Every gene in file not on same chromosome')