我想裁剪此 gi|1168222|sp|P46098.1|5HT3A_HUMAN
以获得此 P46098
但对于此类 gi| 的任何序列随机”|sp|“序列”|“随机”
。
这是一个例子:
gi|1168222|sp|P46098.1|5HT3A_HUMAN
gi|1168223|sp|P35563.2|5HT3A_RAT
gi|112809|sp|P23979.1|5HT3A_MOUSE
gi|24211440|sp|O70212.1|5HT3A_CAVPO
gi|113067|sp|P22770|ACHA7_CHICK
我只想要 sp|
和 .
或者 |
之间,如果没有 .
这就是我到现在为止:
from Bio import SeqIO
import re
handle = open("seqdumpsp.txt", "rU")
for record in SeqIO.parse(handle, "fasta") :
line = record.id
i1 = line.index('sp|')
i2 = line.index('.')
line = line.replace(line[:i1], '', line)
line = line.replace(x[i2:], '')
print line
handle.close()
但是这不起作用,因为我不能在替换中使用 i1 和 i2。
最佳答案
>>> line = 'gi|1168222|sp|P46098.1|5HT3A_HUMAN'
>>> line.split('|')
['gi', '1168222', 'sp', 'P46098.1', '5HT3A_HUMAN']
>>> line.split('|')[3]
'P46098.1'
>>> line.split('|')[3].split('.')
['P46098', '1']
>>> line.split('|')[3].split('.')[0]
'P46098'
关于python - 在字符串中查找字符串并将其保存到 BioPython 上的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29557229/