Browse Source

Bug fixes and template corrections

spficklin 14 years ago
parent
commit
696b7fd541

+ 20 - 3
theme_tripal/tripal_feature/tripal_feature_interpro_results.tpl.php

@@ -1,8 +1,9 @@
 <?php
-$results = $variables['tripal_analysis_interpro']['results'];
+$results = $variables['tripal_analysis_interpro']['results']['xml'];
+$resultsHTML = $variables['tripal_analysis_interpro']['results']['html'];
 $feature  = $variables['node']->feature;
-//dpm($results);
-if($feature->cvname != 'gene' and count($results) > 0){ 
+
+if(count($results) > 0){ 
    $i = 0;
    foreach($results as $analysis_id => $analysisprops){ 
      $analysis = $analysisprops['analysis'];
@@ -100,5 +101,21 @@ if($feature->cvname != 'gene' and count($results) > 0){
      </div> <?php
    } // end for each analysis 
 } // end if
+if($resultsHTML){  ?>
+   <div id="tripal_feature-interpro_results_<?php print $i?>-box" class="tripal_analysis_interpro-box tripal-info-box">
+     <div class="tripal_feature-info-box-title tripal-info-box-title">InterPro Report <?php print preg_replace("/^(\d+-\d+-\d+) .*/","$1",$analysis->timeexecuted); ?></div>
+     <div class="tripal_feature-info-box-desc tripal-info-box-desc"><?php 
+         if($analysis->nid){ ?>
+            Analysis name: <a href="<?php print url('node/'.$analysis->nid) ?>"><?php print $analysis->name?></a><?php
+         } else { ?>
+            Analysis name: <?php print $analysis->name;
+         } ?><br>
+         Date Performed: <?php print preg_replace("/^(\d+-\d+-\d+) .*/","$1",$analysis->timeexecuted); ?>
+     </div>
+
+   <div class="tripal_feature-interpro_results_subtitle">Summary of Annotated IPR terms</div> <?php 
+   print $resultsHTML;?>
+   </div> <?php
+}
 ?>
 

+ 1 - 1
theme_tripal/tripal_organism/tripal_organism_image.tpl.php

@@ -4,5 +4,5 @@ $organism = $variables['node']->organism;
 <div id="tripal_organism-image-box" class="tripal_organism-info-box tripal-info-box">
   <div class="tripal_analysis_interpro-info-box-title tripal-info-box-title"><?php $organism->genus." ".$organism->species?> Image</div>
   <div class="tripal_analysis_interpro-info-box-desc tripal-info-box-desc"></div>
-  <img src=<?php print file_create_url(file_directory_path() . "/tripal/tripal_organism/images/".$organism->genus."_".$organism->species.".jpg")?>>
+  <img src="<?php print file_create_url(file_directory_path() . '/tripal/tripal_organism/images/'.$organism->genus.'_'.$organism->species.'.jpg')?>">
 </div>

+ 1 - 0
tripal_analysis_interpro/tripal_analysis_interpro.install

@@ -50,6 +50,7 @@ function tripal_analysis_interpro_add_cvterms(){
    tripal_add_cvterms('analysis_interpro_interproparameters','The parameters used when executing an InterProScan job');
    tripal_add_cvterms('analysis_interpro_interprofile','Used to hold the name of the XML file containing the InterProScan results');
    tripal_add_cvterms('analysis_interpro_parsego','Indicates whether or not the GO terms should be extracted when parsing the InterProScan XML file');
+   tripal_add_cvterms('analysis_interpro_parseHTML','Indicates that the input file is in HTML format. This functionality is deprecated and may not work, but is provided for backwards compatability.');
    tripal_add_cvterms('analysis_interpro_query_re','The regular expression for finding the feature name in the query definition line of the InterPro results');
    tripal_add_cvterms('analysis_interpro_query_type','The feature type (e.g. mRNA, polypeptide) of the query input file. This type is used to identify the query feature when multiple features have the same name');
    tripal_add_cvterms('analysis_interpro_query_uniquename','Indicates if the matched name in the query definition line of the blast results is feature uniquename');

+ 27 - 7
tripal_analysis_interpro/tripal_analysis_interpro.module

@@ -69,6 +69,7 @@ function chado_analysis_interpro_form ($node){
    $interprofile = $analysis->tripal_analysis_interpro->interprofile;
    $interproparameters = $analysis->tripal_analysis_interpro->interproparameters;
    $parsego = $analysis->tripal_analysis_interpro->parsego;
+   $parseHTML = $analysis->tripal_analysis_interpro->parseHTML;
    $query_re = $analysis->tripal_analysis_interpro->query_re;
    $query_type = $analysis->tripal_analysis_interpro->query_type;
    $query_uniquename = $analysis->tripal_analysis_interpro->query_uniquename;
@@ -101,6 +102,12 @@ function chado_analysis_interpro_form ($node){
         'onclick' => 'return isSubmittingJob(this)'
       )
 	);
+	$form['interpro']['parseHTML'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('The input file is in HTML format (deprecated, only provided for backwards compatibility)'),
+      '#description' => t('Check the box to use the HTML parser. The feature name must be unique across all organisms and types.'),
+      '#default_value' => $parseHTML
+   );
 	$form['interpro']['parsego'] = array(
       '#type' => 'checkbox',
       '#title' => t('Load GO terms to the database'),
@@ -161,6 +168,7 @@ function chado_analysis_interpro_load($node){
    $interprofile      = tripal_analysis_get_property($analysis->analysis_id,'analysis_interpro_interprofile');
    $interproparameters= tripal_analysis_get_property($analysis->analysis_id,'analysis_interpro_interproparameters');
    $parsego           = tripal_analysis_get_property($analysis->analysis_id,'analysis_interpro_parsego');		
+   $parseHTML         = tripal_analysis_get_property($analysis->analysis_id,'analysis_interpro_parseHTML');		
    $query_re          = tripal_analysis_get_property($analysis->analysis_id,'analysis_interpro_query_re');	
    $query_type        = tripal_analysis_get_property($analysis->analysis_id,'analysis_interpro_query_type');	
    $query_uniquename  = tripal_analysis_get_property($analysis->analysis_id,'analysis_interpro_query_uniquename');	
@@ -168,6 +176,7 @@ function chado_analysis_interpro_load($node){
    $analysis->tripal_analysis_interpro->interprofile      = $interprofile->value;
    $analysis->tripal_analysis_interpro->interproparameters= $interproparameters->value;
    $analysis->tripal_analysis_interpro->parsego           = $parsego->value;
+   $analysis->tripal_analysis_interpro->parseHTML         = $parseHTML->value;
    $analysis->tripal_analysis_interpro->query_re          = $query_re->value;
    $analysis->tripal_analysis_interpro->query_type        = $query_type->value;
    $analysis->tripal_analysis_interpro->query_uniquename  = $query_uniquename->value;
@@ -195,6 +204,7 @@ function chado_analysis_interpro_insert($node){
    tripal_analysis_insert_property($node->analysis_id,'analysis_interpro_interprofile',$node->interprofile);
    tripal_analysis_insert_property($node->analysis_id,'analysis_interpro_interproparameters',$node->interproparameters);
    tripal_analysis_insert_property($node->analysis_id,'analysis_interpro_parsego',$node->parsego);		
+   tripal_analysis_insert_property($node->analysis_id,'analysis_interpro_parseHTML',$node->parseHTML);		
    tripal_analysis_insert_property($node->analysis_id,'analysis_interpro_query_re',$node->query_re);	
    tripal_analysis_insert_property($node->analysis_id,'analysis_interpro_query_type',$node->query_type);	
    tripal_analysis_insert_property($node->analysis_id,'analysis_interpro_query_uniquename',$node->query_uniquename);	
@@ -217,6 +227,7 @@ function chado_analysis_interpro_update($node){
    tripal_analysis_update_property($node->analysis_id,'analysis_interpro_interprofile',$node->interprofile,1);
    tripal_analysis_update_property($node->analysis_id,'analysis_interpro_interproparameters',$node->interproparameters,1);
    tripal_analysis_update_property($node->analysis_id,'analysis_interpro_parsego',$node->parsego,1);		
+   tripal_analysis_update_property($node->analysis_id,'analysis_interpro_parseHTML',$node->parseHTML,1);		
    tripal_analysis_update_property($node->analysis_id,'analysis_interpro_query_re',$node->query_re,1);	
    tripal_analysis_update_property($node->analysis_id,'analysis_interpro_query_type',$node->query_type,1);	
    tripal_analysis_update_property($node->analysis_id,'analysis_interpro_query_uniquename',$node->query_uniquename,1);	
@@ -252,14 +263,20 @@ function chado_analysis_interpro_submit_job($node){
 		} else {
          $job_args[2] = 0;
       }
-		$job_args[3] = $node->query_re;
-		$job_args[4] = $node->query_type;
-		$job_args[5] = $node->query_uniquename;
+
 
 		if (is_readable($node->interprofile)) {
 			$fname = preg_replace("/.*\/(.*)/", "$1", $node->interprofile);
-			tripal_add_job("Parse interpro: $fname",'tripal_analysis_interpro',
-                        'tripal_analysis_interpro_parseXMLFile', $job_args, $user->uid);
+         if($node->parseHTML){
+			   tripal_add_job("Parse HTML interpro: $fname",'tripal_analysis_interpro',
+                           'tripal_analysis_interpro_parseHTMLFile', $job_args, $user->uid);
+         } else {
+		      $job_args[3] = $node->query_re;
+		      $job_args[4] = $node->query_type;
+		      $job_args[5] = $node->query_uniquename;;
+			   tripal_add_job("Parse XML interpro: $fname",'tripal_analysis_interpro',
+                           'tripal_analysis_interpro_parseXMLFile', $job_args, $user->uid);
+         }
 		} else {
 			drupal_set_message("Can not open interpro output file. Job not scheduled.");
 		}
@@ -358,7 +375,11 @@ function tripal_analysis_interpro_theme () {
 
 function tripal_analysis_interpro_preprocess_tripal_feature_interpro_results(&$variables){
    $feature = $variables['node']->feature;
-	$variables['tripal_analysis_interpro']['results'] = tripal_get_interpro_XML_results($feature->feature_id);
+
+   // we don't know how many analysis are the old style HTML version and how many are the newer
+   // XML format.  So, to be backwards compatible we should get both.
+   $variables['tripal_analysis_interpro']['results']['html'] = tripal_get_interpro_HTML_results($feature->feature_id);
+	$variables['tripal_analysis_interpro']['results']['xml'] = tripal_get_interpro_XML_results($feature->feature_id);
 }
 
 /*******************************************************************************
@@ -405,7 +426,6 @@ function tripal_get_interpro_XML_results($feature_id){
          array('analysis_id' => $analysisfeature->analysis_id));
       $analysis_id = $analysis->analysis_id;
 
-
       // parse the XML and add it to the array of blast results to be returned
       $interpro_xml = $afeatureprop->value;
       $orf = tripal_analysis_interpro_get_result_object($interpro_xml,$feature_id);

+ 9 - 4
tripal_analysis_kegg/tripal_analysis_kegg.module

@@ -365,12 +365,15 @@ function tripal_analysis_kegg_parseHierFile ($analysis_id, $hierfile, $base_path
  
    // If user input a file (e.g. hier.tar.gz), decompress it first
    if (is_file($hierfile)) {
-      $data_dir = file_directory_path() . "/tripal/tripal_analysis_kegg";
+      // generate a unique directory name for extracting and parsing the file
+      $data_dir = sys_get_temp_dir() . "/" . uniqid();
+      mkdir($data_dir);
       $stderr = shell_exec("cd $data_dir; tar -zxf $hierfile;");
       print "$stderr\n";
-      $hierdir = $data_dir."/hier";
+      $hierdir = $data_dir . "/hier";
+   } 
    // Otherwise, treat it as a directory
-   } else {
+   else {
       $hierdir = $hierfile;
    }
    $dir_handle = @opendir($hierdir) or die("Unable to open $hierdir");
@@ -451,11 +454,12 @@ function tripal_analysis_kegg_parseHierFile ($analysis_id, $hierfile, $base_path
       }
    }
    print "Done.\n";
+   tripal_job_set_progress($job_id,100);
    closedir($dir_handle);
 
    // If user input a file, remove decompressed files after parsing
    if (is_file($hierfile)) {
-      $stderr = shell_exec("rm -r $hierdir;");
+      $stderr = shell_exec("rm -r $data_dir;");
       print "$stderr\n";
    }
    return;
@@ -672,6 +676,7 @@ function tripal_analysis_kegg_check_line_handle_feature($query_re,
            'name' => $query_type,
          );
       }
+
       $feature_arr = tripal_core_chado_select('feature',array('feature_id'),$select);
 
       if(count($feature_arr) > 1){

+ 1 - 1
tripal_cv/obo_loader.php

@@ -49,7 +49,7 @@ function tripal_cv_load_obo_v1_2_url($obo_name,$url,$jobid = NULL,$is_new = 1){
    $newcvs = array();
 
    // first download the OBO
-   $temp = tempnam(tripal_get_moddir('tripal_cv'),'obo_');
+   $temp = tempnam(sys_get_temp_dir(),'obo_');
    print "Opening URL $url\n";
    $url_fh = fopen($url,"r");
    $obo_fh = fopen($temp,"w");