ubuntu(18.04) 安装 blast 并在php中调用

1、下载

复制代码
https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/

2、解压,配置环境变量

复制代码
tar zvxf ncbi-blast-2.14.1+-x64-linux.tar.gz

解压后改名为 blast

配置环境变量,可以不配置 使用的时候直接绝对路径使用(本次使用绝对路径)

复制代码
vim ~/.bashrc  

将下面添加道最后, dir 是解压文件所在的绝对路径,

export BLAST_HOME=/dir/blast
export PATH=$PATH:/dir/blast/bin

使配置生效

source ~/.bashrc

测试安装结果

blastn -version 

如果显示版本信息则说明可正常使用

3、创建数据库

在/dir/blast 下创建文件夹 db/mydb 用来存放不同的数据库

构建数据库:initdb.fasta 是用来构建数据库的源文件

复制代码
#绝对路径调用,直接使用makeblastdb命令调用可能出现找不到命令的问题,可能是环境变量没有配置好

/dir/blast/bin/makeblastdb -in /dir/blast/db/mydb/initdb.fasta -dbtype prot

结果:

4、测试搜索 test.fasta 是测试序列文件

复制代码
#采用绝对路径调用

#结果输出到终端

/dir/blast/bin/blastp -query /dir/blast/output/test.fasta -db /dir/blast/db/mydb/initdb.fasta -outfmt 6

#结果输出到文件

/dir/blast/bin/blastp -query /dir/blast/output/test.fasta -db /dir/blast/db/mydb/initdb.fasta -outfmt 6 -out /dir/blast/output/test

结果:

5.在php中调用

复制代码
//通过blast获取targetID,然后通过targetID获取详细信息
$input_sequence = $data_json['sequence'];  // 从用户前端输入的序列
$file_name = uniqid() . ".fasta";
// 创建临时文件
$tempFile = tempnam("/tmp", $file_name);
//将用户输入的文件写入到临时文件,blast的输入条件只找到了文件输入,不知道可不可以其他形式输入
file_put_contents($tempFile, $input_sequence);
// 执行 BLAST 查询
$output = shell_exec("/dir/blast/bin/blastp -query " . $tempFile . " -db /dir/blast/db/mydb/initdb.fasta -outfmt 6");

echo $output;
相关推荐
两点王爷1 小时前
PostgreSQL 常用 SQL 语句与 GIS 相关函数详解
数据库·后端
两点王爷2 小时前
PostgreSQL 好用又独特的特性与空间函数
数据库
充电zcx2 小时前
Linux:4:开发工具详解
linux·运维·服务器
梦帮科技2 小时前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
TDengine (老段)3 小时前
TDengine 常见问题 TOP3
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
码农客栈6 小时前
linux 交叉编译tslib
linux
螺蛳粉 螺蛳粉6 小时前
MySQL 分布式集群系列 · 第五篇——全方位对比:NDB、MGR、主从复制、分库分表怎么选?
数据库·分布式·mysql
鱼月半6 小时前
两台电脑直连网络不通怎么办?
linux·网络协议
光电笑映7 小时前
网络通信基础:从协议分层到 Socket 编程预备
linux·运维·服务器·网络
酸菜。7 小时前
dw_apb_gpio总结
linux