--- /dev/null
+<!DOCTYPE html>
+<html>
+<body>
+<?php
+if($_POST["type"] == "cluster") {
+
+ $username="inparanoid-read-user";
+ $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=" . $info[0] . " order by species";
+ $results=mysql_query($query);
+
+ $numRows = mysql_num_rows($results);
+
+ if(!$results) {
+ echo "DB Error, could not list tables";
+ }
+ echo "Cluster " . $info[1] . " contains " . $numRows . " genes: <br /> <br />";
+
+ $row = mysql_fetch_row($results);
+ while($row != null) {
+ $str=$row[1] . " (" . $row[0] . ")";
+ echo "<a href=\"http://planteome.cgrb.oregonstate.edu/node/11?species=" . $row[0] . "&gene=" . $row[1] . "\">" . $str . "</a> <br>";
+ $row = mysql_fetch_row($results);
+ }
+
+ mysql_close($connection);
+
+} else if($_POST["type"] == "species") {
+ $username="inparanoid-read-user";
+ $password="inparanoid-read-user_pw";
+ $database="inparanoid_data";
+ $url="floret.cgrb.oregonstate.edu:3306";
+
+ $input = explode(",",$_POST['param']);
+
+ $species = $input[0];
+ $clusterCount = sizeof($input)-1;
+
+ // creating logic statements
+ $clusters = "super_id=";
+ for($i=0; $i < $clusterCount; $i++) {
+ $clusters = $clusters . $input[$i+1];
+ if(($i+1) < (sizeof($input)-1)) {
+ $clusters = $clusters . " or super_id=";
+ }
+ }
+
+ // setting key values for mapping from gene ids to iterative ids (for user's sake)
+ $ids;
+ for($i=0; $i<$clusterCount; $i++) {
+ $ids[(string)$input[($i+1)]] = (string) ($i+1);
+ }
+
+$connection=mysql_connect($url,$username,$password);
+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 " . $numRows . " genes in the surveyed clusters: <br /> <br />";
+
+echo "GENE ID -------------------- CLUSTER ID <br \>";
+
+$data;
+$i=0;
+for($row = mysql_fetch_row($results); $row != null; $row = mysql_fetch_row($results)) {
+ $data[$i] = $ids[(string)$row[1]] . "," . $row[0];
+ $i = $i+1;
+ }
+
+sort($data);
+$i = 0;
+$species = str_replace(" ", "_", $species);
+
+while($i < sizeof($data)) {
+$temp = explode(",", $data[$i]);
+$str = $temp[1] . " ----------- " . $temp[0];
+echo "<a href=\"http://planteome.cgrb.oregonstate.edu/node/11?species=" . $species . "&gene=" . $temp[1] . "\">" . $str . "</a> <br>";
+$i++;
+}
+
+//id + gene -> sort -> split -> print;
+// $row = mysql_fetch_row($results);
+
+mysql_close($connection);
+
+} else if($_POST["type"] == "box") {
+ $username="inparanoid-read-user";
+ $password="inparanoid-read-user_pw";
+ $database="inparanoid_data";
+ $url="floret.cgrb.oregonstate.edu:3306";
+ $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);
+
+ $query="select gene from super_clust where super_id=" . $cluster . " && species=\"" . $species . "\" order by gene";
+ $results=mysql_query($query);
+
+ if(!$results) {
+ echo "DB Error, could not list tables";
+ }
+
+ echo str_replace("_", " ", $species) . " has " . $count . " genes in cluster " . $clusterIndex . ": <br> <br>\n";
+
+ echo "<form name=\"Branch\" method=\"post\" action=\"viewOntology.php\">\n";
+ echo "<input type=\"submit\" value=\"View Ontology\">\n";
+ echo "<input type=\"hidden\" name=\"param\" value=\"\">\n";
+ echo "</form>\n";
+ echo "<br> <br>\n";
+
+ $genes="";
+ $row = mysql_fetch_row($results);
+ while($row != null) {
+ echo "<a href=\"http://planteome.cgrb.oregonstate.edu/node/11?species=" . $species . "&gene=" . $row[0] . "\">" . $row[0] . "</a> <br>";
+ $genes = $genes . $row[0] . ",";
+ $row = mysql_fetch_row($results);
+ }
+ mysql_close($connection);
+}
+
+?>
+
+<script type="text/javascript">
+if(<?php echo ($_POST["type"] == "box") ?> == 1) {
+ document.Branch.param.value = "<?php echo $genes ?>";
+}
+</script>
+
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html>
+<body>
+<?php
+$genes;
+$geneProductIDs = "";
+$terms = "";
+
+
+//get rid of any of those messy .somethings after the gene ID
+$tmp = explode(",",$_POST['param']);
+for($i = 0; $i < sizeof($tmp); $i ++) {
+ $newTmp = explode(".",$tmp[$i]);
+ $tmp[$i] = $newTmp[0];
+}
+$genes = $tmp;
+
+
+$username="po-read-user";
+$password="po-read-user_pw";
+$database="po_live";
+$url="floret.cgrb.oregonstate.edu:3306";
+
+$connection=mysql_connect($url,$username,$password);
+mysql_select_db($database);
+
+$logic = "where full_name like '";
+for($i = 0; $i + 1 < sizeof($genes); $i ++) { // note that the last parameter of $genes is an empty array
+ $toAdd = $genes[$i] . "'";
+ if($i + 2 < sizeof($genes)) {
+ $toAdd = $toAdd . " or full_name like '";
+ }
+ $logic = $logic . $toAdd;
+
+}
+echo "<br> logic: " . $logic . "<br>";
+$query="select id from gene_product " . $logic . " order by id";
+$results=mysql_query($query);
+
+
+$i = 0;
+for($row = mysql_fetch_row($results); $row != null; $row = mysql_fetch_row($results)) {
+ $geneProductIDs[$i] = $row[0];
+ $i++;
+ }
+
+$logic = "where gene_product_id=";
+for($i = 0; $i + 1 < sizeof($geneProductIDs); $i++) {
+ $toAdd = $geneProductIDs[$i];
+ if($i + 2 < sizeof($geneProductIDs)) {
+ $toAdd = $toAdd . " or gene_product_id=";
+ }
+ $logic = $logic . $toAdd;
+}
+
+$query="select term_id from association " . $logic . " order by term_id";
+$results=mysql_query($query);
+
+$i = 0;
+for($row = mysql_fetch_row($results); $row != null; $row = mysql_fetch_row($results)) {
+ $termIDs[$i] = $row[0];
+ $i++;
+ }
+
+$logic = "where id='";
+for($i = 0; $i + 1 < sizeof($termIDs); $i++) {
+ $toAdd = $termIDs[$i] . "'";
+ if($i + 2 < sizeof($termIDs)) {
+ $toAdd = $toAdd . " or id='";
+ }
+ $logic = $logic . $toAdd;
+}
+
+$query="select name from term " . $logic . " order by name";
+$results=mysql_query($query);
+
+$i = 0;
+for($row = mysql_fetch_row($results); $row != null; $row = mysql_fetch_row($results)) {
+ $terms[$i] = $row[0];
+ $i++;
+ }
+
+?>
+
+<div id="canvasDiv" style="overflow: hidden; float: left; height: 500px; width: 1100px;">
+<canvas id="myCanvas" width="1500" height="1000" style="border:1px solid #c3c3c3;">
+Your browser does not support the canvas element.
+</canvas> </div>
+
+<div id="scrollDiv" style="overflow: auto; float: left; height: 515px; width: 15px;" onscroll="drawMap();">
+<canvas id="nothing" width="1" height="<?php echo 250 + sizeof($allClusterIDs)*25 ?>"> </canvas>
+</div>
+
+
+<script type="text/javascript">
+var rawGenes = "<?php echo $_POST['param'] ?>";
+var genes = rawGenes.split(",");
+var geneCount = genes.length;
+
+var rawTerms = "<?php echo implode(",",$terms) ?>";
+var terms = rawTerms.split(",");
+var termCount = terms.length;
+
+var canvas = document.getElementById("myCanvas");
+var ontMap = canvas.getContext("2d");
+var startTerm = 0;
+
+var topOffset = 210;
+var leftOffset = 50;
+
+var cellSize = 10;
+var maxRows = Math.floor((500-topOffset)/cellSize);
+var maxCols = Math.floor((1000-leftOffset)/cellSize);
+
+
+function drawTerms(startTerm) {
+ //black for text
+ ontMap.fillStyle = "#000000";
+
+ //rotating the canvas for labeling the terms
+ ontMap.rotate(-90*Math.PI/180);
+ ontMap.translate(-topOffset,0);
+
+ //labeling the terms
+ var translated = 0;
+ for (var s=startTerm; (s<termCount) && (s<=startTerm+maxCols); s++) {
+ term = terms[s];
+ finalTerm = term.replace("_", " ");
+ ontMap.fillText(finalTerm,4, leftOffset + 15);
+ ontMap.translate(0,cellSize);
+ translated = translated + cellSize;
+ }
+ //resetting the canvas to start position
+ ontMap.translate(0,-translated);
+ ontMap.translate(topOffset,0);
+ ontMap.rotate(90*Math.PI/180);
+}
+drawTerms(0);
+
+
+
+</script>
+
+</body>
+</html>