Создание базы данных Blast из FASTA на Python - PullRequest
3 голосов
/ 18 февраля 2012

Как я могу это сделать? Я использую Biopython и уже видел руководство. Конечно, я могу сделать blastdb из FASTA, используя "makeblastdb" в автономном NCBI BLAST +, но я хочу, чтобы весь процесс был в одной программе.

Кажется, есть два возможных решения.

  1. Найдите функцию, которая выполняет эту работу.

    Я не могу найти это. Я провел целый день.

  2. Запустите "makeblastdb" на python.

    Я ввожу os.system ("C: \ blast-2.2.25 + \ bin \ makeblastdb.exe") в свою оболочку python, но не могу дать никаких параметров.

Как я могу решить это? Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 18 февраля 2012

Это классический Blast, но я думаю, что идея остается прежней.Код извлечен из моего приложения КимБласт .Я думаю, что это само за себя:

def on_execute_setup(self, evt):
    """on pressing execute button"""
    FORMAT_EXE = os.path.join(self.blastpath, 'bin', 'formatdb')
    fasta = os.path.join(self.dbpath, self.fasta)
    format_filename = self.format_file.rsplit('.', 1)[0] 
    format_filepath = os.path.join(self.dbpath, format_filename)
    format_type = 'T' if self.format_type == 'protein' else 'F' 

    format_cmd = '%s -i %s -p %s -n %s' % (FORMAT_EXE, fasta, 
                                           format_type, format_filepath)
    process = subprocess.Popen(format_cmd,
                                stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE,
                                shell=False)

    (out, err) = process.communicate()
...