From 9a5c2dc1ebf8a37e3811737c7e2ebcb7ff4c48bc Mon Sep 17 00:00:00 2001 From: miles Date: Wed, 15 Aug 2012 19:09:12 +0000 Subject: [PATCH] Final modifications. Working download link and image generation. Notes for future: Downloadable image doesn't have special grey and gold squares representing 0 and 1 genes, respectively. Possibility of modification later. If the visual effects of the scroll bars on heatMap.php page becomes an issue, consider surrounding current div tag with an additional div tag in order to simulate scrolling. svn path=/; revision=376 --- Personnel/miles/Web Page/ClusterInfo.php | 8 ++- .../miles/Web Page/ClusterSpeciesInfo.php | 3 +- Personnel/miles/Web Page/Heatmap.jar | Bin 566043 -> 581961 bytes Personnel/miles/Web Page/SpeciesInfo.php | 4 +- Personnel/miles/Web Page/heatMap.php | 63 ++++++++---------- 5 files changed, 40 insertions(+), 38 deletions(-) diff --git a/Personnel/miles/Web Page/ClusterInfo.php b/Personnel/miles/Web Page/ClusterInfo.php index dda7d0f..af1718e 100644 --- a/Personnel/miles/Web Page/ClusterInfo.php +++ b/Personnel/miles/Web Page/ClusterInfo.php @@ -16,15 +16,19 @@ $password="inparanoid-read-user_pw"; $database="inparanoid_data"; $url="floret.cgrb.oregonstate.edu:3306"; +$info = explode(",",$_POST['param']); + $connection=mysql_connect($url,$username,$password); mysql_select_db($database); -$query="select species, gene from super_clust where super_id=" . $_POST['param'] . " order by species"; +$query="select species, gene from super_clust where super_id=" . $info[0] . " order by species"; $results=mysql_query($query); +$numRows = mysql_num_rows($results); + if(!$results) { echo "DB Error, could not list tables"; } -echo "Genes contained within this cluster:

"; +echo "Cluster " . $info[1] . " contains " . $numRows . " genes:

"; $row = mysql_fetch_row($results); while($row != null) { diff --git a/Personnel/miles/Web Page/ClusterSpeciesInfo.php b/Personnel/miles/Web Page/ClusterSpeciesInfo.php index 98a8c97..0602cb3 100644 --- a/Personnel/miles/Web Page/ClusterSpeciesInfo.php +++ b/Personnel/miles/Web Page/ClusterSpeciesInfo.php @@ -15,6 +15,7 @@ $info=explode(",", $_POST['param']); $cluster=$info[0]; $species=$info[1]; $clusterIndex=$info[2]; +$count = $info[3]; $connection=mysql_connect($url,$username,$password); mysql_select_db($database); @@ -26,7 +27,7 @@ if(!$results) { echo "DB Error, could not list tables"; } -echo str_replace("_", " ", $species) . " has the following genes in cluster " . $clusterIndex . ":

"; +echo str_replace("_", " ", $species) . " has " . $count . " genes in cluster " . $clusterIndex . ":

"; $row = mysql_fetch_row($results); while($row != null) { diff --git a/Personnel/miles/Web Page/Heatmap.jar b/Personnel/miles/Web Page/Heatmap.jar index fa7e9ece6f6c86655088b95fd1f8b60f49dce0e3..a39e06fda33d376313e7a9076be78eeb90852a05 100644 GIT binary patch delta 27508 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 V+O35HuwTqTNd$!2ECBZB{{dsioCg2^ delta 11464 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 XpCBPUhW~5C|NAK(JLYQz;8*_#ug=iB diff --git a/Personnel/miles/Web Page/SpeciesInfo.php b/Personnel/miles/Web Page/SpeciesInfo.php index 15a317c..62c8e94 100644 --- a/Personnel/miles/Web Page/SpeciesInfo.php +++ b/Personnel/miles/Web Page/SpeciesInfo.php @@ -40,10 +40,12 @@ mysql_select_db($database); $query="select gene,super_id from super_clust where species=\"" . $species . "\" and (" . $clusters . ")"; $results=mysql_query($query); +$numRows = mysql_num_rows($results); + if(!$results) { echo "DB Error, could not list tables"; } -echo str_replace("_"," ",$species) . " has the following genes:

"; +echo str_replace("_"," ",$species) . " has " . $numRows . " genes in the surveyed clusters:

"; echo "GENE ID -------------------- CLUSTER ID
"; diff --git a/Personnel/miles/Web Page/heatMap.php b/Personnel/miles/Web Page/heatMap.php index 294e0f7..e3124c7 100644 --- a/Personnel/miles/Web Page/heatMap.php +++ b/Personnel/miles/Web Page/heatMap.php @@ -18,7 +18,8 @@ if(!preg_match("/[a-zA-Z0-9\.]/", substr($input,-1))) { $input = substr_replace($input ,"",-1); } } -exec("java -jar Heatmap.jar " . $input, $output); +$finalInput = "webpage " . $input; +exec("java -Djava.awt.headless=true -jar Heatmap.jar " . $finalInput, $output); //main heatmap data parsing $tmp; @@ -111,8 +112,6 @@ $height = 25 * $clusterCount + 200 + 20 * sizeof($clickableGenes);





- - Click on a species name, cluster number, or cell for more information.
Scroll down to see more clusters, right to see more species (if any exist).
@@ -127,12 +126,17 @@ Click on a species name, cluster number, or cell for more information. -
Your browser does not support the canvas element. - +
+ +
+ +
+ +