我目前正在尝试使用re中的findall函数来捕获蛋白质的氨基酸序列。我很难让正则表达式的语法正常工作。下面是我正在努力解决的代码的简化部分:
import re
line=">sp|A0A385XJ53|INSA9_ECOLI Insertion element IS1 9 protein InsA OS=Escherichia coli (strain K12) OX=83333 GN=insA9 PE=3 SV=1 MASVSISCPSCSATDGVVRNGKSTAGHQRYLCSHCRKTWQLQFTYTASQPGTHQKIIDMA"
result=re.findall(r'SV=(\d{1})\s{1}[A-Z]*', line)
for item in result:
print(item)
我希望它返回SV=1之后的字母序列,但是它返回“1”而不是“MASVSISC…”我不知道为什么。我觉得我的代码读起来是“SV后跟一个数字,一个空格,然后是一个未指定长度的大写字母序列”,我怎么才能让它返回氨基酸序列呢?你知道吗
我试过几种不同的方法。我想可能是我把“*”的位置搞混了,或者是不小心用它代替了“+”。但是,以下尝试我仍然得到“1”:
result=re.findall(r'SV=(\d{1})\s{1}[A-Z*]', line)
result=re.findall(r'SV=(\d{1})\s{1}[A-Z]+', line)
result=re.findall(r'SV=(\d{1})\s{1}[A-Z+]', line)
我想你不用正则表达式就可以解析氨基酸了。或许可以使用以下方法:
相关问题 更多 >
编程相关推荐