Hello!

To see the file structure, click on "tree".

Note that updates take place every 10 minutes, commits may not be seen immediately.
Added Web page files
authormiles <miles@localhost>
Mon, 13 Aug 2012 20:06:37 +0000 (20:06 +0000)
committermiles <miles@localhost>
Mon, 13 Aug 2012 20:06:37 +0000 (20:06 +0000)
svn path=/; revision=372

12 files changed:
Personnel/miles/Web Page/.directory [new file with mode: 0644]
Personnel/miles/Web Page/.heatMap.php.kate-swp [new file with mode: 0644]
Personnel/miles/Web Page/ClusterInfo.php [new file with mode: 0644]
Personnel/miles/Web Page/ClusterSpeciesInfo.php [new file with mode: 0644]
Personnel/miles/Web Page/Heatmap.jar [new file with mode: 0644]
Personnel/miles/Web Page/Main Page.html [new file with mode: 0644]
Personnel/miles/Web Page/SpeciesInfo.php [new file with mode: 0644]
Personnel/miles/Web Page/heatMap.php [new file with mode: 0644]
Personnel/miles/Web Page/planteome_example.php [new file with mode: 0644]
Personnel/miles/Web Page/testing [new file with mode: 0644]
Personnel/miles/Web Page/testing.txt [new file with mode: 0644]
Personnel/miles/Web Page/upload.php [new file with mode: 0644]

diff --git a/Personnel/miles/Web Page/.directory b/Personnel/miles/Web Page/.directory
new file mode 100644 (file)
index 0000000..eaa2d4b
--- /dev/null
@@ -0,0 +1,4 @@
+[Dolphin]
+AdditionalInfoV2=Details_Size,Details_Date,CustomizedDetails
+Timestamp=2012,7,26,16,13,9
+Version=2
diff --git a/Personnel/miles/Web Page/.heatMap.php.kate-swp b/Personnel/miles/Web Page/.heatMap.php.kate-swp
new file mode 100644 (file)
index 0000000..e40f5aa
Binary files /dev/null and b/Personnel/miles/Web Page/.heatMap.php.kate-swp differ
diff --git a/Personnel/miles/Web Page/ClusterInfo.php b/Personnel/miles/Web Page/ClusterInfo.php
new file mode 100644 (file)
index 0000000..dda7d0f
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE = html>
+<html>
+<head>
+<title>
+Cluster Details
+</title>
+</head>
+
+<body>
+</body>
+
+<?php
+
+$username="inparanoid-read-user";
+$password="inparanoid-read-user_pw";
+$database="inparanoid_data";
+$url="floret.cgrb.oregonstate.edu:3306";
+
+$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";
+$results=mysql_query($query);
+
+if(!$results) {
+  echo "DB Error, could not list tables";
+  }
+echo "Genes contained within this cluster: <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);
+
+?>
+</html>
\ No newline at end of file
diff --git a/Personnel/miles/Web Page/ClusterSpeciesInfo.php b/Personnel/miles/Web Page/ClusterSpeciesInfo.php
new file mode 100644 (file)
index 0000000..98a8c97
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE = html>
+<html>
+<head>
+<title>
+Cluster-Species Details
+</title>
+</head>
+
+<?php
+$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];
+
+$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 the following genes in cluster " . $clusterIndex . ": <br /> <br />";
+
+$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>";
+  $row = mysql_fetch_row($results);
+  }
+
+mysql_close($connection);
+
+?>
+</html>
diff --git a/Personnel/miles/Web Page/Heatmap.jar b/Personnel/miles/Web Page/Heatmap.jar
new file mode 100644 (file)
index 0000000..fa7e9ec
Binary files /dev/null and b/Personnel/miles/Web Page/Heatmap.jar differ
diff --git a/Personnel/miles/Web Page/Main Page.html b/Personnel/miles/Web Page/Main Page.html
new file mode 100644 (file)
index 0000000..6fabc80
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Heat Chart Creation</title>
+</head>
+
+<body>
+Please enter all the gene IDs you would like the Heat Map to reference,
+each on its own line. Click "Submit" when done:
+</body>
+
+<form enctype="multipart/form-data" method="post" action="heatMap.php">
+<P>
+<TEXTAREA name="geneIDs" rows ="5">
+</TEXTAREA>
+<input type="submit" value="Submit" />
+</form>
+
+<form enctype="multipart/form-data" method="post" action="upload.php">
+<input type="file" name="genelistFile">
+<input type="submit" value="Submit" />
+</form>
+
+
+
+</html>
\ No newline at end of file
diff --git a/Personnel/miles/Web Page/SpeciesInfo.php b/Personnel/miles/Web Page/SpeciesInfo.php
new file mode 100644 (file)
index 0000000..15a317c
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE = html>
+<html>
+<head>
+<title>
+Species Details
+</title>
+</head>
+
+
+
+
+<?php
+$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);
+
+if(!$results) {
+  echo "DB Error, could not list tables";
+  }
+echo str_replace("_"," ",$species) . " has the following genes: <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);
+?>
+</html>
diff --git a/Personnel/miles/Web Page/heatMap.php b/Personnel/miles/Web Page/heatMap.php
new file mode 100644 (file)
index 0000000..294e0f7
--- /dev/null
@@ -0,0 +1,511 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Heat Chart</title>
+</head>
+<body>
+<?php
+
+$input = "";
+if (!isset($_POST["geneIDs"])) {
+echo "Heatmap <br\>";
+$input = trim($_POST["genelist"]);
+}
+else {
+echo "Click on a Species, Cluster, or Cell for more details. <br> Click on a gene name to see which cell it belongs to.";
+$input = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", " ", $_POST["geneIDs"]);
+if(!preg_match("/[a-zA-Z0-9\.]/", substr($input,-1))) {
+  $input = substr_replace($input ,"",-1);
+  }
+}
+exec("java -jar Heatmap.jar " . $input, $output);
+
+//main heatmap data parsing
+$tmp;
+for ($i = 0; $i < sizeof($output); $i ++) {
+  $tmp[$i] = explode(",", $output[$i]);
+  }
+
+
+$allSpecies;
+for ($s = 0; $s < sizeof($tmp) - 2; $s ++) // the last array in tmp is the list of cluster IDs
+  {
+  $allSpecies[$s] = $tmp[$s][0];
+  }
+
+
+$allClusterIDs;
+for ($c = 0; $c < sizeof($tmp[sizeof($tmp) - 2]); $c ++)
+  {
+  $allClusterIDs[$c] = $tmp[sizeof($tmp) - 2][$c];
+  }
+
+
+$heatMapData;
+for ($s = 0; $s < (sizeof($tmp) - 2); $s ++)
+  {
+  for ($c = 0; $c < sizeof($allClusterIDs); $c ++)
+  $heatMapData[$s][$c] = $tmp[$s][$c+1];
+  }
+
+$geneIDs = explode(" ", $input);
+$maxCount = $output[sizeof($output)-1];
+$clusterCount = sizeof($allClusterIDs);
+$speciesCount = sizeof($allSpecies);
+
+$temp;
+for ($i = 0; $i < sizeof($heatMapData); $i ++)
+  {
+  $temp[$i] = implode(",", $heatMapData[$i]);
+  }
+$finalHeatMapData = $temp;
+
+// extra goodies from the mysql database
+$username="inparanoid-read-user";
+$password="inparanoid-read-user_pw";
+$database="inparanoid_data";
+$url="floret.cgrb.oregonstate.edu:3306";
+
+$connection=mysql_connect($url,$username,$password);
+$logic="gene like ";
+for($i=0; $i<sizeof($geneIDs); $i++) {
+  $logic = $logic . "\"" . $geneIDs[$i] . "%\"";
+  if($i+1 < sizeof($geneIDs))  {
+     $logic = $logic . " or gene like "; 
+  }
+}
+
+function array_search2d($needle, $haystack) {
+  $ind=0;
+  for ($i=0; $i<sizeof($haystack); $i++) {
+    if ($needle == (string)$haystack[$i]) {
+      $ind = $i;
+    }
+  }
+  return $ind;
+}
+
+//getting the information from SQL in order to create clickable gene IDs below the heatMap
+$query = "select gene, species, super_id from super_clust where " . $logic . " order by species";
+mysql_select_db($database);
+$results=mysql_query($query);
+if(!$results) {
+  echo "<br \> Database error, could not list tables.";
+  }
+
+$clickableGenes;
+$k=0;
+for($row=mysql_fetch_row($results); $row != null; $k++) {
+  $clickableGenes[$k] = ($row[0] . "," . $row[1] . "," . (array_search2d($row[2], $allClusterIDs)+1));
+  $row=mysql_fetch_row($results);
+
+
+
+
+$width = 25*$speciesCount + 100;
+$height = 25 * $clusterCount + 200 + 20 * sizeof($clickableGenes);
+}
+
+?>
+
+
+<br> <br> <br> <br> <br> <br>
+
+
+<body>
+Click on a species name, cluster number, or cell for more information.
+<br> Scroll down to see more clusters, right to see more species (if any exist).
+<br>
+<?php echo "There are " . $clusterCount . " clusters in the heatmap. <br> There are " . $speciesCount . " species in the heatmap."; ?>
+
+<form name="infoForm" action="changes" method="post" >
+<input type="hidden" name="param"/>
+</form>
+
+
+<form name="jumpTo" >
+<input type="submit" value="Jump to Cluster:" onClick="return jumpToCluster()"/>
+<input type="text" name="cluster" />
+</form>
+</body>
+
+<div id="canvasDiv" style="overflow: auto; height: 515px; width: 1100px;" onscroll="drawMap();">
+<canvas id="myCanvas" width="1500" height="1000" style="border:1px solid #c3c3c3;">
+Your browser does not support the canvas element.
+</canvas>
+
+<script type="text/javascript">
+
+var width = <?php echo $width; ?>;
+
+
+var rawHeatMapData = "<?php echo implode(";",$finalHeatMapData); ?>";
+var rareHeatMapData = rawHeatMapData.split(";");
+var heatMapData = new Array(rareHeatMapData.length);
+for(var i=0; i<rareHeatMapData.length; i++) {
+  heatMapData[i] = rareHeatMapData[i].split(",");
+  }
+
+var rawSpecies = "<?php echo implode(",",$allSpecies); ?>";
+var allSpecies = rawSpecies.split(",");
+var speciesCount = allSpecies.length;
+
+var rawClusterIDs = "<?php echo implode(",", $allClusterIDs); ?>";
+var allClusterIDs = rawClusterIDs.split(",");
+var maxCount = <?php echo $maxCount; ?>;
+var clusterCount = <?php echo $clusterCount; ?>;
+
+var rawClickableGenes = "<?php echo implode(";", $clickableGenes); ?>";
+var rareClickableGenes = rawClickableGenes.split(";");
+var clickableGenes = new Array(rareClickableGenes.length);
+for(var i=0; i<rareClickableGenes.length; i++) {
+  clickableGenes[i] = rareClickableGenes[i].split(",");
+}
+var canvas = document.getElementById("myCanvas");
+var heatMap = canvas.getContext("2d");
+
+var drawnRows = 0; // NOTE starts from the edge of the screen, not 0,0 cell
+var drawnCols = 0; // NOTE starts from the edge of the screen, not 0,0 cell
+
+
+
+var scrolledLeft = 0;
+var scrolledTop = 0;
+
+var lastColor;
+var lastX;
+var lastY;
+
+var cellSize = 25; // NOTE don't make this less than 10. The font won't fit.
+var borderWidth = 2;
+
+var leftScrollOffset = 25;
+var topScrollOffset = 50;
+
+var leftOffset = 25+leftScrollOffset;
+var topOffset = 200 + topScrollOffset;
+
+var maxRows = Math.floor((500-(topOffset - topScrollOffset))/cellSize);
+var maxCols = Math.floor((1000-(leftOffset-leftScrollOffset))/cellSize);
+
+function drawSpecies(startSpecies) {
+  //black for text
+  heatMap.fillStyle = "#000000";
+
+  //rotating the canvas for labeling the species
+  heatMap.rotate(-90*Math.PI/180);
+  heatMap.translate(-topOffset,0);
+
+  //labeling the species
+  var translated = 0;
+  for (var s=startSpecies; (s<speciesCount) && (s<=startSpecies+maxCols); s++) {
+      name = allSpecies[s];
+      speciesName = name.replace("_", " ");
+      heatMap.fillText(speciesName,4, leftOffset + 15);
+      heatMap.translate(0,cellSize);
+      translated = translated + cellSize;
+    }
+  //resetting the canvas to start position
+  heatMap.translate(0,-translated);
+  heatMap.translate(topOffset,0);
+  heatMap.rotate(90*Math.PI/180);
+}
+
+function drawClusters(startCluster) {
+  heatMap.fillStyle = "#000000";
+  for(var c=startCluster; (c<clusterCount) && (c<=startCluster + maxRows); c++) {
+    heatMap.fillText((c+1),(leftOffset-leftScrollOffset)+5,(c-startCluster)*cellSize + topOffset + cellSize/2);
+  }
+}
+
+function drawMap(init) {
+  scrolledLeft = scrolledLeft + document.getElementById("canvasDiv").scrollLeft - leftScrollOffset;
+  scrolledTop = scrolledTop + document.getElementById("canvasDiv").scrollTop - topScrollOffset; // NOTE the 25 accounts for the scrollbar offset allowing for scrolling up/left
+  if(scrolledLeft > speciesCount*cellSize - maxCols*cellSize) {
+    scrolledLeft = speciesCount*cellSize - maxCols*cellSize;
+  }
+  if(scrolledTop > clusterCount*cellSize - maxRows*cellSize) {
+    scrolledTop = clusterCount*cellSize - maxRows*cellSize;
+  }
+  if(scrolledLeft < 0) {
+    scrolledLeft = 0;
+  }
+  if(scrolledTop < 0) {
+    scrolledTop = 0;
+  }
+
+  document.getElementById("canvasDiv").scrollTop = topScrollOffset;
+  document.getElementById("canvasDiv").scrollLeft = leftScrollOffset;
+
+  if((init || Math.floor(scrolledLeft/cellSize) != drawnCols || Math.floor(scrolledTop/cellSize) != drawnRows)) {
+    drawnCols = Math.floor(scrolledLeft/cellSize);
+    drawnRows = Math.floor(scrolledTop/cellSize);
+    
+    heatMap.fillStyle = "#FFFFFF";
+    heatMap.fillRect(0,0,1500,topOffset);
+    heatMap.fillRect(0,0,leftOffset,1000);
+    heatMap.fillRect(1029,0,1100,500);
+//    heatMap.fillRect(maxCols*cellSize+leftOffset,0,1500-(maxCols*cellSize+leftOffset),1000);
+//    heatMap.fillRect(0,maxRows*cellSize+topOffset,1500,1000-(maxRows*cellSize+topOffset));
+    startXCell = Math.floor(scrolledLeft/cellSize);
+    startYCell = Math.floor(scrolledTop/cellSize);
+    for(var s=startXCell; (s<heatMapData.length) && ((s-startXCell)<maxCols); s++) {
+      for(var c=startYCell; (c<clusterCount) && ((c-startYCell)<maxRows); c++) {
+       var count = parseInt(heatMapData[s][c]);
+       var redcolor = "00";
+       var bluecolor = "00";
+       var greencolor = "00";
+       if(count == 0) {
+         redcolor = "5C";
+         greencolor = "5C";
+         bluecolor = "5C";
+         }
+       else if(count == 1) {
+         redcolor = "CF";
+         greencolor = "B5";
+         bluecolor = "2B";
+         }
+       else if(count == 2) {
+         if(maxCount == 2) {
+           redcolor = "FF";
+           bluecolor = "00";
+           }
+         else {
+         redcolor = "00";
+         bluecolor = "FF";
+         }
+       }
+       else {
+       count = count - 2;
+       var redfrequency = Math.floor((count / (maxCount-2)) * 255);
+       redcolor = redfrequency.toString(16);
+       var bluefrequency = 255 - redfrequency;
+       bluecolor = bluefrequency.toString(16);
+
+       }
+       if(redcolor.length < 2) {
+         redcolor = "0" + redcolor;
+         }
+       if(bluecolor.length < 2) {
+         bluecolor = "0" + bluecolor;
+       }
+       var xCoord = leftOffset+(s-startXCell)*cellSize;
+       var yCoord = topOffset+(c-startYCell)*cellSize;
+       heatMap.fillStyle= "#" + redcolor + greencolor + bluecolor;
+       heatMap.fillRect(xCoord, yCoord, cellSize, cellSize);
+       heatMap.fillStyle= "#FFFFFF";
+       heatMap.strokeRect(xCoord-borderWidth/2, yCoord-borderWidth/2,cellSize,cellSize);
+      }
+    }
+    drawClusters(startYCell);
+    drawSpecies(startXCell);
+    drawKey();
+  }
+}
+
+function drawKey() {
+  //drawing the key
+  //0
+  heatMap.fillStyle="#5C5C5C";
+  heatMap.fillRect(1030,(topOffset-topScrollOffset),cellSize,cellSize);
+  heatMap.fillStyle="#000000";
+  heatMap.fillText("= 0",1060,13 + (topOffset-topScrollOffset));
+  heatMap.strokeRect(1030-borderWidth/2,(topOffset-topScrollOffset)-borderWidth/2,cellSize,cellSize);
+
+  //1
+  heatMap.fillStyle="#CFB52B";
+  heatMap.fillRect(1030,cellSize+5+(topOffset-topScrollOffset),cellSize,cellSize);
+  heatMap.fillStyle="#000000";
+  heatMap.fillText("= 1",1060,5+(3/2)*cellSize + (topOffset-topScrollOffset));
+  heatMap.strokeRect(1030-borderWidth/2,(topOffset-topScrollOffset) + 5+cellSize - borderWidth/2,cellSize,cellSize);
+
+  //2
+  if(maxCount == 2) {
+  heatMap.fillStyle="#FF0000";
+  }
+  else {
+  heatMap.fillStyle="#0000FF";
+  }
+  heatMap.fillRect(1030,2*(cellSize+5)+(topOffset-topScrollOffset),cellSize,cellSize);
+  heatMap.fillStyle="#000000";
+  heatMap.fillText("= 2",1060,10+(5/2)*cellSize+(topOffset-topScrollOffset));
+  heatMap.strokeRect(1030-borderWidth/2,(topOffset-topScrollOffset)+2*(cellSize+5)-borderWidth/2,cellSize,cellSize);
+
+  //3+
+  var i=7;
+  if(maxCount<6) {
+    i=maxCount+1;
+  }
+
+  for(var k=3; k < i; k++) {
+    var refPoint = Math.floor((k-2) * 255/(i-3));
+    var redcolor=refPoint.toString(16);
+    if(redcolor.length < 2) {
+      redcolor = "0" + redcolor;
+      }
+    var bluefrequency =255-refPoint;
+    var bluecolor=bluefrequency.toString(16);
+    if(bluecolor < 2) {
+      bluecolor = "0" + bluecolor;
+      }
+    heatMap.fillStyle="#" + redcolor + "00" + bluecolor;
+    heatMap.fillRect(1030, 5+cellSize+(k-1)*(cellSize+5) + (topOffset-topScrollOffset),cellSize,cellSize);
+    heatMap.fillStyle="#000000";
+    var key = Math.floor((k-2)*((maxCount-2)/2) + 2);
+  //  var key = Math.floor((k+1)*(maxCount-2)/i);
+    var txt = "= " + key;
+    heatMap.fillText(txt,1060,5+(3/2*cellSize)+(k-1)*(cellSize+5) + (topOffset-topScrollOffset));
+    heatMap.strokeRect(1030-borderWidth/2, 5+cellSize+(k-1)*(cellSize+5)  + (topOffset-topScrollOffset) - borderWidth/2,cellSize,cellSize);
+    }
+
+}
+
+alert(maxCount);
+
+
+// drawing the clickable genes
+// for(var i=0; i<clickableGenes.length; i++) {
+//   rawspecies = clickableGenes[i][1];
+//   species = rawspecies.replace("_", " ");
+//   var txt = clickableGenes[i][0] + " from " + species + " in cluster " + clickableGenes[i][2];
+//   heatMap.fillText(txt, 25, i*20 + 215 + 25 * clusterCount);
+// }
+
+
+function showInfo(event) {
+  var x = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft - canvas.offsetLeft;
+  var y = event.clientY + document.body.scrollTop + document.documentElement.scrollTop - canvas.offsetTop;
+
+  if((x<leftOffset-leftScrollOffset) && (y>topOffset-topScrollOffset) && ((y+scrolledTop)<(topOffset + cellSize*clusterCount))) {
+    var index = Math.floor(((y+topScrollOffset)-topOffset)/cellSize) + Math.floor(scrolledTop/25);
+    var cluster = allClusterIDs[index];
+    getClusterInfo(cluster);
+    alert(index);
+  }
+  if((y<topOffset-topScrollOffset) && (x>leftOffset-leftScrollOffset)) {
+    var index = Math.floor(((x+leftScrollOffset)-leftOffset)/cellSize) + Math.floor(scrolledLeft/25);
+    var species = allSpecies[index];
+    getSpeciesInfo(species);
+  }
+  if((y>topOffset-topScrollOffset) && ((y+scrolledTop)<(topOffset + cellSize*clusterCount)) && (x>leftOffset-leftScrollOffset) && ((x+scrolledLeft)<leftOffset + speciesCount*cellSize)) {
+    var clusterIndex = Math.floor(((y+topScrollOffset)-topOffset)/cellSize) + Math.floor(scrolledTop/25);
+    var cluster = allClusterIDs[clusterIndex];
+    var index = Math.floor(((x+leftScrollOffset)-leftOffset)/cellSize) + Math.floor(scrolledLeft/25);
+    var species = allSpecies[index];
+    getBoxInfo(cluster, species, clusterIndex+1);
+  }
+  if(((y+scrolledTop)>(topOffset + cellSize*clusterCount))) {
+    var index = Math.floor((y+topScrollOffset-topOffset+cellSize*clusterCount)/cellSize)+Math.floor(scrolledTop/25);
+    var xVal = 0;
+    var yVal = 0;
+    var species = clickableGenes[index][1];
+    var cluster = clickableGenes[index][2] - 1;
+    yVal = scrolledTop + topOffset + cluster*cellSize;
+    for(var i=0; i < allSpecies.length; i++) {
+      if(allSpecies[i] == species) {
+       xVal = scrolledLeft + leftOffset + i*cellSize;
+      }
+    }
+    heatMap.strokeStyle = "#22FF99";
+    heatMap.strokeRect(xVal+borderWidth/2,yVal+borderWidth/2, cellSize-2*borderWidth, cellSize-2*borderWidth);
+    heatMap.strokeRect(xVal+borderWidth,yVal+borderWidth, cellSize-3*borderWidth, cellSize-3*borderWidth);
+    var xCoord = leftOffset+lastX*cellSize;
+    var yCoord = topOffset+lastY*cellSize;
+    heatMap.fillStyle = lastColor;
+    heatMap.fillRect(xCoord, yCoord, cellSize-borderWidth, cellSize-borderWidth);
+    if(lastX == ((xVal+scrolledLeft)-leftOffset)/cellSize) {
+      //TODO find out if this if statement can just be {}, or if i need to actually draw the rectangle
+      heatMap.strokeStyle = "#22FF99";
+      heatMap.strokeRect(xVal+borderWidth/2,yVal+borderWidth/2, cellSize-2*borderWidth, cellSize-2*borderWidth);
+      heatMap.strokeRect(xVal+borderWidth,yVal+borderWidth, cellSize-3*borderWidth, cellSize-3*borderWidth);
+    } else {
+      lastX = ((xVal+scrolledLeft)-leftOffset)/cellSize;
+      lastY = cluster;
+    }
+    var count = parseInt(heatMapData[lastX][lastY]);
+    var redcolor = "00";
+    var bluecolor = "00";
+    var greencolor = "00";
+    if(count == 0) {
+      redcolor = "5C";
+      greencolor = "5C";
+      bluecolor = "5C";
+      }
+    else if(count == 1) {
+      redcolor = "CF";
+      greencolor = "B5";
+      bluecolor = "2B";
+      }
+    else {
+    count = count - 2;
+    var redfrequency = Math.floor((count / (maxCount-2)) * 255);
+    redcolor = redfrequency.toString(16);
+    var bluefrequency = 255 - redfrequency;
+    bluecolor = bluefrequency.toString(16);
+    if(redcolor == "0") {
+       redcolor = "00";
+      }
+    if(bluecolor == "0") {
+      bluecolor = "00";
+      }
+    }
+    lastColor = "#" + redcolor + greencolor + bluecolor;
+  }
+}
+
+
+function getClusterInfo(cluster) {
+  document.infoForm.action = "ClusterInfo.php";
+  document.infoForm.param.value = cluster;
+  document.infoForm.submit();
+  }
+
+
+function getSpeciesInfo(species) {
+  document.infoForm.action = "SpeciesInfo.php";
+  var pass = [species]
+  pass = pass.concat(allClusterIDs);
+  document.infoForm.param.value = (pass);
+  document.infoForm.submit();
+  }
+
+function getBoxInfo(cluster, species, userIndex) {
+  document.infoForm.action = "ClusterSpeciesInfo.php";
+  document.infoForm.param.value = cluster + "," + species + "," + userIndex;
+  document.infoForm.submit();
+  }
+
+function jumpToCluster() {
+  var cluster = document.jumpTo.cluster.value;
+  scrolledTop = (cluster-1)*25;
+  drawMap(false);
+  return false;
+}
+
+drawMap(true);
+
+canvas.addEventListener('mouseup', showInfo, false);
+
+</script>
+</body>
+</html>
+
+
+<!--
+10. Linkability from clickable genes?
+13. Update user instructions on use
+14. Jump-to-cluster Box
+
+CHECK 1. Scrolling up/left
+CHECK 2. Stop scrolling past the end
+CHECK 3. Fix so that you can see the key
+CHECK 4. Draw 7 ref points on key, not 5
+CHECK 5. Fix clickability
+CHECK 6. Resizable boxes
+CHECK 7. Make hardcoded numbers into variables
+CHECK 8. Fix heatmap initialization
+CHECK 9. Fix text size/positioning for resizable boxes
+CHECK 11. Fix weird row at the bottom of the heatmap that isn't rendering
+CHECK 12. Fix upwards scroll speed
+
+-->
\ No newline at end of file
diff --git a/Personnel/miles/Web Page/planteome_example.php b/Personnel/miles/Web Page/planteome_example.php
new file mode 100644 (file)
index 0000000..63b05ae
--- /dev/null
@@ -0,0 +1,314 @@
+<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
+<?php
+//read all post parameters                                      
+ if ($_POST) {                             
+        $spec1 = $_POST['spec1'];          
+        $spec2 = $_POST['spec2'];          
+        if (isset($_POST['pair'])) {$pair = $_POST['pair'];}
+        if (isset($_POST['super'])) {$super = $_POST['super'];}
+        //when a file is uploaded
+        if (isset($_POST['genelist'])) {
+                       $genelist=$_POST['genelist'];
+                       //create an array from the gene ids from the uploaded file
+               $geneArray=explode(",",$genelist);
+               echo "<h2 style='text-align:center'><br>File uploaded successfully! Now proceed to choose other options</h2><br><br>";
+               }
+               //when the user enters gene ids into the textarea
+        else if (isset($_POST['gene'])) {      
+                       $gene = $_POST['gene'];
+                       $geneArray=explode("\n",$gene);
+                       $count = count($geneArray);
+                       if($count > 0 && trim($geneArray[$count-1]) == ""){
+                                       unset($geneArray[$count -1]);                           
+                               }
+               } 
+  }
+  //db Config values
+  $dbHost = "floret.cgrb.oregonstate.local";
+  $dbUser = "planteome_php";
+  $dbPwd = "planteome_php-pw"; 
+  
+  //global variables to hold the list of species values. This is passed to download.php for downloading protein sequence in fasta format
+  $specieslist="";
+  $geneids="";  
+  
+  //global variables to hold the list of results. This is passed to download.php for downloading the results as a text file.
+  $pairSearchResult = "";
+  $superClusterSearchResult = ""; 
+  
+  $showFastaDownloadLink = true;
+  $showDataDownloadLink = true;
+  $sep="~";
+  //function that fetches all results from the db                                                           
+ function mysql_fetch_all($query, $conn) {
+        $result = mysql_query($query, $conn);
+       if (!$result) {                                                                           
+               echo "DB Error, could not find cluster id<br>";                                         
+               echo "MySQL Error: " . mysql_error() . "<br>";                                          
+       }
+        $rows = array();
+        while($row = mysql_fetch_assoc($result)) {
+            $rows[] = $row;
+        }
+        return $rows;
+    }
+    
+    //function that builds query from the geneArray
+    function buildQueryFromGeneArray($query,$geneArray){
+                       for($i=0;$i<=count($geneArray)-1;){
+                               if(trim($geneArray[$i]) != ""){
+                                               $query = $query . " gene LIKE '%".trim($geneArray[$i])."%'";
+                                       }
+                                       $i++;
+                                       if($i!=count($geneArray) && trim($geneArray[$i]) != ""){
+                                               $query = $query. " OR ";                                                
+                                               }                       
+                               }
+                               return $query;          
+       }
+?> 
+<!-- html for file upload section -->    
+<p>Upload a .txt file containing the list of gene ids. Make sure the file contains only one gene id per line</p>                               
+<form style="width:385px;margin-bottom:17px;" action="/php/upload.php" enctype="multipart/form-data" method="POST" onsubmit="if(document.getElementsByName('genelistFile')[0].value == ''){alert('Choose a file first');return false;}">
+    <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
+    <input name="genelistFile" type="file" />
+    <input type="submit" value="Upload file" />
+</form>
+<b>or</b>
+<p>Enter gene id(s) in the textarea below. Make sure you enter only one gene id per line.</p>
+<form method='post'>
+  <table border=1 align='CENTER'>
+  <!-- the following piece of code is in a single line to avoid additional new line characters introduced into the textarea. 
+  The php code loops through the genelist which is an array containing as gene ids from the file upload -->
+         <textarea cols="30" rows="10" name="gene"><?php if(isset($genelist) || isset($gene)){foreach($geneArray as $geneVal){print stripslashes($geneVal)."\n";}}?></textarea>
+    <tr>                                                                                                       
+        <td>Species&nbsp;1:</td>                                                                                    
+        <td>                                                                                                   
+        <?php   
+        //list box for species 1                                                                                               
+                $connection = mysql_connect($dbHost,$dbUser,$dbPwd);
+                $query = "show tables from protein_sequences";                                                  
+                $rsrcResult = mysql_query($query);                        
+                if (!$rsrcResult) {                                                                             
+                        echo "DB Error, could not list tables\n";                                               
+                        echo 'MySQL Error: ' . mysql_error();                                                   
+                }                                                                                              
+                echo "<select name='spec1'>";                                                                   
+                while($arrayRow = mysql_fetch_row($rsrcResult)) {                                               
+                        if (isset($spec1)&&$spec1==$arrayRow[0]) {                                              
+                                echo "<option selected>{$arrayRow[0]}</option>";                                
+                        }else{                                                                                  
+                                echo "<option>{$arrayRow[0]}</option>";                                         
+                        }                                                                                       
+                      //echo "$rsrcResult";                                                                     
+                      //echo "Table: {$arrayRow[0]}\n";                                                         
+                }                                                                                               
+                echo "</select>";                                                                               
+        ?>                                                                                                      
+        </td>                                                                                                   
+     </tr>                                                                                                      
+    <tr>                                                                                                        
+        <td>Species 2:</td>                                                                                     
+        <td>                                                                                                    
+        <?php                   
+        //list box for species 2                                                                                
+                $connection = mysql_connect($dbHost,$dbUser,$dbPwd);
+                $query = "show tables from protein_sequences";                                                  
+                $rsrcResult = mysql_query($query);                                                              
+                if (!$rsrcResult) {                                                                             
+                        echo "DB Error, could not list tables\n";                                               
+                        echo 'MySQL Error: ' . mysql_error();                                                   
+                }                                                                                               
+                echo "<select name='spec2'>";                                                                   
+                while($arrayRow = mysql_fetch_row($rsrcResult)) {                                               
+                        if (isset($spec2)&&$spec2==$arrayRow[0]) {                                              
+                                echo "<option selected>{$arrayRow[0]}</option>";                                
+                        }else{                                                                                  
+                                echo "<option>{$arrayRow[0]}</option>";                                         
+                        }                                                                                       
+                      //echo "$rsrcResult";                                                                     
+                      //echo "Table: {$arrayRow[0]}\n";                                                         
+                }                                                                                               
+                echo "</select>";                                                                               
+        ?>                                                                                                      
+        </td>                                                                                                   
+     </tr>                                                                                                      
+                                                                          
+    <tr>                                                                                                        
+        <td></td>      
+        <td align='CENTER'>                                                                                     
+          <input type='submit' name="pair" value='Search species-species'  onclick="if(document.getElementsByName('spec1')[0].value == document.getElementsByName('spec2')[0].value){alert('Choose different species');return false;}">                                      
+        </td>                                                                                                   
+    </tr>                                                                                                       
+    <tr>                                                                                                        
+        <td></td>                                                                                               
+        <td align='CENTER'>                                                                                     
+          <input type='submit' name="super" value='Search across all species'>                                  
+        </td> 
+</tr>
+  </table>                                                                                                      
+</form>                                                                                                         
+
+<br>
+<br>
+
+<?php
+    if(isset($pair)) {
+        if($spec1 == $spec2) {
+                       echo "choose different gene ids";
+               }
+               else{                                               
+                       $species = array("$spec1", "$spec2");        
+               sort($species);                              
+               $connection = mysql_connect($dbHost,$dbUser,$dbPwd);
+               mysql_select_db("inparanoid_data_eucalyptus");                                                             
+               $table = "$species[0]" . "_" . "$species[1]";
+                               if(isset($geneArray)){
+                                       $query1 = "select id from $table where ";
+                                       $query1 = buildQueryFromGeneArray($query1,$geneArray);
+                               }
+                               $rowArray = mysql_fetch_all($query1,$connection);
+                               for($i=0;$i<=count($rowArray)-1;$i++){
+                                       $row = $rowArray[$i];
+                       $clust_id = $row["id"];                                                                       
+                       $query2 = "select * from $table where id = '$clust_id'";                                        
+                       $query2Result = mysql_query($query2);                                                           
+                       if (!$query2Result) {
+                               echo "DB Error, could not find cluster<br>";
+                               echo "MySQL Error: " . mysql_error(). "<br>";
+                                       }                                                                                                                 
+                       $num = mysql_num_rows($query2Result);
+                               if($num > 0) {                                                                                                                                          
+                                       if($showFastaDownloadLink){
+                                                       echo "<a id='ptf' style='color:#5895BE;cursor:pointer;'>Click here to download all results as a <b>FASTA</b> file</a><br>";
+                                                       //this link has to be shown only one. so set the variable $showFastaDownloadLink to false after first time;
+                                       $showFastaDownloadLink = false;                                 
+                                               }
+                                       if($showDataDownloadLink){
+                                                       echo "<a id='ptt' style='color:#5895BE;cursor:pointer;'>Click here to download all results as a <b>text</b> file</a><br>";
+                                                       //this link has to be shown only one. so set the variable $showDataDownloadLink to false after first time;
+                                       $showDataDownloadLink = false;                                  
+                                               }
+                                       }
+                                       if($i==0){
+                                               echo "<table border=1 align='CENTER'>";                                                         
+                                       echo "<tr><td colspan='5' align='CENTER'><b>Results for species-species pair search</b></td></tr>"; 
+                                       echo "<tr>";                                                                                        
+                                       echo "<td>bit score</td><td>species</td><td>orthology score</td><td>gene</td>";          
+                                       echo "</tr>";
+                                       }
+                                       $j=0;
+                                       while ($j <$num) {
+                               $bit_score=mysql_result($query2Result,$j,"bit_score");
+                       $species=mysql_result($query2Result,$j,"species");
+                       $score=mysql_result($query2Result,$j,"score");
+                       $gene_return=mysql_result($query2Result,$j,"gene");
+                       $gene_return_url="<a href=11?species=$species&gene=$gene_return>$gene_return</a>";
+                     
+                                               $specieslist= $specieslist == "" ? $species : $specieslist.','.$species;
+                                               $geneids = $geneids == "" ? $gene_return : $geneids.','.$gene_return;   
+
+                                               if($score ==1) {$score = '1.00';}
+                                               echo "<tr>";
+                       echo "<td>$bit_score</td><td>".str_replace('_',' ',$species)."</td><td>$score</td><td>$gene_return_url</td>";
+                       echo "</tr>";
+                       $j++;
+                       $res = $clust_id.$sep.$bit_score.$sep.$species.$sep.$score.$sep.$gene_return;
+                       if($pairSearchResult != "")
+                               $pairSearchResult=$pairSearchResult.",".$res;
+                       else
+                                       $pairSearchResult=$res;
+                                       }                  
+                               }
+                               echo "</table>";
+       mysql_close();        
+               }
+}
+
+if(isset($super)) {
+       $connection = mysql_connect($dbHost,$dbUser,$dbPwd);
+   mysql_select_db("inparanoid_data_eucalyptus");
+       if(isset($geneArray)){
+               $query1 = "select super_id from super_clust where ";
+               $query1 = buildQueryFromGeneArray($query1,$geneArray);
+       }
+   $rowArray = mysql_fetch_all($query1,$connection); 
+       for($i=0;$i<=count($rowArray)-1;$i++){
+               $row = $rowArray[$i];
+               $super_id = $row["super_id"];                                                                                 
+               $query2 = "select * from super_clust where super_id = '$super_id'";
+          $query2Result = mysql_query($query2);
+               if (!$query2Result) {
+                       echo "DB Error, could not find cluster<br>";
+                  echo "MySQL Error: " . mysql_error(). "<br>";
+               }
+               $num = mysql_num_rows($query2Result);
+               if($num > 0) {                                                                                                                                          
+       if($showFastaDownloadLink){
+                               echo "<a id='ptf' style='color:#5895BE;cursor:pointer;'>Click here to download all results as a <b>FASTA</b> file</a><br>";
+                               //this link has to be shown only one. so set the variable $showFastaDownloadLink to false after first time;
+                  $showFastaDownloadLink = false;                                      
+                       }
+               if($showDataDownloadLink){
+                               echo "<a id='ptt' style='color:#5895BE;cursor:pointer;'>Click here to download all results as a <b>text</b> file</a><br>";
+                               //this link has to be shown only one. so set the variable $showDataDownloadLink to false after first time;
+                  $showDataDownloadLink = false;                                       
+                       }
+               }
+               if($i==0){
+                       echo "<table border=1 align='CENTER'>";
+                  echo "<tr><td colspan='3' align='CENTER'><b>Results from supercluster search</b></td></tr>";
+                  echo "<tr>";
+                  echo "<td>supercluster id</td><td>species</td><td>gene</td>";
+                  echo "</tr>";
+               }
+               $j = 0;
+               while ($j < $num) {
+                       $super_id_result=mysql_result($query2Result,$j,"super_id");
+               $species=mysql_result($query2Result,$j,"species");
+               $gene_result=mysql_result($query2Result,$j,"gene");
+               $gene_result_url="<a href=11?species=$species&gene=$gene_result>$gene_result</a>";
+               
+               $specieslist= $specieslist == "" ? $species : $specieslist.','.$species;
+                       $geneids = $geneids == "" ? $gene_result : $geneids.','.$gene_result;
+
+                       echo "<tr>";
+               echo "<td>$super_id_result</td><td>".str_replace('_',' ',$species)."</td><td>$gene_result_url</td>";
+               echo "</tr>";
+               $j++;
+               $res = $super_id_result.$sep.$species.$sep.$gene_result;
+               if($superClusterSearchResult != "")
+                       $superClusterSearchResult=$superClusterSearchResult.",".$res;
+               else
+                       $superClusterSearchResult=$res;
+               }
+       }
+       echo "</table>";
+       mysql_close();
+}
+       //to be used for downloading protein sequence is fasta format
+       if(isset($geneArray)){
+               $genelist = implode(',', $geneArray);
+               }
+?>
+<iframe id="fFrm" style="height:0px;width:0px;" src="/php/fileForm.html"></iframe>
+<script type="text/javascript">
+$(document).ready(function(){
+       $("#ptf").click(function() {
+               iframeForm = $("#fFrm").contents().find("#form");
+               iframeForm.find('input[name=type]').val("fasta");               
+               iframeForm.find('input[name=genelist]').val("<?php echo $geneids ?>");
+               iframeForm.find('input[name=specieslist]').val("<?php echo $specieslist ?>");
+               iframeForm.submit();
+               });
+$("#ptt").click(function() {
+               iframeForm = $("#fFrm").contents().find("#form");
+               iframeForm.find('input[name=type]').val("txt");
+               iframeForm.find('input[name=pairSearchResult]').val("<?php echo $pairSearchResult ?>");
+               iframeForm.find('input[name=superClusterSearchResult]').val("<?php echo $superClusterSearchResult ?>");
+               iframeForm.submit();
+               });
+});
+</script>
+
diff --git a/Personnel/miles/Web Page/testing b/Personnel/miles/Web Page/testing
new file mode 100644 (file)
index 0000000..0e5b4e2
--- /dev/null
@@ -0,0 +1,4 @@
+mgf009407m
+RMZM2G457201_T02
+LOC_Os03g53530.1
+Bradi3g44220.1 
diff --git a/Personnel/miles/Web Page/testing.txt b/Personnel/miles/Web Page/testing.txt
new file mode 100644 (file)
index 0000000..da660c7
--- /dev/null
@@ -0,0 +1,1000 @@
+16041819\r
+OTTHUMP00000011946\r
+AC233651_18\r
+LOC_Os06g31860.1\r
+16971567\r
+ENSRNOG00000000415\r
+Glyma07g32610.1\r
+ppa019648m\r
+Sb10g004160\r
+mgf015929m\r
+Sb07g004520\r
+OTTMUSP00000017073\r
+gene07278\r
+Glyma08g09400.1\r
+ENSRNOG00000033917\r
+ENSDARG00000079543\r
+16050800\r
+GRMZM2G092776_T07\r
+1882832\r
+mgf019760m\r
+Bradi4g02950.1\r
+gene19772\r
+LOC_Os08g21490.1\r
+OTTHUMP00000177975\r
+OTTHUMP00000177816\r
+FBpp0072415\r
+ppa011342m\r
+GRMZM2G099619_T01\r
+CBN80114.1\r
+LOC_Os11g02550.1\r
+15421740\r
+POPTR_0005s12280\r
+POPTR_0011s06930\r
+gene27168\r
+MGG_04661T0\r
+1897707\r
+ppa016666m\r
+Medtr2g091610\r
+cassava6461.valid.m1\r
+Medtr3g148610\r
+15410417\r
+1901110\r
+ppa004337m\r
+PHUM009840-PA\r
+GRMZM2G053111_T01\r
+cassava29270.valid.m1\r
+mgf024342m\r
+Glyma02g07510.1\r
+cassava3187.m1\r
+Bradi2g06370.1\r
+OTTHUMP00000224162\r
+POPTR_0005s17820\r
+GSVIVT00016075001\r
+POPTR_0013s10540\r
+1885627\r
+FBpp0086358\r
+OTTHUMP00000077232\r
+NCU06496T0\r
+gene10784\r
+Glyma04g37320.1\r
+ENSRNOG00000014846\r
+Glyma13g32310.1\r
+YFL061W\r
+LOC_Os04g51780.1\r
+GRMZM2G164020_T01\r
+CBJ30107.1\r
+16044512\r
+302523\r
+Glyma14g38110.1\r
+16061997\r
+LOC_Os02g12740.1\r
+16040072\r
+1901581\r
+16055301\r
+gene19518\r
+OTTHUMP00000202240\r
+gene20319\r
+ppa006614m\r
+Bradi3g39120.1\r
+GRMZM2G470942_T03\r
+mgf000634m\r
+POPTR_0006s07610\r
+MGG_04485T0\r
+1889536\r
+cassava2789.m1\r
+CU571152_16\r
+1900571\r
+GRMZM2G116010_T01\r
+cassava9605.m1\r
+GRMZM2G131321_T03\r
+PHUM538540-PA\r
+FBpp0077793\r
+cassava41111.m1\r
+ENSDARG00000074874\r
+Medtr7g076460\r
+ABG51617.1\r
+gene12112\r
+OTTMUSP00000040338\r
+Medtr1g122290\r
+AT1G66650.1\r
+LOC_Os06g24760.1\r
+GSVIVT00021990001\r
+ENSDARG00000079945\r
+mgf013174m\r
+16963255\r
+OTTHUMP00000209353\r
+15415563\r
+Sb06g032460\r
+1903881\r
+RO3G_08626.1\r
+1893212\r
+cassava16122.m1\r
+PHUM529430-PA\r
+16974574\r
+Glyma06g39470.1\r
+AT1G69820.1\r
+mgf005090m\r
+RO3G_01500.1\r
+Bradi1g44170.1\r
+POPTR_0009s07610\r
+RO3G_05990.1\r
+ENSDARG00000078344\r
+Sb05g025260\r
+RO3G_13634.1\r
+POPTR_0008s08850\r
+OTTHUMP00000021630\r
+16972652\r
+OTTMUSP00000012948\r
+gene25178\r
+FBpp0082382\r
+Glyma06g44890.1\r
+LOC_Os08g36170.1\r
+Medtr8g146170\r
+ENSRNOG00000001065\r
+ppa000711m\r
+GRMZM2G122145_T02\r
+Bradi3g09740.1\r
+NCU01401T0\r
+OTTHUMP00000076886\r
+GRMZM2G040069_T04\r
+LOC_Os04g29900.1\r
+POPTR_0007s11250\r
+OTTHUMP00000206045\r
+ENSRNOG00000016319\r
+GSVIVT00015473001\r
+OTTMUSP00000026695\r
+ENSRNOG00000009718\r
+Bradi2g17320.1\r
+16978466\r
+AT4G32630.1\r
+Medtr5g103290\r
+YNR034W\r
+Au9.Cre12.g561100.t1\r
+FBpp0088258\r
+WBGene00007434\r
+GRMZM2G388684_T01\r
+15407591\r
+Medtr2g077070\r
+GSVIVT00006426001\r
+cassava40155.m1\r
+Glyma07g09560.1\r
+16064370\r
+cassava15189.m1\r
+RO3G_17100.1\r
+OTTMUSP00000017027\r
+Glyma09g40860.1\r
+Glyma19g28310.1\r
+ENSDARG00000005092\r
+OTTMUSP00000005781\r
+OTTHUMP00000211147\r
+cassava29309.valid.m1\r
+Glyma12g06640.1\r
+16973369\r
+slr0545\r
+15408865\r
+POPTR_0007s02570\r
+Sb06g020120\r
+POPTR_0005s15840\r
+ENSDARG00000055357\r
+Glyma15g20160.1\r
+Glyma03g37410.1\r
+FBpp0076231\r
+GRMZM2G389895_T01\r
+GRMZM2G356178_T01\r
+POPTR_0014s10750\r
+SPAC27E2.08\r
+Glyma08g40980.1\r
+ppb021310m\r
+OTTMUSP00000032409\r
+LOC_Os08g08040.1\r
+ENSRNOG00000003936\r
+GRMZM2G017941_T01\r
+16961828\r
+FBpp0073768\r
+PHUM600210-PA\r
+GRMZM2G048106_T01\r
+1891261\r
+FBpp0073950\r
+LOC_Os11g03570.1\r
+gene22545\r
+ENSRNOG00000043510\r
+Sb10g003400\r
+NCU07821T0\r
+16958567\r
+29801.t000184\r
+ENSRNOG00000007890\r
+OTTMUSP00000020183\r
+cassava31801.valid.m1\r
+30131.t000259\r
+gene29954\r
+OTTHUMP00000176123\r
+POPTR_0014s17280\r
+POPTR_0005s18990\r
+OTTHUMP00000196170\r
+GRMZM2G439860_T01\r
+mgf001071m\r
+POPTR_0006s03650\r
+cassava20410.m1\r
+GRMZM2G127050_T02\r
+cassava2204.valid.m1\r
+OTTHUMP00000002064\r
+OTTMUSP00000031772\r
+POPTR_0009s12160\r
+Bradi1g35050.1\r
+Glyma02g47430.1\r
+GRMZM2G061745_T04\r
+FBpp0073496\r
+OTTMUSP00000019683\r
+YGR108W\r
+MGG_05706T0\r
+cassava25232.valid.m1\r
+GSVIVT00013254001\r
+cassava22552.valid.m1\r
+16054887\r
+1910193\r
+ppa008674m\r
+PHUM221330-PA\r
+16050261\r
+Medtr7g103920\r
+16977627\r
+mgf025524m\r
+gene21327\r
+AT2G39730.1\r
+FBpp0083065\r
+evm.TU.supercontig_8.134\r
+Medtr8g146690\r
+29687.t000036\r
+ppa018355m\r
+LOC_Os03g06980.1\r
+AT3G29635.1\r
+16043070\r
+Sb07g023575\r
+Glyma20g27560.1\r
+30677.t000001\r
+ENSDARG00000076385\r
+GRMZM2G031954_T03\r
+15421995\r
+mgf015141m\r
+ENSDARG00000038770\r
+16046251\r
+15414203\r
+gene27714\r
+cassava31671.valid.m1\r
+ENSRNOG00000017994\r
+FBpp0075837\r
+AT4G13690.1\r
+RO3G_15864.1\r
+POPTR_0008s15160\r
+Medtr2g017370\r
+OTTMUSP00000023785\r
+15403135\r
+OTTHUMP00000033825\r
+GSVIVT00021841001\r
+16046165\r
+AT5G20730.1\r
+PHUM207310-PA\r
+Medtr1g116980\r
+16039424\r
+POPTR_0005s21180\r
+RO3G_12936.1\r
+LOC_Os01g72200.1\r
+RO3G_11426.1\r
+187336\r
+FBpp0291340\r
+RO3G_14076.1\r
+Sb03g001710\r
+Sb02g007840\r
+mgf013511m\r
+Glyma20g01780.1\r
+POPTR_0009s14230\r
+Glyma04g07140.1\r
+YPR072W\r
+16957930\r
+FBpp0070683\r
+GSVIVT00022031001\r
+LOC_Os06g02200.1\r
+ENSDARG00000070786\r
+gene02640\r
+15414410\r
+MGG_13015T0\r
+ENSDARG00000008212\r
+POPTR_0004s13590\r
+cassava12930.valid.m1\r
+OTTHUMP00000071851\r
+ENSDARG00000079590\r
+ENSRNOG00000021896\r
+OTTMUSP00000001202\r
+SPAPB24D3.04c\r
+ENSDARG00000040001\r
+SPBC20F10.09\r
+Bradi1g70600.1\r
+WBGene00016341\r
+Bradi2g30160.1\r
+gene17539\r
+cassava7167.valid.m1\r
+gene20217\r
+OTTHUMP00000201395\r
+OTTHUMP00000204858\r
+OTTHUMP00000076447\r
+GRMZM2G151425_T01\r
+Glyma15g05310.1\r
+AT5G45430.1\r
+MGG_11391T0\r
+16953381\r
+PHUM601890-PA\r
+cassava242.valid.m1\r
+PHUM363550-PA\r
+OTTMUSP00000024855\r
+16065756\r
+cassava6040.valid.m1\r
+AC218900.3_FGT001\r
+GRMZM2G134421_T01\r
+cassava29134.valid.m1\r
+Medtr4g100690\r
+POPTR_0015s08000\r
+ppa012962m\r
+Glyma11g06000.1\r
+ppa025030m\r
+256696\r
+mgf017810m\r
+OTTHUMP00000204451\r
+GSVIVT00029206001\r
+16040076\r
+cassava2036.valid.m1\r
+16063126\r
+Glyma13g38250.1\r
+OTTHUMP00000176948\r
+ENSDARG00000053617\r
+OTTHUMP00000024016\r
+OTTMUSP00000019844\r
+16969283\r
+GSVIVT00024341001\r
+GRMZM2G059083_T03\r
+Sb06g019490\r
+cassava22979.valid.m1\r
+ENSRNOG00000003346\r
+GRMZM2G040890_T01\r
+OTTHUMP00000213774\r
+CBN76186.1\r
+LOC_Os10g33910.1\r
+Bradi1g77370.1\r
+16055434\r
+15405831\r
+FBpp0072928\r
+cassava46758.m1\r
+LOC_Os10g11150.1\r
+MGG_06185T0\r
+Au9.Cre09.g401350.t1\r
+OTTMUSP00000021358\r
+ACC82798.1\r
+Medtr7g084760\r
+OTTMUSP00000047964\r
+FBpp0081593\r
+307143\r
+16059507\r
+FBpp0083919\r
+1909504\r
+AT4G00040.1\r
+OTTMUSP00000019867\r
+16975012\r
+LOC_Os04g37980.1\r
+LOC_Os03g38390.1\r
+cassava35325.valid.m1\r
+cassava31179.valid.m1\r
+Bradi1g42930.1\r
+Glyma05g21910.1\r
+OTTHUMP00000122596\r
+Sb01g032880\r
+Sb07g022580\r
+AT5G65670.1\r
+16976929\r
+OTTHUMP00000018671\r
+Glyma17g02620.1\r
+ENSRNOG00000015368\r
+AT1G68720.1\r
+Medtr6g043700\r
+ppa011644m\r
+OTTMUSP00000024929\r
+PHUM097450-PA\r
+AT2G20260.1\r
+NCU09513T0\r
+Sb10g001470\r
+Glyma15g41080.1\r
+Sb05g006260\r
+16052093\r
+1886956\r
+16967150\r
+ppa007277m\r
+OTTHUMP00000169840\r
+ssr2130\r
+AT1G07080.1\r
+30226.t000059\r
+OTTHUMP00000175375\r
+Sb03g041160\r
+OTTHUMP00000228194\r
+ENSRNOG00000021442\r
+GRMZM2G136185_T01\r
+Medtr7g010860\r
+OTTMUSP00000006473\r
+OTTHUMP00000160200\r
+POPTR_0014s01640\r
+OTTMUSP00000043420\r
+cassava7564.valid.m1\r
+Bradi2g11840.1\r
+LOC_Os04g13450.1\r
+AT1G44030.1\r
+LOC_Os05g27450.1\r
+AT3G42550.1\r
+Au9.Cre18.g749150.t1\r
+WBGene00018399\r
+Au9.Cre13.g568350.t1\r
+Au9.Cre03.g194250.t1\r
+GSVIVT00030518001\r
+ENSDARG00000028067\r
+CBN76696.1\r
+WBGene00017154\r
+cassava18860.valid.m1\r
+OTTHUMP00000147528\r
+cassava23674.valid.m1\r
+cassava42154.valid.m1\r
+1905432\r
+Glyma18g48470.1\r
+WBGene00003619\r
+OTTMUSP00000048540\r
+Sb08g016640\r
+16062108\r
+gene23638\r
+Glyma10g30680.1\r
+NCU06012T0\r
+16955139\r
+16980240\r
+LOC_Os03g58260.1\r
+LOC_Os04g56570.1\r
+GRMZM2G145107_T03\r
+FBpp0078921\r
+OTTHUMP00000018509\r
+GSVIVT00013377001\r
+OTTHUMP00000081384\r
+16977576\r
+OTTHUMP00000200946\r
+ENSDARG00000022509\r
+OTTMUSP00000038183\r
+16954746\r
+16962156\r
+ppa023939m\r
+DH10B_10_AEC-0003077\r
+OTTMUSP00000024025\r
+Medtr3g105910\r
+POPTR_0005s10140\r
+AT1G11810.1\r
+Glyma09g29360.1\r
+1891503\r
+16043234\r
+POPTR_0009s02120\r
+gene25753\r
+Glyma06g13970.1\r
+Glyma10g35410.1\r
+Sb06g027410\r
+B2J876.1\r
+cassava6786.valid.m1\r
+OTTHUMP00000077451\r
+Glyma04g04780.1\r
+ENSRNOG00000017767\r
+GSVIVT00022581001\r
+GRMZM2G122164_T01\r
+29739.t000019\r
+gene27104\r
+ENSRNOG00000003893\r
+16041830\r
+AT4G32920.1\r
+16058213\r
+OTTMUSP00000014826\r
+ppa017337m\r
+FBpp0086441\r
+30055.t000050\r
+29613.t000018\r
+FBpp0080895\r
+RO3G_11314.1\r
+WBGene00003171\r
+GRMZM2G062724_T02\r
+GRMZM2G169240_T02\r
+ppa016236m\r
+mgf006016m\r
+OTTMUSP00000036558\r
+Sb01g041740\r
+POPTR_0015s08780\r
+FBpp0292004\r
+Medtr4g022580\r
+Bradi4g33900.1\r
+Medtr2g021380\r
+Medtr5g082780\r
+OTTMUSP00000031890\r
+GSVIVT00005758001\r
+ppa001862m\r
+16045752\r
+OTTMUSP00000023143\r
+Bradi4g00270.1\r
+ENSDARG00000015003\r
+29000.t000002\r
+WBGene00006411\r
+AC235673_34\r
+GRMZM2G114948_T01\r
+Sb08g022150\r
+ACC79552.1\r
+16058594\r
+POPTR_0012s04280\r
+GRMZM2G167613_T02\r
+CBN76100.1\r
+AT1G22340.1\r
+gene22908\r
+OTTHUMP00000227672\r
+AT1G02300.1\r
+GRMZM2G084035_T01\r
+1895463\r
+Au9.Cre11.g472500.t1\r
+YMR188C\r
+OTTHUMP00000225327\r
+ppa026236m\r
+FBpp0075818\r
+AT1G49660.1\r
+POPTR_0001s12170\r
+LOC_Os01g15020.1\r
+Sb07g020040\r
+GSVIVT00037970001\r
+POPTR_0006s25760\r
+mgf014836m\r
+FBpp0112323\r
+BDEG_07296\r
+LOC_Os01g73960.1\r
+Sb04g025640\r
+OTTHUMP00000198878\r
+OTTHUMP00000175635\r
+GRMZM2G067462_T01\r
+1911371\r
+OTTHUMP00000029153\r
+145157\r
+GRMZM2G375172_T01\r
+Medtr2g049870\r
+OTTMUSP00000025224\r
+ENSRNOG00000028533\r
+AT1G08170.1\r
+OTTMUSP00000016979\r
+cassava32619.m1\r
+ENSDARG00000004726\r
+OTTHUMP00000215920\r
+ENSRNOG00000020961\r
+cassava14741.m1\r
+mgf013950m\r
+mgf015771m\r
+16052850\r
+Bradi4g40200.1\r
+OTTMUSP00000033984\r
+ppa001748m\r
+gene19347\r
+LOC_Os04g56320.1\r
+ACC82649.1\r
+Bradi5g23820.1\r
+29848.t000010\r
+cassava14151.m1\r
+Au9.Cre01.g048650.t1\r
+FBpp0080829\r
+15408157\r
+ppa000956m\r
+OTTHUMP00000029554\r
+16057124\r
+BDEG_04235\r
+WBGene00003523\r
+GRMZM2G053319_T01\r
+cassava17002.m1\r
+30147.t000663\r
+15412187\r
+AT1G18850.1\r
+OTTMUSP00000034915\r
+Medtr7g064560\r
+GRMZM2G417262_T01\r
+Bradi4g01720.1\r
+GSVIVT00032006001\r
+ACC81520.1\r
+MGG_02916T0\r
+gene25553\r
+16961915\r
+POPTR_0006s16940\r
+Sb03g002500\r
+OTTMUSP00000029985\r
+16979926\r
+mgf002719m\r
+Glyma04g01130.1\r
+1910206\r
+cassava46828.m1\r
+Medtr5g100640\r
+evm.TU.supercontig_18.102\r
+16957501\r
+WBGene00006537\r
+FBpp0084177\r
+LOC_Os12g34140.1\r
+GRMZM2G318689_T01\r
+NCU06920T0\r
+OTTHUMP00000203160\r
+SPBC29A10.08\r
+OTTMUSP00000037344\r
+POPTR_0001s31340\r
+GRMZM2G075485_T02\r
+LOC_Os03g42420.1\r
+Glyma16g27730.1\r
+16952827\r
+16065619\r
+LOC_Os06g19710.1\r
+gene18308\r
+GRMZM2G121150_T03\r
+OTTHUMP00000176429\r
+Medtr1g087280\r
+mgf015794m\r
+GSVIVT00022662001\r
+ENSRNOG00000013469\r
+FBpp0083202\r
+Medtr1g019860\r
+BDEG_06082\r
+Sb03g026100\r
+1891105\r
+ppa013332m\r
+YPL166W\r
+MGG_00830T0\r
+Sb08g005060\r
+ENSDARG00000074106\r
+POPTR_0014s01010\r
+16035709\r
+LOC_Os09g39770.1\r
+AT1G61960.1\r
+Bradi1g22800.1\r
+cassava37736.valid.m1\r
+LOC_Os04g29870.1\r
+Glyma01g02930.1\r
+OTTMUSP00000031662\r
+Medtr3g033980\r
+GRMZM2G111987_T01\r
+Bradi3g37970.1\r
+POPTR_0014s13650\r
+Bradi4g33290.1\r
+Sb01g000260\r
+FBpp0087780\r
+LOC_Os02g10600.1\r
+30178.t000004\r
+OTTMUSP00000031223\r
+GSVIVT00019470001\r
+Glyma17g01730.1\r
+AT1G24540.1\r
+30174.t000034\r
+cassava17249.m1\r
+POPTR_0006s12550\r
+GRMZM2G171031_T01\r
+Medtr5g096070\r
+RO3G_13884.1\r
+AC234702_15\r
+FBpp0076634\r
+ENSRNOG00000009343\r
+OTTMUSP00000044411\r
+Au9.Cre12.g546100.t1\r
+LOC_Os11g01460.1\r
+FBpp0291066\r
+Glyma10g00810.1\r
+PHUM228960-PA\r
+OTTMUSP00000044294\r
+Sb05g000390\r
+GSVIVT00031348001\r
+15420213\r
+Glyma03g26700.1\r
+29864.t000046\r
+OTTMUSP00000005753\r
+ABG50315.1\r
+ppa023491m\r
+Bradi2g57750.1\r
+16060851\r
+16053889\r
+GRMZM2G171520_T01\r
+1913428\r
+Bradi4g11180.1\r
+16965319\r
+mgf004697m\r
+PHUM565830-PA\r
+ENSDARG00000022564\r
+WBGene00020732\r
+gene12455\r
+ENSDARG00000020008\r
+Bradi1g32950.1\r
+16969448\r
+AT3G01015.1\r
+gene32217\r
+GRMZM2G355469_T01\r
+Bradi1g36100.1\r
+LOC_Os01g63910.1\r
+Au9.Cre03.g149450.t1\r
+BDEG_00833\r
+Glyma13g40350.1\r
+Au9.Cre12.g484300.t1\r
+mgf010158m\r
+AT2G35820.1\r
+Glyma10g04310.1\r
+Au9.Cre15.g647400.t1\r
+YIL148W\r
+GSVIVT00037066001\r
+cassava9335.m1\r
+CBN79469.1\r
+POPTR_0013s07130\r
+POPTR_0015s10520\r
+evm.TU.supercontig_19.157\r
+OTTHUMP00000014028\r
+LOC_Os01g73344.1\r
+AT2G37500.1\r
+OTTHUMP00000224645\r
+ppa010167m\r
+GRMZM2G143402_T01\r
+GSVIVT00019398001\r
+1912604\r
+AT1G27540.1\r
+POPTR_1795s00200\r
+gene12697\r
+AT1G21900.1\r
+16049168\r
+29701.t000036\r
+OTTMUSP00000029181\r
+OTTMUSP00000032043\r
+POPTR_0019s08480\r
+OTTHUMP00000196839\r
+29344.t000001\r
+OTTMUSP00000016070\r
+Sb05g027180\r
+31799.t000001\r
+cassava30721.valid.m1\r
+POPTR_0003s16340\r
+LOC_Os09g21940.1\r
+cassava30901.valid.m1\r
+AT5G22460.1\r
+Glyma18g39760.1\r
+Sb06g021210\r
+OTTHUMP00000163238\r
+POPTR_0011s12600\r
+OTTHUMP00000181972\r
+15402832\r
+Medtr2g095650\r
+cassava13731.valid.m1\r
+gene04928\r
+Medtr3g138420\r
+ENSDARG00000004405\r
+15417192\r
+MGG_05437T0\r
+WBGene00006125\r
+gene21395\r
+Bradi1g21560.1\r
+OTTMUSP00000032477\r
+RO3G_00988.1\r
+OTTMUSP00000018161\r
+GRMZM2G154087_T02\r
+Glyma17g18640.1\r
+OTTHUMP00000198481\r
+OTTMUSP00000020357\r
+FBpp0099925\r
+16972232\r
+ppa025109m\r
+OTTHUMP00000226430\r
+cassava26380.m1\r
+cassava17735.valid.m1\r
+gene09583\r
+GRMZM2G155954_T05\r
+AT1G64780.1\r
+GRMZM2G010422_T03\r
+Glyma01g40100.1\r
+ppa008498m\r
+ppa024960m\r
+gene03595\r
+mg013630m\r
+ppa010041m\r
+29428.t000014\r
+30147.t000085\r
+ENSDARG00000074387\r
+16980990\r
+27985.t000005\r
+ENSRNOG00000024277\r
+gene01100\r
+mgf015236m\r
+cassava37916.valid.m1\r
+ppa011305m\r
+RO3G_13127.1\r
+ppa026058m\r
+OTTHUMP00000109435\r
+LOC_Os10g07572.1\r
+16966570\r
+1901466\r
+ENSDARG00000074205\r
+16046337\r
+LOC_Os12g38630.1\r
+16052897\r
+Medtr4g045050\r
+evm.TU.supercontig_10.131\r
+PHUM268300-PA\r
+Glyma08g44920.1\r
+OTTHUMP00000023117\r
+30174.t000220\r
+Medtr3g160130\r
+29912.t000215\r
+OTTHUMP00000015721\r
+NCU09621T0\r
+mgf024757m\r
+1913981\r
+YHL002W\r
+CBN78400.1\r
+mg025118m\r
+GSVIVT00018511001\r
+WBGene00000035\r
+ENSDARG00000077688\r
+OTTMUSP00000012638\r
+GSVIVT00014314001\r
+OTTHUMP00000201515\r
+POPTR_0020s00560\r
+OTTHUMP00000215635\r
+16973476\r
+LOC_Os06g02900.1\r
+POPTR_0487s00200\r
+1896869\r
+Glyma17g33880.1\r
+ssr1399\r
+POPTR_0019s13080\r
+gene25078\r
+Medtr3g020650\r
+OTTHUMP00000077010\r
+Au9.Cre02.g114100.t1\r
+POPTR_0013s14690\r
+PHUM335250-PA\r
+FBpp0290204\r
+16063228\r
+ppa020551m\r
+NCU10012T0\r
+cassava40518.m1\r
+OTTMUSP00000027826\r
+Bradi2g05930.1\r
+308315\r
+cassava40581.m1\r
+ENSDARG00000078501\r
+GRMZM2G145204_T02\r
+OTTMUSP00000027343\r
+Medtr1g012910\r
+Glyma15g12900.1\r
+Glyma04g38360.1\r
+GSVIVT00017101001\r
+Sb04g006590\r
+NCU00863T0\r
+16057404\r
+16975296\r
+OTTHUMP00000226114\r
+Glyma18g16170.1\r
+ENSRNOG00000013687\r
+16061587\r
+FBpp0111550\r
+29904.t000155\r
+OTTHUMP00000078095\r
+gene34145\r
+OTTMUSP00000044863\r
+Glyma06g41430.1\r
+RO3G_03376.1\r
+Glyma02g16940.1\r
+gene02147\r
+cassava40827.m1\r
+OTTHUMP00000018924\r
+cassava22864.valid.m1\r
+ENSRNOG00000005923\r
+Glyma12g02470.1\r
+Bradi2g43350.1\r
+16048189\r
+AT4G25330.1\r
+312013\r
+BDEG_03350\r
+CBN78462.1\r
+Medtr4g157490\r
+GRMZM2G063917_T01\r
+16958999\r
+Au9.Cre01.g035850.t1\r
+Au9.Cre18.g747950.t1\r
+ENSDARG00000041746\r
+cassava30796.valid.m1\r
+ENSRNOG00000002501\r
+OTTHUMP00000219657\r
+RO3G_01289.1\r
+ENSDARG00000060723\r
+16037231\r
+GRMZM2G069162_T01\r
+29646.t000075\r
+WBGene00012658\r
+Sb01g034900\r
+Bradi1g16460.1\r
+29844.t000121\r
+ENSRNOG00000020641\r
+AC235488_23\r
+16058565\r
+Medtr5g009460\r
+ENSDARG00000036125\r
+Sb04g001470\r
+Glyma10g35070.1\r
+16055968\r
+Glyma05g02440.1\r
+16976209\r
+LOC_Os04g38920.1\r
+GSVIVT00025827001\r
+LOC_Os05g32230.1\r
+Glyma20g03690.1\r
+GSVIVT00036468001\r
+GSVIVT00029679001\r
+POPTR_0001s27460\r
+cassava1879.valid.m1\r
+LOC_Os09g39690.1\r
+OTTMUSP00000000939\r
+301120\r
+16979100\r
+16962605\r
+GRMZM2G136567_T01\r
+Glyma02g03800.1\r
+ppa002660m\r
+OTTMUSP00000034135\r
+FBpp0288544\r
+CBM38401.1\r
+ENSDARG00000026839\r
+ppa009622m\r
+RO3G_09933.1\r
+ENSDARG00000058893\r
+LOC_Os04g41150.1\r
+ENSDARG00000055857\r
+mgf014933m\r
+311959\r
+mgf006566m\r
+LOC_Os08g40450.1\r
+GRMZM2G022859_T02\r
+GSVIVT00034310001\r
+LOC_Os09g09810.1\r
+Medtr6g044100\r
+LOC_Os01g06560.1\r
+evm.TU.supercontig_1155.1\r
+RO3G_14626.1\r
+Glyma17g12180.1\r
+GSVIVT00016146001\r
+Bradi2g55030.1\r
+ppa002483m\r
+Bradi4g36230.1\r
+OTTMUSP00000023036\r
+15401917\r
+OTTHUMP00000159762\r
+ENSRNOG00000012397\r
+16060326\r
+LOC_Os03g48030.1\r
+POPTR_0007s03800\r
+AC217051.3_FGT006\r
+LOC_Os09g34200.1\r
+1916568\r
+ENSRNOG00000010640\r
+GRMZM2G041776_T01\r
+307590\r
+16058038\r
+OTTHUMP00000159084\r
+Bradi2g05620.1\r
+POPTR_0010s12400\r
+15404994\r
+Glyma20g01400.1\r
+ENSRNOG00000005524\r
+LOC_Os05g24770.1\r
+Glyma18g44530.1\r
+335684\r
+OTTMUSP00000012749\r
+29912.t000314\r
+15416198\r
+GRMZM2G145996_T01\r
+RO3G_15977.1\r
+gene08976\r
+gene09110\r
+ENSDARG00000037647\r
+ppa002228m\r
+OTTHUMP00000213436\r
+GSVIVT00004319001\r
+GRMZM2G031718_T01\r
+PHUM239050-PA\r
+ppa021103m\r
+Glyma15g17790.1\r
+30190.t000042\r
+16966810\r
diff --git a/Personnel/miles/Web Page/upload.php b/Personnel/miles/Web Page/upload.php
new file mode 100644 (file)
index 0000000..9bfc741
--- /dev/null
@@ -0,0 +1,54 @@
+<html>
+<head>
+</head>
+<body>
+
+<?php
+$goToNode10 = false;
+$data = "";    
+if ($_FILES["genelistFile"]["error"] > 0)
+{
+       echo "Error: " . $_FILES["genelistFile"]["error"] . "<br />";
+}
+else
+{
+       $fileType=$_FILES["genelistFile"]["type"];
+       if(strtolower($fileType) != "text/plain"){
+               echo "<h1> $fileType - Invalid file type. Please submit only .txt files</h1><a href='/node/10'>Click here again to upload a valid file</a>"     ;
+       }
+       else{
+               $fh = fopen($_FILES['genelistFile']['tmp_name'], "r");
+               if ($fh) {
+                       while (($line = fgets($fh, 4096)) !== false) {
+                               if($data == "")$data = trim($line);
+                               else $data = $data . " " . trim($line);
+                       }       
+                       if (!feof($fh)) {
+                               echo "fgets error";
+                       }
+                       fclose($fh);
+               }
+               $goToNode10      = true;
+//             echo $data;                     
+       }
+}
+?>
+<?php
+if($goToNode10){
+?>
+<form action="heatMap.php" name="genefileform" method="POST" style="display:none">
+<input type="text" name="genelist" value="<?php echo $data ?>">
+</form>
+<script type="text/javascript">
+       var formElements=document.getElementsByName("genefileform");
+       var form = formElements[0];
+       var genelist=document.getElementsByName("genefileform")[0].value;
+       if(genelist != ''){
+               form.submit();
+       }
+</script>
+<?php
+}
+?>
+</body>
+</html>