|
@@ -7,8 +7,8 @@
|
|
|
* $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;
|
|
|
+// 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;
|
|
@@ -19,6 +19,15 @@ if ($blastdb->linkout->none === FALSE) {
|
|
|
$linkout = FALSE;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+// Handle no hits. This following array will hold the names of all query
|
|
|
+// sequences which didn't have any hits.
|
|
|
+$query_with_no_hits = array();
|
|
|
+
|
|
|
+// Furthermore, if no query sequences have hits we don't want to bother listing
|
|
|
+// them all but just want to give a single, all-include "No Results" message.
|
|
|
+$no_hits = TRUE;
|
|
|
+
|
|
|
?>
|
|
|
|
|
|
<!-- JQuery controlling display of the alignment information (hidden by default) -->
|
|
@@ -40,6 +49,13 @@ if ($blastdb->linkout->none === FALSE) {
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
+<style>
|
|
|
+.no-hits-message {
|
|
|
+ color: red;
|
|
|
+ font-style: italic;
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|
|
|
<p><strong>Download</strong>:
|
|
|
<a href="<?php print '../../' . $html_filename; ?>">HTML</a>,
|
|
|
<a href="<?php print '../../' . $tsv_filename; ?>">Tab-Delimited</a>,
|
|
@@ -82,6 +98,7 @@ if ($xml) {
|
|
|
if (is_object($hit)) {
|
|
|
$count +=1;
|
|
|
$zebra_class = ($count % 2 == 0) ? 'even' : 'odd';
|
|
|
+ $no_hits = FALSE;
|
|
|
|
|
|
// SUMMARY ROW
|
|
|
// If the id is of the form gnl|BL_ORD_ID|### then the parseids flag
|
|
@@ -143,29 +160,32 @@ if ($xml) {
|
|
|
else {
|
|
|
|
|
|
// 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;
|
|
|
+ $query_with_no_hits[] = $query_name;
|
|
|
+
|
|
|
} // end of else
|
|
|
}
|
|
|
|
|
|
- // Actually print the table.
|
|
|
- print theme('table', array(
|
|
|
- 'header' => $header,
|
|
|
- 'rows' => $rows,
|
|
|
- 'attributes' => array('id' => 'blast_report'),
|
|
|
- ));
|
|
|
+ if ($no_hits) {
|
|
|
+ print '<p class="no-hits-message">No results found.</p>';
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ // We want to warn the user if some of their query sequences had no hits.
|
|
|
+ if (!empty($query_with_no_hits)) {
|
|
|
+ print '<p class="no-hits-message">Some of your query sequences did not '
|
|
|
+ . 'match to the database/template. They are: '
|
|
|
+ . implode(', ', $query_with_no_hits) . '.</p>';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Actually print the table.
|
|
|
+ if (!empty($rows)) {
|
|
|
+ print theme('table', array(
|
|
|
+ 'header' => $header,
|
|
|
+ 'rows' => $rows,
|
|
|
+ 'attributes' => array('id' => 'blast_report'),
|
|
|
+ ));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
else {
|
|
|
drupal_set_title('BLAST: Error Encountered');
|