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 = "";
- $("#" + 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 = "";
- $("#" + 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 = "";
@@ -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 = "";
-// $("#" + 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