From 68fe1a28f01bece0a653568eab0a6065850e880f Mon Sep 17 00:00:00 2001 From: corywang Date: Sat, 4 Jul 2015 13:54:19 -0400 Subject: [PATCH] Removed need for base track --- VQI_GenomeBrowser.js | 51 ++++++++++++++++++++++++++++---------- VQI_GenomeBrowserDemo.html | 6 +++-- dynamic_loading.php | 41 +++++++++++++++++++++++++++++- 3 files changed, 82 insertions(+), 16 deletions(-) diff --git a/VQI_GenomeBrowser.js b/VQI_GenomeBrowser.js index cdeab03..840aea6 100755 --- a/VQI_GenomeBrowser.js +++ b/VQI_GenomeBrowser.js @@ -477,7 +477,6 @@ function VQI_GenomeBrowser(id) { //setTimeout(testRemove(), 5000); //testRemove(); - var myData; var start = (Math.round(xScale.domain()[0])).toString(); var end = (Math.round(xScale.domain()[1])).toString(); @@ -488,7 +487,7 @@ function VQI_GenomeBrowser(id) { var chrom = "chr1"; $.ajax({ - url: 'dynamic_loading.php', + url: 'http://localhost/dynamic_loading.php', type: 'POST', dataType: "json", data: { @@ -500,22 +499,17 @@ function VQI_GenomeBrowser(id) { } }).success(function (returnData) { - - myData = returnData; - //console.log(returnData); - removeTrack("HG19"); + + var i = getTrackIndexByName("HG19"); + trackList[i] = returnData; + trackList[i]['name'] = "HG19"; + trackList['type'] = "bed"; //console.log(trackList); - //reorderTracks(); - initTrack("HG19"); addBEDTrack(returnData, "HG19"); zoomOnly = true; zoomed(); zoomOnly = false; - data = testdata; - data['name'] = "HG19"; - data['type'] = "bed"; - trackList[1] = data; - reorderTracks(); + }).error(function (req, status, error) { $("body").append(status + ": " + error); @@ -1182,6 +1176,37 @@ function VQI_GenomeBrowser(id) { .style("stroke", "black") .style("stroke-width", "2px") }*/ + this.addTrackFromDatabase = function(){ + + //console.log(trackList); + //setTimeout(testRemove(), 5000); + //testRemove(); + + // var xScale = d3.scale.linear() + // .domain([-3953, 249241810]) + // .range([0,1000]); + var fileHandle = "upload1435711655"; + var chrom = "chr1"; + + + $.ajax({ + url: 'http://localhost/dynamic_loading.php', + type: 'POST', + dataType: "json", + data: { + "getStartEndHG19Data": "", + "fileHandle": fileHandle, + "chrom": chrom + } + + }).success(function (returnData) { + thisObj.addTrack(returnData, "HG19", "BED"); + }).error(function (req, status, error) { + $("body").append(status + ": " + error); + }); + + + } this.addTrack = function (data, name, type) { // data['name'] = name; diff --git a/VQI_GenomeBrowserDemo.html b/VQI_GenomeBrowserDemo.html index 70ec718..23d6cb8 100644 --- a/VQI_GenomeBrowserDemo.html +++ b/VQI_GenomeBrowserDemo.html @@ -26,8 +26,10 @@ var shelf = file_dir + "./shelve_hg19.txt"; //obj.loadCPGFiles(cpg, shoer, shelf); - var genomeFile = file_dir + "./T1_test.txt"; - obj.addTrackFile(genomeFile, "base", 'bed'); + //var genomeFile = file_dir + "./T1_test.txt"; + //obj.addTrackFile(genomeFile, "base", 'bed'); + + obj.addTrackFromDatabase(); var snpFile = file_dir + "./Tile2contentsnpplotter.txt"; //obj.addTrackFile(snpFile, "Tile2 Content Snp", 'bed'); diff --git a/dynamic_loading.php b/dynamic_loading.php index e2367d2..0da5969 100644 --- a/dynamic_loading.php +++ b/dynamic_loading.php @@ -45,6 +45,10 @@ $result = getHG19Data($_POST["fileHandle"], $_POST["chrom"], $_POST["start"], $_POST["end"]); ajaxReturn($result); } + else if (isset($_POST["getStartEndHG19Data"])){ + $result = getStartEndHG19Data($_POST["fileHandle"], $_POST["chrom"]); + ajaxReturn($result); + } else { loadTable(); } @@ -146,7 +150,9 @@ $scale = 1000/($end - $start); $sql = "SELECT `CHROM`, `CHROM_START`, `CHROM_END`, `GENESYMBOL`, `SCORE` FROM {$db_name}.{$fileHandle}"; - $sql .= " WHERE `CHROM` = '".$chrom."' AND `CHROM_START` BETWEEN $start AND $end"; + $sql .= " WHERE `CHROM` = '".$chrom."'"; + $sql .= " AND (((`CHROM_START` BETWEEN $start AND $end) OR (`CHROM_END` BETWEEN $start AND $end))"; + $sql .= " OR (`CHROM_START` <= $start AND `CHROM_END` >= $end))"; $sql .= " ORDER BY `CHROM_START` * 1 ASC"; $res = mysqli_query ($link,$sql); @@ -182,6 +188,39 @@ } + return $resArray; + } + + function getStartEndHG19Data($fileHandle,$chrom){ + $db_name = $GLOBALS['db_name']; + $link = $GLOBALS['DBlink']; + $resArray = []; + + + $sql = "SELECT `CHROM`, `CHROM_START`, `CHROM_END`, `GENESYMBOL`, `SCORE` FROM {$db_name}.{$fileHandle}"; + $sql .= " WHERE `CHROM` = '".$chrom."'"; + $sql .= " ORDER BY `CHROM_START` * 1 ASC"; + + $minsql = "SELECT `CHROM`, `CHROM_START`, `CHROM_END`, `GENESYMBOL`, `SCORE` FROM {$db_name}.{$fileHandle} ORDER BY `CHROM_START` * 1 ASC LIMIT 1"; + $minres = mysqli_query ($link,$minsql); + + while($row = mysqli_fetch_row($minres)) + { + $minRect = [$chrom,$row[1],$row[2],"",""]; + + array_push($resArray, $minRect); + } + + $maxsql = "SELECT `CHROM`, `CHROM_START`, `CHROM_END`, `GENESYMBOL`, `SCORE` FROM {$db_name}.{$fileHandle} ORDER BY `CHROM_END` * 1 DESC LIMIT 1"; + $maxres = mysqli_query ($link,$maxsql); + + while($row = mysqli_fetch_row($maxres)) + { + $maxRect = [$chrom,$row[1],$row[2],"",""]; + + array_push($resArray, $maxRect); + } + return $resArray; }