-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
239 lines (239 loc) · 15.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
<!DOCTYPE html>
<html lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<title>Composite plot template</title>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
<script src="https://d3js.org/d3.v7.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2.2.1/src/js.cookie.min.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="js/reset.js"></script>
<script src="js/csrf_token.js"></script>
<script src="js/parse_composite.js"></script>
</head>
<body>
<main>
<div class="container-fluid">
<div class="row" style="padding-top:5px;">
<div class="col-4">
<div class="row">
<div class="col-8">
<input type="button" id="json-button" value="Import JSON session">
<input type="file" id="json-loader" style="display:none;">
<script src="js/events/import_json_button.js"></script>
<input type="button" id="json-download" value="Export session as JSON">
<script src="js/events/export_json_button.js"></script>
<input type="button" id="tsv-download" value="Export metadata as TSV">
<script src="js/events/export_tsv_button.js"></script>
</div>
<div class="col-4 text-right">
<input type="button" id="load-composite-button" value="Load multi-composite">
<input type="file" id="composite-loader" style="display:none;">
<script src="js/events/load_composite_button.js"></script>
</div>
</div>
</div>
<div class="col-5">
<div class="row">
<div id="axes-input" class="col-8"></div>
<script src="js/widgets/axes_input.js"></script>
<div class="col-4 text-right">
<div class="row">
<div class="col">
<input type="button" id="autoscale-axes-button" value="Autoscale axes">
<script src="js/events/autoscale_axes_button.js"></script>
</div>
</div>
<div class="row">
<div class="col">
<input type="checkbox" id="lock-axes-checkbox">
<label for="lock-axes-checkbox" id="lock-axes-label">Lock axes</label>
<script src="js/events/lock_axes_checkbox.js"></script>
</div>
</div>
</div>
</div>
</div>
<div class="col-3">
<div class="row">
<div class="col text-right">
<input type="button" id="reset-plot-button" value="Reset plot">
<script src="js/events/reset_button.js"></script>
<div style="display: block; margin-top: 5px;">
<label for="enable-tooltips-checkbox" id="enable-tooltips-label">Enable tooltips</label>
<input id="enable-tooltips-checkbox" type="checkbox">
<script src="js/tooltips.js"></script>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-4" style="overflow:auto; height:50vh; padding-right:31px;">
<div class="row">
<div class="col-6">
<h4>Composite metadata</h4>
</div>
<div class="col-6 text-right">
<input type="button" id="import-metadata-button" value="Import metadata from PEGR">
<div id="import-metadata-form" class="form-popup" style="display:none;">
<div class="row">
<div class="col">
<label for="pegr-api-key-input">PEGR API key:</label>
<input type="password" id="pegr-api-key-input" style="width:200px;">
</div>
</div>
<div class="row">
<div class="col">
<label for="email-input">Email:</label>
<input type="text" id="email-input" style="width:200px;">
</div>
</div>
<div class="row">
<div class="col">
<input type="button" id="import-metadata-submit-button" value="Submit">
<input type="button" id="import-metadata-cancel-button" value="Cancel">
</div>
</div>
</div>
<script src="js/events/import_metadata_button.js"></script>
</div>
</div>
<div class="row">
<div class="col">
<table id="metadata-table" class="table"></table>
<script src="js/widgets/metadata_table.js"></script>
</div>
</div>
</div>
<div class="col-8">
<div class="row" style="display:flex; align-items:center;">
<div style="max-width:calc(100% - 270px);" id="main-plot-div">
<svg id="main-plot" baseProfile="full" version="1.1" xmlns="http://www.w3.org/2000/svg" font-family="Helvetica" style="height: 50vh; max-width: 100%; overflow: hide;"></svg>
<script src="js/sliding_window.js"></script>
<script src="js/widgets/main_plot.js"></script>
</div>
<div class="text-right" style="width:270px; padding-right:20px;">
<div id="plot-tabs">
<input type="button" id="plot-options-tab" value="Plot Options" style="grid-column:1; height: auto;" class="plot-tab selected-tab">
<input type="button" id="reference-axes-tab" value="Reference Axes" style="grid-column:2; height: auto;" class="plot-tab">
<input type="button" id="nucleosome-slider-tab" value="Nucleosome Slider" style="grid-column:3; height: auto;" class="plot-tab">
<script src="js/events/plot_tabs.js"></script>
</div>
<div style="display: block;" id="plot-options" class="plot-pane">
<div id="settings-dropdown"></div>
<script src="js/widgets/preset_dropdown.js"></script>
<div id="opacity-input"></div>
<script src="js/widgets/opacity_input.js"></script>
<div id="smoothing-input"></div>
<script src="js/widgets/smoothing_input.js"></script>
<div id="shift-input"></div>
<script src="js/widgets/shift_input.js"></script>
<div>
<label for="combined-checkbox" id="combined-label">Combined</label>
<input id="combined-checkbox" type="checkbox">
<script src="js/events/combined_checkbox.js"></script>
</div>
<div>
<label for="separate-color-checkbox" id="seperate-color-label">Separate colors for strands</label>
<input id="separate-color-checkbox" type="checkbox">
<script src="js/events/separate_color_checkbox.js"></script>
</div>
<div>
<label for="color-trace-checkbox" id="color-trace-label">Color trace</label>
<input id="color-trace-checkbox" type="checkbox">
<script src="js/events/color_trace_checkbox.js"></script>
</div>
<div>
<label for="tooltip-checkbox" id="tooltip-label">Enable tooltip</label>
<input id="tooltip-checkbox" type="checkbox" checked>
<script src="js/events/tooltip_checkbox.js"></script>
</div>
<div>
<label for="show-legend-checkbox" id="show-legend-label">Show legend</label>
<input id="show-legend-checkbox" type="checkbox" checked>
<script src="js/events/show_legend_checkbox.js"></script>
</div>
<div>
<input type="button" id="download-svg-button" value="Download as SVG">
<script src="js/events/download_svg_button.js"></script>
</div>
</div>
<div style="display: none;" id="nucleosome-slider-options" class="plot-pane">
<div id="nucleosome-slider">
<svg id="nucleosome-svg" class="nucleosome-svg" style="display: inline; width:146px; height:50px; position:relative;" xmlns="http://www.w3.org/2000/svg">
<rect width="100%" height="100%" style="fill:rgb(46, 139, 185);stroke-width:5;stroke:rgb(3, 100, 122)" />
</svg>
</div>
<div>
<label for="nucleosome-start-text" style="display: inline-block; margin-top: 10px;">Starting coord</label>
<input type="text" id="nucleosome-start-text" value="0" style="display: inline;">
</div>
<div>
<label for="nucleosome-projection-text" style="display: inline-block;">Project to nucleosome</label>
<input type="text" id="nucleosome-projection-text" value="" style="display: inline;border-style:solid; border-color:yellow; border-width:3px">
</div>
<div>
<label for="mark-nucleosome-text" style="display: inline-block; margin-top: 10px">Mark nucleosome</label>
<input type="text" id="mark-nucleosome-text" value="" style="display: inline;border-style:solid; border-color:rgb(205, 233, 255); border-width:3px">
</div>
<div>
<input type="button" id="generate-3D-button" value="Generate 3D Visual" style="margin-top: 10px;">
</div>
<div>
<label for="keep-nucleosome" id="keep-nucleosome-lable">Keep nucleosome on plot</label>
<input type="checkbox" id="keep-nucleosome" label="Plot Nucleosome" style="margin-top: 15px;">
</div>
<script src="js/widgets/nucleosome_slider.js"></script>
<script src="js/events/generate_3D_Button.js"></script>
</div>
<div style="display: none;" id="reference-axes-pane" class="plot-pane">
<label for="y-axis-lines" style="float: left;">Y-Axis Lines</label>
<div class="reference-table-div">
<table id="y-axis-lines" class="reference-lines-table"></table>
</div>
<svg id="y-plus" height="30" width="30" xmlns="http://www.w3.org/2000/svg" style="margin-left:41%;margin-right:59%;margin-top:10px;">
<circle r="15" cx="15" cy="15" fill="grey" />
<path d="m 15 2 l 0 26 M 2 15 l 26 0" stroke-width="4" stroke="white" />
</svg>
<label for="x-axis-lines" style="float: left;">X-Axis Lines</label>
<div class="reference-table-div">
<table id="x-axis-lines" class="reference-lines-table"></table> </table>
</div>
<svg id="x-plus" height="30" width="30" xmlns="http://www.w3.org/2000/svg" style="margin-left:41%;margin-right:59%;margin-top:10px;">
<circle r="15" cx="15" cy="15" fill="grey" />
<path d="m 15 2 l 0 26 M 2 15 l 26 0" stroke-width="4" stroke="white" />
</svg>
<div>
<label for="keep-reference-lines" id="keep-reference-lable">Keep reference lines on plot</label>
<input type="checkbox" id="keep-reference-lines" style="margin-top: 15px;">
</div>
<script src="js/widgets/reference_axes.js"></script>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col" style="overflow:auto; height:calc(50vh - 80px);">
<div class="row">
<div class="col">
<h4 style="display:inline; padding-right:20px;">Composite settings</h4>
<input type="button" id="autoscale-composites-button" value="Scale composites by number of samples" style="display:inline;">
<script src="js/events/autoscale_composites_button.js"></script>
</div>
</div>
<div class="row">
<table id="settings-table" class="table"></table>
<script>
let individual_composites = {};
</script>
<script src="js/widgets/settings_table.js"></script>
</div>
</div>
</div>
</div>
</main>
</body>