在PHP中执行外部BLAST程序 [英] Execute an external BLAST program in PHP

查看:170
本文介绍了在PHP中执行外部BLAST程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用PHP而不是Linux控制台文本终端执行blastx搜索应用程序.

I want to execute a blastx search application in PHP instead of Linux console text terminal.

实际的命令行参数将是(请参见Referer的定义 ):

The actual command line arguments would be (see definition of refer):

./blastx -query $input -db ${Sbjct}_db -evalue 0.0001 -outfmt 6 -out /path/to/output.tsv

这是我的PHP部分代码.

Here's my PHP partial code.

exec('
/path/to/blastx 
-query /path/to/PAO1.fasta 
-db /path/to/VFDB_setB_pro
-evalue 0.0001
-outfmt 6
-out /path/to/output.tsv
'); 

但是,当我在PHP程序中调用exec()函数时,没有任何反应.

However, when I call exec() function in PHP program there is nothing happened.

我也尝试了另一种方法.它返回错误代码1.这是我的php exec()内容:

I also tried another method. It return error code 1. Here is my php exec() content:

exec('sh /path/to/myscript.sh', $output, $return_var);

我错过了哪些重要步骤? 是否有其他方法可以执行外部程序?

What vital steps I missed out? Is there any alternative method to execute external programs?

任何建议将不胜感激.

推荐答案

中断线是问题,请尝试

<?php

exec('\
/path/to/blastx \
-query /path/to/PAO1.fasta \
-db /path/to/VFDB_setB_pro \
-evalue 0.0001 \
outfmt 6 \
-out /path/to/output.tsv \
'); 

编辑

我显示了过程,因为我无法进行跟踪

I show the process since I cann't do tracking

1-输入数据

cat seq.fa #NUCLEOTIDES

cat seq.fa #NUCLEOTIDES


>seq_1
GGCAGCCTAACACATGCAAGTCGAACGGTAACAGGAAGCAGCTTGCTGCTTTGCT
GACGAGTGGCGGACGGGTGAGTAATGTCTGGGAAACTGCCTGATGGAGGGGGAT
AACTACTGGAAACGGTAGCTAATACCGCATAATGTCGCAAGACCAAAGAGGGGGA

cat database.fa#蛋白质

cat database.fa #PROTEINS


>KDG85104.1 hypothetical protein AE17_03267, partial [Escherichia coli UCI 58]
PVVIPLHQAVSQTLLTRPPLVSKAASCFLLPFDLHVLGLPPAFNLSHDQTLQFKSLMLKELNFVMNYVFTLETWYSFFVL
RR
>EUM99718.1 hypothetical protein L347_09473, partial [Enterobacter sp. MGH 1]
VVIPLHQAVSQTLLTRPPLVSEAASCFLLPFDLHVLGLPPAFNLSHDQTLQFKSLMLNELNFVMNYVFTR
>CSD41531.1 Uncharacterised protein [Vibrio cholerae]
MADHPLRPARDRRLGEPLPHQLANPTWAYPVAQGPKVPCFALARLCGISHRFQWLSPSTGQFPRHYSPVRRSPPKEQVPL
CCRSTCMC

2-格式化数据库

makeblastdb -in database.fa -dbtype prot -out database

3- bash脚本

cat myscript.sh

cat myscript.sh

path_to_blast/blastx -query path_to_query/seq.fa -db path_to_db/database -evalue 0.0001 -outfmt 6

4- php脚本

cat blast.php

cat blast.php

<?php
exec('sh myscript.sh', $output, $return_var);
print_r($output);
echo "$return_var\n";

5-运行它,

php blast.php

你得到


Array
(
    [0] => seq_1    KDG85104.1  100.00  38  0   0   118 5   1   38  1e-24   77.0
    [1] => seq_1    EUM99718.1  97.30   37  1   0   115 5   1   37  2e-23   73.6
    [2] => seq_1    CSD41531.1  70.59   51  15  0   162 10  38  88  1e-22   72.0
)
0

这篇关于在PHP中执行外部BLAST程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆