|  | @@ -6,6 +6,14 @@
 | 
	
		
			
				|  |  |   * Variables Available in this template:
 | 
	
		
			
				|  |  |   *   $xml_filename: The full path & filename of XML file containing the BLAST results
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | + // Set ourselves up to do link-out if our blast database is configured to do so.
 | 
	
		
			
				|  |  | + $linkout = FALSE;
 | 
	
		
			
				|  |  | +if ($blastdb->linkout->none === FALSE) {
 | 
	
		
			
				|  |  | +  $linkout = TRUE;
 | 
	
		
			
				|  |  | +  $linkout_regex = $blastdb->linkout->regex;
 | 
	
		
			
				|  |  | +  $linkout_urlprefix = $blastdb->linkout->db_id->urlprefix;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  ?>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <!-- JQuery controlling display of the alignment information (hidden by default) -->
 | 
	
	
		
			
				|  | @@ -66,69 +74,88 @@ if ($xml) {
 | 
	
		
			
				|  |  |      $children_count = $iteration->{'Iteration_hits'}->children()->count();
 | 
	
		
			
				|  |  |      if($children_count != 0) {
 | 
	
		
			
				|  |  |        foreach($iteration->{'Iteration_hits'}->children() as $hit) {
 | 
	
		
			
				|  |  | -	if (is_object($hit)) {
 | 
	
		
			
				|  |  | -	  $count +=1;
 | 
	
		
			
				|  |  | -   	  $zebra_class = ($count % 2 == 0) ? 'even' : 'odd';
 | 
	
		
			
				|  |  | +        if (is_object($hit)) {
 | 
	
		
			
				|  |  | +          $count +=1;
 | 
	
		
			
				|  |  | +          $zebra_class = ($count % 2 == 0) ? 'even' : 'odd';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          // SUMMARY ROW
 | 
	
		
			
				|  |  | +          // If the id is of the form gnl|BL_ORD_ID|### then the parseids flag
 | 
	
		
			
				|  |  | +          // to makeblastdb did a really poor job. In thhis case we want to use
 | 
	
		
			
				|  |  | +          // the def to provide the original FASTA header.
 | 
	
		
			
				|  |  | +          $hit_name = (preg_match('/BL_ORD_ID/', $hit->{'Hit_id'})) ? $hit->{'Hit_def'} : $hit->{'Hit_id'};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	  // SUMMARY ROW
 | 
	
		
			
				|  |  | -	  // If the id is of the form gnl|BL_ORD_ID|### then the parseids flag
 | 
	
		
			
				|  |  | -	  // to makeblastdb did a really poor job. In thhis case we want to use
 | 
	
		
			
				|  |  | -	  // the def to provide the original FASTA header.
 | 
	
		
			
				|  |  | -	  $hit_name = (preg_match('/BL_ORD_ID/', $hit->{'Hit_id'})) ? $hit->{'Hit_def'} : $hit->{'Hit_id'};
 | 
	
		
			
				|  |  | +          // If our BLAST DB is configured to handle link-outs then use the
 | 
	
		
			
				|  |  | +          // regex & URL prefix provided to create one.
 | 
	
		
			
				|  |  | +          if ($linkout) {
 | 
	
		
			
				|  |  | +            if (preg_match($linkout_regex, $hit_name, $linkout_match)) {
 | 
	
		
			
				|  |  | +              $hit_name = l(
 | 
	
		
			
				|  |  | +                $linkout_match[1],
 | 
	
		
			
				|  |  | +                $linkout_urlprefix . $linkout_match[1],
 | 
	
		
			
				|  |  | +                array('attributes' => array('target' => '_blank'))
 | 
	
		
			
				|  |  | +              );
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |            $score = $hit->{'Hit_hsps'}->{'Hsp'}->{'Hsp_score'};
 | 
	
		
			
				|  |  | -	  $evalue = $hit->{'Hit_hsps'}->{'Hsp'}->{'Hsp_evalue'};
 | 
	
		
			
				|  |  | -	  $query_name = $iteration->{'Iteration_query-def'};
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	  $row = array(
 | 
	
		
			
				|  |  | -	  		'data' => array(
 | 
	
		
			
				|  |  | -			'number' => array('data' => $count, 'class' => array('number')),
 | 
	
		
			
				|  |  | -			'query' => array('data' => $query_name, 'class' => array('query')),
 | 
	
		
			
				|  |  | -			'hit' => array('data' => $hit_name, 'class' => array('hit')),
 | 
	
		
			
				|  |  | -			'evalue' => array('data' => $evalue, 'class' => array('evalue')),
 | 
	
		
			
				|  |  | -			'arrow-col' => array('data' => '<div class="arrow"></div>', 'class' => array('arrow-col'))
 | 
	
		
			
				|  |  | -		      ),
 | 
	
		
			
				|  |  | -		     'class' => array('result-summary')
 | 
	
		
			
				|  |  | -	            );
 | 
	
		
			
				|  |  | -	  $rows[] = $row;
 | 
	
		
			
				|  |  | -	  // ALIGNMENT ROW (collapsed by default)
 | 
	
		
			
				|  |  | -	  // Process HSPs
 | 
	
		
			
				|  |  | -	  $HSPs = array();
 | 
	
		
			
				|  |  | -	  foreach ($hit->{'Hit_hsps'}->children() as $hsp_xml) {
 | 
	
		
			
				|  |  | -	    $HSPs[] = (array) $hsp_xml;
 | 
	
		
			
				|  |  | -	  }
 | 
	
		
			
				|  |  | +          $evalue = $hit->{'Hit_hsps'}->{'Hsp'}->{'Hsp_evalue'};
 | 
	
		
			
				|  |  | +          $query_name = $iteration->{'Iteration_query-def'};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            $row = array(
 | 
	
		
			
				|  |  | -			'data' => array(
 | 
	
		
			
				|  |  | -			'number' => '',
 | 
	
		
			
				|  |  | -			'query' => array(
 | 
	
		
			
				|  |  | -			'data' => theme('blast_report_alignment_row', array('HSPs' => $HSPs)),
 | 
	
		
			
				|  |  | -			'colspan' => 4,
 | 
	
		
			
				|  |  | -			)
 | 
	
		
			
				|  |  | -	              ),
 | 
	
		
			
				|  |  | -			'class' => array('alignment-row', $zebra_class),
 | 
	
		
			
				|  |  | -			'no_striping' => TRUE
 | 
	
		
			
				|  |  | -		    );
 | 
	
		
			
				|  |  | +            'data' => array(
 | 
	
		
			
				|  |  | +              'number' => array('data' => $count, 'class' => array('number')),
 | 
	
		
			
				|  |  | +              'query' => array('data' => $query_name, 'class' => array('query')),
 | 
	
		
			
				|  |  | +              'hit' => array('data' => $hit_name, 'class' => array('hit')),
 | 
	
		
			
				|  |  | +              'evalue' => array('data' => $evalue, 'class' => array('evalue')),
 | 
	
		
			
				|  |  | +              'arrow-col' => array('data' => '<div class="arrow"></div>', 'class' => array('arrow-col'))
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            'class' => array('result-summary')
 | 
	
		
			
				|  |  | +          );
 | 
	
		
			
				|  |  |            $rows[] = $row;
 | 
	
		
			
				|  |  | -	 }// end of if - checks $hit
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          // ALIGNMENT ROW (collapsed by default)
 | 
	
		
			
				|  |  | +          // Process HSPs
 | 
	
		
			
				|  |  | +          $HSPs = array();
 | 
	
		
			
				|  |  | +          foreach ($hit->{'Hit_hsps'}->children() as $hsp_xml) {
 | 
	
		
			
				|  |  | +            $HSPs[] = (array) $hsp_xml;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          $row = array(
 | 
	
		
			
				|  |  | +            'data' => array(
 | 
	
		
			
				|  |  | +              'number' => '',
 | 
	
		
			
				|  |  | +              'query' => array(
 | 
	
		
			
				|  |  | +                'data' => theme('blast_report_alignment_row', array('HSPs' => $HSPs)),
 | 
	
		
			
				|  |  | +                'colspan' => 4,
 | 
	
		
			
				|  |  | +              )
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            'class' => array('alignment-row', $zebra_class),
 | 
	
		
			
				|  |  | +            'no_striping' => TRUE
 | 
	
		
			
				|  |  | +          );
 | 
	
		
			
				|  |  | +          $rows[] = $row;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }// end of if - checks $hit
 | 
	
		
			
				|  |  |        } //end of foreach - iteration_hits
 | 
	
		
			
				|  |  |      }	// end of if - check for iteration_hits
 | 
	
		
			
				|  |  |      else {
 | 
	
		
			
				|  |  | -	$count +=1;
 | 
	
		
			
				|  |  | -        $query_id = $iteration->{'Iteration_query-ID'};
 | 
	
		
			
				|  |  | -        $query_name = $iteration->{'Iteration_query-def'};
 | 
	
		
			
				|  |  | -        $row = array(
 | 
	
		
			
				|  |  | -                'data' => array(
 | 
	
		
			
				|  |  | -                   'number' => array('data' => $count , 'class' => array('number')),
 | 
	
		
			
				|  |  | -                   'query' => array('data' => $query_name, 'class' => array('query')),
 | 
	
		
			
				|  |  | -                   'hit' => array('data' =>  $iteration->{'Iteration_message'}, 'class' => array('hit')),
 | 
	
		
			
				|  |  | -                   'evalue' => array('data' => "-", 'class' => array('evalue')),
 | 
	
		
			
				|  |  | -                   'arrow-col' => array('data' => '', 'class' => array('arrow-col'))
 | 
	
		
			
				|  |  | -                ),
 | 
	
		
			
				|  |  | -                'class' => array('result-summary')
 | 
	
		
			
				|  |  | -            );
 | 
	
		
			
				|  |  | -        $rows[] = $row;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // Currently where the "no results" is added.
 | 
	
		
			
				|  |  | +	    $count +=1;
 | 
	
		
			
				|  |  | +      $query_id = $iteration->{'Iteration_query-ID'};
 | 
	
		
			
				|  |  | +      $query_name = $iteration->{'Iteration_query-def'};
 | 
	
		
			
				|  |  | +      $row = array(
 | 
	
		
			
				|  |  | +        'data' => array(
 | 
	
		
			
				|  |  | +           'number' => array('data' => $count , 'class' => array('number')),
 | 
	
		
			
				|  |  | +           'query' => array('data' => $query_name, 'class' => array('query')),
 | 
	
		
			
				|  |  | +           'hit' => array('data' =>  $iteration->{'Iteration_message'}, 'class' => array('hit')),
 | 
	
		
			
				|  |  | +           'evalue' => array('data' => "-", 'class' => array('evalue')),
 | 
	
		
			
				|  |  | +           'arrow-col' => array('data' => '', 'class' => array('arrow-col'))
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        'class' => array('result-summary')
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +      $rows[] = $row;
 | 
	
		
			
				|  |  |  		} // end of else
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // Actually print the table.
 | 
	
		
			
				|  |  |    print theme('table', array(
 | 
	
		
			
				|  |  |        'header' => $header,
 | 
	
		
			
				|  |  |        'rows' => $rows,
 |