# HG changeset patch # User mzeidler # Date 1380105902 14400 # Node ID cbd4d7e3f155badd289c4de548cb67d16de25a2f # Parent 83f8da489fad0f1c10b610874ce3618c98a341f1 Uploaded diff -r 83f8da489fad -r cbd4d7e3f155 jqBarGraph.2.1.js --- 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("
"); - $('#graphHolder'+el.id).prepend("
Cumulative reads assigned to family
").css({ 'width' : arr.width+'px', 'text-align' : 'center' }); + if(arr.tab=='reads'){ + $('#graphHolder'+el.id).prepend("
Cumulative reads assigned to family
").css({ 'width' : arr.width+'px', 'text-align' : 'center' }); + }else{ + $('#graphHolder'+el.id).prepend("
Cumulative basepairs assigned to family
").css({ 'width' : arr.width+'px', 'text-align' : 'center' }); + } $('#graphHolder'+el.id).prepend(""+arr.title+"").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="download"; } 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="show"; } 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 = "
Files for Sample "+arr.sample+"

"; @@ -394,8 +414,11 @@ //out += ""+directory+""; //out += "

"+region+""+dict[directory][region][5]+""+dict[directory][region][6]+""+dict[directory][region][7]+""+generateDownloadLink(directory,region,"unaligned.fa.bzip2")+""+generateDownloadLink(directory,region,"alignment.bam")+""+generateDownloadLink(directory,region,"consensus.fa")+""+generateShowLink(directory,region)+" "+generateDownloadLink(directory,region,"consensus.png")+""; + + last = dict[directory][region][dict[directory][region].length-1]; + console.log(last); + if(last instanceof Array && last[0]){ + out += ""+directory+""+region+""+last[0]+""+last[1]+""+last[2]+""+generateDownloadLink(directory,region,"unaligned.fa.bzip2")+""+generateDownloadLink(directory,region,"alignment.bam")+""+generateDownloadLink(directory,region,"consensus.fa")+""+generateShowLink(directory,region)+" "+generateDownloadLink(directory,region,"consensus.png")+""; } } out += "
"; @@ -406,13 +429,13 @@ if (!region) { for (var region in dict[dir]) { if(dict[dir][region][5]){ - out += ""+dir+""+region+""+dict[dir][region][5]+""+dict[dir][region][6]+""+dict[dir][region][7]+""+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+""+generateDownloadLink(dir,region,"alignment.bam")+""+generateDownloadLink(dir,region,"consensus.fa")+""+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+""; + out += ""+dir+""+region+""+last[0]+""+last[1]+""+last[2]+""+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+""+generateDownloadLink(dir,region,"alignment.bam")+""+generateDownloadLink(dir,region,"consensus.fa")+""+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+""; } } } else { if(dict[dir][region][5]){ - out += ""+dir+""+region+""+dict[dir][region][5]+""+dict[dir][region][6]+""+dict[dir][region][7]+""+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+""+generateDownloadLink(dir,region,"alignment.bam")+""+generateDownloadLink(dir,region,"consensus.fa")+""+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+""; + out += ""+dir+""+region+""+last[0]+""+last[1]+""+last[2]+""+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+""+generateDownloadLink(dir,region,"alignment.bam")+""+generateDownloadLink(dir,region,"consensus.fa")+""+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+""; } } } @@ -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; jsum_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_asum_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_asum_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]