3

我怎样才能做到这一点?我使用 Biopython 并且已经看过手册。当然,我可以在独立的 NCBI BLAST+ 中使用“makeblastdb”从 FASTA 制作blastdb,但我想在一个程序中完成整个过程。

似乎有两种可能的解决方案。

  1. 找到执行这项工作的功能。

    我找不到这个。我已经度过了一整天。

  2. 在 python 中运行“makeblastdb”。

    我在我的 python shell 中输入 os.system("C:\blast-2.2.25+\bin\makeblastdb.exe") ,但我无法提供任何参数。

我该如何解决这个问题?谢谢你的帮助。

4

1 回答 1

2

这是经典的 Blast,但我认为这个想法保持不变。代码是从我的应用程序KimBlast中提取的。我认为这是不言自明的:

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()
于 2012-02-18T18:10:07.430 回答