python - 验证蛋白质序列

标签 python bioinformatics biopython

在某些情况下,我的序列中的字符与蛋白质不对应。

>ISAnsp8_orf1
MRKSRFTEEQIAHALRQVDAGVPAAELCRKLGISEQTFYAWKKKYAGMGIAEMRRVKQLEDENRRLKTLVADLTLDKHMLQEVLRKKF
>IS3_orf1
UGAAGAGCUGGCUAUCCUCCAAAAGGCCGCGACAUACUUCGCGAAGCGCC
>IS3_orf2
..............................(((((((((((......[[[
>IS3_orf3
UGAAAUGAAGUAUGUCUUUAUUGAAAAACAUCAGGCUGAGUUCAGCAUCA
>IS3_orf4
[[[..)))))))))))..............]]]]]]
>IS3_orf5
AAGCAAUGUGCCGCGUGCUCCGGGUGGCCCGCA
>IS3_orf7
MTKTVSTSKKPRKQHSPEFRSEALKLAERIGVTAAARELSLYESQLYNWRSKQQNQQTSSERELEMSTEIARLKRQLAERDEELAILQKAATYFAKRLK

因为我想在保存到另一个文件之前验证序列,所以我编写了这个来测试验证方法。这种情况很少见,因为我习惯了不同的序列,其中一个序列包括非蛋白质字符“(”,但它仍然给我答案为 True。

测试“排序”的所有三种可能性,答案是相同的(错误)

import sys
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC, ProteinAlphabet

sequence = sys.argv[1]
#sequence = '((((((((((('
#sequence = 'TGEKPYVCQECGKAFNCSSYLSKHQR'

my_prot = Seq(sequence, alphabet=IUPAC.IUPACProtein)

print isinstance(my_prot.alphabet, ProteinAlphabet)     

if isinstance(my_prot.alphabet, ProteinAlphabet) == True:
  print 'ok' , isinstance(my_prot.alphabet, ProteinAlphabet)
else:
  print 'no'

最佳答案

Biopython 目前在启动 Seq 或类似对象时不提供字母验证(主要原因是性能成本较高)。围绕这一点有很多讨论, future 情况可能会发生变化;事实上,第一个 Biopython 增强提案 (BEP) 是关于 Biopython 中字母表的使用。

无论如何,为了暂时解决您的问题,Biopython 中隐藏了一个 _verify_alphabet 函数,尽管它是“私有(private)”的,但我认为没有理由不使用它:

from Bio.Seq import Seq
from Bio.Alphabet import IUPAC, _verify_alphabet

sequences = ['TGEKPYVCQECGKAFNCSSYLSKHQR', '(((((((((((']

for sequence in sequences:
    my_prot = Seq(sequence, IUPAC.protein)
    print(my_prot, _verify_alphabet(my_prot))

输出(在带有 Bio 版本 1.73dev 的 Python 3.6 中):

TGEKPYVCQECGKAFNCSSYLSKHQR True
((((((((((( False

关于python - 验证蛋白质序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51962651/

相关文章:

python - Django Rest框架绕过嵌套关系中的实体

python - 如何在 Django 表单的模板中设置表单字段值?

python - 如何在使用 del __builtins__.__dict__ ["__import__"删除后恢复 __import__ ]

arrays - SGE 数组作业和 R

macos - numpy 未安装在 macOS 上

xml - 如何使用 entrez.efetch 获取特定的蛋白质序列?

python - django 模型 - 我如何创建抽象方法

python - 绘制序列及其反向互补图

java - 计算 .maf 文件中发生突变的次数

python - BCBio 的 GFF 解析器解析不正确