使用 Python 从 FASTA 制作 Blast 数据库

发布于 2025-01-07 01:17:46 字数 444 浏览 0 评论 0原文

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

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

  1. 找到执行此工作的函数。

    <块引用>

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

  2. 在 python 中运行“makeblastdb”。

    <块引用>

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

How can I solve this? Thank you for your helping.

How can I do this? I use Biopython and saw manual already. Of course I can make blastdb from FASTA using "makeblastdb" in standalone NCBI BLAST+, but I want to whole process in one program.

It seems there are two possible solutions.

  1. Find a function which perform this job.

    I cannot find this. I've spent whole day.

  2. Run "makeblastdb" in python.

    I input os.system("C:\blast-2.2.25+\bin\makeblastdb.exe") in my python shell, but I couldn't give any parameters.

How can I solve this?
Thank you for your helping.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撧情箌佬 2025-01-14 01:17:46

这是经典的 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()

This is classic Blast, but I think the idea stays the same. Code is extracted from my application KimBlast. I think it is self-explaining:

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()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文