marsilea 0.3.1__tar.gz → 0.3.3__tar.gz

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 (271) hide show
  1. {marsilea-0.3.1 → marsilea-0.3.3}/.github/workflows/build.yaml +5 -5
  2. marsilea-0.3.3/.github/workflows/deploy_streamlit.yaml +39 -0
  3. {marsilea-0.3.1 → marsilea-0.3.3}/.github/workflows/lint.yaml +1 -1
  4. {marsilea-0.3.1 → marsilea-0.3.3}/.gitignore +2 -1
  5. marsilea-0.3.3/CITATION.cff +37 -0
  6. {marsilea-0.3.1 → marsilea-0.3.3}/LICENSE +1 -1
  7. marsilea-0.3.3/PKG-INFO +74 -0
  8. marsilea-0.3.3/README.md +42 -0
  9. marsilea-0.3.3/app/Dockerfile +20 -0
  10. {marsilea-0.3.1 → marsilea-0.3.3}/app/Home.py +9 -9
  11. marsilea-0.3.3/app/README.md +17 -0
  12. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/initialize.py +3 -3
  13. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/main_plots.py +1 -1
  14. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/resource.py +1 -1
  15. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/side_plots.py +16 -16
  16. marsilea-0.3.1/app/pages/01 /360/237/237/250 Simple_Heatmap.py" → marsilea-0.3.3/app/pages/01 Simple_Heatmap.py +5 -2
  17. marsilea-0.3.1/app/pages/02 /360/237/215/261 X-Layout_Heatmap.py" → marsilea-0.3.3/app/pages/02 X-Layout_Heatmap.py +1 -1
  18. marsilea-0.3.1/app/pages/03 /360/237/225/270/357/270/217 Upsetplot.py" → marsilea-0.3.3/app/pages/03 Upsetplot.py +39 -10
  19. marsilea-0.3.1/app/pages/04 /360/237/223/232 Manual.py" → marsilea-0.3.3/app/pages/04 Manual.py +3 -3
  20. {marsilea-0.3.1 → marsilea-0.3.3}/app/requirements.txt +1 -1
  21. {marsilea-0.3.1 → marsilea-0.3.3}/docs/Makefile +10 -0
  22. marsilea-0.3.3/docs/examples/.gitignore +2 -0
  23. marsilea-0.3.3/docs/examples/Basics/README.rst +2 -0
  24. marsilea-0.3.3/docs/examples/Basics/plot_adv_heatmap.py +23 -0
  25. marsilea-0.3.3/docs/examples/Basics/plot_heatmap.py +21 -0
  26. {marsilea-0.3.1/examples → marsilea-0.3.3/docs/examples/Gallery}/README.rst +2 -2
  27. {marsilea-0.3.1/examples → marsilea-0.3.3/docs/examples/Gallery}/plot_arc_diagram.py +8 -0
  28. marsilea-0.3.3/docs/examples/Gallery/plot_available_plotters.py +173 -0
  29. {marsilea-0.3.1/examples → marsilea-0.3.3/docs/examples/Gallery}/plot_bivariate_dist.py +12 -1
  30. {marsilea-0.3.1/examples → marsilea-0.3.3/docs/examples/Gallery}/plot_mouse_embryo.py +24 -5
  31. marsilea-0.3.3/docs/examples/Gallery/plot_oil_well.py +92 -0
  32. {marsilea-0.3.1/examples → marsilea-0.3.3/docs/examples/Gallery}/plot_oncoprint.py +9 -1
  33. {marsilea-0.3.1/examples → marsilea-0.3.3/docs/examples/Gallery}/plot_pbmc3k.py +29 -8
  34. marsilea-0.3.3/docs/examples/Gallery/plot_sc_multiomics.py +86 -0
  35. {marsilea-0.3.1/examples → marsilea-0.3.3/docs/examples/Gallery}/plot_seqalign.py +11 -0
  36. {marsilea-0.3.1/examples → marsilea-0.3.3/docs/examples/Gallery}/plot_stacked_bar.py +14 -1
  37. {marsilea-0.3.1/examples → marsilea-0.3.3/docs/examples/Gallery}/plot_upset.py +21 -8
  38. marsilea-0.3.3/docs/examples/Plotters/README.rst +4 -0
  39. marsilea-0.3.3/docs/examples/Plotters/plot_anno_labels.py +21 -0
  40. marsilea-0.3.3/docs/examples/Plotters/plot_arc.py +19 -0
  41. marsilea-0.3.3/docs/examples/Plotters/plot_bar.py +18 -0
  42. marsilea-0.3.3/docs/examples/Plotters/plot_box.py +18 -0
  43. marsilea-0.3.3/docs/examples/Plotters/plot_boxen.py +18 -0
  44. marsilea-0.3.3/docs/examples/Plotters/plot_center_bar.py +19 -0
  45. marsilea-0.3.3/docs/examples/Plotters/plot_chunk.py +19 -0
  46. marsilea-0.3.3/docs/examples/Plotters/plot_color_mesh.py +20 -0
  47. marsilea-0.3.3/docs/examples/Plotters/plot_colors.py +20 -0
  48. marsilea-0.3.3/docs/examples/Plotters/plot_fixed_chunk.py +21 -0
  49. marsilea-0.3.3/docs/examples/Plotters/plot_labels.py +20 -0
  50. marsilea-0.3.3/docs/examples/Plotters/plot_marker_mesh.py +19 -0
  51. marsilea-0.3.3/docs/examples/Plotters/plot_numbers.py +17 -0
  52. marsilea-0.3.3/docs/examples/Plotters/plot_point.py +18 -0
  53. marsilea-0.3.3/docs/examples/Plotters/plot_seq_logo.py +21 -0
  54. marsilea-0.3.3/docs/examples/Plotters/plot_sized_mesh.py +18 -0
  55. marsilea-0.3.3/docs/examples/Plotters/plot_stack_bar.py +19 -0
  56. marsilea-0.3.3/docs/examples/Plotters/plot_strip.py +18 -0
  57. marsilea-0.3.3/docs/examples/Plotters/plot_swarm.py +18 -0
  58. marsilea-0.3.3/docs/examples/Plotters/plot_text_mesh.py +19 -0
  59. marsilea-0.3.3/docs/examples/Plotters/plot_title.py +20 -0
  60. marsilea-0.3.3/docs/examples/Plotters/plot_violin.py +18 -0
  61. marsilea-0.3.3/docs/examples/README.rst +2 -0
  62. marsilea-0.3.3/docs/how_to/README.rst +4 -0
  63. marsilea-0.3.3/docs/how_to/customization/README.rst +8 -0
  64. marsilea-0.3.3/docs/how_to/customization/plot_add_border.py +32 -0
  65. marsilea-0.3.3/docs/how_to/customization/plot_get_axes.py +33 -0
  66. marsilea-0.3.3/docs/how_to/dendrogram/README.rst +2 -0
  67. marsilea-0.3.3/docs/how_to/dendrogram/plot_color_dendrogram.py +32 -0
  68. marsilea-0.3.3/docs/how_to/dendrogram/plot_dendrogram_control.py +19 -0
  69. marsilea-0.3.3/docs/how_to/layout/README.rst +3 -0
  70. marsilea-0.3.3/docs/how_to/layout/plot_adjust_figure_size.py +58 -0
  71. marsilea-0.3.3/docs/how_to/layout/plot_labeling.py +39 -0
  72. marsilea-0.3.3/docs/how_to/layout/plot_margin.py +28 -0
  73. marsilea-0.3.3/docs/how_to/legends/README.rst +7 -0
  74. marsilea-0.3.3/docs/how_to/legends/plot_disable_legend.py +29 -0
  75. marsilea-0.3.3/docs/how_to/legends/plot_legends.py +24 -0
  76. marsilea-0.3.3/docs/how_to/save/README.rst +5 -0
  77. marsilea-0.3.3/docs/how_to/save/plot.pdf +0 -0
  78. marsilea-0.3.3/docs/how_to/save/plot.png +0 -0
  79. marsilea-0.3.3/docs/how_to/save/plot_save.py +29 -0
  80. marsilea-0.3.3/docs/source/.gitignore +4 -0
  81. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/_static/css/custom.css +7 -0
  82. marsilea-0.3.3/docs/source/api/index.rst +293 -0
  83. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/conf.py +30 -4
  84. marsilea-0.3.3/docs/source/img/code_example.png +0 -0
  85. marsilea-0.3.3/docs/source/img/cover.png +0 -0
  86. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/index.rst +36 -6
  87. marsilea-0.3.3/docs/source/installation.rst +14 -0
  88. marsilea-0.3.3/docs/source/sg_execution_times.rst +169 -0
  89. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/tutorial/intro.rst +1 -1
  90. marsilea-0.3.3/img/publication/API-interface.png +0 -0
  91. marsilea-0.3.3/img/publication/layout-basic-change-canvas-size-code.png +0 -0
  92. marsilea-0.3.3/img/publication/layout-basic-change-canvas-size.png +0 -0
  93. marsilea-0.3.3/img/publication/layout-basic-change-location-code.png +0 -0
  94. marsilea-0.3.3/img/publication/layout-basic-change-location.png +0 -0
  95. marsilea-0.3.3/img/publication/layout-basic-change-pad-code.png +0 -0
  96. marsilea-0.3.3/img/publication/layout-basic-change-pad.png +0 -0
  97. marsilea-0.3.3/img/publication/layout-basic-change-plotter-size-code.png +0 -0
  98. marsilea-0.3.3/img/publication/layout-basic-change-plotter-size.png +0 -0
  99. marsilea-0.3.3/img/publication/layout-basic-change-plotter-type-code.png +0 -0
  100. marsilea-0.3.3/img/publication/layout-basic-change-plotter-type.png +0 -0
  101. marsilea-0.3.3/img/publication/layout-basic-code.png +0 -0
  102. marsilea-0.3.3/img/publication/layout-basic.png +0 -0
  103. marsilea-0.3.3/img/publication/layout-step-1a-code.png +0 -0
  104. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/layout-step-1a.png +0 -0
  105. marsilea-0.3.3/img/publication/layout-step-1b-code.png +0 -0
  106. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/layout-step-1b.png +0 -0
  107. marsilea-0.3.3/img/publication/layout-step-2-code.png +0 -0
  108. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/layout-step-2.png +0 -0
  109. marsilea-0.3.3/img/publication/layout-step-3-code.png +0 -0
  110. marsilea-0.3.3/img/publication/layout-step-3.png +0 -0
  111. marsilea-0.3.3/img/publication/layout-step-4-code.png +0 -0
  112. marsilea-0.3.3/img/publication/layout-step-4.png +0 -0
  113. marsilea-0.3.3/img/publication/web-app-screenshot-1.png +0 -0
  114. marsilea-0.3.3/img/publication/web-app-screenshot-2.png +0 -0
  115. {marsilea-0.3.1 → marsilea-0.3.3}/pyproject.toml +5 -3
  116. {marsilea-0.3.1 → marsilea-0.3.3}/readthedocs.yaml +1 -2
  117. marsilea-0.3.3/scripts/benchmark/marsilea/marsilea_cooking_oils_base.py +97 -0
  118. marsilea-0.3.3/scripts/benchmark/marsilea/marsilea_cooking_oils_v1.py +105 -0
  119. marsilea-0.3.3/scripts/benchmark/marsilea/marsilea_cooking_oils_v2.py +118 -0
  120. marsilea-0.3.3/scripts/benchmark/marsilea_vs_matplotlib.png +0 -0
  121. marsilea-0.3.3/scripts/benchmark/marsilea_vs_matplotlib.svg +1846 -0
  122. marsilea-0.3.3/scripts/benchmark/matplotlib/matplotlib_cooking_oils_base.py +180 -0
  123. marsilea-0.3.3/scripts/benchmark/matplotlib/matplotlib_cooking_oils_v1.py +230 -0
  124. marsilea-0.3.3/scripts/benchmark/matplotlib/matplotlib_cooking_oils_v2.py +220 -0
  125. marsilea-0.3.3/scripts/benchmark/result.py +159 -0
  126. marsilea-0.3.3/scripts/pub_figure.py +15 -0
  127. marsilea-0.3.3/scripts/pub_figures/layout-step.py +120 -0
  128. marsilea-0.3.3/scripts/publication/arc_diagram.svg +5974 -0
  129. marsilea-0.3.3/scripts/publication/bivariate_dist.svg +32 -0
  130. marsilea-0.3.3/scripts/publication/mouse_embryo.svg +168201 -0
  131. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/__init__.py +3 -2
  132. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/_api.py +3 -2
  133. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/_deform.py +44 -38
  134. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/base.py +702 -118
  135. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/dataset.py +49 -23
  136. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/dendrogram.py +119 -84
  137. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/exceptions.py +5 -6
  138. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/heatmap.py +85 -25
  139. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/layers.py +77 -69
  140. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/layout.py +132 -102
  141. marsilea-0.3.3/src/marsilea/plotter/__init__.py +36 -0
  142. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/plotter/_images.py +37 -7
  143. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/plotter/_seaborn.py +35 -24
  144. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/plotter/_utils.py +3 -2
  145. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/plotter/arc.py +29 -19
  146. marsilea-0.3.3/src/marsilea/plotter/area.py +80 -0
  147. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/plotter/bar.py +119 -92
  148. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/plotter/base.py +76 -49
  149. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/plotter/bio.py +40 -30
  150. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/plotter/mesh.py +184 -88
  151. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/plotter/text.py +303 -194
  152. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/upset.py +229 -151
  153. {marsilea-0.3.1 → marsilea-0.3.3/src}/marsilea/utils.py +23 -10
  154. marsilea-0.3.3/src/oncoprinter/__init__.py +4 -0
  155. marsilea-0.3.3/src/oncoprinter/core.py +296 -0
  156. marsilea-0.3.3/src/oncoprinter/preset.py +258 -0
  157. marsilea-0.3.1/PKG-INFO +0 -50
  158. marsilea-0.3.1/README.md +0 -20
  159. marsilea-0.3.1/docs/source/.gitignore +0 -3
  160. marsilea-0.3.1/docs/source/api/base.rst +0 -49
  161. marsilea-0.3.1/docs/source/api/index.rst +0 -9
  162. marsilea-0.3.1/docs/source/api/plots.rst +0 -62
  163. marsilea-0.3.1/docs/source/api/viz.rst +0 -40
  164. marsilea-0.3.1/docs/source/how-to.rst +0 -53
  165. marsilea-0.3.1/examples/.gitignore +0 -1
  166. marsilea-0.3.1/examples/plot_oil_well.py +0 -84
  167. marsilea-0.3.1/img/publication/layout-step-3.png +0 -0
  168. marsilea-0.3.1/img/publication/layout-step-4.png +0 -0
  169. marsilea-0.3.1/marsilea/plotter/__init__.py +0 -7
  170. marsilea-0.3.1/scripts/pub_figure.py +0 -0
  171. marsilea-0.3.1/scripts/pub_figures/layout-step.py +0 -70
  172. {marsilea-0.3.1 → marsilea-0.3.3}/.streamlit/config.toml +0 -0
  173. {marsilea-0.3.1 → marsilea-0.3.3}/app/.gitignore +0 -0
  174. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/__init__.py +0 -0
  175. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/cmap_selector/__init__.py +0 -0
  176. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/cmap_selector/selector.py +0 -0
  177. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/data_input.py +0 -0
  178. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/example_download.py +0 -0
  179. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/saver.py +0 -0
  180. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/state.py +0 -0
  181. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/transformation.py +0 -0
  182. {marsilea-0.3.1 → marsilea-0.3.3}/app/components/upset_example.csv +0 -0
  183. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/V1.mp4 +0 -0
  184. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/V2.mp4 +0 -0
  185. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/annolabels.png +0 -0
  186. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/bar.png +0 -0
  187. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/box.png +0 -0
  188. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/boxen.png +0 -0
  189. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/colors.png +0 -0
  190. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/dendrogram.svg +0 -0
  191. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/favicon.png +0 -0
  192. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/favicon.svg +0 -0
  193. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/heatmap.png +0 -0
  194. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/heatmap.svg +0 -0
  195. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/logo.png +0 -0
  196. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/mark_map.png +0 -0
  197. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/mark_map.svg +0 -0
  198. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/point.png +0 -0
  199. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/sized_heatmap.png +0 -0
  200. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/sized_heatmap.svg +0 -0
  201. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/sized_onlymap.png +0 -0
  202. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/strip.png +0 -0
  203. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/swarm.png +0 -0
  204. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/violin.png +0 -0
  205. {marsilea-0.3.1 → marsilea-0.3.3}/app/img/x-layout.png +0 -0
  206. {marsilea-0.3.1 → marsilea-0.3.3}/app/script/heatmap_data.py +0 -0
  207. {marsilea-0.3.1 → marsilea-0.3.3}/app/script/plot_layer_example_images.py +0 -0
  208. {marsilea-0.3.1 → marsilea-0.3.3}/app/script/plotter_example_images.py +0 -0
  209. {marsilea-0.3.1 → marsilea-0.3.3}/app/set_data_memberships.txt +0 -0
  210. {marsilea-0.3.1 → marsilea-0.3.3}/app/test.xlsx +0 -0
  211. {marsilea-0.3.1 → marsilea-0.3.3}/app/test_data/Stats_plot.txt +0 -0
  212. {marsilea-0.3.1 → marsilea-0.3.3}/app/test_data/example_data.txt +0 -0
  213. {marsilea-0.3.1 → marsilea-0.3.3}/app/test_data/number.txt +0 -0
  214. {marsilea-0.3.1 → marsilea-0.3.3}/app/test_data/row_labels.txt +0 -0
  215. {marsilea-0.3.1 → marsilea-0.3.3}/app/test_data/set_data_memberships.txt +0 -0
  216. {marsilea-0.3.1 → marsilea-0.3.3}/app/upset.xlsx +0 -0
  217. {marsilea-0.3.1 → marsilea-0.3.3}/data/IMDB.csv +0 -0
  218. {marsilea-0.3.1 → marsilea-0.3.3}/data/PATIENT_DATA_oncoprint.tsv +0 -0
  219. {marsilea-0.3.1 → marsilea-0.3.3}/data/pbmc3k.h5ad +0 -0
  220. {marsilea-0.3.1 → marsilea-0.3.3}/docs/README.md +0 -0
  221. {marsilea-0.3.1 → marsilea-0.3.3}/docs/make.bat +0 -0
  222. {marsilea-0.3.1 → marsilea-0.3.3}/docs/requirements.txt +0 -0
  223. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/_templates/autosummary.rst +0 -0
  224. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/img/marsilea-renderplan-logic.drawio.svg +0 -0
  225. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/tutorial/axes-level.rst +0 -0
  226. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/tutorial/concatenation.rst +0 -0
  227. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/tutorial/heatmap.rst +0 -0
  228. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/tutorial/index.rst +0 -0
  229. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/tutorial/intro2.rst +0 -0
  230. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/tutorial/new_renderplan.rst +0 -0
  231. {marsilea-0.3.1 → marsilea-0.3.3}/docs/source/tutorial/upset.rst +0 -0
  232. {marsilea-0.3.1 → marsilea-0.3.3}/img/Logo(1).zip +0 -0
  233. {marsilea-0.3.1 → marsilea-0.3.3}/img/Logo.zip +0 -0
  234. {marsilea-0.3.1 → marsilea-0.3.3}/img/banner-blue.jpg +0 -0
  235. {marsilea-0.3.1 → marsilea-0.3.3}/img/banner-dark-gradient.jpg +0 -0
  236. {marsilea-0.3.1 → marsilea-0.3.3}/img/banner-dark.jpg +0 -0
  237. {marsilea-0.3.1 → marsilea-0.3.3}/img/banner-rice-white.jpg +0 -0
  238. {marsilea-0.3.1 → marsilea-0.3.3}/img/banner-white.jpg +0 -0
  239. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo/Logo/.DS_Store +0 -0
  240. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo/Logo/Logo.svg +0 -0
  241. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo/Logo/logo.png +0 -0
  242. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo/Logo//346/265/205/350/223/235/346/270/220/345/217/230.jpg" +0 -0
  243. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo/Logo//346/267/261/350/211/262/350/203/214/346/231/257.jpg" +0 -0
  244. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo/Logo//347/261/263/350/211/262.jpg" +0 -0
  245. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo/Logo//347/272/257/347/231/275.jpg" +0 -0
  246. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo/Logo//350/247/222/345/272/246/346/270/220/345/217/230.jpg" +0 -0
  247. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo/__MACOSX/Logo/._.DS_Store +0 -0
  248. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo.png +0 -0
  249. {marsilea-0.3.1 → marsilea-0.3.3}/img/logo.svg +0 -0
  250. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/Snap-1.png +0 -0
  251. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/Snap-2.png +0 -0
  252. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/Snap-3.png +0 -0
  253. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/Stacked bar.png +0 -0
  254. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/bivar_kde.png +0 -0
  255. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/layout-skeleton-step1.png +0 -0
  256. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/layout-skeleton-step2.png +0 -0
  257. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/layout-skeleton-step3.png +0 -0
  258. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/layout-skeleton-step4.png +0 -0
  259. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/oncoprint.png +0 -0
  260. {marsilea-0.3.1 → marsilea-0.3.3}/img/publication/upset.png +0 -0
  261. {marsilea-0.3.1 → marsilea-0.3.3}/scripts/logo.py +0 -0
  262. {marsilea-0.3.1 → marsilea-0.3.3}/scripts/pub_figures/bivariate_kde.py +0 -0
  263. {marsilea-0.3.1 → marsilea-0.3.3}/scripts/pub_figures/layout-skeleton-step.py +0 -0
  264. {marsilea-0.3.1 → marsilea-0.3.3}/scripts/pub_figures/onco.py +0 -0
  265. {marsilea-0.3.1 → marsilea-0.3.3}/scripts/pub_figures/stacked_bar.py +0 -0
  266. {marsilea-0.3.1 → marsilea-0.3.3}/scripts/pub_figures/upset.py +0 -0
  267. {marsilea-0.3.1 → marsilea-0.3.3}/scripts/x-layout.py +0 -0
  268. {marsilea-0.3.1 → marsilea-0.3.3}/setup.py +0 -0
  269. {marsilea-0.3.1 → marsilea-0.3.3}/tests/test_data_input.py +0 -0
  270. {marsilea-0.3.1 → marsilea-0.3.3}/tests/test_deform.py +0 -0
  271. {marsilea-0.3.1 → marsilea-0.3.3}/tests/test_mesh.py +0 -0
@@ -37,7 +37,7 @@ jobs:
37
37
  run: |
38
38
  pip install pytest
39
39
  pip install pytest-cov
40
- pytest --cov=heatgraphy/ --cov-report=xml tests/
40
+ pytest --cov=marsilea/ --cov-report=xml tests/
41
41
 
42
42
  Upload_to_test_pypi:
43
43
  runs-on: ubuntu-latest
@@ -57,14 +57,14 @@ jobs:
57
57
  - name: Publish to test.ipynb pypi
58
58
  env:
59
59
  FLIT_INDEX_URL: https://test.ipynb.pypi.org/legacy/
60
- FLIT_USERNAME: ${{ secrets.PYPI_USERNAME }}
61
- FLIT_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
60
+ FLIT_USERNAME: __token__
61
+ FLIT_PASSWORD: ${{ secrets.PYPI_TOKEN }}
62
62
  run: flit publish || exit 0
63
63
 
64
64
  - name: Publish to pypi
65
65
  if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
66
66
  env:
67
67
  FLIT_INDEX_URL: https://upload.pypi.org/legacy/
68
- FLIT_USERNAME: ${{ secrets.PYPI_USERNAME }}
69
- FLIT_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
68
+ FLIT_USERNAME: __token__
69
+ FLIT_PASSWORD: ${{ secrets.PYPI_TOKEN }}
70
70
  run: flit publish
@@ -0,0 +1,39 @@
1
+ name: Deploy streamlit docker to Azure
2
+ on: []
3
+ # push:
4
+ # paths:
5
+ # - '.github/**'
6
+ # - 'app/**'
7
+ # - 'marsilea/**'
8
+ # - 'pyproject.toml'
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+ - name: Login to Azure
16
+ uses: azure/login@v1
17
+ with:
18
+ creds: ${{ secrets.AZURE_CREDENTIALS }}
19
+ - name: Build and push
20
+ uses: azure/docker-login@v1
21
+ with:
22
+ login-server: ${{ secrets.REGISTRY_LOGIN_SERVER }}
23
+ username: ${{ secrets.REGISTRY_USERNAME }}
24
+ password: ${{ secrets.REGISTRY_PASSWORD }}
25
+ - run: |
26
+ docker build . -t ${{ secrets.REGISTRY_LOGIN_SERVER }}/marsilea:${{ github.sha }}
27
+ docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/marsilea:${{ github.sha }}
28
+
29
+ - name: Deploy to Azure Web App
30
+ uses: azure/webapps-deploy@v2
31
+ with:
32
+ resource-group: ${{ secrets.RESOURCE_GROUP }}
33
+ dns-name-label: ${{ secrets.RESOURCE_GROUP }}${{ github.run_number }}
34
+ image: ${{ secrets.REGISTRY_LOGIN_SERVER }}/marsilea:${{ github.sha }}
35
+ registry-login-server: ${{ secrets.REGISTRY_LOGIN_SERVER }}
36
+ registry-username: ${{ secrets.REGISTRY_USERNAME }}
37
+ registry-password: ${{ secrets.REGISTRY_PASSWORD }}
38
+ name: marsilea
39
+ location: 'northeurope'
@@ -7,4 +7,4 @@ jobs:
7
7
  - uses: actions/checkout@v3
8
8
  - uses: chartboost/ruff-action@v1
9
9
  with:
10
- src: "./marsilea"
10
+ src: "./src"
@@ -160,4 +160,5 @@ cython_debug/
160
160
  .idea/
161
161
 
162
162
  *.ipynb
163
- .fonts/
163
+ .fonts/
164
+ .DS_Store
@@ -0,0 +1,37 @@
1
+ # This CITATION.cff file was generated with cffinit.
2
+ # Visit https://bit.ly/cffinit to generate yours today!
3
+
4
+ cff-version: 1.2.0
5
+ title: Marsilea
6
+ message: >-
7
+ An intuitive generalized visualization paradigm for
8
+ complex datasets
9
+ type: software
10
+ authors:
11
+ - given-names: Yimin
12
+ family-names: Zheng
13
+ email: yzheng@cemm.at
14
+ affiliation: CeMM
15
+ orcid: 'https://orcid.org/0000-0002-0394-9735'
16
+ - given-names: Zhihang
17
+ family-names: Zheng
18
+ affiliation: >-
19
+ Hong Kong University of Science and Technology
20
+ (Guangzhou)
21
+ orcid: 'https://orcid.org/0000-0001-7986-4925'
22
+ - given-names: Andre
23
+ family-names: Rendeiro
24
+ affiliation: CeMM
25
+ orcid: 'https://orcid.org/0000-0001-9362-5373'
26
+ - given-names: Edwin
27
+ family-names: Cheung
28
+ affiliation: University of Macau
29
+ orcid: 'https://orcid.org/0000-0001-8034-2833'
30
+ identifiers:
31
+ - type: doi
32
+ value: 10.1101/2024.02.14.580236
33
+ description: Bioarxiv
34
+ repository-code: 'https://github.com/Marsilea-viz/marsilea'
35
+ keywords:
36
+ - Visualization
37
+ license: MIT
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2023 Mr-Milk
3
+ Copyright (c) 2024 Mr-Milk
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.1
2
+ Name: marsilea
3
+ Version: 0.3.3
4
+ Summary: Create x-layout visualization
5
+ Author: Zhihang Zheng
6
+ Author-email: Mr-Milk <yzheng@cemm.at>
7
+ Requires-Python: >=3.8
8
+ Description-Content-Type: text/markdown
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Requires-Dist: numpy
11
+ Requires-Dist: pandas
12
+ Requires-Dist: matplotlib>=3.6
13
+ Requires-Dist: seaborn
14
+ Requires-Dist: scipy
15
+ Requires-Dist: legendkit
16
+ Requires-Dist: platformdirs
17
+ Requires-Dist: ruff ; extra == "dev"
18
+ Requires-Dist: icecream ; extra == "dev"
19
+ Requires-Dist: python-hmr ; extra == "dev"
20
+ Requires-Dist: pytest ; extra == "dev"
21
+ Requires-Dist: scikit-learn ; extra == "dev"
22
+ Requires-Dist: sphinx ; extra == "dev"
23
+ Requires-Dist: numpydoc ; extra == "dev"
24
+ Requires-Dist: sphinx_design ; extra == "dev"
25
+ Requires-Dist: pydata-sphinx-theme ; extra == "dev"
26
+ Requires-Dist: sphinx-copybutton ; extra == "dev"
27
+ Requires-Dist: sphinx_gallery ; extra == "dev"
28
+ Requires-Dist: mpl_fontkit ; extra == "dev"
29
+ Project-URL: Home, https://github.com/Marsilea-viz/marsilea
30
+ Provides-Extra: dev
31
+
32
+ <p align="center">
33
+ <picture align="center">
34
+ <source media="(prefers-color-scheme: dark)" srcset="https://github.com/Marsilea-viz/marsilea/raw/main/img/banner-dark.jpg">
35
+ <source media="(prefers-color-scheme: light)" srcset="https://github.com/Marsilea-viz/marsilea/raw/main/img/banner-blue.jpg">
36
+ <img alt="Shows a bar chart with benchmark results." src="https://github.com/Marsilea-viz/marsilea/raw/main/img/banner-dark.jpg" width="400">
37
+ </picture>
38
+ </p>
39
+
40
+ [![Documentation Status](https://img.shields.io/readthedocs/marsilea?color=57B77E&logo=readthedocs&logoColor=white&style=flat-square)](https://marsilea.readthedocs.io/en/stable)
41
+ ![pypi version](https://img.shields.io/pypi/v/marsilea?color=0098FF&logo=python&logoColor=white&style=flat-square)
42
+
43
+ ❗We are in beta, API may change and bugs expected
44
+
45
+ ### Declarative creation of composable visualization!
46
+
47
+ [Read Documentation](https://marsilea.readthedocs.io/)
48
+
49
+
50
+ ### Installation
51
+
52
+ ```shell
53
+ pip install marsilea
54
+ ```
55
+
56
+ [//]: # (### Examples)
57
+
58
+ [//]: # ()
59
+ [//]: # (| | |)
60
+
61
+ [//]: # (|-----------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|)
62
+
63
+ [//]: # (| Heatmap | Oncoprint |)
64
+
65
+ [//]: # (| <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_pbmc3k_001_2_00x.png" width=400> | <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_oncoprint_005_2_00x.png" width=400> |)
66
+
67
+ [//]: # (| Upsetplot | Composition Stacked Bar |)
68
+
69
+ [//]: # (| <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_upset_001_2_00x.png" width=400> | <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_oil_well_001_2_00x.png" width=400> |)
70
+
71
+ [//]: # (| Arc Diagram | Protein sequence alignment |)
72
+
73
+ [//]: # (| <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_arc_diagram_001_2_00x.png" width=400> | <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_seqalign_001_2_00x.png" width=400> |)
74
+
@@ -0,0 +1,42 @@
1
+ <p align="center">
2
+ <picture align="center">
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://github.com/Marsilea-viz/marsilea/raw/main/img/banner-dark.jpg">
4
+ <source media="(prefers-color-scheme: light)" srcset="https://github.com/Marsilea-viz/marsilea/raw/main/img/banner-blue.jpg">
5
+ <img alt="Shows a bar chart with benchmark results." src="https://github.com/Marsilea-viz/marsilea/raw/main/img/banner-dark.jpg" width="400">
6
+ </picture>
7
+ </p>
8
+
9
+ [![Documentation Status](https://img.shields.io/readthedocs/marsilea?color=57B77E&logo=readthedocs&logoColor=white&style=flat-square)](https://marsilea.readthedocs.io/en/stable)
10
+ ![pypi version](https://img.shields.io/pypi/v/marsilea?color=0098FF&logo=python&logoColor=white&style=flat-square)
11
+
12
+ ❗We are in beta, API may change and bugs expected
13
+
14
+ ### Declarative creation of composable visualization!
15
+
16
+ [Read Documentation](https://marsilea.readthedocs.io/)
17
+
18
+
19
+ ### Installation
20
+
21
+ ```shell
22
+ pip install marsilea
23
+ ```
24
+
25
+ [//]: # (### Examples)
26
+
27
+ [//]: # ()
28
+ [//]: # (| | |)
29
+
30
+ [//]: # (|-----------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|)
31
+
32
+ [//]: # (| Heatmap | Oncoprint |)
33
+
34
+ [//]: # (| <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_pbmc3k_001_2_00x.png" width=400> | <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_oncoprint_005_2_00x.png" width=400> |)
35
+
36
+ [//]: # (| Upsetplot | Composition Stacked Bar |)
37
+
38
+ [//]: # (| <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_upset_001_2_00x.png" width=400> | <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_oil_well_001_2_00x.png" width=400> |)
39
+
40
+ [//]: # (| Arc Diagram | Protein sequence alignment |)
41
+
42
+ [//]: # (| <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_arc_diagram_001_2_00x.png" width=400> | <img src="https://marsilea.readthedocs.io/en/latest/_images/sphx_glr_plot_seqalign_001_2_00x.png" width=400> |)
@@ -0,0 +1,20 @@
1
+ # Use the official Python image as the base image
2
+ FROM python:3.10
3
+
4
+ # Set the working directory in the container
5
+ WORKDIR /app
6
+
7
+ # Copy the requirements.txt file into the container
8
+ COPY requirements.txt .
9
+
10
+ # Install any dependencies
11
+ RUN pip install --no-cache-dir -r requirements.txt
12
+
13
+ # Copy the content of the local src directory to the working directory
14
+ COPY . .
15
+
16
+ # Expose the port that Streamlit will run on
17
+ EXPOSE 8501
18
+
19
+ # Command to run the application when the container starts
20
+ CMD ["streamlit", "run", "Home.py", "--server.port=8501", "--server.address=0.0.0.0"]
@@ -2,7 +2,7 @@ import streamlit as st
2
2
 
3
3
  from components.initialize import init_page, inject_css
4
4
 
5
- init_page("Heatgraphy")
5
+ init_page("Marsilea")
6
6
  inject_css()
7
7
 
8
8
  banner, title = st.columns([1, 1.2])
@@ -10,12 +10,12 @@ with banner:
10
10
  st.markdown(
11
11
  '<video controls width="250" autoplay="true" muted="true" '
12
12
  'loop="true" playsinline style="pointer-events: none;">'
13
- '<source src="https://raw.githubusercontent.com/Heatgraphy/'
13
+ '<source src="https://raw.githubusercontent.com/Marsilea-viz/'
14
14
  'marsilea/main/app/img/V1.mp4" '
15
15
  'type="video/mp4" /></video>', unsafe_allow_html=True)
16
16
 
17
17
  with title:
18
- st.title("Heatgraphy")
18
+ st.title("Marsilea")
19
19
  st.subheader("Create :blue[x-layout] visualization")
20
20
  st.text("")
21
21
  st.markdown(
@@ -25,7 +25,7 @@ with title:
25
25
  st.markdown("---")
26
26
 
27
27
  st.subheader("About")
28
- st.markdown("Heatgraphy is a tool for you to create x-layout visualization. "
28
+ st.markdown("Marsilea is a tool for you to create x-layout visualization. "
29
29
  "x-layout is a way to visualize a multi-feature dataset. "
30
30
  "Instead of creating one plot for each feature, x-layout groups "
31
31
  "the plots of different features together "
@@ -50,17 +50,17 @@ def tools(name, img, page, size=150):
50
50
 
51
51
 
52
52
  with t1:
53
- tools("Simple Heatmap", "https://heatgraphy.readthedocs.io/en/latest/"
54
- "_images/customized_render-1.png",
53
+ tools("Simple Heatmap", "https://marsilea.readthedocs.io/en/latest/"
54
+ "_images/concatenation-1.png",
55
55
  page="/Simple_Heatmap", size=130)
56
56
 
57
57
  with t2:
58
- tools("x-layout", "https://heatgraphy.readthedocs.io/en/latest/"
58
+ tools("x-layout", "https://marsilea.readthedocs.io/en/latest/"
59
59
  "_images/sphx_glr_plot_pbmc3k_thumb.png",
60
60
  page="X-Layout_Heatmap", size=200)
61
61
 
62
62
  with t3:
63
- tools("Upset Plot", "https://heatgraphy.readthedocs.io/en/latest/"
63
+ tools("Upset Plot", "https://marsilea.readthedocs.io/en/latest/"
64
64
  "_images/sphx_glr_plot_upset_thumb.png",
65
65
  page="/Upsetplot", size=220)
66
66
 
@@ -83,4 +83,4 @@ with s3:
83
83
 
84
84
  st.markdown("---")
85
85
 
86
- st.markdown("Copyright © 2023 [Heatgraphy](https://github.com/Heatgraphy)")
86
+ st.markdown("Copyright © 2024 [Marsilea](https://github.com/Marsilea-viz)")
@@ -0,0 +1,17 @@
1
+ # How to run the app version of Marsilea
2
+
3
+ ## Using Docker
4
+
5
+ ### Step 1: Build the image
6
+
7
+ ```bash
8
+ docker build -t marsilea-app .
9
+ ```
10
+
11
+ ### Step 2: Run the container
12
+
13
+ ```bash
14
+ docker run -p 8501:8501 marsilea-app
15
+ ```
16
+
17
+ Go to http://localhost:8501 to see the app.
@@ -110,7 +110,7 @@ def inject_css():
110
110
 
111
111
  def init_page(title):
112
112
  IMG_ROOT = "https://raw.githubusercontent.com/" \
113
- "Heatgraphy/marsilea/main/app/img"
113
+ "Marsilea-viz/marsilea/main/app/img"
114
114
 
115
115
  st.set_page_config(
116
116
  page_title=title,
@@ -118,7 +118,7 @@ def init_page(title):
118
118
  page_icon=f"{IMG_ROOT}/favicon.png",
119
119
  # initial_sidebar_state="collapsed",
120
120
  menu_items={
121
- 'Report a bug': 'https://github.com/heatgraphy/heatgraphy/issues/new/choose',
122
- 'About': 'A web interface for Heatgraphy'
121
+ 'Report a bug': 'https://github.com/Marsilea-viz/marsilea/issues/new/choose',
122
+ 'About': 'A web interface for Marsilea'
123
123
  }
124
124
  )
@@ -8,7 +8,7 @@ from marsilea.plotter import ColorMesh, SizedMesh, MarkerMesh
8
8
  from .cmap_selector import ColormapSelector
9
9
 
10
10
  IMG_ROOT = "https://raw.githubusercontent.com/" \
11
- "Heatgraphy/marsilea/main/app/img/"
11
+ "Marsilea-viz/marsilea/main/app/img/"
12
12
 
13
13
 
14
14
  class MainPlotter:
@@ -15,7 +15,7 @@ np.random.seed(0)
15
15
 
16
16
  @st.cache_resource
17
17
  def get_font_list():
18
- fonts = ["Source Sans Pro", "Roboto", "Open Sans", "Noto Sans", "Raleway",
18
+ fonts = ["Source Sans 3", "Roboto", "Open Sans", "Noto Sans", "Raleway",
19
19
  "Lato", "Montserrat", "Inter", "Oswald"]
20
20
  for f in fonts:
21
21
  fk.install(f, as_global=False)
@@ -6,7 +6,7 @@ import numpy as np
6
6
  import streamlit as st
7
7
 
8
8
  from marsilea.base import ClusterBoard
9
- from marsilea.plotter import (Bar, Box, Boxen, Colors, Count, Chunk, Strip,
9
+ from marsilea.plotter import (Bar, Box, Boxen, Colors, Chunk, Strip,
10
10
  Violin,
11
11
  Point, Swarm, AnnoLabels, Labels,
12
12
  Title)
@@ -134,7 +134,7 @@ class LabelAdder(PlotAdder):
134
134
  key=f"{self.plot_key}_label_pad")
135
135
 
136
136
  def get_options(self):
137
- return dict(align=self.align, text_pad=self.pad,
137
+ return dict(align=self.align, padding=self.pad,
138
138
  color=self.color)
139
139
 
140
140
 
@@ -524,19 +524,19 @@ class SwarmAdder(StripAdder):
524
524
  example_image = "swarm.png"
525
525
 
526
526
 
527
- class CountAdder(PlotAdder):
528
- name = "Count"
529
- plotter = Count
530
- color: str
531
-
532
- plot_explain = "Show the counts of observations in each categorical."
533
- example_image = "count.svg"
534
-
535
- def extra_options(self):
536
- self.color = st.color_picker("Color", value="#00b796")
537
-
538
- def get_options(self):
539
- return dict(color=self.color)
527
+ # class CountAdder(PlotAdder):
528
+ # name = "Count"
529
+ # plotter = Count
530
+ # color: str
531
+ #
532
+ # plot_explain = "Show the counts of observations in each categorical."
533
+ # example_image = "count.svg"
534
+ #
535
+ # def extra_options(self):
536
+ # self.color = st.color_picker("Color", value="#00b796")
537
+ #
538
+ # def get_options(self):
539
+ # return dict(color=self.color)
540
540
 
541
541
 
542
542
  class AnnoLabelsAdder(PlotAdder):
@@ -605,7 +605,7 @@ class ChunkAdder(PlotAdder):
605
605
 
606
606
  def apply(self, h):
607
607
  p = Chunk(texts=self.labels, fill_colors=self.colors,
608
- text_pad=self.text_pad)
608
+ padding=self.text_pad)
609
609
  h.add_plot(self.side, p, size=self.size, pad=self.pad)
610
610
 
611
611
 
@@ -1,4 +1,5 @@
1
1
  import matplotlib as mpl
2
+ import matplotlib.pyplot as plt
2
3
  import streamlit as st
3
4
  from components.cmap_selector import ColormapSelector
4
5
  from components.data_input import FileUpload
@@ -184,7 +185,7 @@ if s['data'] is not None:
184
185
  row_labels, mark=row_marks, fontsize=font_size
185
186
  )
186
187
  else:
187
- row_label_plot = Labels(row_labels, text_pad=.1,
188
+ row_label_plot = Labels(row_labels, padding=1,
188
189
  rotation=row_rotation,
189
190
  fontsize=font_size)
190
191
  h.add_right(row_label_plot)
@@ -195,7 +196,7 @@ if s['data'] is not None:
195
196
  col_labels, mark=col_marks, fontsize=font_size
196
197
  )
197
198
  else:
198
- col_label_plot = Labels(col_labels, text_pad=.1,
199
+ col_label_plot = Labels(col_labels, padding=1,
199
200
  rotation=col_rotation,
200
201
  fontsize=font_size)
201
202
  h.add_bottom(col_label_plot)
@@ -205,6 +206,8 @@ if s['data'] is not None:
205
206
  fontsize=title_fontsize), pad=.1)
206
207
 
207
208
  h.add_legends()
209
+ if s['figure'] is not None:
210
+ plt.close(s['figure'])
208
211
  h.render()
209
212
  s['figure'] = h.figure
210
213
 
@@ -26,7 +26,7 @@ st.warning("We are still in beta stage, you may report to us "
26
26
  st.markdown(
27
27
  '<video controls width="250" autoplay="true" muted="true" loop="true" '
28
28
  'playsinline style="pointer-events: none;">'
29
- '<source src="https://raw.githubusercontent.com/Heatgraphy'
29
+ '<source src="https://raw.githubusercontent.com/Marsilea-viz'
30
30
  '/marsilea/main/app/img/V2.mp4" '
31
31
  'type="video/mp4" /></video>', unsafe_allow_html=True)
32
32
 
@@ -1,12 +1,11 @@
1
1
  import matplotlib as mpl
2
2
  import matplotlib.pyplot as plt
3
- import numpy as np
4
3
  import pandas as pd
5
4
  import streamlit as st
6
5
  from components.data_input import FileUpload
7
6
  from components.initialize import init_page
8
7
  from components.initialize import inject_css
9
- from components.resource import get_font_list, upset_showcase_data,\
8
+ from components.resource import get_font_list, upset_showcase_data, \
10
9
  upset_example_data
11
10
  from components.saver import ChartSaver
12
11
  from components.state import State
@@ -63,7 +62,7 @@ load = st.button("Load Example")
63
62
  if load:
64
63
  example = upset_example_data()
65
64
  s['upset_data'] = UpsetData(example.to_numpy(), items=example.index,
66
- names=example.columns,)
65
+ sets_names=example.columns, )
67
66
  s["parse_success"] = True
68
67
  s['format'] = "Binary Table"
69
68
  st.experimental_rerun()
@@ -98,14 +97,13 @@ if data is not None:
98
97
 
99
98
  if s["parse_success"]:
100
99
  upset_data = s['upset_data']
101
- filter, highlight, styles = st.tabs(["Filter", "Highlight", "Styles"])
100
+ filter, styles, highlight = st.tabs(["Filter", "Styles", "Highlight"])
102
101
 
103
102
  with filter:
104
- sets_table = pd.DataFrame(upset_data.cardinality(),
105
- columns=["size"])
103
+ sets_table = pd.DataFrame(upset_data.cardinality())
106
104
  sets_table["degree"] = sets_table.index.to_frame().sum(axis=1)
107
105
 
108
- size_upper = int(sets_table['size'].max())
106
+ size_upper = int(sets_table['cardinality'].max())
109
107
  degree_upper = int(sets_table['degree'].max())
110
108
 
111
109
  c1, c2 = st.columns(2, gap="large")
@@ -118,8 +116,33 @@ if s["parse_success"]:
118
116
  value=(0, degree_upper),
119
117
  max_value=degree_upper)
120
118
 
119
+ sort_sets = st.selectbox("Sort sets", options=["ascending", "descending"])
120
+ sort_subsets = st.selectbox("Sort degree", options=["cardinality", "degree"])
121
+
121
122
  with styles:
122
123
  st.markdown("**General**")
124
+ orient_dict = {"h": "Horizontal", "v": "Vertical"}
125
+ orient = st.selectbox("Orientation",
126
+ options=["h", "v"],
127
+ format_func=lambda x: orient_dict[x]
128
+ )
129
+
130
+ c1, c2, c3 = st.columns(3)
131
+ with c1:
132
+ if orient == "v":
133
+ options = ["left", "right"]
134
+ else:
135
+ options = ["top", "bottom"]
136
+ intersection_plot_pos = st.selectbox("Intersection Plot Position", options=options)
137
+ with c2:
138
+ if orient == "v":
139
+ options = ["top", "bottom"]
140
+ else:
141
+ options = ["left", "right"]
142
+ sets_size_pos = st.selectbox("Sets size Plot Position", options=options)
143
+ with c3:
144
+ label_pos = st.selectbox("Label Position", options=options)
145
+
123
146
  g1, g2 = st.columns(2)
124
147
  with g1:
125
148
  linewidth = st.number_input("Line Width", min_value=.5,
@@ -146,7 +169,7 @@ if s["parse_success"]:
146
169
  "Font size", min_value=1, step=1, value=10)
147
170
  with f2:
148
171
  font_list = get_font_list()
149
- DEFAULT_FONT = font_list.index("Source Sans Pro")
172
+ DEFAULT_FONT = font_list.index("Lato")
150
173
  fontfamily = st.selectbox("Font Family", options=font_list,
151
174
  index=DEFAULT_FONT)
152
175
  with f3:
@@ -166,9 +189,10 @@ if s["parse_success"]:
166
189
  'font.size': fontsize,
167
190
  'font.family': fontfamily}):
168
191
  fig = plt.figure()
192
+ upset_data.reset()
169
193
  up = Upset(upset_data,
170
- min_size=size_range[0],
171
- max_size=size_range[1],
194
+ min_cardinality=size_range[0],
195
+ max_cardinality=size_range[1],
172
196
  min_degree=degree_range[0],
173
197
  max_degree=degree_range[1],
174
198
  color=color,
@@ -176,6 +200,11 @@ if s["parse_success"]:
176
200
  shading=shading,
177
201
  grid_background=grid_background,
178
202
  radius=dot_size,
203
+ sort_sets=sort_sets,
204
+ sort_subsets=sort_subsets,
205
+ orient=orient,
206
+ add_intersections=intersection_plot_pos,
207
+ add_sets_size=sets_size_pos,
179
208
  )
180
209
  up.render(fig)
181
210
  s['figure'] = fig
@@ -5,7 +5,7 @@ from components.initialize import init_page
5
5
  init_page("Manual")
6
6
 
7
7
  IMG_ROOT = "https://raw.githubusercontent.com/" \
8
- "Heatgraphy/marsilea/main/app/img"
8
+ "Marsilea-viz/marsilea/main/app/img"
9
9
 
10
10
  st.header("Manual")
11
11
 
@@ -45,8 +45,8 @@ st.markdown("## How to report a bug?")
45
45
 
46
46
  st.markdown("Click the botton on the Top Right ➡️ **Report a bug**")
47
47
 
48
- st.markdown("## Can I host my own version of Heatgraphy?")
48
+ st.markdown("## Can I host my own version of Marsilea?")
49
49
 
50
50
  st.markdown("Sure! Check our "
51
- "[GitHub repository](https://github.com/heatgraphy/heatgraphy) "
51
+ "[GitHub repository](https://github.com/Marsilea-viz/marsilea) "
52
52
  "for detail instruction.")
@@ -1,4 +1,4 @@
1
- .
1
+ marsilea
2
2
  pandas
3
3
  openpyxl
4
4
  xlrd
@@ -14,7 +14,17 @@ help:
14
14
 
15
15
  .PHONY: help Makefile
16
16
 
17
+ deepclean:
18
+ @$(SPHINXBUILD) -M clean "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
19
+ rm -rf $(SOURCEDIR)/api/APIs/*
20
+ rm -rf $(SOURCEDIR)/examples
21
+ rm -rf $(SOURCEDIR)/how_to
22
+
23
+
24
+
17
25
  # Catch-all target: route all unknown targets to Sphinx using the new
18
26
  # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
27
  %: Makefile
20
28
  @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
29
+
30
+
@@ -0,0 +1,2 @@
1
+ *.png
2
+ imgs
@@ -0,0 +1,2 @@
1
+ Basics
2
+ ======