Commit cbe6df2c authored by Mathieu Giraud's avatar Mathieu Giraud
Browse files

index.html, js.clone.js: clonotype

see vdj#1223
parent 3978e689
Pipeline #244155 failed with stages
in 15 seconds
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
Data file (.vidjil):<br /> Data file (.vidjil):<br />
<input id="upload_json" type="file" name="json" /></br> <input id="upload_json" type="file" name="json" /></br>
<p class='help'>The .vidjil file stores a set of clones on several points.</p> <p class='help'>The .vidjil file stores a set of clonotypes on several points.</p>
Analysis file (.analysis, optional):<br /> Analysis file (.analysis, optional):<br />
<input id="upload_pref" type="file" name="pref" /></br> <input id="upload_pref" type="file" name="pref" /></br>
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
<div id="add_clone_menu"> <div id="add_clone_menu">
<span class="closeButton" onclick="cancel();">X</span> <span class="closeButton" onclick="cancel();">X</span>
<h2>Add clones from sequences</h2> <h2>Add clonotypes from sequences</h2>
<textarea id="addclone_input" placeholder="Sequence(s) (Fasta)"></textarea> <textarea id="addclone_input" placeholder="Sequence(s) (Fasta)"></textarea>
...@@ -156,7 +156,7 @@ ...@@ -156,7 +156,7 @@
</div> </div>
<div class="menu_box devel-mode"> <div class="menu_box devel-mode">
<a class="buttonSelector" id="add_clones" onclick="javascript:showAddManualCloneMenu()">add <a class="buttonSelector" id="add_clones" onclick="javascript:showAddManualCloneMenu()">add
clones from sequences</a> clonotypes from sequences</a>
</div> </div>
<!--<a class="buttonSelector" onclick="javascript:m.resetAnalysis()">reset analysis</a> --> <!--<a class="buttonSelector" onclick="javascript:m.resetAnalysis()">reset analysis</a> -->
<!--<a class="buttonSelector" onclick="javascript:reset()">reset all</a> --> <!--<a class="buttonSelector" onclick="javascript:reset()">reset all</a> -->
...@@ -170,11 +170,11 @@ ...@@ -170,11 +170,11 @@
<a class="buttonSelector" id="export_analysis" onclick="javascript:m.saveAnalysis()">export analysis</a> <a class="buttonSelector" id="export_analysis" onclick="javascript:m.saveAnalysis()">export analysis</a>
<a class="buttonSelector" id="export_svg1" onclick="javascript:m.exportViewToPNG(document.querySelector('#visu2_svg'))">export top graph (PNG)</a> <a class="buttonSelector" id="export_svg1" onclick="javascript:m.exportViewToPNG(document.querySelector('#visu2_svg'))">export top graph (PNG)</a>
<a class="buttonSelector" id="export_svg2" onclick="javascript:m.exportViewToPNG(document.querySelector('#visu_svg'))">export bottom graph (PNG)</a> <a class="buttonSelector" id="export_svg2" onclick="javascript:m.exportViewToPNG(document.querySelector('#visu_svg'))">export bottom graph (PNG)</a>
<a class="buttonSelector" id="export_csv" onclick="javascript:m.exportCSV()">export csv (visible clones)</a> <a class="buttonSelector" id="export_csv" onclick="javascript:m.exportCSV()">export csv (visible clonotypes)</a>
<a class="buttonSelector" id="export_fasta" onclick="javascript:m.exportFasta()">export fasta (selected clones)</a> <a class="buttonSelector" id="export_fasta" onclick="javascript:m.exportFasta()">export fasta (selected clonotypes)</a>
<a class="buttonSelector" id="export_airr" onclick="javascript:m.exportCloneAs('airr')">export AIRR (selected clones)</a> <a class="buttonSelector" id="export_airr" onclick="javascript:m.exportCloneAs('airr')">export AIRR (selected clonotypes)</a>
<a class="buttonSelector devel-mode" id="export_json" onclick="javascript:m.exportCloneAs('json')">export JSON (selected clones)</a> <a class="buttonSelector devel-mode" id="export_json" onclick="javascript:m.exportCloneAs('json')">export JSON (selected clonotypes)</a>
<a class="buttonSelector disabledClass" id="export_fasta_align" onclick="javascript:segment.exportAlignFasta()">export aligned fasta (selected clones)</a> <a class="buttonSelector disabledClass" id="export_fasta_align" onclick="javascript:segment.exportAlignFasta()">export aligned fasta (selected clonotypes)</a>
</div> </div>
<div class="menu_box devel-mode"> <div class="menu_box devel-mode">
...@@ -191,7 +191,7 @@ ...@@ -191,7 +191,7 @@
<a class="buttonSelector" onclick="m.restoreClusters();">revert to previous clusters</a> <a class="buttonSelector" onclick="m.restoreClusters();">revert to previous clusters</a>
</div> </div>
<div class="menu_box"> <div class="menu_box">
<a id="clusterBy_selected" class="buttonSelector" onclick="m.merge();">cluster selected clones</a> <a id="clusterBy_selected" class="buttonSelector" onclick="m.merge();">cluster selected clonotypes</a>
<a id="clusterBy_5" class="buttonSelector" onclick="m.clusterBy(function(id){return m.clone(id).getGene(5)});">cluster by V/5' </a> <a id="clusterBy_5" class="buttonSelector" onclick="m.clusterBy(function(id){return m.clone(id).getGene(5)});">cluster by V/5' </a>
<a id="clusterBy_3" class="buttonSelector" onclick="m.clusterBy(function(id){return m.clone(id).getGene(3)});">cluster by J/3' </a> <a id="clusterBy_3" class="buttonSelector" onclick="m.clusterBy(function(id){return m.clone(id).getGene(3)});">cluster by J/3' </a>
<a id="clusterBy_cdr3" class="buttonSelector" onclick="m.clusterBy(function(id){return m.clone(id).getSegAASequence('junction')});">cluster by CDR3 </a> <a id="clusterBy_cdr3" class="buttonSelector" onclick="m.clusterBy(function(id){return m.clone(id).getSegAASequence('junction')});">cluster by CDR3 </a>
...@@ -211,7 +211,7 @@ ...@@ -211,7 +211,7 @@
<div class="menu" id="color_menu" onmouseover="showSelector('colorSelector');" > color by <div class="menu" id="color_menu" onmouseover="showSelector('colorSelector');" > color by
<div class="div-menu-selector"><select id="color_menu_select" class="menu-selector" onchange="m.changeColorMethod(this.value, true, true)"> <div class="div-menu-selector"><select id="color_menu_select" class="menu-selector" onchange="m.changeColorMethod(this.value, true, true)">
<option value="Tag">tag</option> <option value="Tag">tag</option>
<option value="clone">clone</option> <option value="clone">clonotype</option>
<option value="cdr3">CDR3</option> <option value="cdr3">CDR3</option>
<option value="V">V/5'</option> <option value="V">V/5'</option>
<option value="J">J/3'</option> <option value="J">J/3'</option>
...@@ -233,8 +233,8 @@ ...@@ -233,8 +233,8 @@
</div> </div>
<div class="menu_box"> <div class="menu_box">
<div id="filter_switch_sample" <div id="filter_switch_sample"
title="Hide clones that are not present in the current sample"> title="Hide clonotypes that are not present in the current sample">
<input id="filter_switch_sample_check" type="checkbox"></input> Focus on clones of one <input id="filter_switch_sample_check" type="checkbox"></input> Focus on clonotypes of one
sample sample
</div> </div>
</div> </div>
...@@ -288,7 +288,7 @@ ...@@ -288,7 +288,7 @@
</label> </label>
</div> </div>
<div class="menu_box"> <div class="menu_box">
N regions in clone names</br> N regions in clonotype names</br>
<label for="menuCloneNot_nucleotide_number" class="buttonSelector" <label for="menuCloneNot_nucleotide_number" class="buttonSelector"
onclick="m.changeCloneNotation('nucleotide_number', true, true)"> onclick="m.changeCloneNotation('nucleotide_number', true, true)">
<input id="menuCloneNot_nucleotide_number" type="radio" name="show_name" <input id="menuCloneNot_nucleotide_number" type="radio" name="show_name"
...@@ -613,7 +613,7 @@ ...@@ -613,7 +613,7 @@
<span class="stats_content"></span> <span class="stats_content"></span>
<a class="focus_selected" id="focus_selected">(focus)</a> <a class="focus_selected" id="focus_selected">(focus)</a>
<a class="focus_selected" id="hide_selected">(hide)</a> <a class="focus_selected" id="hide_selected">(hide)</a>
<span class="button" id="star_selected" title="Tag selected clones"> <span class="button" id="star_selected" title="Tag selected clonotypes">
<i id="tag_icon__multiple" class="icon-star-2"></i></span> <i id="tag_icon__multiple" class="icon-star-2"></i></span>
<span id="fixsegmenter" class="button"> <span id="fixsegmenter" class="button">
<i title="fix the segmenter in his position" class="icon-pin-outline"></i></span> <i title="fix the segmenter in his position" class="icon-pin-outline"></i></span>
...@@ -638,13 +638,13 @@ ...@@ -638,13 +638,13 @@
<template id="aligner-F"> <template id="aligner-F">
<div class="seq-fixed cloneName"> <div class="seq-fixed cloneName">
<span class="nameBox" title="clone name"> <span class="nameBox" title="clonotype name">
<span class="delBox"><i class="icon-cancel" title="Unselect this clone"></i></span> <span class="delBox"><i class="icon-cancel" title="Unselect this clonotype"></i></span>
<span class="nameBox2"></span> <span class="nameBox2"></span>
</span> </span>
<span class="axisBox"></span> <span class="axisBox"></span>
<span class="starBox" id="color60"><i id="tag_icon_60" title="clone_tag" class="icon-star-2"></i></span> <span class="starBox" id="color60"><i id="tag_icon_60" title="clone_tag" class="icon-star-2"></i></span>
<span class="infoBox"><i class="icon-info" title="clone information"></i></span> <span class="infoBox"><i class="icon-info" title="clonotype information"></i></span>
</div> </div>
</template> </template>
......
...@@ -98,17 +98,17 @@ AXIS_DEFAULT = { ...@@ -98,17 +98,17 @@ AXIS_DEFAULT = {
germline: function(){return m.germlineJ.system}, germline: function(){return m.germlineJ.system},
autofill: false autofill: false
}, },
"clone consensus length" : { "clonotype consensus length" : {
name: "clone consensus length", name: "clonotype consensus length",
doc: "length of the consensus sequence", doc: "length of the consensus sequence",
fct: function(clone) {return clone.getSequenceLength()}, fct: function(clone) {return clone.getSequenceLength()},
autofill: true, autofill: true,
color: { fct: function(t){return d3.interpolatePlasma(t)}}, color: { fct: function(t){return d3.interpolatePlasma(t)}},
isInAligner: true isInAligner: true
}, },
"clone average read length" : { "clonotype average read length" : {
name: "clone average read length", name: "clonotype average read length",
doc: "average length of the reads belonging to each clone", doc: "average length of the reads belonging to each clonotype",
labels: { labels: {
"?": {text:"?", side: "right"} "?": {text:"?", side: "right"}
}, },
...@@ -123,7 +123,7 @@ AXIS_DEFAULT = { ...@@ -123,7 +123,7 @@ AXIS_DEFAULT = {
}, },
"GC content" : { "GC content" : {
name: "GC content", name: "GC content",
doc: "%GC content of the consensus sequence of each clone", doc: "%GC content of the consensus sequence of each clonotype",
fct: function(clone) {return clone.getGCContent()}, fct: function(clone) {return clone.getGCContent()},
autofill: true, autofill: true,
isInAligner: true isInAligner: true
...@@ -215,9 +215,9 @@ AXIS_DEFAULT = { ...@@ -215,9 +215,9 @@ AXIS_DEFAULT = {
sort : false, sort : false,
autofill : false autofill : false
}, },
"clone consensus coverage": { "clonotype consensus coverage": {
name: "clone consensus coverage", name: "clonotype consensus coverage",
doc: "ratio of the length of the clone consensus sequence to the median read length of the clone", doc: "ratio of the length of the clonotype consensus sequence to the median read length of the clonotype",
// "Coverage between .85 and 1.0 (or more) are good values", // "Coverage between .85 and 1.0 (or more) are good values",
fct: function(clone){return clone.coverage}, fct: function(clone){return clone.coverage},
scale: { scale: {
...@@ -234,7 +234,7 @@ AXIS_DEFAULT = { ...@@ -234,7 +234,7 @@ AXIS_DEFAULT = {
autofill: true autofill: true
}, },
"size" : { "size" : {
doc: "ratio of the number of reads of each clone to the total number of reads in the selected locus", doc: "ratio of the number of reads of each clonotype to the total number of reads in the selected locus",
name: "size", name: "size",
fct : function(clone,t){return clone.getSize(t)}, fct : function(clone,t){return clone.getSize(t)},
scale: { mode: "log"}, scale: { mode: "log"},
...@@ -243,7 +243,7 @@ AXIS_DEFAULT = { ...@@ -243,7 +243,7 @@ AXIS_DEFAULT = {
isInAligner:true isInAligner:true
}, },
"size (other sample)" : { "size (other sample)" : {
doc: "ratio of the number of reads of each clone to the total number of reads in the selected locus, on a second sample", doc: "ratio of the number of reads of each clonotype to the total number of reads in the selected locus, on a second sample",
name: "size (other sample)", name: "size (other sample)",
fct : function(clone){return clone.getSize(m.tOther)}, fct : function(clone){return clone.getSize(m.tOther)},
scale: { scale: {
...@@ -255,7 +255,7 @@ AXIS_DEFAULT = { ...@@ -255,7 +255,7 @@ AXIS_DEFAULT = {
}, },
"number of samples" : { "number of samples" : {
name: "number of samples", name: "number of samples",
label: "number of samples sharing each clone", label: "number of samples sharing each clonotype",
fct : function(clone){return clone.getNumberNonZeroSamples()}, fct : function(clone){return clone.getNumberNonZeroSamples()},
scale: { scale: {
mode: "linear", mode: "linear",
...@@ -296,7 +296,7 @@ AXIS_DEFAULT = { ...@@ -296,7 +296,7 @@ AXIS_DEFAULT = {
//hide : (typeof config === 'undefined' || ! config.clonedb), //hide : (typeof config === 'undefined' || ! config.clonedb),
}, },
"cloneDB patients/runs/sets occurrences": { "cloneDB patients/runs/sets occurrences": {
doc: "number of patients/runs/sets sharing clones in cloneDB", doc: "number of patients/runs/sets sharing clonotypes in cloneDB",
name: "cloneDB occurrences", name: "cloneDB occurrences",
scale: { scale: {
"mode": "linear", "mode": "linear",
...@@ -423,8 +423,8 @@ AXIS_DEFAULT = { ...@@ -423,8 +423,8 @@ AXIS_DEFAULT = {
germline: "multi", germline: "multi",
autofill: true autofill: true
}, },
"clone consensus length2" : { "clonotype consensus length2" : {
name: "clone consensus length", name: "clonotype consensus length",
doc: "length of the consensus sequence", doc: "length of the consensus sequence",
labels: { labels: {
"< 50": {text:"< 50", side: "left", type: "bold"}, "< 50": {text:"< 50", side: "left", type: "bold"},
......
...@@ -647,7 +647,7 @@ Clone.prototype = { ...@@ -647,7 +647,7 @@ Clone.prototype = {
* @param {string} name * @param {string} name
* */ * */
changeName: function (newName) { changeName: function (newName) {
console.log("changeName() (clone " + this.index + " <<" + newName + ")"); console.log("changeName() (clonotype " + this.index + " <<" + newName + ")");
this.c_name = newName; this.c_name = newName;
this.m.updateElem([this.index]); this.m.updateElem([this.index]);
this.m.analysisHasChanged = true this.m.analysisHasChanged = true
...@@ -672,7 +672,7 @@ Clone.prototype = { ...@@ -672,7 +672,7 @@ Clone.prototype = {
var loci = [this.getGene("5").substring(0,3), this.getGene("3").substring(0,3) ] var loci = [this.getGene("5").substring(0,3), this.getGene("3").substring(0,3) ]
locus = loci[0] locus = loci[0]
if (loci[0] != loci[1]) { if (loci[0] != loci[1]) {
console.log("Clone " + this.getName() + "recombines sequences from two separate loci. Using: " + locus) console.log("Clonotype " + this.getName() + "recombines sequences from two separate loci. Using: " + locus)
} }
} }
...@@ -1201,7 +1201,7 @@ Clone.prototype = { ...@@ -1201,7 +1201,7 @@ Clone.prototype = {
changeTag: function (newTag) { changeTag: function (newTag) {
newTag = "" + newTag newTag = "" + newTag
newTag = newTag.replace("tag", ""); newTag = newTag.replace("tag", "");
console.log("changeTag() (clone " + this.index + " <<" + newTag + ")"); console.log("changeTag() (clonotype " + this.index + " <<" + newTag + ")");
this.tag = newTag; this.tag = newTag;
this.m.updateElem([this.index]); this.m.updateElem([this.index]);
this.m.analysisHasChanged = true; this.m.analysisHasChanged = true;
...@@ -1569,7 +1569,7 @@ Clone.prototype = { ...@@ -1569,7 +1569,7 @@ Clone.prototype = {
html += "<p>select <a class='button' onclick='m.selectCorrelated(" + this.index + ", 0.90); m.closeInfoBox();'>correlated</a> clones</p>" html += "<p>select <a class='button' onclick='m.selectCorrelated(" + this.index + ", 0.90); m.closeInfoBox();'>correlated</a> clones</p>"
html += "<p>select <a class='button' onclick='m.selectCorrelated(" + this.index + ", 0.99); m.closeInfoBox();'>strongly correlated</a> clones</p>" html += "<p>select <a class='button' onclick='m.selectCorrelated(" + this.index + ", 0.99); m.closeInfoBox();'>strongly correlated</a> clones</p>"
html += "<p>Download clone information as " html += "<p>Download clonotype information as "
html += "<a class='button' id='download_info_"+ this.index +"_airr' onclick='m.exportCloneAs(\"airr\", [" + this.index + "])'>AIRR</a>" html += "<a class='button' id='download_info_"+ this.index +"_airr' onclick='m.exportCloneAs(\"airr\", [" + this.index + "])'>AIRR</a>"
html += "<a class='button devel-mode' id='download_info_"+ this.index +"_json' onclick='m.exportCloneAs(\"json\", [" + this.index + "])'>JSON</a>" html += "<a class='button devel-mode' id='download_info_"+ this.index +"_json' onclick='m.exportCloneAs(\"json\", [" + this.index + "])'>JSON</a>"
html += "</p>" html += "</p>"
...@@ -1606,13 +1606,13 @@ Clone.prototype = { ...@@ -1606,13 +1606,13 @@ Clone.prototype = {
//cluster info //cluster info
if (isCluster) { if (isCluster) {
html += header("clone") html += header("clonotype")
html += row_1("clone name", this.getName()) html += row_1("clonotype name", this.getName())
if (this.hasSizeConstant()){ if (this.hasSizeConstant()){
html += row_1("clone short name", this.getShortName()) html += row_1("clonotype short name", this.getShortName())
html += "<tr><td>clone size (n-reads (total reads))" html += "<tr><td>clonotype size (n-reads (total reads))"
} else if (this.hasSizeDistrib()) { } else if (this.hasSizeDistrib()) {
html += "<tr><td title='Current size; depending of the number of clones curently not filtered'>current clone size<br/>(n-reads (total reads))" html += "<tr><td title='Current size; depending of the number of clonotypes curently not filtered'>current clonotype size<br/>(n-reads (total reads))"
} }
if (this.normalized_reads && this.m.normalization_mode == this.m.NORM_EXTERNAL) { if (this.normalized_reads && this.m.normalization_mode == this.m.NORM_EXTERNAL) {
html += "<br />[normalized]" html += "<br />[normalized]"
...@@ -1632,7 +1632,7 @@ Clone.prototype = { ...@@ -1632,7 +1632,7 @@ Clone.prototype = {
} }
html += "</td>" html += "</td>"
} }
html += "</tr><tr><td>clone size (%)</td>" html += "</tr><tr><td>clonotype size (%)</td>"
for (var k = 0; k < time_length; k++) { for (var k = 0; k < time_length; k++) {
html += "<td>" + this.getStrSize(this.m.samples.order[k]) + "</td>" html += "<td>" + this.getStrSize(this.m.samples.order[k]) + "</td>"
} }
...@@ -1789,7 +1789,7 @@ Clone.prototype = { ...@@ -1789,7 +1789,7 @@ Clone.prototype = {
//IMGT info //IMGT info
var other_infos = {"imgt": "<a target='_blank' href='http://www.imgt.org/IMGT_vquest/share/textes/'>IMGT/V-QUEST</a>", var other_infos = {"imgt": "<a target='_blank' href='http://www.imgt.org/IMGT_vquest/share/textes/'>IMGT/V-QUEST</a>",
"clonedb": "<a target='_blank' href='http://ecngs.vidjil.org/clonedb'>CloneDB</a> "+ (this.numberSampleSetInCloneDB() > 0 ? "<br /> A similar clone exists in "+this.numberSampleSetInCloneDB()+" other patients/runs/sets" : "")}; "clonedb": "<a target='_blank' href='http://ecngs.vidjil.org/clonedb'>CloneDB</a> "+ (this.numberSampleSetInCloneDB() > 0 ? "<br /> A similar clonotype exists in "+this.numberSampleSetInCloneDB()+" other patients/runs/sets" : "")};
for (var external_tool in other_infos) { for (var external_tool in other_infos) {
if (typeof this.seg[external_tool] != 'undefined' && if (typeof this.seg[external_tool] != 'undefined' &&
this.seg[external_tool] !== null) { this.seg[external_tool] !== null) {
...@@ -1809,15 +1809,15 @@ Clone.prototype = { ...@@ -1809,15 +1809,15 @@ Clone.prototype = {
/* /*
axisOptions: function() { axisOptions: function() {
return [ return [
"clone consensus length", "clone average read length", "GC content", "N length", "clonotype consensus length", "clonotype average read length", "GC content", "N length",
"CDR3 length (nt)", "productivity", "productivity-IMGT", "CDR3 length (nt)", "productivity", "productivity-IMGT",
"VIdentity-IMGT", "clone consensus coverage", "VIdentity-IMGT", "clonotype consensus coverage",
"tag", "coverage", "size", "number of samples", "primers" "tag", "coverage", "size", "number of samples", "primers"
]; ];
}, },
*/ */
/** /**
* start to fill a node with clone informations common between segmenter and list * start to fill a node with clonotype informations common between segmenter and list
* @param {dom_object} div_elem - html element to complete * @param {dom_object} div_elem - html element to complete
* */ * */
div_elem: function (div_elem, clear) { div_elem: function (div_elem, clear) {
...@@ -1869,7 +1869,7 @@ Clone.prototype = { ...@@ -1869,7 +1869,7 @@ Clone.prototype = {
span_info.className += " " + this.isWarned() ; span_info.className += " " + this.isWarned() ;
span_info.appendChild(icon('icon-warning-1', this.warnText())); span_info.appendChild(icon('icon-warning-1', this.warnText()));
} else { } else {
span_info.appendChild(icon('icon-info', 'clone information')); span_info.appendChild(icon('icon-info', 'clonotype information'));
} }
} }
...@@ -1934,7 +1934,7 @@ Clone.prototype = { ...@@ -1934,7 +1934,7 @@ Clone.prototype = {
}, },
unselect: function () { unselect: function () {
console.log("unselect() (clone " + this.index + ")") console.log("unselect() (clonotype " + this.index + ")")
if (this.select) { if (this.select) {
this.select = false; this.select = false;
this.m.removeFromOrderedSelectedClones(this.index); this.m.removeFromOrderedSelectedClones(this.index);
......
...@@ -673,7 +673,7 @@ Report.prototype = { ...@@ -673,7 +673,7 @@ Report.prototype = {
cloneList : function(time) { cloneList : function(time) {
if (typeof time == "undefined") time = -1 if (typeof time == "undefined") time = -1
var container = this.container('Selected clones') var container = this.container('Selected clonotypes')
for (var i=0; i<this.list.length; i++){ for (var i=0; i<this.list.length; i++){
var cloneID = this.list[i] var cloneID = this.list[i]
......
...@@ -330,7 +330,7 @@ Graph.prototype = { ...@@ -330,7 +330,7 @@ Graph.prototype = {
line_content = document.createElement("td") line_content = document.createElement("td")
line_content.id = this.id +"_listElem_hideNotShare" line_content.id = this.id +"_listElem_hideNotShare"
line_content.classList.add("graph_listAll") line_content.classList.add("graph_listAll")
line_content.textContent = "focus on selected clones" line_content.textContent = "focus on selected clonotypes"
line_content.colSpan = "2" line_content.colSpan = "2"
line.appendChild(line_content) line.appendChild(line_content)
table.appendChild(line) table.appendChild(line)
......
...@@ -216,7 +216,7 @@ List.prototype = { ...@@ -216,7 +216,7 @@ List.prototype = {
star.className = "starBox"; star.className = "starBox";
star_onclick(key, star); star_onclick(key, star);
star.appendChild(icon('icon-star-2', 'clone tag')) star.appendChild(icon('icon-star-2', 'clonotype tag'))
div.appendChild(star) div.appendChild(star)
this.index_data[key] = value; this.index_data[key] = value;
...@@ -239,7 +239,7 @@ List.prototype = { ...@@ -239,7 +239,7 @@ List.prototype = {
var a_split = document.createElement('a') var a_split = document.createElement('a')
a_split.className = "button" a_split.className = "button"
a_split.appendChild(icon('icon-plus', 'Show all subclones')) a_split.appendChild(icon('icon-plus', 'Show all sub-clonotypes'))
a_split.id = "list_split_all" a_split.id = "list_split_all"
a_split.onclick = function () { a_split.onclick = function () {
self.m.split_all(true) self.m.split_all(true)
...@@ -247,14 +247,14 @@ List.prototype = { ...@@ -247,14 +247,14 @@ List.prototype = {
var a_unsplit = document.createElement('a') var a_unsplit = document.createElement('a')
a_unsplit.className = "button" a_unsplit.className = "button"
a_unsplit.appendChild(icon('icon-minus', 'Hide all subclones')) a_unsplit.appendChild(icon('icon-minus', 'Hide all sub-clonotypes'))
a_unsplit.id = "list_unsplit_all" a_unsplit.id = "list_unsplit_all"
a_unsplit.onclick = function () { a_unsplit.onclick = function () {
self.m.split_all(false) self.m.split_all(false)
} }
var filter_label = document.createElement('span') var filter_label = document.createElement('span')
filter_label.appendChild(icon('icon-search-1', 'Search a clone by name, sequence, or V/D/J gene')) filter_label.appendChild(icon('icon-search-1', 'Search a clonotype by name, sequence, or V/D/J gene'))
var filter_input = document.createElement('input') var filter_input = document.createElement('input')
filter_input.id = 'filter_input' filter_input.id = 'filter_input'
...@@ -507,10 +507,10 @@ List.prototype = { ...@@ -507,10 +507,10 @@ List.prototype = {
//update cluster icon //update cluster icon
if (this.m.clusters[cloneID].length > 1) { if (this.m.clusters[cloneID].length > 1) {
if (clone.split) { if (clone.split) {
cloneDom.content("clusterBox", icon('icon-minus', 'Hide the subclones').outerHTML) cloneDom.content("clusterBox", icon('icon-minus', 'Hide the sub-clonotypes').outerHTML)
this.showClusterContent(cloneID, false) this.showClusterContent(cloneID, false)
} else { } else {
cloneDom.content("clusterBox", icon('icon-plus', 'Show the subclones').outerHTML) cloneDom.content("clusterBox", icon('icon-plus', 'Show the sub-clonotypes').outerHTML)
this.hideClusterContent(cloneID, false) this.hideClusterContent(cloneID, false)
} }
self.div_cluster(document.getElementById("cluster" + cloneID), cloneID); self.div_cluster(document.getElementById("cluster" + cloneID), cloneID);
...@@ -578,7 +578,7 @@ List.prototype = { ...@@ -578,7 +578,7 @@ List.prototype = {
span_info.onclick = function () { span_info.onclick = function () {
self.m.displayInfoBox(id); self.m.displayInfoBox(id);
} }
span_info.appendChild(icon('icon-info', 'clone information')); span_info.appendChild(icon('icon-info', 'clonotype information'));
var img = document.createElement('span'); var img = document.createElement('span');
img.onclick = function () { img.onclick = function () {
......
...@@ -150,16 +150,16 @@ Model.prototype = { ...@@ -150,16 +150,16 @@ Model.prototype = {
// Particular, take the nb reads value of the distribution // Particular, take the nb reads value of the distribution
"size": "size", "size": "size",
// Should be in Array format // Should be in Array format
"clone consensus length" : "lenSeqConsensus", "clonotype consensus length" : "lenSeqConsensus",
"clone average read length" : "lenSeqAverage", // make a round on it (into fuse.py) ? "clonotype average read length" : "lenSeqAverage", // make a round on it (into fuse.py) ?
///////////////////// /////////////////////
// Fuse --> Axes // Fuse --> Axes
"seg5": "V/5' gene", "seg5": "V/5' gene",
"seg4": "D/4' gene", "seg4": "D/4' gene",
"seg3": "J/3' gene", "seg3": "J/3' gene",
"lenCDR3": "CDR3 length (nt)", "lenCDR3": "CDR3 length (nt)",
"lenSeqConsensus": "clone consensus length", "lenSeqConsensus": "clonotype consensus length",
"lenSeqAverage": "clone average read length", "lenSeqAverage": "clonotype average read length",
} }
// List of axe that must be in an array format // List of axe that must be in an array format
this.distrib_axe_is_timmed = { this.distrib_axe_is_timmed = {
...@@ -268,16 +268,16 @@ Model.prototype = { ...@@ -268,16 +268,16 @@ Model.prototype = {
];