Mercurial > repos > mzeidler > virana2
changeset 32:cbd4d7e3f155 draft
Uploaded
author | mzeidler |
---|---|
date | Wed, 25 Sep 2013 06:45:02 -0400 |
parents | 83f8da489fad |
children | 9337c80d6672 |
files | jqBarGraph.2.1.js |
diffstat | 1 files changed, 111 insertions(+), 37 deletions(-) [+] |
line wrap: on
line diff
--- a/jqBarGraph.2.1.js Tue Sep 24 18:59:40 2013 -0400 +++ b/jqBarGraph.2.1.js Wed Sep 25 06:45:02 2013 -0400 @@ -94,24 +94,39 @@ arr = opts[el.id]; data = arr.data; - + if(arr.tab=='reads'){ + val_index=0; + } + else{ + val_index=1; + } + //check if array is bad or empty if(data == undefined) { $(el).html('There is not enought data for graph'); return; } - //sorting ascending or descending - if(arr.sort == 'asc') data.sort(sortNumberAsc); - if(arr.sort == 'desc') data.sort(sortNumberDesc); + //sorting ascending or descending + if(arr.tab == 'reads'){ + if(arr.sort == 'asc'){ + data.sort(sortReadsAsc); + } + if(arr.sort == 'desc'){ + data.sort(sortReadsDesc); + } + } + if(arr.tab == 'basepairs'){ + if(arr.sort == 'asc'){ + data.sort(sortBasesAsc); + } + if(arr.sort == 'desc'){ + data.sort(sortBasesDesc); + } + } if(arr.sortBar == 'asc') sortBars(data, barAsc); - if(arr.sortBar == 'desc')sortBars(data,barDesc); - if(arr.tab=='reads'){ - val_index=0; - } - else{ - val_index=1; - - } + if(arr.sortBar == 'desc')sortBars(data, barDesc); + + legend = ''; prefix = arr.prefix; @@ -136,7 +151,8 @@ else{ val_index=1; - } + } + console.log(arr.tab,arr.sort,val_index); for(var val in data){ valueData = data[val][0]; @@ -263,8 +279,8 @@ $("#sortDesc"+el.id).click(function(){ if(opts[el.id].sort!='desc'){ opts[el.id].sort='desc'; - $('#'+el.id).html(''); - $('#'+el.id).jqbargraph(opts[el.id]); + $('#graphHolder'+el.id).html(''); + $('#graphHolder'+el.id).jqbargraph(opts[el.id]); } }); @@ -287,7 +303,6 @@ $("#showBasepairs"+el.id).click(function(){ opts[el.id].tab='basepairs'; - $("#label"+el.id).html('Cumulative basepairs assigned to family'); $('#graphHolder'+el.id).html(''); $('#graphHolder'+el.id).jqbargraph(opts[el.id]); @@ -296,7 +311,6 @@ }); $("#showReads"+el.id).click(function(){ opts[el.id].tab='reads'; - $("#label"+el.id).html('Cumulative reads assigned to family'); $('#graphHolder'+el.id).html(''); $('#graphHolder'+el.id).jqbargraph(opts[el.id]); @@ -309,7 +323,11 @@ //position of title if(arr.title){ $(el).wrap("<div id='graphHolder"+el.id+"'></div>"); - $('#graphHolder'+el.id).prepend("<div id='label"+el.id+"'>Cumulative reads assigned to family</div>").css({ 'width' : arr.width+'px', 'text-align' : 'center' }); + if(arr.tab=='reads'){ + $('#graphHolder'+el.id).prepend("<div id='label"+el.id+"'>Cumulative reads assigned to family</div>").css({ 'width' : arr.width+'px', 'text-align' : 'center' }); + }else{ + $('#graphHolder'+el.id).prepend("<div id='label"+el.id+"'>Cumulative basepairs assigned to family</div>").css({ 'width' : arr.width+'px', 'text-align' : 'center' }); + } $('#graphHolder'+el.id).prepend("<a href=#files"+el.id+" onclick=fillDiv('"+el.id+"')>"+arr.title+"</a>").css({ 'width' : arr.width+'px', 'text-align' : 'center' }); } @@ -358,17 +376,18 @@ dict=arr.files; generateDownloadLink = function(family,region,filetype){ - out="no file"; - if(searchArray("region_"+region+"_"+filetype,dict[family][region])!=-1){ + out=" no file "; + console.log(dict[family][region]); + if($.inArray("region_"+region+"_"+filetype,dict[family][region])!=-1){ out="<a href="+family+"/region_"+region+"_"+filetype+">download</a>"; } return out; }; generateShowLink = function(family,region){ - out="no image"; - - if(searchArray("region_"+region+"_consensus.png",dict[family][region])!=-1){ + out=" no image "; + console.log($.inArray("region_"+region+"_consensus.png",dict[family][region])); + if($.inArray("region_"+region+"_consensus.png",dict[family][region])!=-1){ out="<a href=#image"+elid+" onclick=showImage('"+elid+"','"+region+"','"+ family +"/"+dict[family][region][3]+"')>show</a>"; } return out; @@ -379,10 +398,11 @@ data = arr.data for(var val in data){ for(var element in data[val][0]){ - dict[data[val][0][0][3]+"_"+data[val][1]][data[val][0][element][5]].push(data[val][0][element][0],data[val][0][element][1],data[val][0][element][4]); + dict[data[val][0][0][3]+"_"+data[val][1]][data[val][0][element][5]].push([data[val][0][element][0],data[val][0][element][1],data[val][0][element][4]]); } } + var div = document.getElementById("files" + elid); div.innerHTML=""; out = "<div><b>Files for Sample "+arr.sample+"</b></div><p/>"; @@ -394,8 +414,11 @@ //out += "<b>"+directory+"</b>"; //out += "<div class='dirlist' id='" + directory + "_files'"; for (var region in dict[directory]) { - if(dict[directory][region][5]){ - out += "<tr><td>"+directory+"</td><td>"+region+"</td><td>"+dict[directory][region][5]+"</td><td>"+dict[directory][region][6]+"</td><td>"+dict[directory][region][7]+"</td><td>"+generateDownloadLink(directory,region,"unaligned.fa.bzip2")+"</td><td>"+generateDownloadLink(directory,region,"alignment.bam")+"</td><td>"+generateDownloadLink(directory,region,"consensus.fa")+"</td><td>"+generateShowLink(directory,region)+" "+generateDownloadLink(directory,region,"consensus.png")+"</td></tr>"; + + last = dict[directory][region][dict[directory][region].length-1]; + console.log(last); + if(last instanceof Array && last[0]){ + out += "<tr><td>"+directory+"</td><td>"+region+"</td><td>"+last[0]+"</td><td>"+last[1]+"</td><td>"+last[2]+"</td><td>"+generateDownloadLink(directory,region,"unaligned.fa.bzip2")+"</td><td>"+generateDownloadLink(directory,region,"alignment.bam")+"</td><td>"+generateDownloadLink(directory,region,"consensus.fa")+"</td><td>"+generateShowLink(directory,region)+" "+generateDownloadLink(directory,region,"consensus.png")+"</td></tr>"; } } out += "</div>"; @@ -406,13 +429,13 @@ if (!region) { for (var region in dict[dir]) { if(dict[dir][region][5]){ - out += "<tr><td>"+dir+"</td><td>"+region+"</td><td>"+dict[dir][region][5]+"</td><td>"+dict[dir][region][6]+"</td><td>"+dict[dir][region][7]+"</td><td>"+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+"</td><td>"+generateDownloadLink(dir,region,"alignment.bam")+"</td><td>"+generateDownloadLink(dir,region,"consensus.fa")+"</td><td>"+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+"</td></tr>"; + out += "<tr><td>"+dir+"</td><td>"+region+"</td><td>"+last[0]+"</td><td>"+last[1]+"</td><td>"+last[2]+"</td><td>"+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+"</td><td>"+generateDownloadLink(dir,region,"alignment.bam")+"</td><td>"+generateDownloadLink(dir,region,"consensus.fa")+"</td><td>"+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+"</td></tr>"; } } } else { if(dict[dir][region][5]){ - out += "<tr><td>"+dir+"</td><td>"+region+"</td><td>"+dict[dir][region][5]+"</td><td>"+dict[dir][region][6]+"</td><td>"+dict[dir][region][7]+"</td><td>"+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+"</td><td>"+generateDownloadLink(dir,region,"alignment.bam")+"</td><td>"+generateDownloadLink(dir,region,"consensus.fa")+"</td><td>"+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+"</td></tr>"; + out += "<tr><td>"+dir+"</td><td>"+region+"</td><td>"+last[0]+"</td><td>"+last[1]+"</td><td>"+last[2]+"</td><td>"+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+"</td><td>"+generateDownloadLink(dir,region,"alignment.bam")+"</td><td>"+generateDownloadLink(dir,region,"consensus.fa")+"</td><td>"+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+"</td></tr>"; } } } @@ -457,12 +480,7 @@ $('.files'+elid).css({'height': curr_hei+'px', 'width':'915px','position':'relative', 'overflow' : 'auto','background-color':'#D0D0D0', 'border':'2px solid silver','border-radius':'10px','display':'block' }).animate({'height':hei+'px'}, 1000); } }; - searchArray = function(str, strArray){ - for (var j=0; j<strArray.length; j++) { - if (strArray[j].indexOf(str)!=-1) return j; - } - return -1; - }; + showImage = function (elid,region, consensus_image,wi) { var div = document.getElementById("image" + elid); @@ -533,10 +551,10 @@ showValuesColor: '#fff', title: false }; - + //sorting functions - function sortNumberAsc(a,b){ + function sortReadsAsc(a,b){ sum_a=0 for(var values in a){ if(a[values] instanceof Array){ @@ -557,9 +575,31 @@ if (sum_a<sum_b) return -1; if (sum_a>sum_b) return 1; return 0; + } + function sortBasesAsc(a,b){ + sum_a=0 + for(var values in a){ + if(a[values] instanceof Array){ + for(var val in a[values]){ + sum_a+=a[values][val][1]; + } + } + } + sum_b=0 + for(var values in b){ + if(b[values] instanceof Array){ + for(var val in b[values]){ + sum_b+=b[values][val][1]; + } + } + } + + if (sum_a<sum_b) return -1; + if (sum_a>sum_b) return 1; + return 0; } - function sortNumberDesc(a,b){ + function sortReadsDesc(a,b){ sum_a=0 for(var values in a){ if(a[values] instanceof Array){ @@ -581,6 +621,28 @@ if (sum_a>sum_b) return -1; return 0; } + function sortBasesDesc(a,b){ + sum_a=0 + for(var values in a){ + if(a[values] instanceof Array){ + for(var val in a[values]){ + sum_a+=a[values][val][1]; + } + } + } + sum_b=0 + for(var values in b){ + if(b[values] instanceof Array){ + for(var val in b[values]){ + sum_b+=b[values][val][1]; + } + } + } + + if (sum_a<sum_b) return 1; + if (sum_a>sum_b) return -1; + return 0; + } function sortBars(data,fun){ for(var values in data){ @@ -591,6 +653,18 @@ data[values].push(last); } } + + function sortBars(data,fun){ + for(var values in data){ + last = data[values].pop(); + for(var val in data[values]){ + data[values][val].sort(fun); + } + data[values].push(last); + } + } + + function barAsc(a,b){ if(a[0]<b[0]) return -1;