gpt4 book ai didi

python - 验证蛋白质序列

转载 作者:行者123 更新时间:2023-12-01 01:40:16 25 4
gpt4 key购买 nike

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

>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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com