bio python BLAST очень медленно / генерирует неверные RID - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь ВЗРЫВАТЬ несколько идентификаторов uniprot / swissprot в двух файлах следующим образом. В каждом файле сотни тысяч идентификаторов, поэтому делать это вручную нецелесообразно:

Файл 1: Q04864 P34932 P10147 P32302 P35609 Q01668 O60566 O00203 P15923 P20428 Q86UP2 O41964 P35222 ...

Файл 2: Q64507 P15924 O60880 Q14155 Q13137 P30626 P52732 O43294 P10275 O75592 O95810 O54724 P32780 ...

Моя цель заключалась в том, чтобы для каждого идентификатора белка в файле 1 выполнить BLASTp против всех идентификаторов белков в файле 2 и получить 5 лучших совпадений.

После целый день попыток заставить bio python работать должным образом, он все равно не работает. Вот что я пробовал:

raw_blastp_results = mybio.qblast(program='blastp', database='swissprot', sequence='P04637', expect=200000.0, filter=False, composition_based_statistics=False, hitlist_size=10, format_type='XML')

Я также пробовал напрямую обращаться к URL-адресу базового запроса NCBI, например:

https://blast.ncbi.nlm.nih.gov/Blast.cgi?QUERY=P04637&DATABASE=swissprot&PROGRAM=blastp&CMD=Put&FORMAT_TYPE=XML

Оба этих подхода правильно обрабатывают запрос и генерируют RID, но затем продолжают зависать бесконечно и никогда не отображать результаты (я ждал> 1 часа).

Однако, если Я пробую точный тот же запрос вручную на веб-сайте NCBI, он отображает результаты менее чем за минуту.

Что-то действительно интересное, что я заметил, это то, что если я выполняю ручной запрос, получаю RID и немедленно останавливаю его, а затем использую THAT RID в bio python, результаты отображаются почти мгновенно.

---> Почему-то я считаю, что bio python генерирует ложный / плохой RID, что приводит к очень медленной работе BLASTp. Поэтому у меня есть два вопроса:

  • Кто-нибудь знает, как заставить bio python работать и генерировать правильный ID?
  • Есть ли способ сгенерировать мой собственный RID? Или как-то заставить NCBI сгенерировать его для меня, как когда я делаю это вручную?

Спасибо :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...