関数の特定の入力ファイルのルールのリストがあります。指定されたファイルでそれらのいずれかに違反している場合、プログラムにエラーメッセージを返して終了させたい.
- ファイル内のすべての遺伝子は同じ染色体上にある必要があります
したがって、次のような行の場合:
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, etc.
ファイル内の各行は、この行のバリエーションになります
したがって、ファイル内のすべての行が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')