我正在尝试使用NCBIWWW通过biopython进行爆破 我在给定的示例文件中使用qblast函数 我定义了一些方法,当我的fasta包含足够长的序列时,一切都像魅力一样。它失败的唯一情况是当我需要来自Illumina测序的爆炸读数太短时。所以我想说这可能是因为在提交作品时没有自动重新定义爆破参数。
我尽我所能接近极短的条件(见here表C2)但没有成功。
看起来我无法输入正确的参数。
我认为我接近工作的情况越接近以下内容:
result_handle = NCBIWWW.qblast("blastn", "nr",
fastaSequence,
word_size=7,
gapcosts='5 2',
nucl_reward=1,
nucl_penalty='-3',
expect=1000)
感谢您提供任何有关其工作的提示/建议。
我的样本fasta读取如下:
>TEST 1-211670
AGACTGCGATCCGAACTGAGAAC
我得到的错误如下:
>ValueError: Error message from NCBI: Message ID#24 Error: Failed to read the Blast query: Protein FASTA provided for nucleotide sequence
当我看到this page时,似乎我的问题是关于修复阈值,但显然我到目前为止还没有成功。
感谢您的帮助。
答案 0 :(得分:0)
一旦我遇到爆破肽的问题,它似乎是一个适当的参数选择问题。我花了很长时间才发现它们实际上应该是什么(各种网站上的数据不一致和稀少,包括NCBI文档在这方面非常复杂)。我知道你对爆破核苷酸序列感兴趣,但据说你会找到你的解决方案,同时看看下面的代码。请特别注意para filter
,composition_based_statistics
,word_size
和matrix_name
。在我看来,它们似乎至关重要。
blast_handle = NCBIWWW.qblast("blastp", "nr",
peptide_seq,
expect=200000.0,
filter=False,
word_size=2,
composition_based_statistics=False,
matrix_name="PAM30",
gapcosts="9 1",
hitlist_size=1000)
答案 1 :(得分:0)
此代码适用于我(Biopython 1.64):
from Bio.Blast import NCBIWWW
fastaSequence = ">TEST 1-211670\nAGACTGCGATCCGAACTGAGAAC"
result_handle = NCBIWWW.qblast("blastn", "nr",
fastaSequence,
word_size=7,
gapcosts='5 2',
nucl_reward=1,
nucl_penalty='-3',
expect=1000)
print result_handle.getvalue()
也许你传递了一个错误的fastaSequence。 Biopython不会从SeqRecords(或任何东西)到普通FASTA进行任何转换。您必须提供如上所示的查询。
Blast确定序列是读取前几个字符的核苷酸还是蛋白质。如果他们在" ACGT"高于阈值,它是核苷酸,否则它是蛋白质。因此,您的序列处于" ACGT"的100%阈值,不可能被解释为蛋白质。