From 7b930f9c11577b6cafa0ae1e2a0c5f0cfdd3ea4c Mon Sep 17 00:00:00 2001 From: corywang Date: Mon, 3 Aug 2015 23:46:52 -0400 Subject: [PATCH] Refactored Tooltips to separate method --- VQI_GenomeBrowser.js | 747 ++++--------------------------------------- 1 file changed, 66 insertions(+), 681 deletions(-) diff --git a/VQI_GenomeBrowser.js b/VQI_GenomeBrowser.js index 28ad97b..fecb83f 100755 --- a/VQI_GenomeBrowser.js +++ b/VQI_GenomeBrowser.js @@ -35,35 +35,6 @@ function VQI_GenomeBrowser(id, serviceURL) { var serviceURL = serviceURL; -// $("#" + id).append("
CPG:Shore:Shelve:
"); - -// d3.select("#" + id).append("div").text("Chromosome: ") -// var select = d3.select("#" + id) -// .append("div") -// .append("select") -// .on("change", function (d) { -// graph(select.property("value")); -// }); -// -// d3.select("#" + id).append("div").text("Start: ") -// var minNumber = d3.select("#" + id) -// .append("input") -// .attr("type", "number") -// .property("value", 0); -// -// d3.select("#" + id).append("div").text("End: ") -// var maxNumber = d3.select("#" + id) -// .append("input") -// .attr("type", "number") -// .property("value", 0); -// var graphButton = d3.select("#" + id) -// .append("input") -// .attr("type", "button") -// .attr("value", "Graph") -// .on("click", function () { -// graph(select.property("value"), minNumber.property("value"), maxNumber.property("value")) -// }); - var navigateToRegion = function () { var navigate = $("#" + divId + " #navigate").val(); navigate = navigate.split(/[:-]/); @@ -103,14 +74,6 @@ function VQI_GenomeBrowser(id, serviceURL) { } } } - /*this.makeNavigationForm = function () { - var navigateBox = ""; - var navigateButton = ""; - var form = ""; - $("#" + divId).append(form); - $("#" + divId + " #navigatebutton").on("click", navigateToRegion.bind(this)); - }; - this.makeNavigationForm();*/ var browseToGene = function () { var geneName = $("#" + divId + " #navigate").val(); @@ -132,7 +95,6 @@ function VQI_GenomeBrowser(id, serviceURL) { var gene_start = thisGene[3]; var gene_end = thisGene[4]; thisObj.navigate(gene_chrom, gene_start, gene_end); -// objVQIResult.parseSNPAndSNP(data, true); }).error(function (req, status, error) { $("body").append(status + ": " + error); }); @@ -142,11 +104,8 @@ function VQI_GenomeBrowser(id, serviceURL) { this.makeNavigationForm = function () { var navigateBox = ""; var navigateButton = ""; - //var geneText = "Gene: "; - //var geneSearchButton = ""; var form = ""; $("#" + divId).append(form); - //$("#" + divId + " #genesearchbutton").on("click", browseToGene.bind(this)); $("#" + divId + " #navigatebutton").on("click", navigateToRegion.bind(this)); }; this.makeNavigationForm(); @@ -194,7 +153,6 @@ function VQI_GenomeBrowser(id, serviceURL) { thisObj.getPValue(data1Length, data2Length, data1.length); -// objVQIResult.parseSNPAndSNP(data, true); }).error(function (req, status, error) { $("body").append(status + ": " + error); }); @@ -226,9 +184,6 @@ function VQI_GenomeBrowser(id, serviceURL) { }).success(function (data) { console.log(data); $("#pvalue_div").empty().append("p-value = " + data); -// alert("pvalue = " + data); - -// objVQIResult.parseSNPAndSNP(data, true); }).error(function (req, status, error) { $("body").append(status + ": " + error); }); @@ -281,7 +236,6 @@ function VQI_GenomeBrowser(id, serviceURL) { } var removeTrack = function (removedTrackName) { - //var removedTrackName = $("#" + divId + " #removeTrack").val(); if (removedTrackName != null) { for (var i in trackList) { @@ -296,25 +250,7 @@ function VQI_GenomeBrowser(id, serviceURL) { } } updateAllTracksSelectBoxes(); - //graph(chrom_curr, xScale.domain()[0], xScale.domain()[1]); }; - - /*this.makeFormForRemoveTrack = function () { - var removeTrackSelect = "Remove: "; - - var removeButton = ""; - var form = "
" + removeTrackSelect + removeButton + "
"; - $("#" + divId).append(form); - $("#" + divId + " #removetrackbutton").on("click", removeTrack.bind(this)); - }; - this.makeFormForRemoveTrack();*/ this.getSelectedTrackNames = function(){ var tracknames = [] @@ -354,33 +290,13 @@ function VQI_GenomeBrowser(id, serviceURL) { } var exportTrack = function (track_name) { -// alert("here"); -// var outputFile = window.prompt("What do you want to name your output file (Note: This won't have any effect on Safari)") || 'export'; -// outputFile = outputFile.replace('.csv','') + '.txt' - //var track_name = $("#" + divId + " #exportTrack").val(); var track = thisObj.getTrackByName(track_name); -// console.log(track); exportTrackToText(track, track_name); } - /*this.makeFormForExportTrack = function () { - var exportTrackSelect = "Export: "; - - var exportButton = ""; - var form = "
" + exportTrackSelect + exportButton + "
"; - $("#" + divId).append(form); - $("#" + divId + " #exporttrackbutton").on("click", exportTrack.bind(this)); - } - this.makeFormForExportTrack();*/ + this.makeUploadForm = function() { var fileInput = document.createElement('input'); @@ -436,7 +352,6 @@ function VQI_GenomeBrowser(id, serviceURL) { this.makeSelectionForm = function () { var removeButton = ""; var exportButton = ""; -// var scoreButton = ""; var mcScoreButton = ""; var entScoreButton = ""; var form = "
" + removeButton + exportButton + mcScoreButton + entScoreButton + "
"; @@ -474,7 +389,6 @@ function VQI_GenomeBrowser(id, serviceURL) { var xAxisSelection = graphRegion.append("g") .call(xAxis) .attr("class", "axis") -// .attr("transform", "translate(0," + (height + margin) + ")"); var zoom = d3.behavior.zoom(); @@ -485,42 +399,10 @@ function VQI_GenomeBrowser(id, serviceURL) { .attr("height", height) .attr("y", -margin); //to make this work with all the transformations. - - - //set up tool tips - - /*var tip = d3.tip() - .attr('class', 'd3-tip') - .offset([-20, 0]) - .html(function (d) { - // if(/) - // if - var strand = ""; - if (d.length > indexArray.strand) { - strand = " (" + d[indexArray.strand] + ")"; - } - return "" + d[indexArray.name] + strand + "" - + "(" + d[indexArray.chr] + " : " + d[indexArray.start] + " - " + d[indexArray.end] + ")" + ""; - }); - - svg.call(tip); - - d3.selectAll(".d3-tip").style({ - "line-height": "1", - "font-weight": "bold", - "padding": "12px", - "background": "rgba(0, 0, 0, 0.8)", - "color": "#fff", - "border-radius": "2px" - });*/ - var zoomed = function () { zoom.translate([panLimit(), 0]); - //console.log(d3.event.scale); - //svg.selectAll("g.scalable").attr("transform", "translate(" + d3.event.translate[0] + ",0)scale(" + d3.event.scale + ",1)"); - //fast, scales as a group, but doesn't draw at large zooms svg.selectAll("g.scalable").attr("transform", "translate(" + zoom.translate()[0] + ",0)scale(" + zoom.scale() + ",1)"); //slow, scales elements individually, draws at large zooms @@ -537,15 +419,13 @@ function VQI_GenomeBrowser(id, serviceURL) { d3.selectAll(".axis text").style({ "font-family": "sans-serif", "font-size": "11px"}); - //console.log(zoom.scale()); - //optmizedTrack(); + if (! zoomOnly){ if (waitTime != undefined) { clearTimeout(waitTime); } waitTime = setTimeout(updateTrack, 100); } - //addOneTrack(testdata, "HG19", 'bed'); $("#" + divId + " #navigate").val(chrom_curr + ":" + Math.round(xScale.domain()[0]) + "-" + Math.round(xScale.domain()[1])); }; @@ -573,9 +453,6 @@ function VQI_GenomeBrowser(id, serviceURL) { trackInfo.push({name: CurrentFileHandle, type: "bed", fileHandle: CurrentFileHandle}); updateRecentTrackDropDown(); self.addOneTrackFromDatabase(CurrentFileHandle,CurrentFileHandle,"bed"); - //self.loadData(CurrentFileHandle); - //setTimeout(function() { this.getCurrentData(); }, 1000); - }).error(function (req, status, error) { $("body").append(status + ": " + error); }); @@ -584,28 +461,19 @@ function VQI_GenomeBrowser(id, serviceURL) { var updateTrack = function(){ if (isready){ - - //console.log(trackList); - //setTimeout(testRemove(), 5000); - //testRemove(); - - var start = (Math.round(xScale.domain()[0])).toString(); - var end = (Math.round(xScale.domain()[1])).toString(); - - // var xScale = d3.scale.linear() - // .domain([-3953, 249241810]) - // .range([0,1000]); - - var chrom = "chr1"; - var fileHandles = []; - var name = []; - for (i in trackList) { - for(j in trackInfo){ - if(trackInfo[j].name == trackList[i].name){ - fileHandles.push(trackInfo[j].fileHandle); - break; - } - } + var start = (Math.round(xScale.domain()[0])).toString(); + var end = (Math.round(xScale.domain()[1])).toString(); + var chrom = "chr1"; + var fileHandles = []; + var name = []; + + for (i in trackList) { + for(j in trackInfo){ + if(trackInfo[j].name == trackList[i].name){ + fileHandles.push(trackInfo[j].fileHandle); + break; + } + } name.push(trackList[i].name); } @@ -623,8 +491,7 @@ function VQI_GenomeBrowser(id, serviceURL) { } }).success(function (returnData) { - //console.log(returnData); - //console.log(trackList); + for (i in trackList){ var name = trackList[i]['name']; var type = trackList[i]['type']; @@ -639,33 +506,9 @@ function VQI_GenomeBrowser(id, serviceURL) { } else{ addBEDTrack(returnData[name], name); - //console.log("hellow"); } } - // var i = getTrackIndexByName("HG19"); - // trackList[i] = returnData["HG19"]; - // trackList[i]['name'] = "HG19"; - // trackList[i]['type'] = "bed"; - // //console.log(trackList); - // addBEDTrack(returnData["HG19"][0], "HG19",returnData["HG19"][1]); - - // var i = getTrackIndexByName("Tile2 Content Snp"); - // trackList[i] = returnData["Tile2 Content Snp"]; - // trackList[i]['name'] = "Tile2 Content Snp"; - // trackList[i]['type'] = "bed"; - // //console.log(trackList); - // addBEDTrack(returnData["Tile2 Content Snp"], "Tile2 Content Snp"); - // //console.log(trackList); - - // var i = getTrackIndexByName("cpg"); - // trackList[i] = returnData["cpg"]; - // trackList[i]['name'] = "cpg"; - // trackList[i]['type'] = "cpg"; - // //console.log(trackList); - // addCpgTrack(returnData["cpg"], "cpg"); - - zoomOnly = true; zoomed(); zoomOnly = false; @@ -680,7 +523,6 @@ function VQI_GenomeBrowser(id, serviceURL) { var testRemove = function(){ removeTrack("HG191"); reorderTracks(); - //console.log(trackList); } var panLimit = function () { @@ -702,10 +544,8 @@ function VQI_GenomeBrowser(id, serviceURL) { }; var setBounds = function (min, max) { - //console.log(Number(min) + " "+ Number(max)); var xMin = Number(min) > panExtent[0] ? Number(min) : panExtent[0]; var xMax = Number(max) < panExtent[1] ? Number(max) : panExtent[1]; - //console.log(xMin + " "+ xMax); var initialZoom = 10000 //defines what will be considered a zoom scale of 1 var range = (panExtent[1] - panExtent[0]) / initialZoom @@ -738,9 +578,6 @@ function VQI_GenomeBrowser(id, serviceURL) { .scale(scale); zoomed(); - - // minNumber.property("value", xMin); - // maxNumber.property("value", xMax); } var setPanExtent = function (min, max) { @@ -766,15 +603,11 @@ function VQI_GenomeBrowser(id, serviceURL) { min = d3.min(mins); max = d3.max(maxs); - panExtent[0] = isNaN(min) ? 0 : min; panExtent[1] = isNaN(max) ? width : max; var distance = (panExtent[1] - panExtent[0]) / 10000 - /*xScale.domain([0,distance]) - .range([0,width]);*/ - fullXScale = d3.scale.linear() .domain([panExtent[0], panExtent[0] + distance]) .range([0, width]); @@ -792,12 +625,9 @@ function VQI_GenomeBrowser(id, serviceURL) { else { setBounds(Number(min), Number(max)); } - //console.log(trackList); for (var i in trackList) { addOneTrack(trackList[i], trackList[i]['name'], trackList[i]['type'], i); } - //addOneTrack(trackList[2], trackList[2]['name'], trackList[2]['type'], 2); - } var addOneTrack = function (data, name, type, i) { @@ -819,14 +649,12 @@ function VQI_GenomeBrowser(id, serviceURL) { if (min < panExtent[0] || max > panExtent[1]) { setPanExtent(min, max); - //console.log(trackList); graph(chrom_curr); } var thisData = data.filter(function (d) { return (d[indexArray.chr] === chrom_curr); }); - //console.log(thisData); var trackCount = trackIndex + 1; //name of track name = name || "track-" + (trackIndex + 1); @@ -836,7 +664,6 @@ function VQI_GenomeBrowser(id, serviceURL) { addCpgTrack(thisData, name); data['type'] = 'cpg'; } else { -// if (type == 'bed') { initTrack(name); addBEDTrack(thisData, name); data['type'] = 'bed'; @@ -871,9 +698,8 @@ function VQI_GenomeBrowser(id, serviceURL) { var trackGroup = graphRegion.selectAll("g").data([name], function (d) { return d; }) - //.attr("transform", "translate(" + 0 + "," + thisY + ")"); - //Just a line + //Just a line trackGroup.selectAll("line").data([name], function (d) { return d; }).enter().append("line") @@ -894,27 +720,6 @@ function VQI_GenomeBrowser(id, serviceURL) { .attr("fill", "red") .text(name); - /* if (trackGroup.select("rect.remove").empty()) - { - trackGroup.append("rect") - .attr("height", 10) - .attr("width", 10) - .attr("x", width + 10) - .attr("y", -5) - .attr("class", "remove") - .on('click', function(){removeTrack(name);}); - } - - if (trackGroup.select("rect.export").empty()) - { - trackGroup.append("rect") - .attr("height", 10) - .attr("width", 10) - .attr("x", width + 30) - .attr("y", -5) - .attr("class", "export") - .on('click', function(){exportTrack(name);}); - }*/ if (trackGroup.select(".checkbox").empty()) { trackGroup.append("foreignObject") @@ -926,8 +731,6 @@ function VQI_GenomeBrowser(id, serviceURL) { .append("xhtml:div") .html("
") .on("click", function () { -// console.log("clicked " + d + " -- " + i); -// console.log(trackGroup.select("#check").property('checked')); xAxisSelection.call(xAxis);//I have no idea why it won't redraw the checkbox unless I call this }); } @@ -972,25 +775,6 @@ function VQI_GenomeBrowser(id, serviceURL) { }); } - /*if (trackGroup.select("rect.drag").empty()) - { - - var drag = d3.behavior.drag() - //.origin(function() { return {x: 0, y: d3.transform(trackGroup.attr("transform")).translate[1] }}) - .on("drag", function(){ - trackGroup = graphRegion.selectAll("g").data([name], function(d){return d;}) - .attr("transform", "translate(" + 0 + "," + Math.max(margin + trackHeight/2 - bufferSpace/2, Math.min(svg.attr("height") - 2* margin, d3.transform(trackGroup.attr("transform")).translate[1] + d3.event.y)) + ")"); - //console.log(thisY + " " +d3.event.y); - }); - trackGroup.append("rect") - .attr("height", trackHeight) - .attr("width", 10) - .attr("x", -20) - .attr("y", -trackHeight/2) - .attr("class", "drag") - .call(drag); - }*/ - if (trackGroup.select("g.scalable").empty()) { trackGroup.append("g") @@ -1046,51 +830,14 @@ function VQI_GenomeBrowser(id, serviceURL) { var type = d[indexArray.type]; var offset = type == "cpg" ? -20 : type == "shore" ? -10 : -7.5; return offset;//height / 2 + margin + offset - }); - - trackScalableGroup.selectAll('*').each(function(d){ - $(this).qtip({ - content: { - text: function(event, api) { - $.ajax({ - url: serviceURL, - type: 'POST', - dataType: "json", - data: { - "loadTooltip": "", - "trackName" : name, - "type" : d[indexArray.type], - "xCoordinate" : d[indexArray.start] - } - }) - .then(function(content) { - // Set the tooltip content upon successful retrieval - api.set('content.text', content); - }, function(xhr, status, error) { - // Upon failure... set the tooltip content to the status and error value - api.set('content.text', status + ': ' + error); - }); - - return 'Loading...'; // Set some initial text - } - }, - position: { - my: 'top center', - at: 'top center', - target: 'mouse', - adjust: { - mouse: true, // Can be omitted (e.g. default behaviour) - y: 10 - } - } - }); - }) - + }) + .each(function(d){ + addTooltip($(this), name, d[indexArray.type]); + }) } var addBEDTrack = function (data, name, exons) { testdata = data; - //console.log(data); /** * @author Pujan Joshi * @since April 16, 2015 @@ -1099,8 +846,6 @@ function VQI_GenomeBrowser(id, serviceURL) { * some records in empty array was causing error in this method. * */ - //console.log(data); - //console.log(name); if (data.length === 0) { return; } @@ -1111,8 +856,6 @@ function VQI_GenomeBrowser(id, serviceURL) { return d; }).select("g.scalable"); - //console.log(data[142]); - trackScalableGroup.selectAll("rect") .data(data, function (d) { return d; @@ -1127,8 +870,6 @@ function VQI_GenomeBrowser(id, serviceURL) { .enter() .append("rect"); - // console.log(data[1]); - var tracks = trackScalableGroup.selectAll("rect") .data(data, function (d) { return d; @@ -1153,65 +894,11 @@ function VQI_GenomeBrowser(id, serviceURL) { .style("vector-effect", "non-scaling-stroke") .attr("class", "scalable") .each(function(d){ - $(this).qtip({ - content: { - text: function(event, api) { - $.ajax({ - url: serviceURL, - type: 'POST', - dataType: "json", - data: { - "loadTooltip": "", - "trackName" : name, - "type" : "gene", - "xCoordinate" : d[indexArray.start] - } - }) - .then(function(content) { - // Set the tooltip content upon successful retrieval - api.set('content.text', content); - }, function(xhr, status, error) { - // Upon failure... set the tooltip content to the status and error value - api.set('content.text', status + ': ' + error); - }); - - return 'Loading...'; // Set some initial text - } - }, - position: { - my: 'top center', - at: 'top center', - target: 'mouse', - adjust: { - mouse: true, // Can be omitted (e.g. default behaviour) - y: 10 - } - } - }); + addTooltip($(this), name, "gene") }) - /*.attr("x1", function (d) { - return fullXScale(d[indexArray.start]); - }) - .attr("y1", function (d) { - return 0; - }) - .attr("x2", function (d) { - return fullXScale(d[indexArray.end]); - }) - .attr("y2", function (d) { - return 0; - }) - .style("stroke", "black") - .style("stroke-width", "2px") - .attr("class", "scalable")*/ - if (exons) { - - - //console.log(exons[1]); - trackScalableGroup.selectAll("rect") .data(data, function (d) { return d; @@ -1243,175 +930,52 @@ function VQI_GenomeBrowser(id, serviceURL) { .style("vector-effect", "non-scaling-stroke") .attr("class", "scalable") .each(function(d){ - $(this).qtip({ - content: { - text: function(event, api) { - $.ajax({ - url: serviceURL, - type: 'POST', - dataType: "json", - data: { - "loadTooltip": "", - "trackName" : name, - "type" : "exon", - "xCoordinate" : d[indexArray.start] - } - }) - .then(function(content) { - // Set the tooltip content upon successful retrieval - api.set('content.text', content); - }, function(xhr, status, error) { - // Upon failure... set the tooltip content to the status and error value - api.set('content.text', status + ': ' + error); - }); - - return 'Loading...'; // Set some initial text - } - }, - position: { - my: 'top center', - at: 'top center', - target: 'mouse', - adjust: { - mouse: true, // Can be omitted (e.g. default behaviour) - y: 10 - } - } - }); - }) - + addTooltip($(this), name, "exon") + }) } + } +var i; +var j; + var addTooltip = function(selection, name, type) + { + selection.qtip({ + content: { + text: function(event, api) { + $.ajax({ + url: serviceURL, + type: 'POST', + dataType: "json", + data: { + "loadTooltip": "", + "trackName" : name, + "type" : type, + "xCoordinate" : event.pageX + } + }) + .then(function(content) { + // Set the tooltip content upon successful retrieval + api.set('content.text', content); + }, function(xhr, status, error) { + // Upon failure... set the tooltip content to the status and error value + api.set('content.text', status + ': ' + error); + }); - // //addHeightTrack(thisData, name); + return 'Loading...'; // Set some initial text + } + }, + position: { + my: 'top center', + at: 'top center', + target: 'mouse', + adjust: { + mouse: true, // Can be omitted (e.g. default behaviour) + y: 10 + } + } + }); } - /* var addHeightTrack = function (data, name) { - var bufferSpace = 10; - var trackHeight = 100; - var thisY = Number(svg.attr("height")) - margin + trackHeight / 2 + bufferSpace; - svg.attr("height", Number(svg.attr("height")) + trackHeight + bufferSpace); - - var yScale = d3.scale.linear(); - - var yMin = d3.min(data, function (d) { - return isNaN(d[indexArray.score]) ? 0 : Number(d[indexArray.score]) - }) - 1; - var yMax = d3.max(data, function (d) { - return isNaN(d[indexArray.score]) ? 0 : Number(d[indexArray.score]) - }) + 1; - - yScale.domain([yMin, yMax]) - .range([thisY + trackHeight / 2, thisY - trackHeight / 2]); - - var trackGroup = svg.select("g." + name); - - var yAxis = d3.svg.axis() - .scale(yScale) - .orient("left") - .ticks(5); - - var yAxisSelection = trackGroup.append("g") - .call(yAxis) - .attr("class", "axis " + name) - .attr("transform", "translate(" + margin + "," + 0 + ")"); - - d3.selectAll(".axis path, .axis line").style({ - "fill": "none", - "stroke": "black", - "shape-rendering": "crispEdges"}); - - d3.selectAll(".axis text").style({ - "font-family": "sans-serif", - "font-size": "11px"}); - - var trackScalableGroup = trackGroup.select("g.scalable"); - - if (trackScalableGroup.select("g.height").empty()) - { - trackScalableGroup.append("g") - .attr("class", "height") - } - var trackHeightGroup = svg.select("g.height"); - - var lines = data.filter(function (d) { - return d[indexArray.score] == ""; - }); - var rects = data.filter(function (d) { - return !isNaN(d[indexArray.score]) && d[indexArray.score] != ""; - }); - - trackHeightGroup.selectAll("rect") - .data(rects, function (d) { - return d; - }) - .exit() - .remove(); - - trackHeightGroup.selectAll("rect") - .data(rects, function (d) { - return d; - }) - .enter() - .append("rect"); - - trackHeightGroup.selectAll("rect") - .data(rects, function (d) { - return d; - }) - .attr("x", function (d) { - return fullXScale(Number(d[indexArray.start])); - }) - .attr("y", function (d) { - return d < 0 ? yScale(0) : yScale(d[indexArray.score]); - }) - .attr("height", function (d) { - return Math.abs(yScale(d[indexArray.score]) - yScale(0)); - }) - .attr("width", function (d) { - return fullXScale(Number(d[indexArray.end])) - fullXScale(Number(d[indexArray.start])); - }) - .style("fill-opacity", ".8") - .style("stroke", "gray") - .style("fill", "gray") - - trackHeightGroup.selectAll("line") - .data(lines, function (d) { - return d; - }) - .exit() - .remove(); - - trackHeightGroup.selectAll("line") - .data(lines, function (d) { - return d; - }) - .enter() - .append("line"); - - trackHeightGroup.selectAll("line") - .data(lines, function (d) { - return d; - }) - .attr("x1", function (d) { - return fullXScale(d[indexArray.start]); - }) - .attr("y1", yScale(0)) - .attr("x2", function (d) { - return fullXScale(d[indexArray.end]); - }) - .attr("y2", yScale(0)) - .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 chrom = "chr1"; var fileHandles = []; @@ -1433,14 +997,10 @@ function VQI_GenomeBrowser(id, serviceURL) { } }).success(function (returnData) { - //console.log(returnData); for (i in trackInfo){ thisObj.addTrack(returnData[i], trackInfo[i].name, trackInfo[i].type); } - //console.log - // thisObj.addTrack(returnData[0], "HG19", "bed"); - // thisObj.addTrack(returnData[1], "Tile2 Content Snp", "bed"); - // thisObj.addTrack(returnData[2], "cpg", "cpg"); + isready = true; updateTrack(); }).error(function (req, status, error) { @@ -1466,10 +1026,7 @@ function VQI_GenomeBrowser(id, serviceURL) { } }).success(function (returnData) { - - thisObj.addTrack(returnData[0], name, type); - //console.log(trackList); isready = true; updateTrack(); }).error(function (req, status, error) { @@ -1478,7 +1035,6 @@ function VQI_GenomeBrowser(id, serviceURL) { } this.addTrack = function (data, name, type) { -// data['name'] = name; if(data[0][0] != "chrom") { data.unshift(["chrom", "chrom_start", "chrom_end", "name", "score", "strand"]) @@ -1495,8 +1051,7 @@ function VQI_GenomeBrowser(id, serviceURL) { this.addTrackFile = function (dataFile, name, type, header) { $.get(dataFile, function (data) { var dataRows = thisObj.parseTrackFile(data, header); - //console.log(dataRows); - //testdata = dataRows; + thisObj.addTrack(dataRows, name, type); }); @@ -1511,84 +1066,6 @@ function VQI_GenomeBrowser(id, serviceURL) { return genomeData; } - /*var submitFile = function () { - genomeData = []; - chromosomes = []; - var file_dir = "./saved-data/"; - file_dir = "../../../saved-data/"; - var cpg = file_dir + "./CpG_site_hg19.txt"; - var shoer = file_dir + "./shoer_hg19.txt"; - var shelve = file_dir + "./shelve_hg19.txt"; - - //Will read the 3 files and place all data into genomeData - //as objects with attributes 'chromosome', 'start', 'end', 'type' - - $.get(cpg, function (data) { - var cpgData = data.trim().split("\n"); - $.each(cpgData, function (index, value) { - cpgData[index] = cpgData[index].trim().split("\t").map(function (item) { - return isNaN(Number(item)) ? item : Number(item); - }); - }); - - //get all unique chromosomes - var currentChromosome = ""; - $.each(cpgData, function (index, value) { - if (value[0] != currentChromosome) - { - chromosomes.push(value[0]); - currentChromosome = value[0]; - } - }); - - - cpgData = cpgData.map(function (data) { - // return {"chromosome": data[0], "start": data[1], "end": data[2], "type": "cpg"} - return [data[0], data[1], data[2], "cpg"]; - - }); - genomeData = genomeData.concat(cpgData); - }); - - $.get(shoer, function (data) { - var tempShoreData = data.trim().split("\n"); - $.each(tempShoreData, function (index, value) { - tempShoreData[index] = tempShoreData[index].trim().split("\t").map(function (item) { - return isNaN(Number(item)) ? item : Number(item); - }); - }); - var shoreData = []; - $.each(tempShoreData, function (index, value) { - // shoreData.push({"chromosome": value[0], "start": value[1], "end": value[2], "type": "shore"}); - shoreData.push([value[0], value[1], value[2], "shore"]); - shoreData.push([value[0], value[3], value[4], "shore"]); - // shoreData.push({"chromosome": value[0], "start": value[3], "end": value[4], "type": "shore"}); - }); - genomeData = genomeData.concat(shoreData); - }); - - $.get(shelve, function (data) { - var tempShelveData = data.trim().split("\n"); - $.each(tempShelveData, function (index, value) { - tempShelveData[index] = tempShelveData[index].trim().split("\t").map(function (item) { - return isNaN(Number(item)) ? item : Number(item); - }); - }); - var shelveData = []; - $.each(tempShelveData, function (index, value) { - shelveData.push([value[0], value[1], value[2], "shelve"]); - // shelveData.push({"chromosome": value[0], "start": value[1], "end": value[2], "type": "shelve"}); - shelveData.push([value[0], value[3], value[4], "shelve"]); - // shelveData.push({"chromosome": value[0], "start": value[3], "end": value[4], "type": "shelve"}); - }); - genomeData = genomeData.concat(shelveData); - graph(chromosomes[0]); - }); - } - - d3.select("#" + id + " #submit").on("click", submitFile.bind(this)); - // submitFile();*/ - this.loadCPGFiles = function (cpg, shoer, shelf) { genomeData = []; chromosomes = []; @@ -1630,10 +1107,8 @@ function VQI_GenomeBrowser(id, serviceURL) { }); var shoreData = []; $.each(tempShoreData, function (index, value) { -// shoreData.push({"chromosome": value[0], "start": value[1], "end": value[2], "type": "shore"}); shoreData.push([value[0], value[1], value[2], "shore"]); shoreData.push([value[0], value[3], value[4], "shore"]); -// shoreData.push({"chromosome": value[0], "start": value[3], "end": value[4], "type": "shore"}); }); genomeData = genomeData.concat(shoreData); }); @@ -1648,9 +1123,7 @@ function VQI_GenomeBrowser(id, serviceURL) { var shelveData = []; $.each(tempShelveData, function (index, value) { shelveData.push([value[0], value[1], value[2], "shelve"]); -// shelveData.push({"chromosome": value[0], "start": value[1], "end": value[2], "type": "shelve"}); shelveData.push([value[0], value[3], value[4], "shelve"]); -// shelveData.push({"chromosome": value[0], "start": value[3], "end": value[4], "type": "shelve"}); }); genomeData = genomeData.concat(shelveData); thisObj.addTrack(genomeData, "cpg", 'cpg'); @@ -1677,73 +1150,7 @@ function VQI_GenomeBrowser(id, serviceURL) { return thisData; }; - -// this.makeFormForColocalization = function () { -// var track1Select = "
track1 "; -// -// var track2Select = "
track2 "; -// -// -// var colocalizeButton = "
"; -// var form = "
" + track1Select + track2Select + colocalizeButton + "
"; -// $("#" + divId).append(form); -// $("#" + divId + " #colocalize").on("click", colocalize.bind(this)); -// }; -// -// var colocalize = function () { -// var track1Name = $("#" + divId + " #track1").val(); -// var track2Name = $("#" + divId + " #track2").val(); -// -// var data1 = this.getTrackByName(track1Name); -// var data2 = this.getTrackByName(track2Name); -// -// var dataToPost1 = [], dataToPost2 = []; -// dataToPost1 = JSON.stringify(data1); -// dataToPost2 = JSON.stringify(data2); -// -// $.ajax({ -// url: vqi_url + 'serverside/web/VQService.php?service=coloc-bed-and-bed', -// type: 'POST', -// dataType: "json", -// data: { -// "bed1": dataToPost1, -// "bed2": dataToPost2 -// }, -// async: false -// }).success(function (data) { -// var data1 = []; -// var data2 = [] -// data = data.slice(1); -// for (var i in data) { -// data1.push(data[i].slice(0, 3)); -// data2.push(data[i].slice(3)); -// } -// thisObj.addTrack(data1); -// thisObj.addTrack(data2); -// -//// objVQIResult.parseSNPAndSNP(data, true); -// }).error(function (req, status, error) { -// $("body").append(status + ": " + error); -// }); -// -// }; - this.getTrackByName = function (name) { -// console.log(name); for (var i in trackList) { var thisTrack = trackList[i]; if (thisTrack['name'] === name) { @@ -1766,10 +1173,6 @@ function VQI_GenomeBrowser(id, serviceURL) { updateSelectBoxWithTracks(track1Select.get(0)); var track2Select = $("#" + divId + " #track2"); updateSelectBoxWithTracks(track2Select.get(0)); - /*var removeTrackSelect = $("#" + divId + " #removeTrack"); - updateSelectBoxWithTracks(removeTrackSelect.get(0)); - var exportTrackSelect = $("#" + divId + " #exportTrack"); - updateSelectBoxWithTracks(exportTrackSelect.get(0));*/ } var updateSelectBoxWithTracks = function (selectBox) { selectBox = selectBox; @@ -1800,10 +1203,6 @@ function VQI_GenomeBrowser(id, serviceURL) { temp = []; - //console.log(data[1].join("\t")); -// var header = ["CHROM", "CHROM_START", "CHROM_END", "NAME", "SCORE", "STRAND"]; -// temp.push(header.join("\t")); - for (i in data) { if (data[i].constructor === Array) @@ -1826,10 +1225,6 @@ function VQI_GenomeBrowser(id, serviceURL) { var myData; var start = (Math.round(xScale.domain()[0])).toString(); var end = (Math.round(xScale.domain()[1])).toString(); - - // var xScale = d3.scale.linear() - // .domain([-3953, 249241810]) - // .range([0,1000]); $.ajax({ url: 'zoomAssist.php', @@ -1842,7 +1237,6 @@ function VQI_GenomeBrowser(id, serviceURL) { }).success(function (data) { myData = data; - //console.log(data); d3.select(test2).select("svg") .remove(); var svg2 = d3.select(test2) @@ -1863,19 +1257,10 @@ function VQI_GenomeBrowser(id, serviceURL) { .attr("y", 5) .attr("height", 10) .attr("width", function (d) { - // if (xScale(d.end) - xScale(d.start) < 1){ - // return 1; - // } - // else return xScale(d.end) - xScale(d.start); return Math.ceil(xScale(d.end) - xScale(d.start)); }); }).error(function (req, status, error) { $("body").append(status + ": " + error); - }); - - - - + }); } - } \ No newline at end of file