index.html 14.8 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!doctype html>

<!-- 
  This file is part of "Vidjil" <http://bioinfo.lifl.fr/vidjil>, V(D)J repertoire browsing and analysis
  Copyright (C) 2013, 2014 by Marc Duez <marc.duez@lifl.fr> and the Vidjil Team
  Bonsai bioinformatics at LIFL (UMR CNRS 8022, Université Lille) and Inria Lille

  "Vidjil" is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  "Vidjil" is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with "Vidjil". If not, see <http://www.gnu.org/licenses/>
-->

<html>
23
24
25
    <head>
        <meta charset="utf-8">
        <title>Vidjil</title>
Marc Duez's avatar
Marc Duez committed
26
27
28

        <link rel="stylesheet" type="text/css" href="css/fonts/ubuntu/stylesheet.css" /> 
        <link rel="stylesheet" type="text/css" href="css/fonts/ubuntu-mono/stylesheet.css" /> 
29
30
31
32
33
34
        <link id="palette" rel="stylesheet" type="text/css" href="css/dark.css" /> 
        <!--[if lte IE 8]><script src="js/r2d3.js" charset="utf-8"></script><![endif]-->
        <!--[if gte IE 9]><!-->
        <script type="text/javascript" src='js/lib/d3.v3.js'></script>
        <!--<![endif]-->
        <script type="text/javascript" src="js/lib/jquery-1.9.1.min.js"></script>
35
        <script type="text/javascript" src="js/lib/jquery.form.js"></script>
36
37
38
39
40
41
42
43
44
45
46
        <script type="text/javascript" src='js/lib/StackBlur.js'></script>
        <script type="text/javascript" src='js/lib/jspdf.js'></script>
        <script type="text/javascript" src='js/lib/jspdf.plugin.addimage.js'></script>
        <script type="text/javascript" src='js/lib/jspdf.plugin.svgToPdf.js'></script>
        <script type="text/javascript" src='js/lib/jspdf.plugin.split_text_to_size.js'></script>
        <script type="text/javascript" src='js/lib/jspdf.plugin.standard_fonts_metrics.js'></script>
        <script type="text/javascript" src='js/lib/underscore.js'></script>
        <script type="text/javascript" src='js/lib/rgbcolor.js'></script>
        <script type="text/javascript" src='js/lib/file.js'></script>
        <script type="text/javascript" src="js/lib/less-1.5.0.min.js"></script>
        <script type="text/javascript" src='js/lib/jquery.zclip.js'></script>
WebTogz's avatar
WebTogz committed
47
48
	    <script type="text/javascript" src='js/compare.js'></script>
        <script type="text/javascript" src='js/dbscan.js'></script>
49
50
        <script type="text/javascript" src='js/germline.js'></script>
        <script type="text/javascript" src='js/segmenter.js'></script>
WebTogz's avatar
WebTogz committed
51
        <script type="text/javascript" src='js/model.js'></script>
52
53
54
55
56
57
58
        <script type="text/javascript" src='js/list.js'></script>
        <script type="text/javascript" src="js/graph.js"> </script>
        <script type="text/javascript" src="js/scatterPlot.js"> </script>
        <script type="text/javascript" src='js/builder.js'></script>
        <script type="text/javascript" src='js/vidjil-style.js'></script>
        <script type="text/javascript" src='js/crossDomain.js'></script>
        <script type="text/javascript" src='js/pdf.js'></script>
59
        <script type="text/javascript" src='js/database.js'></script>
60
        <script type="text/javascript" src='js/conf.js'></script>
WebTogz's avatar
WebTogz committed
61
        <script type="text/javascript" src='js/stats.js'></script>
62
63
64
65

    </head>


Marc Duez's avatar
Marc Duez committed
66
    <body>
67
68
69
70
71
72
73
74
75
76
77
78
79
80
        <div id="file_menu" >
            <span class="closeButton" onclick="cancel();">X</span>

            <h2>Vidjil <span class='logo'>(beta)</span> &ndash; V(D)J repertoire browsing and analysis</h2>

            Data file (.data):<br/>
            <input id="upload_json" type="file" name="json" /></br>
            <p class='help'>The data file stores a set of clones on several points.</p>

            Analysis file (.analysis, optional):<br/>
            <input id="upload_pref" type="file" name="pref" /></br>
            <p class='help'>The analysis file stores all parameters set by the user (tags, colors, manual clusters).</p>

            <button onclick="document.getElementById('file_menu').style.display='none';
Marc Duez's avatar
Marc Duez committed
81
            m.load('upload_json','upload_pref', 200)">start</button> 
82
83
84
85
86
87
88
89
90
91
92
93
        </div>

        <div id="analysis_menu" >
            <span class="closeButton" onclick="cancel();">X</span>
            <h2>analysis menu</h2>

            Analysis file :<br/>
            <input id="upload_analysis" type="file" name="analysis" /></br></br>

            <button onclick="document.getElementById('analysis_menu').style.display='none';
                                    m.loadAnalysis('upload_analysis');">start</button> 
        </div>
Marc Duez's avatar
Marc Duez committed
94
        
95
96
97
        <!-- TOP-CONTAINER -->
        <div id="top-container">

98
99
            <div class="menu" id="demo_file_menu" onmouseover="showSelector('demoSelector');"> file 
                <div id="demoSelector" class="selector"><div>
100
101
102
103
                    <div class="menu_box">
                        <a class="buttonSelector" onclick="javascript:loadData()">Open </a>
                        <a class="buttonSelector" onclick="javascript:loadAnalysis()">Open analysis file</a>
                    </div>
104
105
                    <!--<a class="buttonSelector" onclick="javascript:m.resetAnalysis()">reset analysis</a> -->
                    <!--<a class="buttonSelector" onclick="javascript:reset()">reset all</a> -->
106
107
108
109
110
111
112
                    <div class="menu_box">
                        <a class="buttonSelector" onclick="javascript:m.saveAnalysis()">Save analysis file</a>
                        <a class="buttonSelector" onclick="javascript:new PDF(m, 'visu2_svg')">Save pdf (graph + selected clones)</a>
                    </div>
                    <div class="menu_box">
                        <div id="upload_list">
                        </div>
113
                    </div>
114
                </div></div>
115
116
            </div>

117
118
            <div class="menu" onmouseover="showSelector('clusterSelector');" > cluster
                <div id="clusterSelector" class="selector"><div>
119
                    <a class="buttonSelector" onclick="m.resetClones();">reset all clusters</a>
120
                    <a class="buttonSelector" onclick="m.restoreClones();">user</a>
121
122
                    <a class="buttonSelector" onclick="m.clusterBy('V');">V gene + allele</a>
                    <a class="buttonSelector" onclick="m.clusterBy('J');">J gene + allele</a>
WebTogz's avatar
WebTogz committed
123
124
                    <a class="buttonSelector" onclick="m.clusterBy('cluster')">DBSCAN algorithm</a>

125
                    <div id="clusterby_button"> </div>
126
127
128
                </div></div>
            </div>

WebTogz's avatar
WebTogz committed
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
            <div class="menu" onmouseover="showSelector('groupSelector');"> analysis
                <div id="groupSelector" class="selector">
                    <div>
                    <a class="buttonSelector" onclick="sp.changeSplitMethod('gene_v', 'gene_j');">V / J (genes)</a>
                    <a class="buttonSelector" onclick="sp.changeSplitMethod('allele_v', 'allele_j');">V / J (alleles)</a>
                    <a class="buttonSelector" onclick="sp.changeSplitMethod('gene_v', 'n');">V / N length</a>
                    <!--
                    <a class="buttonSelector" onclick="sp.changeSplitMethod('gene_v', 'nSize');">V / N length + VJ deletions</a>
                    k-->
                    <a class="buttonSelector" onclick="sp.changeSplitMethod('gene_v', 'Size')">V / abundance at selected timepoint</a>
                    <a class="buttonSelector" onclick="sp.changeSplitMethod('gene_v', 'bar')">V distribution</a>
                    <a class="buttonSelector" onclick="sp.changeSplitMethod('dbscan', 'dbscan')">Graph</a>
                    <!--<a class="buttonSelector" onclick="sp.changeSplitMethod('graph','graph')">Edit distance distribution</a>
                    <a class="buttonSelector" onclick="sp.changeSplitMethod('dbscan','dbscan')">DBSCAN algorithm</a>-->
                    </div>
                </div>
145
146
147
            </div>

            <div class="menu" onmouseover="showSelector('colorSelector');" > color 
148
                <div id="colorSelector" class="selector"><div>
149
                    <a class="buttonSelector" onclick="m.changeColorMethod('Tag');">by tag</a>
150
151
                    <a class="buttonSelector" onclick="m.changeColorMethod('V');">by V</a>
                    <a class="buttonSelector" onclick="m.changeColorMethod('J');">by J</a>
Marc Duez's avatar
Marc Duez committed
152
                    <a class="buttonSelector" onclick="m.changeColorMethod('N');">by N length</a>
Marc Duez's avatar
Marc Duez committed
153
154
                    <a class="buttonSelector" onclick="m.changeColorMethod('system');" 
                        id="color_system_button" style="display:none">by system</a>
155
                    <a class="buttonSelector" onclick="m.changeColorMethod('abundance');">by abundance at selected timepoint</a>
WebTogz's avatar
WebTogz committed
156
                    <a class="buttonSelector" onclick="m.changeColorMethod('dbscan');">by the DBSCAN algorithm</a>
157
                </div></div>
158
159
            </div>

160
161
162
163
164
            <div class="menu" onmouseover="showSelector('filterSelector');" > filter
                <div id="filterSelector" class="selector"><div>
                    <div class="menu_box">
                        number of clones</br>
                        <input id="top_slider" type="range" min="5" max="100" step="5" value="10" onchange="m.displayTop(this.value)" />
165
                    </div>
166
167
168
169
                    <div class="menu_box">
                        tag visibility</br>
                        <ul id="tagList">
                        </ul>
170
                    </div>
171
172
                </div></div>
            </div>
173

174
<!--
Marc Duez's avatar
Marc Duez committed
175
176
                    <div class="submenu">

WebTogz's avatar
WebTogz committed
177
178
179
180
181
182
                        <div class="menu_box">
			    <div id="DBSCANEpsSlider">
			    <input id="changeEps" type="range" min="0" max="40" step="1" value="0" onchange="m.changeEps(this.value)" />
			    </div>
			</div>

183
			
WebTogz's avatar
WebTogz committed
184
185
186
187
188
189
			<div class="menu_box">
			    <div id="DBSCANNbrSlider">
				<input id="changeNbr" type="range" min="0" max="100" step="1" value="0" onchange="m.changeNbr(this.value)" />
			    </div>
			</div>

190
		
WebTogz's avatar
WebTogz committed
191
192
193
194
195
196
197
			<div class="menu_box">
			    <div id="EditDistanceSlider">
				</br>
				<input id="displayMax_slider" type="range" min="1" max="20" step="1" value="10" onchange="sp.displayDistanceMax(this.value)" style="display:none"/>
			    </div>
			</div>

198
199
   
-->
200
201
202
203
204
205
206
            <div class="menu" onmouseover="showSelector('settingsSelector');" > settings
                <div id="settingsSelector" class="selector"><div>
                    <div class="menu_box">
                        normalization (<span id="normalize_value"> </span>)</br>
                        <input id="normalize" type="checkbox" name="normalize" onclick="m.normalization_switch(this.checked);">
                        <span id="normalize_info"></span>
                    </div>
207

208
209
210
211
212
                    <div class="menu_box">
                        size display</br>
                        <input type="radio" name="notation" value="scientific" onchange="m.notation_switch()">scientific notation</input></br>
                        <input type="radio" name="notation" value="percent" onchange="m.notation_switch()" checked>percent</input>
                    </div>
Marc Duez's avatar
Marc Duez committed
213

214
215
216
217
                    <div class="menu_box">
                        point key</br>
                        <input type="radio" name="time" value="name" onchange="m.time_switch()" checked>name</input></br>
                        <input type="radio" name="time" value="sampling_date" onchange="m.time_switch()">sampling date</input>
Marc Duez's avatar
Marc Duez committed
218
                    </div>
219
220

                    <div class="submenu" id="system_menu" style="display:none">
221
222
223
224
225
                        <div class="menu_box">
                            germline (for color and scatterplot)</br>
                            <ul id="germline_list">
                            </ul>
                        </div>
226
                    </div>
227

Marc Duez's avatar
Marc Duez committed
228
                </div></div>
229
230
            </div>

231
232
233
234
235
236
237
            <div id="debug_menu" class="menu" onmouseover="showSelector('adminSelector');" style="display : none"> A
                <div id="adminSelector" class="selector"><div>
                    <input type="checkbox" onclick="m.display_window = this.checked; m.update()">highlight windows</input><br>
                    <input type="checkbox" onclick=" this.checked ? $('#fps').css('display', '') : $('#fps').css('display', 'none');">display fps</input>
                </div></div>
            </div>

238
239
240
            <div id="logo" style="float: right;" onclick="popupMsg(msg.welcome)">Vidjil <span class='logo'>(beta)</span></div>

            <div style="float: right" class="menu" onmouseover="showSelector('paletteSelector');"> palette 
241
                <div id="paletteSelector" class="selector"><div>
242
243
                    <a class="buttonSelector" onclick="changeStyle(solarizeD)">dark</a>
                    <a class="buttonSelector" onclick="changeStyle(solarizeL)">light</a>
244
                </div></div>
245
246
            </div>

247
            <div id="fps" style="float: right; display: none"> </div>
248
249

        </div>  
Marc Duez's avatar
Marc Duez committed
250
        <!-- fin top-container-->
251
252
253
        
        <!-- MID-CONTAINER -->
        <div id="mid-container" onmouseover="hideSelector()">
Marc Duez's avatar
Marc Duez committed
254

255
        <!-- LEFT-CONTAINER -->
256
            <div id="left-container">
257

258
                <div id="info"> </div>
259

Marc Duez's avatar
Marc Duez committed
260
                <div id="list"> </div>
261

262
            </div>
263
264
        <!-- fin left-container -->

Marc Duez's avatar
Marc Duez committed
265
266
267
            <div id="vertical-separator">
            </div>

268
        <!-- RIGHT-CONTAINER -->
Marc Duez's avatar
Marc Duez committed
269
            <div id="right-container"></div>
270
271

        <!-- VISU-CONTAINER  -->
272
            <div id="visu-container">
Marc Duez's avatar
Marc Duez committed
273
274
275
                <div id="visu2"></div>
                <div id="visu-separator" >...</div>
                <div id="visu" onclick=""></div>
276
277
278
279
            </div>

        </div>
        <!-- fin mid-container -->
Marc Duez's avatar
Marc Duez committed
280
    
281
282

        <!-- BOT-CONTAINER / SEGMENTER-CONTAINER -->
Marc Duez's avatar
Marc Duez committed
283
        <div id="bot-container"> </div>
284
285
286
287

        <div id="tagSelector">
            <span class="closeButton" onclick="$('#tagSelector').hide('fast')">X</span>
            <div>   tag for <span id=tag_name></span><span id=tag_id></span></div>
288
            <ul> </ul>
289
290
291
292
293
294
295
296
297
298
299
300
301
302
        </div>

        <div id="frame-container"></div>

        <div id="popup-container">
            <span class="closeButton" onclick="closePopupMsg()">X</span>
            <div id="popup-msg"></div>
        </div>

        <div id="data-container">
            <span class="closeButton" onclick="closeDataBox()">X</span>
            <div id="data-msg"></div>
        </div>

303
304
305
306
307
308
        <div id="db_div">
            <span class="closeButton" onclick="db.close()">X</span>
                <div id="db_msg">
            </div>
        </div>

Marc Duez's avatar
Marc Duez committed
309
310
311
        <div id="flash_mes">
        </div>

312
313
314
315
        <form id="form"></form>

    </body>

316
    <script type="text/javascript" src='test/dataTest.js'></script>
317
    <script type="text/javascript" src="js/main.js"> </script>
318
319
320
</html>