TSUMUGI 1.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- TSUMUGI/annotator.py +103 -0
- TSUMUGI/argparser.py +599 -0
- TSUMUGI/core.py +185 -0
- TSUMUGI/data/impc_phenodigm.csv +3406 -0
- TSUMUGI/data/mp.obo +143993 -0
- TSUMUGI/filterer.py +36 -0
- TSUMUGI/formatter.py +122 -0
- TSUMUGI/genewise_annotation_builder.py +94 -0
- TSUMUGI/io_handler.py +189 -0
- TSUMUGI/main.py +300 -0
- TSUMUGI/network_constructor.py +603 -0
- TSUMUGI/ontology_handler.py +62 -0
- TSUMUGI/pairwise_similarity_builder.py +66 -0
- TSUMUGI/report_generator.py +122 -0
- TSUMUGI/similarity_calculator.py +498 -0
- TSUMUGI/subcommands/count_filterer.py +47 -0
- TSUMUGI/subcommands/genes_filterer.py +89 -0
- TSUMUGI/subcommands/graphml_builder.py +158 -0
- TSUMUGI/subcommands/life_stage_filterer.py +48 -0
- TSUMUGI/subcommands/mp_filterer.py +142 -0
- TSUMUGI/subcommands/score_filterer.py +22 -0
- TSUMUGI/subcommands/sex_filterer.py +48 -0
- TSUMUGI/subcommands/webapp_builder.py +358 -0
- TSUMUGI/subcommands/zygosity_filterer.py +48 -0
- TSUMUGI/validator.py +65 -0
- TSUMUGI/web/app/css/app.css +1129 -0
- TSUMUGI/web/app/genelist/network_genelist.html +339 -0
- TSUMUGI/web/app/genelist/network_genelist.js +421 -0
- TSUMUGI/web/app/js/data/dataLoader.js +41 -0
- TSUMUGI/web/app/js/export/graphExporter.js +214 -0
- TSUMUGI/web/app/js/graph/centrality.js +495 -0
- TSUMUGI/web/app/js/graph/components.js +30 -0
- TSUMUGI/web/app/js/graph/filters.js +158 -0
- TSUMUGI/web/app/js/graph/highlighter.js +52 -0
- TSUMUGI/web/app/js/graph/layoutController.js +454 -0
- TSUMUGI/web/app/js/graph/valueScaler.js +43 -0
- TSUMUGI/web/app/js/search/geneSearcher.js +93 -0
- TSUMUGI/web/app/js/search/phenotypeSearcher.js +292 -0
- TSUMUGI/web/app/js/ui/dynamicFontSize.js +30 -0
- TSUMUGI/web/app/js/ui/mobilePanel.js +77 -0
- TSUMUGI/web/app/js/ui/slider.js +22 -0
- TSUMUGI/web/app/js/ui/tooltips.js +514 -0
- TSUMUGI/web/app/js/viewer/pageSetup.js +217 -0
- TSUMUGI/web/app/viewer.html +515 -0
- TSUMUGI/web/app/viewer.js +1593 -0
- TSUMUGI/web/css/sanitize.css +363 -0
- TSUMUGI/web/css/top.css +391 -0
- TSUMUGI/web/image/tsumugi-favicon.ico +0 -0
- TSUMUGI/web/image/tsumugi-icon.png +0 -0
- TSUMUGI/web/image/tsumugi-logo.png +0 -0
- TSUMUGI/web/image/tsumugi-logo.svg +69 -0
- TSUMUGI/web/js/genelist_formatter.js +123 -0
- TSUMUGI/web/js/top.js +338 -0
- TSUMUGI/web/open_webapp_linux.sh +25 -0
- TSUMUGI/web/open_webapp_mac.command +25 -0
- TSUMUGI/web/open_webapp_windows.bat +37 -0
- TSUMUGI/web/serve_index.py +110 -0
- TSUMUGI/web/template/template_index.html +197 -0
- TSUMUGI/web_deployer.py +150 -0
- tsumugi-1.0.1.dist-info/METADATA +504 -0
- tsumugi-1.0.1.dist-info/RECORD +64 -0
- tsumugi-1.0.1.dist-info/WHEEL +4 -0
- tsumugi-1.0.1.dist-info/entry_points.txt +3 -0
- tsumugi-1.0.1.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
|
|
7
|
+
<title>Gene List</title>
|
|
8
|
+
<link rel="icon" href="../../image/tsumugi-favicon.ico" />
|
|
9
|
+
|
|
10
|
+
<!-- ============================= -->
|
|
11
|
+
<!-- JS -->
|
|
12
|
+
<!-- ============================= -->
|
|
13
|
+
<!-- noUiSlider -->
|
|
14
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/noUiSlider/15.8.1/nouislider.min.css" />
|
|
15
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/noUiSlider/15.8.1/nouislider.min.js" defer></script>
|
|
16
|
+
|
|
17
|
+
<!-- pako for reading gzip JSON -->
|
|
18
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako.min.js" defer></script>
|
|
19
|
+
|
|
20
|
+
<!-- Cytoscape -->
|
|
21
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.30.4/cytoscape.min.js" defer></script>
|
|
22
|
+
|
|
23
|
+
<!-- Custom JS -->
|
|
24
|
+
<script type="module" src="./network_genelist.js"></script>
|
|
25
|
+
|
|
26
|
+
<!-- ============================= -->
|
|
27
|
+
<!-- CSS -->
|
|
28
|
+
<!-- ============================= -->
|
|
29
|
+
<link rel="stylesheet" href="https://larc-tsukuba.github.io/tsumugi/css/sanitize.css" />
|
|
30
|
+
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet" />
|
|
31
|
+
<link href="https://use.fontawesome.com/releases/v6.6.0/css/all.css" rel="stylesheet" />
|
|
32
|
+
<link rel="stylesheet" href="../css/app.css" />
|
|
33
|
+
</head>
|
|
34
|
+
|
|
35
|
+
<body>
|
|
36
|
+
<header class="header-container">
|
|
37
|
+
<button id="menu-toggle" class="menu-toggle-icon">
|
|
38
|
+
<i class="fa-solid fa-sliders"></i>
|
|
39
|
+
</button>
|
|
40
|
+
<h1>
|
|
41
|
+
Phenotype-Similarity Gene Network for <br />
|
|
42
|
+
gene list
|
|
43
|
+
</h1>
|
|
44
|
+
</header>
|
|
45
|
+
|
|
46
|
+
<div class="body-container">
|
|
47
|
+
<div class="left-control-panel-container">
|
|
48
|
+
<button id="close-panel" class="close-button">✕</button>
|
|
49
|
+
|
|
50
|
+
<!-- ===================================== -->
|
|
51
|
+
<!-- Slider for phenotype metrics -->
|
|
52
|
+
<!-- ===================================== -->
|
|
53
|
+
|
|
54
|
+
<!-- Slider for phenotypes similarity -->
|
|
55
|
+
<div class="panel-section">
|
|
56
|
+
<div class="panel-title">
|
|
57
|
+
<i class="fa-solid fa-sliders"></i>
|
|
58
|
+
Phenotypic metrics
|
|
59
|
+
<div class="info-tooltip-container">
|
|
60
|
+
<div class="info-tooltip-icon">i</div>
|
|
61
|
+
<div class="info-tooltip-content">
|
|
62
|
+
Phenotype severity is not displayed when phenotype evaluation is binary
|
|
63
|
+
(presence/absence).
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<div class="slider-container">
|
|
69
|
+
<span class="control-label" style="display: block">
|
|
70
|
+
Phenotypes similarity:
|
|
71
|
+
<span id="edge-size-value"> 1 - 100 </span>
|
|
72
|
+
</span>
|
|
73
|
+
<div class="slider-element" id="filter-edge-slider"></div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<!-- ===================================== -->
|
|
78
|
+
<!-- Filter of Genotype / Sex / Life-stage -->
|
|
79
|
+
<!-- ===================================== -->
|
|
80
|
+
<div class="panel-section">
|
|
81
|
+
<div class="panel-title">
|
|
82
|
+
<i class="fa-solid fa-dna"></i>
|
|
83
|
+
Biological annotations
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<div class="boxed-section">
|
|
87
|
+
<span>Genotype</span>
|
|
88
|
+
<form id="genotype-filter-form">
|
|
89
|
+
<div class="round-checkbox">
|
|
90
|
+
<input type="checkbox" id="homo" value="Homo" checked />
|
|
91
|
+
<label for="homo">Homo</label>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="round-checkbox">
|
|
94
|
+
<input type="checkbox" id="hetero" value="Hetero" checked />
|
|
95
|
+
<label for="hetero">Hetero</label>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="round-checkbox">
|
|
98
|
+
<input type="checkbox" id="hemi" value="Hemi" checked />
|
|
99
|
+
<label for="hemi">Hemi</label>
|
|
100
|
+
</div>
|
|
101
|
+
</form>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<div class="boxed-section">
|
|
105
|
+
<span>Sex</span>
|
|
106
|
+
<form id="sex-filter-form">
|
|
107
|
+
<div class="round-checkbox">
|
|
108
|
+
<input type="checkbox" id="female" value="Female" checked />
|
|
109
|
+
<label for="female">Female</label>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="round-checkbox">
|
|
112
|
+
<input type="checkbox" id="male" value="Male" checked />
|
|
113
|
+
<label for="male">Male</label>
|
|
114
|
+
</div>
|
|
115
|
+
</form>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<div class="boxed-section">
|
|
119
|
+
<span
|
|
120
|
+
>Life stage
|
|
121
|
+
<div class="info-tooltip-container">
|
|
122
|
+
<div class="info-tooltip-icon">i</div>
|
|
123
|
+
<div class="info-tooltip-content">Early: -16w, Interval: 17-48w, Late: 49w-</div>
|
|
124
|
+
</div>
|
|
125
|
+
</span>
|
|
126
|
+
<form id="lifestage-filter-form">
|
|
127
|
+
<div class="round-checkbox">
|
|
128
|
+
<input type="checkbox" id="embryo" value="Embryo" checked />
|
|
129
|
+
<label for="embryo">Embryo</label>
|
|
130
|
+
</div>
|
|
131
|
+
<div class="round-checkbox">
|
|
132
|
+
<input type="checkbox" id="early" value="Early" checked />
|
|
133
|
+
<label for="early">Early</label>
|
|
134
|
+
</div>
|
|
135
|
+
<div class="round-checkbox">
|
|
136
|
+
<input type="checkbox" id="interval" value="Interval" checked />
|
|
137
|
+
<label for="interval">Interval</label>
|
|
138
|
+
</div>
|
|
139
|
+
<div class="round-checkbox">
|
|
140
|
+
<input type="checkbox" id="late" value="Late" checked />
|
|
141
|
+
<label for="late">Late</label>
|
|
142
|
+
</div>
|
|
143
|
+
</form>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
|
|
148
|
+
<div class="cy-container">
|
|
149
|
+
<div class="cy"></div>
|
|
150
|
+
|
|
151
|
+
<!-- ===================================== -->
|
|
152
|
+
<!-- SVG for phenotypes similarity -->
|
|
153
|
+
<!-- ===================================== -->
|
|
154
|
+
|
|
155
|
+
<div class="edge-scale-container">
|
|
156
|
+
<svg viewBox="0 0 400 30" preserveAspectRatio="xMidYMid meet">
|
|
157
|
+
<polygon points="0,15 400,0 400,30" style="fill: gray; stroke: none" />
|
|
158
|
+
<text x="0" y="25" font-family="Arial" font-size="12px" fill="#333">Few</text>
|
|
159
|
+
<text x="370" y="25" font-family="Arial" font-size="12px" fill="#FFF">Many</text>
|
|
160
|
+
</svg>
|
|
161
|
+
<p class="scale-label">Similarity of accessory phenotypes</p>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
<div class="right-control-panel-container">
|
|
166
|
+
<!-- ===================================== -->
|
|
167
|
+
<!-- Export -->
|
|
168
|
+
<!-- ===================================== -->
|
|
169
|
+
<div class="panel-section">
|
|
170
|
+
<div class="panel-title">
|
|
171
|
+
<i class="fa-regular fa-lightbulb"></i>
|
|
172
|
+
Markup
|
|
173
|
+
</div>
|
|
174
|
+
<div class="boxed-section align-center">
|
|
175
|
+
<span>
|
|
176
|
+
Highlight
|
|
177
|
+
<div class="info-tooltip-container">
|
|
178
|
+
<div class="info-tooltip-icon">i</div>
|
|
179
|
+
<div class="info-tooltip-content">
|
|
180
|
+
Human Disease annotations use
|
|
181
|
+
<a
|
|
182
|
+
href="https://www.mousephenotype.org/help/data-visualization/gene-pages/disease-models/"
|
|
183
|
+
target="_blank"
|
|
184
|
+
>IMPC Disease Models</a
|
|
185
|
+
>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
</span>
|
|
189
|
+
<form id="human-disease-filter-form">
|
|
190
|
+
<div class="round-checkbox">
|
|
191
|
+
<input type="checkbox" id="disease" value="Disease" />
|
|
192
|
+
<label for="disease">Human Disease</label>
|
|
193
|
+
</div>
|
|
194
|
+
</form>
|
|
195
|
+
<div class="round-checkbox">
|
|
196
|
+
<i class="fa-solid fa-magnifying-glass"></i>
|
|
197
|
+
<input type="text" id="phenotype-search" placeholder="Specific phenotypes" />
|
|
198
|
+
<ul id="phenotype-suggestions" class="suggestions" hidden></ul>
|
|
199
|
+
</div>
|
|
200
|
+
<div id="selected-phenotypes" class="selected-phenotypes">
|
|
201
|
+
<!-- Selected phenotypes will be displayed here -->
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
<!-- ===================================== -->
|
|
205
|
+
<!-- Gene search box -->
|
|
206
|
+
<!-- ===================================== -->
|
|
207
|
+
<div class="boxed-section align-center">
|
|
208
|
+
<span>Search</span>
|
|
209
|
+
<div class="round-checkbox">
|
|
210
|
+
<i class="fa-solid fa-magnifying-glass"></i>
|
|
211
|
+
<input type="text" id="gene-search" placeholder="Specific Gene" />
|
|
212
|
+
<ul id="suggestions" class="suggestions" hidden></ul>
|
|
213
|
+
</div>
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|
|
216
|
+
<!-- ===================================== -->
|
|
217
|
+
<!-- Cytoscape's visualization setting -->
|
|
218
|
+
<!-- ===================================== -->
|
|
219
|
+
|
|
220
|
+
<div class="panel-section">
|
|
221
|
+
<div class="panel-title">
|
|
222
|
+
<i class="fa-solid fa-puzzle-piece"></i>
|
|
223
|
+
Layout & Display
|
|
224
|
+
</div>
|
|
225
|
+
<!-- Network layout -->
|
|
226
|
+
|
|
227
|
+
<div class="slider-container">
|
|
228
|
+
<div class="label-row">
|
|
229
|
+
<label for="layout-dropdown" class="control-label"> Layout:</label>
|
|
230
|
+
<select class="exporter" id="layout-dropdown">
|
|
231
|
+
<option value="cose" selected>Cose</option>
|
|
232
|
+
<option value="circle">Circle</option>
|
|
233
|
+
<option value="grid">Grid</option>
|
|
234
|
+
<option value="random">Random</option>
|
|
235
|
+
<option value="concentric">Concentric</option>
|
|
236
|
+
</select>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
|
|
240
|
+
<div class="slider-container">
|
|
241
|
+
<div class="label-row">
|
|
242
|
+
<span class="control-label">Font size: </span>
|
|
243
|
+
<span id="font-size-value">20</span>
|
|
244
|
+
</div>
|
|
245
|
+
<div class="slider-element" id="font-size-slider"></div>
|
|
246
|
+
</div>
|
|
247
|
+
|
|
248
|
+
<div class="slider-container">
|
|
249
|
+
<div class="label-row">
|
|
250
|
+
<span class="control-label">Edge width:</span>
|
|
251
|
+
<span id="edge-width-value">5</span>
|
|
252
|
+
</div>
|
|
253
|
+
<div class="slider-element" id="edge-width-slider"></div>
|
|
254
|
+
</div>
|
|
255
|
+
|
|
256
|
+
<div class="slider-container" id="node-repulsion-container">
|
|
257
|
+
<div class="label-row">
|
|
258
|
+
<span class="control-label">Node repulsion:</span>
|
|
259
|
+
<span id="node-repulsion-value">5</span>
|
|
260
|
+
</div>
|
|
261
|
+
<div class="slider-element" id="nodeRepulsion-slider"></div>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
|
|
265
|
+
<!-- ===================================== -->
|
|
266
|
+
<!-- Export -->
|
|
267
|
+
<!-- ===================================== -->
|
|
268
|
+
<div class="panel-section">
|
|
269
|
+
<div class="panel-title">
|
|
270
|
+
<i class="fa-solid fa-download"></i>
|
|
271
|
+
Export
|
|
272
|
+
<div class="info-tooltip-container">
|
|
273
|
+
<div class="info-tooltip-icon">i</div>
|
|
274
|
+
<div class="info-tooltip-content">
|
|
275
|
+
GraphML can be used to visualize with desktop version of Cytoscape.
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
<!-- ===================================== -->
|
|
281
|
+
<!-- Exporter -->
|
|
282
|
+
<!-- ===================================== -->
|
|
283
|
+
<div class="exporter-group">
|
|
284
|
+
<button class="exporter" id="export-png">
|
|
285
|
+
<i class="fa-regular fa-image"></i>
|
|
286
|
+
PNG
|
|
287
|
+
</button>
|
|
288
|
+
<button class="exporter" id="export-jpg">
|
|
289
|
+
<i class="fa-regular fa-image"></i>
|
|
290
|
+
JPG
|
|
291
|
+
</button>
|
|
292
|
+
<button class="exporter" id="export-csv">
|
|
293
|
+
<i class="fa-regular fa-file-lines"></i>
|
|
294
|
+
CSV
|
|
295
|
+
</button>
|
|
296
|
+
<button class="exporter" id="export-graphml">
|
|
297
|
+
<i class="fa-solid fa-project-diagram"></i>
|
|
298
|
+
GraphML
|
|
299
|
+
</button>
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
302
|
+
</div>
|
|
303
|
+
</div>
|
|
304
|
+
|
|
305
|
+
<!-- ======================================== -->
|
|
306
|
+
<!-- Resources Section -->
|
|
307
|
+
<!-- ======================================== -->
|
|
308
|
+
<div class="resources-container">
|
|
309
|
+
<div class="resource-section">
|
|
310
|
+
<div class="resource-buttons">
|
|
311
|
+
<a
|
|
312
|
+
class="resource-btn"
|
|
313
|
+
href="https://github.com/akikuno/TSUMUGI-dev/blob/main/README.md"
|
|
314
|
+
target="_blank"
|
|
315
|
+
>
|
|
316
|
+
<i class="fa-regular fa-file-lines"></i> Documentation
|
|
317
|
+
</a>
|
|
318
|
+
<a class="resource-btn" href="https://forms.gle/TpLeatthUBLN57PU6" target="_blank">
|
|
319
|
+
<i class="fa-regular fa-comment-dots"></i> Contact
|
|
320
|
+
</a>
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
|
|
325
|
+
<!-- ======================================== -->
|
|
326
|
+
<!-- Footer -->
|
|
327
|
+
<!-- ======================================== -->
|
|
328
|
+
<footer>
|
|
329
|
+
<p>TSUMUGI version 1.0.0</p>
|
|
330
|
+
<!-- <p><i class="fa-regular fa-newspaper"></i><a href="https://example.com" target="_blank">Article</a> </p>-->
|
|
331
|
+
<p>
|
|
332
|
+
© 2024
|
|
333
|
+
<a href="https://www.md.tsukuba.ac.jp/LabAnimalResCNT/public_E/index.html" target="_blank"
|
|
334
|
+
>Laboratory Animal Resource Center, University of Tsukuba</a
|
|
335
|
+
>
|
|
336
|
+
</p>
|
|
337
|
+
</footer>
|
|
338
|
+
</body>
|
|
339
|
+
</html>
|