Amir Zadeh 11 лет назад
Родитель
Сommit
11ef9f58c1

+ 29 - 24
blast_ui/includes/blast_ui.blastn.inc

@@ -34,12 +34,12 @@ $form['DB'] = array(
   '#collapsed' => FALSE,  
 );
   
-//$options =  _DB_options(); 
+$options = _DB_options();
 $form['DB']['SELECT_DB'] = array(
  '#type' => 'select',
  '#title' => t('KnowPulse Databases:'),
- '#options' => 'TEST',
- '#default_value' => NULL,
+ '#options' => $options,
+ '#default_value' => t('Select a database'),
 );
   
 // Upload a file as an alternative to enter a query sequence 
@@ -207,12 +207,14 @@ function blast_nucleotide_form_validate($form, &$form_state) {
       } else {
          $form_state['dbFlag'] = 'upQuery';
       }
+   } else {
+      $form_state['dbFlag'] = 'blastdb';
    }
-   
+      
 }
 
-function blast_nucleotide_form_submit($form, &$form_state) {
-   
+function blast_nucleotide_form_submit($form, &$form_state) {  
+  exec("export BLASTDB=<>"); 
   $eVal = $form_state['values']['eVal'];
   
   $trgtKey = $form_state['values']['maxTarget'];
@@ -289,24 +291,20 @@ function blast_nucleotide_form_submit($form, &$form_state) {
      }
   }
   
-  if ( isset($form_state['dbFlag']) ) {
-     if ( $form_state['dbFlag'] == 'upQuery') {
-        $subjectSeq = $form_state['upDB_path'];
-        $subSeqOut = drupal_basename($form_state['upDB_path']);
-        //shell_exec("blastn -query $query -subject $subjectSeq -out /tmp/$subSeqOut.blastn -evalue $eVal -word_size $wordSize -gapopen $gapOpen -gapextend $gapExtend -penalty $penalty -reward $reward -num_alignments $numAlign -outfmt 7 ");
-        shell_exec("blastn -query $query -subject $subjectSeq -out /home/amm072/kp-amir/sites/default/files/tripal/tripal_blast/$subSeqOut.blastn.html -evalue $eVal -word_size $wordSize -gapopen $gapOpen -gapextend $gapExtend -penalty $penalty -reward $reward -num_alignments 100 -html");
-     } else {
-        $db = $form['values']['SELECT_DB'];
-        //$output = shell_exec("blastn -query $query -db $db -out <> -evalue $eVal -word_size <> -gapopen <> -gapextend <> -penalty <> -reward <>");
-     }
+  if ( $form_state['dbFlag'] == 'upQuery') {
+     $subjectSeq = $form_state['upDB_path'];
+     $subSeqOut = drupal_basename($form_state['upDB_path']) . rand(0, 10000);
+     $blast_query_cmd = "blastn -query $query -subject $subjectSeq -out /tmp/$subSeqOut.blastn.html -evalue $eVal -word_size $wordSize -gapopen $gapOpen -gapextend $gapExtend -penalty $penalty -reward $reward -num_alignments 100 -html";
+     system($blast_query_cmd);
+  } elseif ($form_state['dbFlag'] == 'blastdb') {
+     $selected_db = $form_state['values']['SELECT_DB'];
+     $blastdb = $form['DB']['SELECT_DB']['#options'][$selected_db];
+     $subSeqOut = drupal_basename($form_state['upQuery_path']). rand(0, 10000);
+     $blast_db_cmd = "blastn -task blastn -query $query -db /$blastdb -out /tmp/$subSeqOut.blastn.html -evalue $eVal -word_size $wordSize -gapopen $gapOpen -gapextend $gapExtend -penalty $penalty -reward $reward -num_alignments 100 -html";
+     system($blast_cmd); 
   }
-
-
 }
 
-// 
-// output file name 
-
 function _validateFasta($sequence) {
 	$fastaIdRegEx = '/^>.*(\\n|\\r)/';
 	$fastaSeqRegEx = '/[^acgntuACGNTU\n\r]/';
@@ -320,8 +318,15 @@ function _validateFasta($sequence) {
 }
 
 function _DB_options() {
-  $type = 'BLASTDB';
-  $nodes  = node_load_multiple(array(), array('type' => $type));
-  return $nodes;
 
+   $type = 'blastdb';
+   $nodes  = node_load_multiple(array(), array('type'=> $type));
+
+   foreach ($nodes as $node) {
+      if ( isset($node) ) {
+         $options[$node->nid] = $node->db_name;
+      }     
+   }
+   
+   return $options;
 }

+ 10 - 2
blast_ui/includes/blast_ui.node.inc

@@ -63,8 +63,14 @@ function blastdb_form($node, &$form_state) {
     '#required' => TRUE,
     '#default_value' => isset($node->db_path) ? $node->db_path : '',
   );
+//  $form['#attributes']['enctype'] = 'multipart/form-data';
+//  $form['db_path'] = array(
+//  	'#prefix' => 'Upload the file you wish to convert to a Blast db file',
+//  	'#type' => 'file',
+//  	'#description' => t('Please give a text or a FASTA file, not a MS-Word or other document, you can upload up to 10 Mb.'),
+//  );
 
-  dpm($node, $name = NULL);
+  
 
   return $form;
 }
@@ -76,7 +82,9 @@ function blastdb_insert($node) {
     'name' => $node->db_name,
     'path' => $node->db_path,
   ))->execute();
-
+  
+//  exec("makeblastdb -in $node->db_path -dbtype nucl -out $node->db_name");
+  
 }
 
 function blastdb_update($node) {

+ 9 - 0
blast_ui/includes/newEmptyPHP.php

@@ -0,0 +1,9 @@
+<?php
+
+$query = "/tmp/AB000263_0.fna";
+$blastdb = "HSV6";
+$cmd = "blastn -task blastn -query $query -db /home/amir/$blastdb -out /tmp/php.blastn.html -html";
+system($cmd,$output);
+print_r($cmd);
+
+?>