在Python中使用FASTA创建Blast数据库

时间:2012-02-18 15:38:23

标签: python biopython fasta blast

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

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

  1. 找一个执行此工作的功能。

      

    我找不到这个。我花了一整天。

  2.   
  3. 在python中运行“makeblastdb”。

         
        

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

    < / LI>          我怎么解决这个问题?     谢谢你的帮助。

1 个答案:

答案 0 :(得分: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()