Параметры взрыва Biopython для коротких нуклеотидных последовательностей

Я пытаюсь запустить blastn через biopython с помощью NCBIWWW.
Я использую функцию qblast для заданного файла примера.
У меня определено несколько методов, и все работает как шарм, когда мой fasta содержит достаточно длинные последовательности. . Единственный случай, когда он терпит неудачу, это когда мне нужно взорвать чтения, поступающие от секвенирования Illumina, которые слишком короткие. Так что я бы сказал, что это, вероятно, связано с тем, что нет автоматического переопределения параметров взрывания при сдаче работы.

Я пробовал все, что мог, чтобы приблизиться к условиям короткого замыкания (см. таблицу C2 из здесь) без какого-либо успеха.

Похоже, я не могу ввести правильные параметры.

Чем ближе, я думаю, я подошел к рабочей ситуации со следующим:

result_handle = NCBIWWW.qblast("blastn", "nr",
                                fastaSequence,
                                word_size=7,
                                gapcosts='5 2',
                                nucl_reward=1,
                                nucl_penalty='-3',
                                expect=1000)

Спасибо за любой совет / совет, чтобы заставить его работать.

Мой пример быстрого чтения следующий:

>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

И когда я смотрю на эту страницу, она кажется, что моя проблема связана с исправлением порога, но, очевидно, мне пока не удалось заставить его работать.

Спасибо за любую помощь.


person eetuko    schedule 10.02.2014    source источник
comment
Почему бы вам не задать этот вопрос на bioinformatics.stackexchange?   -  person Sören    schedule 05.03.2019


Ответы (2)


Когда-то у меня были проблемы с бластинговыми пептидами, и оказалось, что дело в подборе правильных параметров. Мне потребовалось ужасно много времени, чтобы выяснить, какими они должны быть на самом деле (разноречивые и скудные данные на различных сайтах, включая довольно запутанную в этом отношении документацию NCBI). Я знаю, что вы заинтересованы в анализе последовательностей нуклеотидов, но предположительно вы найдете свое решение, взглянув на код ниже. Обратите особое внимание на такие параметры, как 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)
person mikhael    schedule 11.02.2014
comment
Спасибо за помощь. Насколько мне известно, матричный тип применяется только тогда, когда белки выровнены; для word_size у меня должен быть правильный (из документации), а composition_based_statistics и filter понятия не имею. Я пробовал оба, но никто, кажется, не помогает .. - person eetuko; 12.02.2014

Этот код работает для меня (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» выше порога, это нуклеотид, иначе это белок. Таким образом, ваша последовательность находится на 100% пороге «ACGT», что невозможно интерпретировать как белок.

person xbello    schedule 02.07.2014