index.html 15.2 KB
Newer Older
1
2
3
<!doctype html>

<!-- 
4
  This file is part of "Vidjil" <http://bioinfo.lille.inria.fr/vidjil>, V(D)J repertoire browsing and analysis
5
  Copyright (C) 2013, 2014 by Marc Duez <marc.duez@lifl.fr> and the Vidjil Team
6
  Bonsai bioinformatics at CRIStAL (UMR CNRS 9189, Université Lille) and Inria Lille
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

  "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

Mathieu Giraud's avatar
Mathieu Giraud committed
27
28
        <link rel="shortcut icon" href="./images/favicon-v.ico" type="image/x-icon">
        <link rel="icon" href="./images/favicon-v.ico" type="image/x-icon">
Marc Duez's avatar
Marc Duez committed
29
30
        <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" /> 
31
        <link rel="stylesheet" type="text/css" href="css/icons/fontello/css/fontello.css" />
32
33
        <link id="palette" rel="stylesheet" type="text/css" href="css/light.css" />
        <link id="seg_highlight" rel="stylesheet" type="text/css" href="css/segmenter_highlight.css" />
34
35
36

        <script data-main="js/app.js" src="js/lib/require.js"></script>

37
38
39
    </head>


Marc Duez's avatar
Marc Duez committed
40
    <body>
41

42
43
44
45
46
        <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>

47
            Data file (.vidjil):<br/>
48
            <input id="upload_json" type="file" name="json" /></br>
49
            <p class='help'>The .vidjil file stores a set of clones on several points.</p>
50
51
52

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

            <button onclick="document.getElementById('file_menu').style.display='none';
Marc Duez's avatar
Marc Duez committed
56
            m.load('upload_json','upload_pref', 200)">start</button> 
57
58
        </div>

59
        <div id="axis_choice" >
60
61
62
            <span class="closeButton" onclick="cancel();">X</span>
            <h2>analysis menu</h2>

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

66
            <button onclick="document.getElementById('axis_choice').style.display='none';
67
68
                                    m.loadAnalysis('upload_analysis');">start</button> 
        </div>
Marc Duez's avatar
Marc Duez committed
69
        
70
71
72
        <!-- TOP-CONTAINER -->
        <div id="top-container">

73
            <div class="menu" id="top_info">
74
75
                <!--Div is filled programmatically -->
            </div>
Mathieu Giraud's avatar
Mathieu Giraud committed
76
            <div class="menu" id="db_menu" onmouseover="showSelector('dbSelector');" style="display : none">patients
77
78
                <div id="dbSelector" class="selector"><div>
                    <div class="menu_box">
79
80
                        <a class="buttonSelector" onclick="javascript:db.save_analysis()">save this patient's analysis </a>
                        <a class="buttonSelector" onclick="javascript:db.call('patient/index')">open patient list</a>
81
82
83
84
85
86
87
88
                    </div>
                    <div class="menu_box">
                        <div id="last_loaded_file">
                        </div>
                    </div>
                </div></div>
            </div>

89
90
91
92
93
94
95
96
97
            <div class="menu" id="static_file_menu" onmouseover="showSelector('fileSelector');" style="display : none">file
              <div id="fileSelector" class="selector"><div>
                    <div class="menu_box">
                        <div id="upload_list">
                        </div>
                    </div>
              </div></div>
            </div>
            
Mathieu Giraud's avatar
Mathieu Giraud committed
98
            <div class="menu" id="demo_file_menu" onmouseover="showSelector('demoSelector');">import/export
99
                <div id="demoSelector" class="selector"><div>
100
                    <div class="menu_box">
101
102
                        <a id="import_data_anchor" id="import_data" class="buttonSelector" onclick="javascript:loadData()">import data (.vidjil)</a>
                        <a id="import_data_analysis" id="import_analysis" class="buttonSelector" onclick="javascript:loadAnalysis()">import analysis</a>
103
                    </div>
104
105
                    <!--<a class="buttonSelector" onclick="javascript:m.resetAnalysis()">reset analysis</a> -->
                    <!--<a class="buttonSelector" onclick="javascript:reset()">reset all</a> -->
106
                    <div class="menu_box">
107
108
                      <a class="buttonSelector" id="export_sample_report" onclick="javascript:report.reportHTMLdiag()">export report (sample)</a>
                      <a class="buttonSelector" id="export_monitor_report" onclick="javascript:report.reportHTML()">export report (monitor)</a>
109
                    </div>
110
                    <div class="menu_box">
111
112
113
                        <a class="buttonSelector" id="export_analysis" onclick="javascript:m.saveAnalysis()">export analysis</a>
                        <a class="buttonSelector" id="export_pdf" onclick="javascript:pdf.makeGraph()">export pdf (graph)</a>
                        <a class="buttonSelector" id="export_csv" onclick="javascript:m.exportCSV()">export csv (visible clones)</a>
Mathieu Giraud's avatar
Mathieu Giraud committed
114
                        <a class="buttonSelector" id="export_fasta" onclick="javascript:m.exportFasta()">export fasta (selected clones)</a>
Marc Duez's avatar
Marc Duez committed
115
                    </div>
116
                </div></div>
117
118
            </div>

Mathieu Giraud's avatar
Mathieu Giraud committed
119
120
121
122
            <div class="menu" id="cluster_menu" onmouseover="showSelector('clusterSelector');" > cluster
                <div id="clusterSelector" class="selector"><div>
                    <a class="buttonSelector" onclick="m.restoreClusters();">clones merged by user</a>
                    <a class="buttonSelector" onclick="m.resetClusters();">reset all user clones</a>
123
124
                    <a class="buttonSelector" onclick="m.clusterBy(function(id){return m.clone(id).getGene(5)});">cluster by V/5' </a>
                    <a class="buttonSelector" onclick="m.clusterBy(function(id){return m.clone(id).getGene(3)});">cluster by J/3' </a>
Mikaël Salson's avatar
Mikaël Salson committed
125
                    <a class="buttonSelector" onclick="m.clusterBy(function(id){return m.clone(id).germline});">cluster by locus </a>
126
127
                    <a class="buttonSelector" onclick="m.similarity_builder.DBscan(95,0.001);">DBscan </a>
                    <a class="buttonSelector" onclick="m.similarity_builder.cluster_me(95,0.1);">cluster_me </a>
Mathieu Giraud's avatar
Mathieu Giraud committed
128
129
                    <div id="clusterby_button"> </div>
                </div></div>
130
131
            </div>

132
133
134
            <div class="menu" id="color_menu" onmouseover="showSelector('colorSelector');" > color by
                <div class="div-menu-selector"><select class="menu-selector" onchange="m.changeColorMethod(this.value)">
                    <option value="Tag">tag</option>
135
136
                    <option value="V">V/5'</option>
                    <option value="J">J/3'</option>
137
                    <option value="N">N</option>
138
                    <option value="system" id="color_system_button">locus/germline</option>
139
140
                    <option value="abundance">abundance</option>
                </select></div>
141
142
            </div>

Marc Duez's avatar
Marc Duez committed
143
            <div class="menu" id="filter_menu" onmouseenter="builder.build_displaySelector();" onmouseover="showSelector('filterSelector');" > filter
144
145
                <div id="filterSelector" class="selector"><div>
                    <div class="menu_box">
146
                        <span id="top_label"></span></br>
147
                        <input id="top_slider" type="range" min="5" max="100" step="5" value="10" onchange="m.displayTop(this.value)" />
148
                    </div>
149
150
151
152
                    <div class="menu_box">
                        tag visibility</br>
                        <ul id="tagList">
                        </ul>
153
                    </div>
154
155
                </div></div>
            </div>
156

Marc Duez's avatar
Marc Duez committed
157
            <div class="menu" id="settings_menu" onmouseenter="builder.build_settings();" onmouseover=" showSelector('settingsSelector');" > settings
158
159
                <div id="settingsSelector" class="selector"><div>
                    <div class="menu_box">
160
                        normalization</br>
161
162
                        <form name="normalize_list" id="normalize_list">
                        </form>
163
                    </div>
164

165
166
                    <div class="menu_box">
                        normalization method</br>
167
168
169
                        <div class="buttonSelector" onclick="m.changeNormMethod('constant')" ><input type="radio" name="normalize_method" value="constant" checked >constant</input></div>
                        <div class="buttonSelector" onclick="m.changeNormMethod('to-100')" ><input type="radio" name="normalize_method" value="to-100">to 100%</input></div>

170
171
                    </div>

172
173
                    <div class="menu_box">
                        size display</br>
174
175
                        <div class="buttonSelector" onclick="m.changeNotation('scientific', true)"><input type="radio" name="notation" value="scientific" >scientific notation</input></div>
                        <div class="buttonSelector" onclick="m.changeNotation('percent', true)"><input type="radio" name="notation" value="percent" checked>percent</input></div>
176
                    </div>
Marc Duez's avatar
Marc Duez committed
177

178
179
                    <div class="menu_box">
                        point key</br>
180
                        <div class="buttonSelector" onclick="m.changeTimeFormat('name', true)"><input type="radio" name="time" value="name" checked>name</input></div>
181
                        <div class="buttonSelector" onclick="m.changeTimeFormat('short_name', true)"><input type="radio" name="time" value="short_name" checked>name (short)</input></div>
182
183
                        <div class="buttonSelector" onclick="m.changeTimeFormat('sampling_date', true)"><input type="radio" name="time" value="sampling_date" >sampling date</input></div>
                        <div class="buttonSelector" onclick="m.changeTimeFormat('delta_date', true)"><input type="radio" name="time" value="delta_date">day after first sample</input></div>
Marc Duez's avatar
Marc Duez committed
184
                    </div>
185

186
                    <!--
187
                    <div class="submenu" id="system_menu" style="display:none">
188
                        <div class="menu_box">
189
                            selected locus/germline (for the grid)</br>
190
191
192
                            <ul id="germline_list">
                            </ul>
                        </div>
193
                    </div>
194
                    -->
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218

                    <!--menu graph/dbscan -->
                    <div class="submenu" style="display:none">

                        <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>

                        
                        <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>

                    
                        <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>
219
                    </div>
220

Marc Duez's avatar
Marc Duez committed
221
                </div></div>
222
223
            </div>

224

225
            <div id="debug_menu" class="menu" onmouseover="showSelector('adminSelector');" style="display : none"> development              
226
                <div id="adminSelector" class="selector"><div>
227
                    <input type="checkbox" onclick=" this.checked ? $('#fps').css('display', '') : $('#fps').css('display', 'none');">display fps</input></br>
228
                    <input type="checkbox" onclick=" this.checked ? console.openLog() : console.closeLog() ;">log</input>
229
                    <div class="buttonSelector" onclick="m.changeTimeFormat('delta_date_no_zero', true)"><input type="radio" name="time" value="delta_date_no_zero">day after first sample (no zero)</input></div>
230
231
                </div></div>
            </div>
232
            
233

234
            <div id="logo" style="float: right;" onclick="console.log({'type': 'popup', 'default':'welcome'})">Vidjil <span class='logo'>(beta)</span></div>
235

Mikaël Salson's avatar
Mikaël Salson committed
236
            <div class="menu" style="float: right"> <a href="help" target="_blank">help</a></div>
237

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

245
246
247
248
249
250
251
            <div id="upload_summary" style="float: right; display:none; margin-right: 200px;" class="menu" onmouseover="showSelector('upload_summary_selector');"> 
                <span id="upload_summary_label">upload</span>
                <div id="upload_summary_selector" class="selector"><div>

                </div></div>
            </div>

252
            <div id="fps" style="float: right; display: none"> </div>
253
            <div id="header_messages" class="message_container header"></div>
254

255
256
257
258
259
<!--
	    <div class="menu" style="float: right; margin-right:100px"><span style="padding: 4px 5px; background-color: #fef6e3; font-family: ubuntulight;">
		<b>Maintenance:</b> Vidjil will be offline Tuesday 7, 11:00 → 13:00 CEST. Thank you for your understanding.
	    </span></div>
-->
260
        </div>  
Marc Duez's avatar
Marc Duez committed
261
        <!-- fin top-container-->
262
263
264
        
        <!-- MID-CONTAINER -->
        <div id="mid-container" onmouseover="hideSelector()">
Marc Duez's avatar
Marc Duez committed
265

266
            <!-- LEFT-CONTAINER -->
267
            <div id="left-container">
268
269
270
                <div id="info-row"><div id="info"> </div></div>
                <div id="list-row"><div id="list"> </div></div>
                <div id="data-row"><div id="data"> </div></div>
271
            </div>
272
            <!-- fin left-container -->
273

274
            <div id="vertical-separator"></div>
Marc Duez's avatar
Marc Duez committed
275

276
            <!-- RIGHT-CONTAINER -->
Marc Duez's avatar
Marc Duez committed
277
            <div id="right-container"></div>
278

279
            <!-- VISU-CONTAINER  -->
280
            <div id="visu-container">
Marc Duez's avatar
Marc Duez committed
281
282
283
                <div id="visu2"></div>
                <div id="visu-separator" >...</div>
                <div id="visu" onclick=""></div>
284
285
286
287
288
289
            </div>

        </div>
        <!-- fin mid-container -->

        <!-- BOT-CONTAINER / SEGMENTER-CONTAINER -->
Marc Duez's avatar
Marc Duez committed
290
        <div id="bot-container"> </div>
291

292
        <form id="form"></form>
293

294
    </body> 
295

296
</html>