genome-spy-python 0.4.0__tar.gz → 0.5.0__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 (373) hide show
  1. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.github/workflows/ci.yml +1 -1
  2. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/CHANGELOG.md +31 -0
  3. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/PKG-INFO +1 -1
  4. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_ext/genomespy_gallery.py +5 -0
  5. genome_spy_python-0.5.0/docs/_static/gallery/pisa_interaction_matrix.png +0 -0
  6. genome_spy_python-0.5.0/docs/_static/gallery/pisa_squid.png +0 -0
  7. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/airway_ma_plot.py +1 -1
  8. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/airway_volcano_plot.py +1 -1
  9. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bam_read_alignments.py +1 -1
  10. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bam_read_pileup.py +1 -1
  11. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bigbed_ccre_track.py +1 -1
  12. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/composing_genome_browser.py +1 -1
  13. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/coverage_pileup.py +1 -1
  14. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/cytobands.py +1 -1
  15. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/diverging_bars.py +1 -1
  16. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/dynseq_adaptive_bqtl.py +1 -1
  17. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/dynseq_bqtl.py +1 -1
  18. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/genome_tracks.py +1 -1
  19. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/geometric_zoom.py +1 -1
  20. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/gff3_gene_annotations.py +1 -1
  21. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/heatmap_with_text.py +1 -1
  22. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/independent_scales.py +1 -1
  23. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/indexed_fasta_sequence.py +1 -1
  24. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/layered_lollipop.py +1 -1
  25. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/link_mark.py +1 -1
  26. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/multiple_sequence_alignment.py +1 -1
  27. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/p53_sequence_comparison.py +1 -1
  28. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/penguin_brush.py +1 -1
  29. genome_spy_python-0.5.0/docs/examples/pisa_interaction_matrix.md +48 -0
  30. genome_spy_python-0.5.0/docs/examples/pisa_interaction_matrix.py +338 -0
  31. genome_spy_python-0.5.0/docs/examples/pisa_squid.md +47 -0
  32. genome_spy_python-0.5.0/docs/examples/pisa_squid.py +314 -0
  33. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/point_mark.py +1 -1
  34. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/point_styles.py +1 -1
  35. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ranged_rule.py +1 -1
  36. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rect_heatmap.py +1 -1
  37. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/refseq_scored_genes.py +1 -1
  38. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rnf7_direct_rna.py +1 -1
  39. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/sashimi_plot.py +1 -1
  40. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/scrollable_viewport.py +1 -1
  41. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/sequence_logo.py +1 -1
  42. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/six_frame_translation.py +1 -1
  43. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/stacked_bar.py +1 -1
  44. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/stacked_genome_browser.py +1 -1
  45. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/tsne.py +1 -1
  46. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/vertical_concat.py +1 -1
  47. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/volcano_plot.py +1 -1
  48. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/getting-started.md +2 -4
  49. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/index.md +1 -1
  50. genome_spy_python-0.5.0/docs/integration/component.py +92 -0
  51. genome_spy_python-0.5.0/docs/integration/index.html +50 -0
  52. genome_spy_python-0.5.0/docs/integration/notebook.ipynb +101 -0
  53. genome_spy_python-0.5.0/docs/integration/server.py +103 -0
  54. genome_spy_python-0.5.0/docs/user-guide/connect-python.md +8 -0
  55. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/data.md +1 -1
  56. genome_spy_python-0.5.0/docs/user-guide/display-controls.md +8 -0
  57. genome_spy_python-0.5.0/docs/user-guide/embed-api.md +124 -0
  58. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/index.md +9 -29
  59. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/interaction.md +31 -1
  60. genome_spy_python-0.5.0/docs/user-guide/notebooks.md +146 -0
  61. genome_spy_python-0.5.0/docs/user-guide/serialization.md +114 -0
  62. genome_spy_python-0.5.0/docs/user-guide/using-charts.md +31 -0
  63. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/annotate-intervals.md +3 -0
  64. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/index.md +4 -0
  65. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/pyproject.toml +2 -2
  66. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/__init__.py +1 -1
  67. genome_spy_python-0.5.0/src/genome_spy/_conditions.py +131 -0
  68. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/__init__.py +15 -1
  69. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/_kwds.py +1 -0
  70. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/_typing.py +1 -1
  71. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/capabilities.json +13 -1
  72. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/composition.py +43 -26
  73. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/core.py +874 -417
  74. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/ergonomics.py +40 -3
  75. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/expressions.py +12 -0
  76. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/genome-spy-schema.json +565 -100
  77. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/mixins.py +226 -103
  78. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/static/controls.js +1 -1
  79. genome_spy_python-0.5.0/src/genome_spy/static/genome-spy.js +1009 -0
  80. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/static/inspector.js +1 -1
  81. genome_spy_python-0.5.0/tests/browser/test_python_web_example.py +153 -0
  82. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_chart.py +31 -2
  83. genome_spy_python-0.5.0/tests/test_conditions.py +106 -0
  84. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_docs_gallery.py +3 -3
  85. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_docs_tutorial.py +53 -7
  86. genome_spy_python-0.5.0/tests/test_pisa_gallery.py +78 -0
  87. genome_spy_python-0.5.0/tests/test_python_connection_example.py +93 -0
  88. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/docs_gallery.py +34 -15
  89. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/schemapi/codegen.py +21 -2
  90. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/vendor_javascript.py +3 -3
  91. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/uv.lock +1 -1
  92. genome_spy_python-0.4.0/docs/user-guide/display-controls.md +0 -110
  93. genome_spy_python-0.4.0/docs/user-guide/embed-api.md +0 -42
  94. genome_spy_python-0.4.0/docs/user-guide/embed-integration.md +0 -101
  95. genome_spy_python-0.4.0/docs/user-guide/notebooks.md +0 -159
  96. genome_spy_python-0.4.0/docs/user-guide/serialization.md +0 -64
  97. genome_spy_python-0.4.0/src/genome_spy/_conditions.py +0 -72
  98. genome_spy_python-0.4.0/src/genome_spy/static/genome-spy.js +0 -1017
  99. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/commit/SKILL.md +0 -0
  100. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/proper-code-review/SKILL.md +0 -0
  101. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/proper-code-review/references/correctness.md +0 -0
  102. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/proper-code-review/references/design.md +0 -0
  103. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/proper-code-review/references/performance.md +0 -0
  104. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/commit/SKILL.md +0 -0
  105. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/proper-code-review/SKILL.md +0 -0
  106. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/proper-code-review/references/correctness.md +0 -0
  107. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/proper-code-review/references/design.md +0 -0
  108. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/proper-code-review/references/performance.md +0 -0
  109. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.gitattributes +0 -0
  110. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.github/workflows/docs.yml +0 -0
  111. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.github/workflows/release.yml +0 -0
  112. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.gitignore +0 -0
  113. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.pre-commit-config.yaml +0 -0
  114. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.python-version +0 -0
  115. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/AGENTS.md +0 -0
  116. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/CLAUDE.md +0 -0
  117. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/CONTRIBUTING.md +0 -0
  118. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSE +0 -0
  119. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/ALTAIR-BSD-3-Clause.txt +0 -0
  120. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/CC-BY-4.0.txt +0 -0
  121. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/CC-BY-NC-SA-4.0.txt +0 -0
  122. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/CC0-1.0.txt +0 -0
  123. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/DATA-SOURCE-REPOSITORIES-MIT.txt +0 -0
  124. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/GENOMESPY-MIT.txt +0 -0
  125. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/LATO-OFL-1.1.txt +0 -0
  126. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/VEGA-BSD-3-Clause.txt +0 -0
  127. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/VEGA-LITE-BSD-3-Clause.txt +0 -0
  128. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/README.md +0 -0
  129. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/THIRD_PARTY_NOTICES.md +0 -0
  130. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/README.md +0 -0
  131. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/airway_metadata.csv +0 -0
  132. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/airway_scaledcounts.csv +0 -0
  133. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/hapmap_gwas.csv +0 -0
  134. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/oncoprint_dataset3.json +0 -0
  135. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/pik3ca_mutations.json +0 -0
  136. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/external-links.js +0 -0
  137. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/airway_ma_plot.png +0 -0
  138. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/airway_volcano_plot.png +0 -0
  139. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/ascat_copy_number.png +0 -0
  140. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/ascat_fitting.png +0 -0
  141. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/bam_read_alignments.png +0 -0
  142. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/bam_read_pileup.png +0 -0
  143. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/bigbed_ccre_track.png +0 -0
  144. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/brush_linked_genome_tracks.png +0 -0
  145. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/clinvar_variants.png +0 -0
  146. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/combined_laml_oncoplot.png +0 -0
  147. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/composing_genome_browser.png +0 -0
  148. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/copy_number.png +0 -0
  149. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/coverage_pileup.png +0 -0
  150. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/cytobands.png +0 -0
  151. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/diverging_bars.png +0 -0
  152. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/dynseq_adaptive_bqtl.png +0 -0
  153. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/dynseq_bqtl.png +0 -0
  154. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/genome_tracks.png +0 -0
  155. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/geometric_zoom.png +0 -0
  156. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/gff3_gene_annotations.png +0 -0
  157. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/hcc1954_sv_cnv.png +0 -0
  158. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/heatmap_with_text.png +0 -0
  159. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/independent_scales.png +0 -0
  160. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/indexed_fasta_sequence.png +0 -0
  161. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/layered_lollipop.png +0 -0
  162. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/link_mark.png +0 -0
  163. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/luad_oncoprint.png +0 -0
  164. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/manhattan_plot.png +0 -0
  165. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/multiple_sequence_alignment.png +0 -0
  166. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/needle_plot.png +0 -0
  167. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/oncoprint.png +0 -0
  168. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/p53_sequence_comparison.png +0 -0
  169. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/penguin_brush.png +0 -0
  170. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/pik3ca_tcga_brca_lollipop.png +0 -0
  171. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/point_mark.png +0 -0
  172. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/point_styles.png +0 -0
  173. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/rainfall_plot.png +0 -0
  174. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/ranged_rule.png +0 -0
  175. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/rect_heatmap.png +0 -0
  176. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/refseq_scored_genes.png +0 -0
  177. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/rnf7_direct_rna.png +0 -0
  178. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/sashimi_plot.png +0 -0
  179. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/scrollable_viewport.png +0 -0
  180. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/sequence_logo.png +0 -0
  181. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/six_frame_translation.png +0 -0
  182. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/stacked_bar.png +0 -0
  183. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/stacked_genome_browser.png +0 -0
  184. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/tcga_ov_gistic.png +0 -0
  185. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/tsne.png +0 -0
  186. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/upset_mutations.png +0 -0
  187. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/vertical_concat.png +0 -0
  188. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/volcano_plot.png +0 -0
  189. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/genomespy.css +0 -0
  190. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/showcase.js +0 -0
  191. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/snaketie.svg +0 -0
  192. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/workflows.css +0 -0
  193. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/workflows.js +0 -0
  194. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_templates/autosummary/class.rst +0 -0
  195. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_templates/autosummary/class_own_members.rst +0 -0
  196. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_templates/base.html +0 -0
  197. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_templates/components/view-this-page.html +0 -0
  198. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/about.md +0 -0
  199. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/api.md +0 -0
  200. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/conf.py +0 -0
  201. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/datasets.md +0 -0
  202. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/airway_ma_plot.md +0 -0
  203. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/airway_volcano_plot.md +0 -0
  204. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ascat_copy_number.md +0 -0
  205. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ascat_copy_number.py +0 -0
  206. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ascat_fitting.md +0 -0
  207. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ascat_fitting.py +0 -0
  208. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bam_read_alignments.md +0 -0
  209. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bam_read_pileup.md +0 -0
  210. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/brush_linked_genome_tracks.md +0 -0
  211. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/brush_linked_genome_tracks.py +0 -0
  212. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/clinvar_variants.md +0 -0
  213. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/clinvar_variants.py +0 -0
  214. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/combined_laml_oncoplot.md +0 -0
  215. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/combined_laml_oncoplot.py +0 -0
  216. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/composing_genome_browser.md +0 -0
  217. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/copy_number.py +0 -0
  218. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/coverage_pileup.md +0 -0
  219. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/cytobands.md +0 -0
  220. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/diverging_bars.md +0 -0
  221. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/dynseq_adaptive_bqtl.md +0 -0
  222. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/dynseq_bqtl.md +0 -0
  223. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/geometric_zoom.md +0 -0
  224. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/gff3_gene_annotations.md +0 -0
  225. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/hcc1954_sv_cnv.md +0 -0
  226. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/hcc1954_sv_cnv.py +0 -0
  227. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/heatmap_with_text.md +0 -0
  228. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/independent_scales.md +0 -0
  229. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/layered_lollipop.md +0 -0
  230. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/luad_oncoprint.md +0 -0
  231. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/luad_oncoprint.py +0 -0
  232. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/manhattan_plot.md +0 -0
  233. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/manhattan_plot.py +0 -0
  234. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/multiple_sequence_alignment.md +0 -0
  235. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/needle_plot.py +0 -0
  236. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/oncoprint.md +0 -0
  237. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/oncoprint.py +0 -0
  238. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/p53_sequence_comparison.md +0 -0
  239. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/penguin_brush.md +0 -0
  240. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/pik3ca_tcga_brca_lollipop.md +0 -0
  241. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/pik3ca_tcga_brca_lollipop.py +0 -0
  242. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/point_styles.md +0 -0
  243. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rainfall_plot.md +0 -0
  244. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rainfall_plot.py +0 -0
  245. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/refseq_scored_genes.md +0 -0
  246. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rnf7_direct_rna.md +0 -0
  247. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/sashimi_plot.md +0 -0
  248. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/six_frame_translation.md +0 -0
  249. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/stacked_bar.md +0 -0
  250. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/tcga_ov_gistic.md +0 -0
  251. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/tcga_ov_gistic.py +0 -0
  252. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/tsne.md +0 -0
  253. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/upset_mutations.md +0 -0
  254. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/upset_mutations.py +0 -0
  255. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/volcano_plot.md +0 -0
  256. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/annotations.py +0 -0
  257. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/charts_and_marks.py +0 -0
  258. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/composition.py +0 -0
  259. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/configuration.py +0 -0
  260. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/data_inputs.py +0 -0
  261. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/display_controls.py +0 -0
  262. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/encoding_channels.py +0 -0
  263. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/genome_browser_layouts.py +0 -0
  264. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/genomic_coordinates.py +0 -0
  265. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/genomic_data.py +0 -0
  266. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/getting_started.py +0 -0
  267. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/importing_specifications.py +0 -0
  268. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/interaction.py +0 -0
  269. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/notebooks.py +0 -0
  270. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/scales_and_guides.py +0 -0
  271. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/serialization.py +0 -0
  272. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/transforms.py +0 -0
  273. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/annotations.md +0 -0
  274. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/charts.md +0 -0
  275. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/composition.md +0 -0
  276. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/configuration.md +0 -0
  277. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/encodings.md +0 -0
  278. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/genome-browser-layouts.md +0 -0
  279. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/genomic-axes.md +0 -0
  280. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/genomic-data.md +0 -0
  281. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/importing-specifications.md +0 -0
  282. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/scales-axes-legends.md +0 -0
  283. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/transforms.md +0 -0
  284. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/edit-sequence.md +0 -0
  285. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/pick-genes.md +0 -0
  286. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/select-genes.md +0 -0
  287. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/annotate_genomic_intervals.ipynb +0 -0
  288. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/brush_linked_genome_tracks.ipynb +0 -0
  289. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/edit_sequence.ipynb +0 -0
  290. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/embed_api.ipynb +0 -0
  291. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/pick_genes.ipynb +0 -0
  292. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/select_genes.ipynb +0 -0
  293. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_chart_authoring.py +0 -0
  294. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_embed.py +0 -0
  295. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_expressions.py +0 -0
  296. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_parameters.py +0 -0
  297. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_render.py +0 -0
  298. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_utils.py +0 -0
  299. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_widget.py +0 -0
  300. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/api.py +0 -0
  301. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/arrow.py +0 -0
  302. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/channels.py +0 -0
  303. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/chart.py +0 -0
  304. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/data.py +0 -0
  305. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/data_transformers.py +0 -0
  306. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/__init__.py +0 -0
  307. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_airway.py +0 -0
  308. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_annotations.py +0 -0
  309. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_direct_rna.py +0 -0
  310. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_gistic.py +0 -0
  311. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_grammar.py +0 -0
  312. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_hapmap.py +0 -0
  313. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_mutation.py +0 -0
  314. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_oncoprint.py +0 -0
  315. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/airway_metadata.csv +0 -0
  316. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/airway_scaledcounts.csv +0 -0
  317. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/brca.maf.gz +0 -0
  318. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/hapmap_gwas.csv +0 -0
  319. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/mutation_impact_reference.json +0 -0
  320. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/oncoprint_dataset3.json +0 -0
  321. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/p53_sequence_comparison_aligned.fasta.gz +0 -0
  322. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/pik3ca_mutations.json +0 -0
  323. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/pik3ca_tcga_brca_lollipop.json +0 -0
  324. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/refseq_gene_bodies.csv.gz +0 -0
  325. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/rnf7_direct_rna.json.gz +0 -0
  326. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tal1_alphagenome_reference.json.gz +0 -0
  327. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tcga.tsv +0 -0
  328. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tcga_laml.maf.gz +0 -0
  329. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tcga_laml_annot.tsv +0 -0
  330. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tcga_laml_combined_oncoplot.json.gz +0 -0
  331. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tcga_ov_gistic_lesions.tsv.gz +0 -0
  332. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tcga_ov_gistic_scores.tsv.gz +0 -0
  333. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/embed.py +0 -0
  334. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/helpers.py +0 -0
  335. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/jupyter.py +0 -0
  336. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/py.typed +0 -0
  337. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/channels.py +0 -0
  338. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/lazy.py +0 -0
  339. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schemapi.py +0 -0
  340. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/static/embed-bridge.js +0 -0
  341. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/static/widget.js +0 -0
  342. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/__init__.py +0 -0
  343. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/browser/test_docs_workflows.py +0 -0
  344. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/browser/test_embed_api.py +0 -0
  345. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/browser/test_offline_rendering.py +0 -0
  346. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/embed-bridge.test.mjs +0 -0
  347. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_arrow.py +0 -0
  348. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_combined_gallery_data.py +0 -0
  349. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_data_transformers.py +0 -0
  350. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_datasets.py +0 -0
  351. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_docs_api_reference.py +0 -0
  352. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_embed.py +0 -0
  353. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_embed_notebook.py +0 -0
  354. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_expressions.py +0 -0
  355. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_generated_schema_package.py +0 -0
  356. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_generated_transform_methods.py +0 -0
  357. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_javascript_assets.py +0 -0
  358. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_licensing.py +0 -0
  359. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_render_thumbnails.py +0 -0
  360. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_rnf7_direct_rna_example.py +0 -0
  361. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_schema_codegen.py +0 -0
  362. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_widget.py +0 -0
  363. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_workflow_notebooks.py +0 -0
  364. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/widget.test.mjs +0 -0
  365. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/check_notebook_rendering.py +0 -0
  366. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/docs_workflows.py +0 -0
  367. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/generate_api_docs.py +0 -0
  368. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/generate_schema_wrapper.py +0 -0
  369. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/prepare_combined_gallery_data.py +0 -0
  370. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/prepare_refseq_gene_annotations.py +0 -0
  371. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/render_thumbnails.py +0 -0
  372. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/schemapi/__init__.py +0 -0
  373. {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/schemapi/expression_codegen.py +0 -0
@@ -103,7 +103,7 @@ jobs:
103
103
  uv venv --seed --python 3.11 "$RUNNER_TEMP/notebook-env"
104
104
  for wheel in "$GITHUB_WORKSPACE"/dist/*.whl; do
105
105
  uv pip install --python "$RUNNER_TEMP/notebook-env/bin/python" \
106
- "$wheel[arrow]" "anywidget==0.11.0" jupyterlab pandas numpy scipy statsmodels playwright pillow pytest
106
+ "$wheel[arrow]" "anywidget==0.11.0" jupyterlab pandas numpy scipy statsmodels playwright pillow pytest aiohttp
107
107
  done
108
108
  "$RUNNER_TEMP/notebook-env/bin/python" -m playwright install --with-deps chromium
109
109
  - name: Verify offline HTML from the installed wheel
@@ -5,6 +5,36 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.5.0] - 2026-09-25
9
+
10
+ ### Added
11
+
12
+ - Compose selection conditions in `gs.when()` with `and`, `or`, and `not`,
13
+ endpoint projections, and named predicate references. Nested selection
14
+ handles retain their empty-selection behavior.
15
+ - Add PISA squid and interaction-matrix gallery examples adapted from the
16
+ official GenomeSpy specifications, with endpoint brushing, conditional link
17
+ highlighting, and zoom-dependent cell labels.
18
+
19
+ ### Changed
20
+
21
+ - Reorganize the gallery into 13 categories, separating regulatory model
22
+ interpretation, read alignments and RNA splicing, sequences and alignments,
23
+ and interaction examples from the broader browser, annotation, and basic groups.
24
+ - Upgrade GenomeSpy Core, controls, and Inspector from 0.88.1 to 0.89.0.
25
+ Regenerate support for 2D displacement, bidirectional arrows, debounced
26
+ expression parameters and transforms, composed selection predicates, and
27
+ `tickStep` expressions.
28
+ - Upstream interval brushes now use half-open boundaries. View-level scale
29
+ declarations require explicit `axes` settings to create axes when no
30
+ positional encoding supplies them.
31
+
32
+ ### Fixed
33
+
34
+ - Preserve explicitly wrapped `ExprParameter` declarations after upstream
35
+ split expression parameters into plain, transitioned, and debounced variants.
36
+ - Refresh the bundled runtime build for the relocated upstream font license.
37
+
8
38
  ## [0.4.0] - 2026-09-18
9
39
 
10
40
  ### Added
@@ -96,6 +126,7 @@ First public alpha release, targeting GenomeSpy Core 0.87.0.
96
126
  - Packaged example datasets, documentation, tutorials, and an interactive
97
127
  visualization gallery.
98
128
 
129
+ [0.5.0]: https://github.com/genome-spy/genome-spy-python/compare/v0.4.0...v0.5.0
99
130
  [0.4.0]: https://github.com/genome-spy/genome-spy-python/compare/v0.3.0...v0.4.0
100
131
  [0.3.0]: https://github.com/genome-spy/genome-spy-python/compare/v0.2.0...v0.3.0
101
132
  [0.2.0]: https://github.com/genome-spy/genome-spy-python/compare/v0.1.0...v0.2.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: genome-spy-python
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: genome-spy-python is a declarative genomics visualization library for Python, built on top of the genome-spy JSON specification.
5
5
  Project-URL: Homepage, https://github.com/genome-spy/genome-spy-python
6
6
  Project-URL: Documentation, https://genomespy.app/genome-spy-python/
@@ -158,6 +158,11 @@ GALLERY_CARD_LABELS = {
158
158
  "Zoom-adaptive allele contributions",
159
159
  "SPI1 binding-QTL data",
160
160
  ),
161
+ "pisa_squid": ("PISA squid plot", "Drosophila sog enhancer · dm6"),
162
+ "pisa_interaction_matrix": (
163
+ "PISA interaction matrix",
164
+ "Drosophila sog enhancer · dm6",
165
+ ),
161
166
  "cytobands": ("Chromosome ideogram", "Human cytobands · hg38"),
162
167
  "copy_number": (
163
168
  "Allele-specific copy-number profile",
@@ -12,7 +12,7 @@ from genome_spy.datasets._airway import airway_differential_expression
12
12
  from genome_spy.schema import Scale
13
13
 
14
14
  META = {
15
- "category": "Volcano and MA plots",
15
+ "category": "Differential analysis",
16
16
  "order": 11,
17
17
  "height": 420,
18
18
  "max_width": 760,
@@ -12,7 +12,7 @@ from genome_spy.datasets._airway import airway_differential_expression
12
12
  from genome_spy.schema import Scale
13
13
 
14
14
  META = {
15
- "category": "Volcano and MA plots",
15
+ "category": "Differential analysis",
16
16
  "order": 10,
17
17
  "height": 420,
18
18
  "max_width": 760,
@@ -8,7 +8,7 @@ from __future__ import annotations
8
8
  import genome_spy as gs
9
9
 
10
10
  META = {
11
- "category": "Genome browser tracks",
11
+ "category": "Read alignments and RNA splicing",
12
12
  "order": 26,
13
13
  "height": 600,
14
14
  "max_width": 980,
@@ -5,7 +5,7 @@ Load a genomic window from an indexed BAM file and stack its reads by strand.
5
5
 
6
6
  import genome_spy as gs
7
7
 
8
- META = {"category": "Genome browser tracks", "order": 25, "height": 520}
8
+ META = {"category": "Read alignments and RNA splicing", "order": 25, "height": 520}
9
9
 
10
10
  # Change the space between read rows without reloading the data.
11
11
  lane_height = gs.param(
@@ -9,7 +9,7 @@ from __future__ import annotations
9
9
  import genome_spy as gs
10
10
 
11
11
  META = {
12
- "category": "Reference annotation tracks",
12
+ "category": "Genome annotations",
13
13
  "order": 18,
14
14
  "height": 180,
15
15
  "max_width": 920,
@@ -7,7 +7,7 @@ are imported by URL and aligned under a parent-owned genomic scale and axis.
7
7
  import genome_spy as gs
8
8
 
9
9
  META = {
10
- "category": "Genome browser tracks",
10
+ "category": "Multi-track genome browsers",
11
11
  "order": 38,
12
12
  "height": 650,
13
13
  "max_width": 980,
@@ -8,7 +8,7 @@ import pandas as pd
8
8
 
9
9
  import genome_spy as gs
10
10
 
11
- META = {"category": "Basics", "order": 31, "height": 420}
11
+ META = {"category": "Basic charts and composition", "order": 31, "height": 420}
12
12
 
13
13
  data = pd.DataFrame({"start": np.arange(1, 100)})
14
14
 
@@ -10,7 +10,7 @@ from __future__ import annotations
10
10
  import genome_spy as gs
11
11
 
12
12
  META = {
13
- "category": "Reference annotation tracks",
13
+ "category": "Genome annotations",
14
14
  "order": 5,
15
15
  "height": 120,
16
16
  "max_width": 920,
@@ -8,7 +8,7 @@ import pandas as pd
8
8
 
9
9
  import genome_spy as gs
10
10
 
11
- META = {"category": "Basics", "order": 30, "height": 340}
11
+ META = {"category": "Basic charts and composition", "order": 30, "height": 340}
12
12
 
13
13
  data = pd.DataFrame({"x": np.arange(60)})
14
14
  chart = (
@@ -7,7 +7,7 @@ letters to labeled bars as the reader zooms in.
7
7
  import genome_spy as gs
8
8
 
9
9
  META = {
10
- "category": "Genome browser tracks",
10
+ "category": "Regulatory model interpretation",
11
11
  "order": 35,
12
12
  "height": 300,
13
13
  "max_width": 980,
@@ -7,7 +7,7 @@ over the same base-resolution locus.
7
7
  import genome_spy as gs
8
8
 
9
9
  META = {
10
- "category": "Genome browser tracks",
10
+ "category": "Regulatory model interpretation",
11
11
  "order": 34,
12
12
  "height": 300,
13
13
  "max_width": 980,
@@ -10,7 +10,7 @@ from __future__ import annotations
10
10
  import genome_spy as gs
11
11
 
12
12
  META = {
13
- "category": "Genome browser tracks",
13
+ "category": "Multi-track genome browsers",
14
14
  "order": 10,
15
15
  "height": 250,
16
16
  "max_width": 920,
@@ -8,7 +8,7 @@ import pandas as pd
8
8
 
9
9
  import genome_spy as gs
10
10
 
11
- META = {"category": "Basics", "order": 32, "height": 360}
11
+ META = {"category": "Interaction and exploration", "order": 32, "height": 360}
12
12
 
13
13
  # A fixed seed keeps the noisy wave the same each time.
14
14
  rng = np.random.default_rng(42)
@@ -10,7 +10,7 @@ from __future__ import annotations
10
10
  import genome_spy as gs
11
11
 
12
12
  META = {
13
- "category": "Reference annotation tracks",
13
+ "category": "Genome annotations",
14
14
  "order": 15,
15
15
  "height": 430,
16
16
  "max_width": 920,
@@ -8,7 +8,7 @@ import pandas as pd
8
8
 
9
9
  import genome_spy as gs
10
10
 
11
- META = {"category": "Basics", "order": 25, "height": 480}
11
+ META = {"category": "Interaction and exploration", "order": 25, "height": 480}
12
12
 
13
13
  # Create one row for each cell in a 200 × 200 grid.
14
14
  grid = pd.DataFrame({"i": np.arange(40000)})
@@ -5,7 +5,7 @@ Overlay probe measurements and segment means with separate vertical axes.
5
5
 
6
6
  import genome_spy as gs
7
7
 
8
- META = {"category": "Basics", "order": 28, "height": 360}
8
+ META = {"category": "Basic charts and composition", "order": 28, "height": 360}
9
9
 
10
10
  # Keep the upstream tables remote, rather than embedding them in the spec.
11
11
  probes = gs.Data(url="https://genomespy.app/docs/data/cnv_chr19_raw.tsv")
@@ -9,7 +9,7 @@ from __future__ import annotations
9
9
  import genome_spy as gs
10
10
 
11
11
  META = {
12
- "category": "Reference annotation tracks",
12
+ "category": "Sequences, alignments, and logos",
13
13
  "order": 22,
14
14
  "height": 180,
15
15
  "max_width": 920,
@@ -8,7 +8,7 @@ import pandas as pd
8
8
 
9
9
  import genome_spy as gs
10
10
 
11
- META = {"category": "Basics", "order": 27, "height": 360}
11
+ META = {"category": "Basic charts and composition", "order": 27, "height": 360}
12
12
 
13
13
  # Generate regularly spaced positions along a sine wave.
14
14
  data = pd.DataFrame({"x": np.arange(0, 6.284, 0.39269908169)})
@@ -8,7 +8,7 @@ import genome_spy as gs
8
8
  from genome_spy.datasets._grammar import link_data
9
9
 
10
10
  META = {
11
- "category": "Basics",
11
+ "category": "Basic charts and composition",
12
12
  "order": 40,
13
13
  "height": 300,
14
14
  }
@@ -8,7 +8,7 @@ import genome_spy as gs
8
8
  from genome_spy.schema import Scale
9
9
 
10
10
  META = {
11
- "category": "Reference annotation tracks",
11
+ "category": "Sequences, alignments, and logos",
12
12
  "order": 28,
13
13
  "height": 440,
14
14
  "max_width": 980,
@@ -9,7 +9,7 @@ import genome_spy as gs
9
9
  from genome_spy.datasets import load_dataset
10
10
 
11
11
  META = {
12
- "category": "Reference annotation tracks",
12
+ "category": "Sequences, alignments, and logos",
13
13
  "order": 29,
14
14
  "height": 850,
15
15
  "max_width": 1000,
@@ -5,7 +5,7 @@ Select penguins in a scatter plot and count the selection by species and sex.
5
5
 
6
6
  import genome_spy as gs
7
7
 
8
- META = {"category": "Basics", "order": 33, "height": 460}
8
+ META = {"category": "Interaction and exploration", "order": 33, "height": 460}
9
9
 
10
10
  data = gs.Data(
11
11
  url="https://cdn.jsdelivr.net/npm/vega-datasets@2.9.0/data/penguins.json"
@@ -0,0 +1,48 @@
1
+ Rows show ATAC-seq output positions and columns show input bases around the
2
+ *Drosophila sog* enhancer, following Figure 2d of McAnany et al. Each cell's
3
+ color encodes the signed PISA effect. Accessibility and contribution-score
4
+ margin tracks share the corresponding output and input coordinates.
5
+
6
+ ## What to notice
7
+
8
+ Positive effects are red and negative effects are blue. Pink and green mark
9
+ values beyond the central diverging scale. The dashed diagonal identifies
10
+ equal input and output coordinates; the pointer ruler helps trace rows and
11
+ columns through the overview. Motif intervals sit near the matrix's bottom edge.
12
+
13
+ Pan and zoom in both dimensions. Numeric cell values appear when cells are
14
+ large enough to read, and the ruler fades away. The contribution track changes
15
+ from bars to base-colored sequence letters as you zoom in.
16
+
17
+ ## How the chart is built
18
+
19
+ Python authors a three-cell `gs.concat(..., columns=2)` grid: matrix, right-hand
20
+ accessibility track, and bottom contribution track. Shared index scales align
21
+ each margin with the matrix; each margin's signal scale is excluded from the
22
+ shared genomic resolution.
23
+
24
+ The example references prepared remote Parquet tables without loading or
25
+ processing them in Python. GenomeSpy loads the tables and executes all
26
+ declarative transforms in the browser. Reactive parameters measure the visible
27
+ domain spans. A collected branch filters labels to stable 10-by-15-base tiles
28
+ intersecting the viewport, and only when cells are readable. The full matrix
29
+ stays visible while this smaller text layer changes. This example uses
30
+ expression parameters rather than selection conditions, so it does not need
31
+ `gs.when()`.
32
+
33
+ See the [PISA squid plot](pisa_squid) for linked endpoint brushing and the
34
+ [official GenomeSpy matrix example](https://genomespy.app/docs/examples/genomic-data/bpreveal-pisa-matrix/)
35
+ for the original JSON specification.
36
+
37
+ :::{admonition} Data use and provenance
38
+ :class: note
39
+
40
+ This example uses a Parquet extract of the dm6 *sog* locus from the
41
+ [supporting data](https://doi.org/10.5281/zenodo.20318019) for McAnany et al.,
42
+ [*Positional interpretation of cis-regulatory code and nucleosome organization
43
+ with deep learning models*](https://doi.org/10.1038/s41467-026-74807-1), prepared
44
+ with the [GenomeSpy recipe](https://github.com/genome-spy/genomespy-dataset-recipes/tree/main/recipes/bpreveal-pisa).
45
+ The extract is distributed under [GPL-2.0-or-later](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html);
46
+ the accessibility model's training data are GEO accession
47
+ [GSE218852](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE218852).
48
+ :::