Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
other changes
  • Loading branch information
Pujan Joshi committed Mar 4, 2015
1 parent 32b2b0b commit 2ca2ae0
Show file tree
Hide file tree
Showing 6 changed files with 31,302 additions and 19 deletions.
224 changes: 205 additions & 19 deletions VQI_GenomeBrowser.js
@@ -1,5 +1,5 @@
function VQI_GenomeBrowser(id) {
var div_id = id;
var divId = id;

var width = 1000;

Expand Down Expand Up @@ -38,6 +38,71 @@ function VQI_GenomeBrowser(id) {
.attr("type", "number")
.property("value", 0);


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.makeFormForColocalization = function () {
var track1Select = "<br>track1 <select name='track1' id='track1'>";
for (var i in trackList) {
var thisTrack = trackList[i];
var text = thisTrack['name'];
var value = thisTrack['name'];
track1Select += "<option value='" + value + "'>" + text + "</option>";
}
track1Select += "</select>";

var track2Select = "<br>track2 <select name='track2' id='track2'>";
for (var i in trackList) {
var thisTrack = trackList[i];
var text = thisTrack['name'];
var value = thisTrack['name'];
track2Select += "<option value='" + value + "'>" + text + "</option>";
}
track2Select += "</select>";


var colocalizeButton = "<br><input type='button' id='colocalize' value='colocalize'>";
var form = "<form id='colocalization_form'>" + track1Select + track2Select + colocalizeButton + "</form>";
$("#" + divId).append(form);
$("#" + divId + " #colocalize").on("click", colocalize.bind(this));
};
this.makeFormForColocalization();

var self = this;

var graphButton = d3.select("#" + id)
Expand Down Expand Up @@ -269,13 +334,23 @@ function VQI_GenomeBrowser(id) {
var fHeight = 10;
svg.attr("height", height + 2 * margin + ySpace);
var thisY = height / 2 + margin + 20 + ySpace;
var thisLine = svg.append("line")
.attr("x1", margin)
.attr("y1", height / 2 + margin + 20 + ySpace)
.attr("x2", width + margin)
.attr("y2", height / 2 + margin + 20 + ySpace)
.style("stroke-width", 1)
.style("stroke", "black");

if (!i) {
svg.append("line")
.attr("x1", margin)
.attr("y1", height / 2 + margin + 20 + ySpace)
.attr("x2", width + margin)
.attr("y2", height / 2 + margin + 20 + ySpace)
.style("stroke-width", 1)
.style("stroke", "black");
svg.append("text")
.attr("x", 0)
.attr("y", thisY - 10)
.attr("font-family", "sans-serif")
.attr("font-size", "12px")
.attr("fill", "red")
.text(name);
}
// test.addTrack({start:20000000, end:20000100})
var tracks = svg.selectAll("track")
.data(thisData)
Expand All @@ -301,23 +376,40 @@ function VQI_GenomeBrowser(id) {
.style("fill", "green")
.on('mouseover', tip.show)
.on('mouseout', tip.hide);
// .tipsy({
// gravity: 'w',
// html: true,
// title: function (d) {
// return d[indexArray.name] + " (" + d[indexArray.chr] + " : " + d[indexArray.start] + " - " + d[indexArray.end] + ")";
// }
// });
//
$('svg rect').tipsy({
gravity: 'n',
html: true,
title: function () {
var d = this.__data__;
// , c = colors(d.i);
return d[indexArray.name] + " (" + d[indexArray.chr] + " : " + d[indexArray.start] + " - " + d[indexArray.end] + ")";
}
});
// .text(function (d) {
// return d[indexArray.name] + " (" + d[indexArray.chr] + " : " + d[indexArray.start] + " - " + d[indexArray.end] + ")";
// });
//

svg.append("text")
.attr("x", 0)
.attr("y", thisY - 10)
.attr("font-family", "sans-serif")
.attr("font-size", "12px")
.attr("fill", "red")
.text(name);
data['name'] = name;

return tracks;
return data;


}
this.addTrack = function (data, name) {
data['name'] = name;
addOneTrack(data, name);
// data['name'] = name;
data = addOneTrack(data, name);

trackList.push(data);
updateAllTracksSelectBoxes();
}

this.addTrackFile = function (dataFile, name, header) {
Expand Down Expand Up @@ -501,7 +593,101 @@ function VQI_GenomeBrowser(id) {
}
return thisData;
};



this.makeFormForColocalization = function () {
var track1Select = "<br>track1 <select name='track1' id='track1'>";
for (var i in trackList) {
var thisTrack = trackList[i];
var text = thisTrack['name'];
var value = thisTrack['name'];
track1Select += "<option value='" + value + "'>" + text + "</option>";
}
track1Select += "</select>";

var track2Select = "<br>track2 <select name='track2' id='track2'>";
for (var i in trackList) {
var thisTrack = trackList[i];
var text = thisTrack['name'];
var value = thisTrack['name'];
track2Select += "<option value='" + value + "'>" + text + "</option>";
}
track2Select += "</select>";


var colocalizeButton = "<br><input type='button' id='colocalize' value='colocalize'>";
var form = "<form id='colocalization_form'>" + track1Select + track2Select + colocalizeButton + "</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) {
for (var i in trackList) {
var thisTrack = trackList[i];
if (thisTrack['name'] === name) {
return thisTrack;
}
}
};

var updateAllTracksSelectBoxes = function () {
var track1Select = $("#" + divId + " #track1");
updateSelectBoxWithTracks(track1Select.get(0));
var track2Select = $("#" + divId + " #track2");
updateSelectBoxWithTracks(track2Select.get(0));
}
var updateSelectBoxWithTracks = function (selectBox) {
selectBox = selectBox;
selectBox.options.length = 0;
var optionIndex = 0;
for (var i in trackList) {
var text = trackList[i]['name'];
var value = text;
selectBox.options[optionIndex++] = new Option(text, value);
}

};

this.makeFormForColocalization();

}

VQI_GenomeBrowser.prototype = new VQI_Publisher();
Expand Down
4 changes: 4 additions & 0 deletions VQI_GenomeBrowserDemo.html
Expand Up @@ -4,7 +4,11 @@
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://labratrevenge.com/d3-tip/javascripts/d3.tip.v0.6.3.js"></script>
<script src="../VQI_Publisher.js"></script>
<script src="./jquery.tipsy.js"></script>
<script src="./d3.tip.v0.6.3.js"></script>
<script src="VQI_GenomeBrowser.js"></script>

<link href="tipsy.css" rel="stylesheet" type="text/css" />
</head>

<body>
Expand Down

0 comments on commit 2ca2ae0

Please sign in to comment.