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

标签 python string

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

相关文章:

c# - 如何在自己的方法中模仿string.Format()?

c - 如何在 C 中使用字符串?

python - 如何根据其他字段提取csv文件某一字段的值?

python - 根据列值使用 MultiIndex 对 pandas DataFrame 进行排序

python - 在包含整数和字符串混合的数据框中查找最小/最大值

string - 我应该在 Perl 中使用 $hash {"string"} 还是 $hash{string} ?

node.js - 在 Node 中,如何删除以某些特定字符结尾的子字符串

python - 更新信用卡或允许用户使用不同的卡进行平衡支付

python - 如何模拟 '__init__'方法调用的方法

python - Dijkstra + 堆(自行实现)