Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中执行外部BLAST程序_Php_Exec_Bioinformatics_Centos7_Blast - Fatal编程技术网

在PHP中执行外部BLAST程序

在PHP中执行外部BLAST程序,php,exec,bioinformatics,centos7,blast,Php,Exec,Bioinformatics,Centos7,Blast,我想用PHP而不是Linux控制台文本终端执行blastx搜索应用程序 实际的命令行参数是(): 这是我的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 '); 然而,当我在PHP程序中调用exec()函数时,什么也没发生 我还尝试了另一种方法。它返回错误代码1。以下是

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

实际的命令行参数是():

这是我的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
'); 
然而,当我在PHP程序中调用
exec()
函数时,什么也没发生

我还尝试了另一种方法。它返回错误代码1。以下是我的php
exec()
内容:

exec('sh /path/to/myscript.sh', $output, $return_var);
我错过了哪些重要步骤? 是否有其他方法来执行外部程序


如果您有任何建议,我们将不胜感激。

断线是问题所在,请尝试

<?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 \
'); 
3-bash脚本

cat myscript.sh

4-php脚本

cat 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 排列 ( [0]=>序号KDG85104.1100.00 38 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] =>序号CSD41531.170.59 51 150 162 10 38 88 1e-22 72.0 ) 0
对不起,它坏了。情况也是如此。没有创建任何
nohup.out
文件。为了清楚起见,我尝试运行以下命令:
exec('string$command',$output,$return\u var)
参数
return\u var
始终返回127,
output
为空。非常感谢您的帮助。它现在工作得很好。我想这是被拒绝的。我使用
visudo
编辑sudoers文件,
apacheall=(ALL)NOPASSWD:ALL
@Yi TingLiu是另一个问题,我不是unix权限方面的专家 >seq_1 GGCAGCCTAACACATGCAAGTCGAACGGTAACAGGAAGCAGCTTGCTGCTTTGCT GACGAGTGGCGGACGGGTGAGTAATGTCTGGGAAACTGCCTGATGGAGGGGGAT AACTACTGGAAACGGTAGCTAATACCGCATAATGTCGCAAGACCAAAGAGGGGGA >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
makeblastdb -in database.fa -dbtype prot -out database
path_to_blast/blastx -query path_to_query/seq.fa -db path_to_db/database -evalue 0.0001 -outfmt 6
<?php
exec('sh myscript.sh', $output, $return_var);
print_r($output);
echo "$return_var\n";
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