Execute an external BLAST program in PHP

柔情痞子 提交于 2019-12-06 08:01:10

The break lines are the problem, try

<?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 \
'); 

EDIT

I show the process since I cann't do tracking

1- Input data

cat seq.fa #NUCLEOTIDES

>seq_1
GGCAGCCTAACACATGCAAGTCGAACGGTAACAGGAAGCAGCTTGCTGCTTTGCT
GACGAGTGGCGGACGGGTGAGTAATGTCTGGGAAACTGCCTGATGGAGGGGGAT
AACTACTGGAAACGGTAGCTAATACCGCATAATGTCGCAAGACCAAAGAGGGGGA

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- Format database

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

3- bash script

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 script

cat blast.php

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

5- Run it,

php blast.php

you get,

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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!