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.
Files changed (64) hide show
  1. TSUMUGI/annotator.py +103 -0
  2. TSUMUGI/argparser.py +599 -0
  3. TSUMUGI/core.py +185 -0
  4. TSUMUGI/data/impc_phenodigm.csv +3406 -0
  5. TSUMUGI/data/mp.obo +143993 -0
  6. TSUMUGI/filterer.py +36 -0
  7. TSUMUGI/formatter.py +122 -0
  8. TSUMUGI/genewise_annotation_builder.py +94 -0
  9. TSUMUGI/io_handler.py +189 -0
  10. TSUMUGI/main.py +300 -0
  11. TSUMUGI/network_constructor.py +603 -0
  12. TSUMUGI/ontology_handler.py +62 -0
  13. TSUMUGI/pairwise_similarity_builder.py +66 -0
  14. TSUMUGI/report_generator.py +122 -0
  15. TSUMUGI/similarity_calculator.py +498 -0
  16. TSUMUGI/subcommands/count_filterer.py +47 -0
  17. TSUMUGI/subcommands/genes_filterer.py +89 -0
  18. TSUMUGI/subcommands/graphml_builder.py +158 -0
  19. TSUMUGI/subcommands/life_stage_filterer.py +48 -0
  20. TSUMUGI/subcommands/mp_filterer.py +142 -0
  21. TSUMUGI/subcommands/score_filterer.py +22 -0
  22. TSUMUGI/subcommands/sex_filterer.py +48 -0
  23. TSUMUGI/subcommands/webapp_builder.py +358 -0
  24. TSUMUGI/subcommands/zygosity_filterer.py +48 -0
  25. TSUMUGI/validator.py +65 -0
  26. TSUMUGI/web/app/css/app.css +1129 -0
  27. TSUMUGI/web/app/genelist/network_genelist.html +339 -0
  28. TSUMUGI/web/app/genelist/network_genelist.js +421 -0
  29. TSUMUGI/web/app/js/data/dataLoader.js +41 -0
  30. TSUMUGI/web/app/js/export/graphExporter.js +214 -0
  31. TSUMUGI/web/app/js/graph/centrality.js +495 -0
  32. TSUMUGI/web/app/js/graph/components.js +30 -0
  33. TSUMUGI/web/app/js/graph/filters.js +158 -0
  34. TSUMUGI/web/app/js/graph/highlighter.js +52 -0
  35. TSUMUGI/web/app/js/graph/layoutController.js +454 -0
  36. TSUMUGI/web/app/js/graph/valueScaler.js +43 -0
  37. TSUMUGI/web/app/js/search/geneSearcher.js +93 -0
  38. TSUMUGI/web/app/js/search/phenotypeSearcher.js +292 -0
  39. TSUMUGI/web/app/js/ui/dynamicFontSize.js +30 -0
  40. TSUMUGI/web/app/js/ui/mobilePanel.js +77 -0
  41. TSUMUGI/web/app/js/ui/slider.js +22 -0
  42. TSUMUGI/web/app/js/ui/tooltips.js +514 -0
  43. TSUMUGI/web/app/js/viewer/pageSetup.js +217 -0
  44. TSUMUGI/web/app/viewer.html +515 -0
  45. TSUMUGI/web/app/viewer.js +1593 -0
  46. TSUMUGI/web/css/sanitize.css +363 -0
  47. TSUMUGI/web/css/top.css +391 -0
  48. TSUMUGI/web/image/tsumugi-favicon.ico +0 -0
  49. TSUMUGI/web/image/tsumugi-icon.png +0 -0
  50. TSUMUGI/web/image/tsumugi-logo.png +0 -0
  51. TSUMUGI/web/image/tsumugi-logo.svg +69 -0
  52. TSUMUGI/web/js/genelist_formatter.js +123 -0
  53. TSUMUGI/web/js/top.js +338 -0
  54. TSUMUGI/web/open_webapp_linux.sh +25 -0
  55. TSUMUGI/web/open_webapp_mac.command +25 -0
  56. TSUMUGI/web/open_webapp_windows.bat +37 -0
  57. TSUMUGI/web/serve_index.py +110 -0
  58. TSUMUGI/web/template/template_index.html +197 -0
  59. TSUMUGI/web_deployer.py +150 -0
  60. tsumugi-1.0.1.dist-info/METADATA +504 -0
  61. tsumugi-1.0.1.dist-info/RECORD +64 -0
  62. tsumugi-1.0.1.dist-info/WHEEL +4 -0
  63. tsumugi-1.0.1.dist-info/entry_points.txt +3 -0
  64. 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
+ &copy; 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>