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