Python 验证蛋白质序列

Python 验证蛋白质序列,python,bioinformatics,biopython,Python,Bioinformatics,Biopython,在某些情况下,我有与蛋白质不对应的字符序列 >ISAnsp8_orf1 MRKSRFTEEQIAHALRQVDAGVPAAELCRKLGISEQTFYAWKKKYAGMGIAEMRRVKQLEDENRRLKTLVADLTLDKHMLQEVLRKKF >IS3_orf1 UGAAGAGCUGGCUAUCCUCCAAAAGGCCGCGACAUACUUCGCGAAGCGCC >IS3_orf2 ..............................(((((((((((....

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

>ISAnsp8_orf1
MRKSRFTEEQIAHALRQVDAGVPAAELCRKLGISEQTFYAWKKKYAGMGIAEMRRVKQLEDENRRLKTLVADLTLDKHMLQEVLRKKF
>IS3_orf1
UGAAGAGCUGGCUAUCCUCCAAAAGGCCGCGACAUACUUCGCGAAGCGCC
>IS3_orf2
..............................(((((((((((......[[[
>IS3_orf3
UGAAAUGAAGUAUGUCUUUAUUGAAAAACAUCAGGCUGAGUUCAGCAUCA
>IS3_orf4
[[[..)))))))))))..............]]]]]]
>IS3_orf5
AAGCAAUGUGCCGCGUGCUCCGGGUGGCCCGCA
>IS3_orf7
MTKTVSTSKKPRKQHSPEFRSEALKLAERIGVTAAARELSLYESQLYNWRSKQQNQQTSSERELEMSTEIARLKRQLAERDEELAILQKAATYFAKRLK
因为我想在保存到另一个文件之前验证序列,所以我写这篇文章是为了测试验证方法。这是罕见的,因为我习惯了不同的序列,其中包括非蛋白质字符'('但它仍然给我的答案是正确的

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


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

无论如何,为了解决您目前的问题,Biopython中有一个
\u verify\u alphabet
函数,尽管它是“私有”的,但我认为没有理由不使用它:

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中):

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))
TGEKPYVCQECGKAFNCSSYLSKHQR True
((((((((((( False