# HG changeset patch
# User davidvanzessen
# Date 1394548744 14400
# Node ID 8b026af4b298c4bd7005c40e501ad040a23cad0a
# Parent 84a386d964527f6063c1ffcc0e1c48c123ab76e1
Uploaded
diff -r 84a386d96452 -r 8b026af4b298 RScript.r
--- a/RScript.r Tue Mar 11 09:21:57 2014 -0400
+++ b/RScript.r Tue Mar 11 10:39:04 2014 -0400
@@ -243,14 +243,14 @@
}
clonalityFrameSplit = split(clonalityFrame, f=clonalityFrame[,c("Sample", "Replicate")])
- lapply(clonalityFrameSplit, FUN=ClonalitySampleReplicatePrint)
+ #lapply(clonalityFrameSplit, FUN=ClonalitySampleReplicatePrint)
ClonalitySamplePrint <- function(dat){
write.table(dat, paste("clonality_", unique(dat$Sample) , ".tsv", sep=""), sep="\t",quote=F,row.names=F,col.names=T)
}
clonalityFrameSplit = split(clonalityFrame, f=clonalityFrame[,"Sample"])
- lapply(clonalityFrameSplit, FUN=ClonalitySamplePrint)
+ #lapply(clonalityFrameSplit, FUN=ClonalitySamplePrint)
clonalFreq = data.frame(data.table(clonalityFrame)[, list(Type=.N), by=c("Sample", "VDJCDR3")])
clonalFreqCount = data.frame(data.table(clonalFreq)[, list(Count=.N), by=c("Sample", "Type")])
@@ -315,3 +315,32 @@
clonalityOverviewSplit = split(clonalityOverview, f=clonalityOverview$Sample)
lapply(clonalityOverviewSplit, FUN=ClonalityOverviewPrint)
}
+
+if("Functionality" %in% colnames(test))
+{
+ newData = data.frame(data.table(PROD)[,list(unique=.N,
+ VH.DEL=mean(X3V.REGION.trimmed.nt.nb),
+ P1=mean(P3V.nt.nb),
+ N1=mean(N1.REGION.nt.nb),
+ P2=mean(P5D.nt.nb),
+ DEL.DH=mean(X5D.REGION.trimmed.nt.nb),
+ DH.DEL=mean(X3D.REGION.trimmed.nt.nb),
+ P3=mean(P3D.nt.nb),
+ N2=mean(N2.REGION.nt.nb),
+ P4=mean(P5J.nt.nb),
+ DEL.JH=mean(X5J.REGION.trimmed.nt.nb),
+ Total.Del=( mean(X3V.REGION.trimmed.nt.nb) +
+ mean(X5D.REGION.trimmed.nt.nb) +
+ mean(X3D.REGION.trimmed.nt.nb) +
+ mean(X5J.REGION.trimmed.nt.nb)),
+
+ Total.N=( mean(N1.REGION.nt.nb) +
+ mean(N2.REGION.nt.nb)),
+
+ Total.P=( mean(P3V.nt.nb) +
+ mean(P5D.nt.nb) +
+ mean(P3D.nt.nb) +
+ mean(P5J.nt.nb))),
+ by=c("Sample")])
+ write.table(newData, "junctionAnalysis.csv" , sep=",",quote=F,na="-",row.names=F,col.names=F)
+}
diff -r 84a386d96452 -r 8b026af4b298 combined.sh
--- a/combined.sh Tue Mar 11 09:21:57 2014 -0400
+++ b/combined.sh Tue Mar 11 10:39:04 2014 -0400
@@ -44,63 +44,94 @@
inputFile=$PWD/merged.txt
-outputFile=$html
outputDir=$imageDir
+outputFile=$outputDir/index.html
mkdir $outputDir
Rscript --verbose $dir/RScript.r $inputFile $outputDir $outputDir $clonalType 2>&1
-echo "" > $outputFile
+cp $dir/tabber.js $outputDir
+cp $dir/style.css $outputDir
+cp $dir/script.js $outputDir
+echo "
Tip: Open it in a new tab (middle mouse button or right mouse button -> 'open in new tab' on the link above) " > $html
+echo "" >> $outputFile
echo "
" >> $outputFile
echo "
" >> $outputFile
-echo "
" >> $outputFile
+echo "
" >> $outputFile
samples=`cat $outputDir/samples.txt`
count=1
-echo "
$clonalType " >> $outputFile
-hasReplicateColumn="$(if head -n 1 $inputFile | grep -q 'Replicate'; then echo 'Yes'; else echo 'No'; fi)"
+echo "" >> $outputFile
for sample in $samples; do
- clonalityScore="$(cat $outputDir/ClonalityScore_$sample.csv)"
- echo "
" >> $outputFile
- echo "
$sample " >> $outputFile
+ echo "
" >> $outputFile
+
+ mv "$outputDir/HeatmapVD_$sample.png" "$outputDir/VD_$sample.png"
+ echo " " >> $outputFile
+ mv "$outputDir/HeatmapVJ_$sample.png" "$outputDir/VJ_$sample.png"
+ echo " " >> $outputFile
+ mv "$outputDir/HeatmapDJ_$sample.png" "$outputDir/DJ_$sample.png"
+ echo "
" >> $outputFile
+ count=$((count+1))
+done
+echo "
" >> $outputFile
- echo "$hasReplicateColumn"
- #if its a 'new' merged file with replicate info
- if [[ "$hasReplicateColumn" == "Yes" ]] ; then
- echo "Clonality Score: $clonalityScore " >> $outputFile
+
+hasReplicateColumn="$(if head -n 1 $inputFile | grep -q 'Replicate'; then echo 'Yes'; else echo 'No'; fi)"
+echo "$hasReplicateColumn"
+#if its a 'new' merged file with replicate info
+if [[ "$hasReplicateColumn" == "Yes" ]] ; then
+ echo "" >> $outputFile
+ for sample in $samples; do
+ clonalityScore="$(cat $outputDir/ClonalityScore_$sample.csv)"
+ echo "
" >> $outputFile
+ echo "Clonality Score: $clonalityScore " >> $outputFile
#replicate,reads,squared
- echo "Replicate ID Number of Reads Reads Squared " >> $outputFile
+ echo "Replicate ID Number of Reads Reads Squared " >> $outputFile
while IFS=, read replicate reads squared
do
-
- echo "$replicate $reads $squared " >> $outputFile
+
+ echo "$replicate $reads $squared " >> $outputFile
done < $outputDir/ReplicateReads_$sample.csv
-
+
#sum of reads and reads squared
while IFS=, read readsSum squaredSum
do
echo "Sum $readsSum $squaredSum " >> $outputFile
done < $outputDir/ReplicateSumReads_$sample.csv
-
- echo "
" >> $outputFile
-
+
#overview
- echo "Coincidence Type Raw Coincidence Freq Coincidence Weight Coincidences, Weighted " >> $outputFile
+ echo "Coincidence Type Raw Coincidence Freq Coincidence Weight Coincidences, Weighted " >> $outputFile
while IFS=, read type count weight weightedCount
do
echo "$type $count $weight $weightedCount " >> $outputFile
done < $outputDir/ClonalityOverView_$sample.csv
- echo "
" >> $outputFile
- fi
+ echo "
" >> $outputFile
+ done
+ echo "
" >> $outputFile
+fi
+
+if [[ "$hasReplicateColumn" == "Yes" ]] ; then
+ echo "Sample unique VH.DEL P1 N1 P2 DEL.DH DH.DEL P3 N2 P4 DEL.JH Total.Del Total.N Total.P " >> $outputFile
+ while IFS=, read Sample unique VHDEL P1 N1 P2 DELDH DHDEL P3 N2 P4 DELJH TotalDel TotalN TotalP
+ do
+ echo "$Sample $unique $VHDEL $P1 $N1 $P2 $DELDH $DHDEL $P3 $N2 $P4 $DELJH $TotalDel $TotalN $TotalP " >> $outputFile
+ done < $outputDir/junctionAnalysis.csv
+ echo "
" >> $outputFile
+fi
- echo "V-D Heatmap: V-J Heatmap: D-J Heatmap: " >> $outputFile
- mv "$outputDir/HeatmapVD_$sample.png" "$outputDir/VD_$sample.png"
- echo " " >> $outputFile
- mv "$outputDir/HeatmapVJ_$sample.png" "$outputDir/VJ_$sample.png"
- echo " " >> $outputFile
- mv "$outputDir/HeatmapDJ_$sample.png" "$outputDir/DJ_$sample.png"
- echo " " >> $outputFile
- count=$((count+1))
+echo "
" >> $outputFile
+echo "
" >> $outputFile
+echo "
" >> $outputFile
+echo "
" >> $outputFile
+echo "
" >> $outputFile
-echo "" >> $outputFile
+echo "" >> $outputFile
+echo "
" >> $outputFile
+echo "Description Link " >> $outputFile
+echo "The dataset used to generate the frequency graphs and the heatmaps (Unique based on clonaltype, $clonalType) Download " >> $outputFile
+echo "The dataset used to calculate clonality score (Unique based on clonaltype, $clonalType) Download " >> $outputFile
+echo "
" >> $outputFile
+echo "
" >> $outputFile
diff -r 84a386d96452 -r 8b026af4b298 imgtconvert.py
diff -r 84a386d96452 -r 8b026af4b298 script.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/script.js Tue Mar 11 10:39:04 2014 -0400
@@ -0,0 +1,32 @@
+function compareAdd(id){
+ var img = document.createElement('img');
+ img.setAttribute('src', 'VD_' + id + '.png');
+ var td = document.createElement('td');
+ td.setAttribute('id', "comparison_vd_" + id);
+ td.appendChild(img)
+ document.getElementById('comparison_table_vd').appendChild(td);
+
+ img = document.createElement('img');
+ img.setAttribute('src', 'VJ_' + id + '.png');
+ td = document.createElement('td');
+ td.setAttribute('id', "comparison_vj_" + id);
+ td.appendChild(img)
+ document.getElementById('comparison_table_vj').appendChild(td);
+
+ img = document.createElement('img');
+ img.setAttribute('src', 'DJ_' + id + '.png');
+ td = document.createElement('td');
+ td.setAttribute('id', "comparison_dj_" + id);
+ td.appendChild(img)
+ document.getElementById('comparison_table_dj').appendChild(td);
+
+ document.getElementById('compare_checkbox_' + id).setAttribute('onchange', "javascript:compareRemove('" + id + "')");
+}
+
+
+function compareRemove(id){
+ document.getElementById("comparison_vd_" + id).remove()
+ document.getElementById("comparison_vj_" + id).remove()
+ document.getElementById("comparison_dj_" + id).remove()
+ document.getElementById('compare_checkbox_' + id).setAttribute('onchange', "javascript:compareAdd('" + id + "')");
+}
diff -r 84a386d96452 -r 8b026af4b298 style.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/style.css Tue Mar 11 10:39:04 2014 -0400
@@ -0,0 +1,111 @@
+/* $Id: example.css,v 1.5 2006/03/27 02:44:36 pat Exp $ */
+
+/*--------------------------------------------------
+ REQUIRED to hide the non-active tab content.
+ But do not hide them in the print stylesheet!
+ --------------------------------------------------*/
+.tabberlive .tabbertabhide {
+ display:none;
+}
+
+/*--------------------------------------------------
+ .tabber = before the tabber interface is set up
+ .tabberlive = after the tabber interface is set up
+ --------------------------------------------------*/
+.tabber {
+}
+.tabberlive {
+ margin-top:1em;
+}
+
+/*--------------------------------------------------
+ ul.tabbernav = the tab navigation list
+ li.tabberactive = the active tab
+ --------------------------------------------------*/
+ul.tabbernav
+{
+ margin:0;
+ padding: 3px 0;
+ border-bottom: 1px solid #778;
+ font: bold 12px Verdana, sans-serif;
+}
+
+ul.tabbernav li
+{
+ list-style: none;
+ margin: 0;
+ display: inline;
+}
+
+ul.tabbernav li a
+{
+ padding: 3px 0.5em;
+ margin-left: 3px;
+ border: 1px solid #778;
+ border-bottom: none;
+ background: #DDE;
+ text-decoration: none;
+}
+
+ul.tabbernav li a:link { color: #448; }
+ul.tabbernav li a:visited { color: #667; }
+
+ul.tabbernav li a:hover
+{
+ color: #000;
+ background: #AAE;
+ border-color: #227;
+}
+
+ul.tabbernav li.tabberactive a
+{
+ background-color: #fff;
+ border-bottom: 1px solid #fff;
+}
+
+ul.tabbernav li.tabberactive a:hover
+{
+ color: #000;
+ background: white;
+ border-bottom: 1px solid white;
+}
+
+/*--------------------------------------------------
+ .tabbertab = the tab content
+ Add style only after the tabber interface is set up (.tabberlive)
+ --------------------------------------------------*/
+.tabberlive .tabbertab {
+ padding:5px;
+ border:1px solid #aaa;
+ border-top:0;
+
+ /* If you don't want the tab size changing whenever a tab is changed
+ you can set a fixed height */
+
+ /* height:200px; */
+
+ /* If you set a fix height set overflow to auto and you will get a
+ scrollbar when necessary */
+
+ /* overflow:auto; */
+}
+
+/* If desired, hide the heading since a heading is provided by the tab */
+.tabberlive .tabbertab h2 {
+ display:none;
+}
+.tabberlive .tabbertab h3 {
+ display:none;
+}
+
+/* Example of using an ID to set different styles for the tabs on the page */
+.tabberlive#tab1 {
+}
+.tabberlive#tab2 {
+}
+.tabberlive#tab2 .tabbertab {
+ height:200px;
+ overflow:auto;
+}
+
+
diff -r 84a386d96452 -r 8b026af4b298 tabber.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tabber.js Tue Mar 11 10:39:04 2014 -0400
@@ -0,0 +1,40 @@
+/* Copyright (c) 2006 Patrick Fitzgerald */
+
+function tabberObj(argsObj)
+{var arg;this.div=null;this.classMain="tabber";this.classMainLive="tabberlive";this.classTab="tabbertab";this.classTabDefault="tabbertabdefault";this.classNav="tabbernav";this.classTabHide="tabbertabhide";this.classNavActive="tabberactive";this.titleElements=['h2','h3','h4','h5','h6'];this.titleElementsStripHTML=true;this.removeTitle=true;this.addLinkId=false;this.linkIdFormat='nav';for(arg in argsObj){this[arg]=argsObj[arg];}
+this.REclassMain=new RegExp('\\b'+this.classMain+'\\b','gi');this.REclassMainLive=new RegExp('\\b'+this.classMainLive+'\\b','gi');this.REclassTab=new RegExp('\\b'+this.classTab+'\\b','gi');this.REclassTabDefault=new RegExp('\\b'+this.classTabDefault+'\\b','gi');this.REclassTabHide=new RegExp('\\b'+this.classTabHide+'\\b','gi');this.tabs=new Array();if(this.div){this.init(this.div);this.div=null;}}
+tabberObj.prototype.init=function(e)
+{var
+childNodes,i,i2,t,defaultTab=0,DOM_ul,DOM_li,DOM_a,aId,headingElement;if(!document.getElementsByTagName){return false;}
+if(e.id){this.id=e.id;}
+this.tabs.length=0;childNodes=e.childNodes;for(i=0;i/gi," ");t.headingText=t.headingText.replace(/<[^>]+>/g,"");}
+break;}}}
+if(!t.headingText){t.headingText=i+1;}
+DOM_li=document.createElement("li");t.li=DOM_li;DOM_a=document.createElement("a");DOM_a.appendChild(document.createTextNode(t.headingText));DOM_a.href="javascript:void(null);";DOM_a.title=t.headingText;DOM_a.onclick=this.navClick;DOM_a.tabber=this;DOM_a.tabberIndex=i;if(this.addLinkId&&this.linkIdFormat){aId=this.linkIdFormat;aId=aId.replace(//gi,this.id);aId=aId.replace(//gi,i);aId=aId.replace(//gi,i+1);aId=aId.replace(//gi,t.headingText.replace(/[^a-zA-Z0-9\-]/gi,''));DOM_a.id=aId;}
+DOM_li.appendChild(DOM_a);DOM_ul.appendChild(DOM_li);}
+e.insertBefore(DOM_ul,e.firstChild);e.className=e.className.replace(this.REclassMain,this.classMainLive);this.tabShow(defaultTab);if(typeof this.onLoad=='function'){this.onLoad({tabber:this});}
+return this;};tabberObj.prototype.navClick=function(event)
+{var
+rVal,a,self,tabberIndex,onClickArgs;a=this;if(!a.tabber){return false;}
+self=a.tabber;tabberIndex=a.tabberIndex;a.blur();if(typeof self.onClick=='function'){onClickArgs={'tabber':self,'index':tabberIndex,'event':event};if(!event){onClickArgs.event=window.event;}
+rVal=self.onClick(onClickArgs);if(rVal===false){return false;}}
+self.tabShow(tabberIndex);return false;};tabberObj.prototype.tabHideAll=function()
+{var i;for(i=0;i