Skip to main content
 首页 » 编程设计

python之在字符串中查找字符串并将其保存到 BioPython 上的文件中

2025年05月04日83jyk

我想裁剪此 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'