exec — выполнить внешнюю программу BLAST в Stack Overflow

Я хочу выполнить поисковое приложение blastx на PHP вместо текстового терминала Linux.

Фактические аргументы командной строки будут (см определение определения):

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

Вот мой частичный код 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
');

Тем не менее, когда я звоню exec() В программе PHP ничего не произошло.

Я также попробовал другой метод. Возвращает код ошибки 1. Вот мой php exec() содержание:

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

Какие жизненно важные шаги я пропустил?
Есть ли альтернативный метод для выполнения внешних программ?

Мы ценим любые предложения.

2

Решение

Проблемы с разрывными линиями, попробуйте

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

РЕДАКТИРОВАТЬ

Я показываю процесс, так как я не могу сделать отслеживание

1- Входные данные

cat seq.fa # НУКЛЕОТИДЫ

> seq_1
GGCAGCCTAACACATGCAAGTCGAACGGTAACAGGAAGCAGCTTGCTGCTTTGCT
GACGAGTGGCGGACGGGTGAGTAATGTCTGGGAAACTGCCTGATGGAGGGGGAT
AACTACTGGAAACGGTAGCTAATACCGCATAATGTCGCAAGACCAAAGAGGGGGA

cat database.fa #PROTEINS

> KDG85104.1 гипотетический белок AE17_03267, частичный [Escherichia coli UCI 58]
PVVIPLHQAVSQTLLTRPPLVSKAASCFLLPFDLHVLGLPPAFNLSHDQTLQFKSLMLKELNFVMNYVFTLETWYSFFVL
RR
> EUM99718.1 гипотетический белок L347_09473, частичный [Enterobacter sp. MGH 1]
VVIPLHQAVSQTLLTRPPLVSEAASCFLLPFDLHVLGLPPAFNLSHDQTLQFKSLMLNELNFVMNYVFTR
> CSD41531.1 Нехарактеризованный белок [Vibrio cholerae]
MADHPLRPARDRRLGEPLPHQLANPTWAYPVAQGPKVPCFALARLCGISHRFQWLSPSTGQFPRHYSPVRRSPPKEQVPL
CCRSTCMC

2- Формат базы данных

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

3-bash скрипт

кот myscript.sh

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

4-PHP скрипт

кошка blast.php

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

5- Запустите это,

php blast.php

ты получаешь,

массив
(
[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
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]