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.
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.github/workflows/ci.yml +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/CHANGELOG.md +31 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/PKG-INFO +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_ext/genomespy_gallery.py +5 -0
- genome_spy_python-0.5.0/docs/_static/gallery/pisa_interaction_matrix.png +0 -0
- genome_spy_python-0.5.0/docs/_static/gallery/pisa_squid.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/airway_ma_plot.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/airway_volcano_plot.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bam_read_alignments.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bam_read_pileup.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bigbed_ccre_track.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/composing_genome_browser.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/coverage_pileup.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/cytobands.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/diverging_bars.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/dynseq_adaptive_bqtl.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/dynseq_bqtl.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/genome_tracks.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/geometric_zoom.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/gff3_gene_annotations.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/heatmap_with_text.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/independent_scales.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/indexed_fasta_sequence.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/layered_lollipop.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/link_mark.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/multiple_sequence_alignment.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/p53_sequence_comparison.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/penguin_brush.py +1 -1
- genome_spy_python-0.5.0/docs/examples/pisa_interaction_matrix.md +48 -0
- genome_spy_python-0.5.0/docs/examples/pisa_interaction_matrix.py +338 -0
- genome_spy_python-0.5.0/docs/examples/pisa_squid.md +47 -0
- genome_spy_python-0.5.0/docs/examples/pisa_squid.py +314 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/point_mark.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/point_styles.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ranged_rule.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rect_heatmap.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/refseq_scored_genes.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rnf7_direct_rna.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/sashimi_plot.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/scrollable_viewport.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/sequence_logo.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/six_frame_translation.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/stacked_bar.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/stacked_genome_browser.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/tsne.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/vertical_concat.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/volcano_plot.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/getting-started.md +2 -4
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/index.md +1 -1
- genome_spy_python-0.5.0/docs/integration/component.py +92 -0
- genome_spy_python-0.5.0/docs/integration/index.html +50 -0
- genome_spy_python-0.5.0/docs/integration/notebook.ipynb +101 -0
- genome_spy_python-0.5.0/docs/integration/server.py +103 -0
- genome_spy_python-0.5.0/docs/user-guide/connect-python.md +8 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/data.md +1 -1
- genome_spy_python-0.5.0/docs/user-guide/display-controls.md +8 -0
- genome_spy_python-0.5.0/docs/user-guide/embed-api.md +124 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/index.md +9 -29
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/interaction.md +31 -1
- genome_spy_python-0.5.0/docs/user-guide/notebooks.md +146 -0
- genome_spy_python-0.5.0/docs/user-guide/serialization.md +114 -0
- genome_spy_python-0.5.0/docs/user-guide/using-charts.md +31 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/annotate-intervals.md +3 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/index.md +4 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/pyproject.toml +2 -2
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/__init__.py +1 -1
- genome_spy_python-0.5.0/src/genome_spy/_conditions.py +131 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/__init__.py +15 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/_kwds.py +1 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/_typing.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/capabilities.json +13 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/composition.py +43 -26
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/core.py +874 -417
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/ergonomics.py +40 -3
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/expressions.py +12 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/genome-spy-schema.json +565 -100
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/mixins.py +226 -103
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/static/controls.js +1 -1
- genome_spy_python-0.5.0/src/genome_spy/static/genome-spy.js +1009 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/static/inspector.js +1 -1
- genome_spy_python-0.5.0/tests/browser/test_python_web_example.py +153 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_chart.py +31 -2
- genome_spy_python-0.5.0/tests/test_conditions.py +106 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_docs_gallery.py +3 -3
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_docs_tutorial.py +53 -7
- genome_spy_python-0.5.0/tests/test_pisa_gallery.py +78 -0
- genome_spy_python-0.5.0/tests/test_python_connection_example.py +93 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/docs_gallery.py +34 -15
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/schemapi/codegen.py +21 -2
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/vendor_javascript.py +3 -3
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/uv.lock +1 -1
- genome_spy_python-0.4.0/docs/user-guide/display-controls.md +0 -110
- genome_spy_python-0.4.0/docs/user-guide/embed-api.md +0 -42
- genome_spy_python-0.4.0/docs/user-guide/embed-integration.md +0 -101
- genome_spy_python-0.4.0/docs/user-guide/notebooks.md +0 -159
- genome_spy_python-0.4.0/docs/user-guide/serialization.md +0 -64
- genome_spy_python-0.4.0/src/genome_spy/_conditions.py +0 -72
- genome_spy_python-0.4.0/src/genome_spy/static/genome-spy.js +0 -1017
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/commit/SKILL.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/proper-code-review/SKILL.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/proper-code-review/references/correctness.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/proper-code-review/references/design.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.agents/skills/proper-code-review/references/performance.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/commit/SKILL.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/proper-code-review/SKILL.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/proper-code-review/references/correctness.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/proper-code-review/references/design.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.claude/skills/proper-code-review/references/performance.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.gitattributes +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.github/workflows/docs.yml +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.github/workflows/release.yml +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.gitignore +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.pre-commit-config.yaml +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/.python-version +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/AGENTS.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/CLAUDE.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/CONTRIBUTING.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSE +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/ALTAIR-BSD-3-Clause.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/CC-BY-4.0.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/CC-BY-NC-SA-4.0.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/CC0-1.0.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/DATA-SOURCE-REPOSITORIES-MIT.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/GENOMESPY-MIT.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/LATO-OFL-1.1.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/VEGA-BSD-3-Clause.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/LICENSES/VEGA-LITE-BSD-3-Clause.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/README.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/THIRD_PARTY_NOTICES.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/README.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/airway_metadata.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/airway_scaledcounts.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/hapmap_gwas.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/oncoprint_dataset3.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/data/pik3ca_mutations.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/external-links.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/airway_ma_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/airway_volcano_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/ascat_copy_number.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/ascat_fitting.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/bam_read_alignments.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/bam_read_pileup.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/bigbed_ccre_track.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/brush_linked_genome_tracks.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/clinvar_variants.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/combined_laml_oncoplot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/composing_genome_browser.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/copy_number.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/coverage_pileup.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/cytobands.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/diverging_bars.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/dynseq_adaptive_bqtl.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/dynseq_bqtl.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/genome_tracks.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/geometric_zoom.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/gff3_gene_annotations.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/hcc1954_sv_cnv.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/heatmap_with_text.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/independent_scales.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/indexed_fasta_sequence.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/layered_lollipop.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/link_mark.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/luad_oncoprint.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/manhattan_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/multiple_sequence_alignment.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/needle_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/oncoprint.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/p53_sequence_comparison.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/penguin_brush.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/pik3ca_tcga_brca_lollipop.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/point_mark.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/point_styles.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/rainfall_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/ranged_rule.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/rect_heatmap.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/refseq_scored_genes.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/rnf7_direct_rna.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/sashimi_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/scrollable_viewport.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/sequence_logo.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/six_frame_translation.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/stacked_bar.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/stacked_genome_browser.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/tcga_ov_gistic.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/tsne.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/upset_mutations.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/vertical_concat.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/gallery/volcano_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/genomespy.css +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/showcase.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/snaketie.svg +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/workflows.css +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_static/workflows.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_templates/autosummary/class.rst +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_templates/autosummary/class_own_members.rst +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_templates/base.html +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/_templates/components/view-this-page.html +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/about.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/api.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/conf.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/datasets.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/airway_ma_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/airway_volcano_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ascat_copy_number.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ascat_copy_number.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ascat_fitting.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/ascat_fitting.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bam_read_alignments.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/bam_read_pileup.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/brush_linked_genome_tracks.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/brush_linked_genome_tracks.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/clinvar_variants.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/clinvar_variants.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/combined_laml_oncoplot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/combined_laml_oncoplot.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/composing_genome_browser.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/copy_number.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/coverage_pileup.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/cytobands.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/diverging_bars.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/dynseq_adaptive_bqtl.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/dynseq_bqtl.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/geometric_zoom.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/gff3_gene_annotations.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/hcc1954_sv_cnv.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/hcc1954_sv_cnv.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/heatmap_with_text.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/independent_scales.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/layered_lollipop.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/luad_oncoprint.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/luad_oncoprint.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/manhattan_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/manhattan_plot.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/multiple_sequence_alignment.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/needle_plot.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/oncoprint.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/oncoprint.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/p53_sequence_comparison.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/penguin_brush.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/pik3ca_tcga_brca_lollipop.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/pik3ca_tcga_brca_lollipop.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/point_styles.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rainfall_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rainfall_plot.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/refseq_scored_genes.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/rnf7_direct_rna.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/sashimi_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/six_frame_translation.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/stacked_bar.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/tcga_ov_gistic.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/tcga_ov_gistic.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/tsne.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/upset_mutations.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/upset_mutations.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/examples/volcano_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/annotations.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/charts_and_marks.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/composition.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/configuration.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/data_inputs.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/display_controls.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/encoding_channels.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/genome_browser_layouts.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/genomic_coordinates.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/genomic_data.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/getting_started.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/importing_specifications.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/interaction.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/notebooks.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/scales_and_guides.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/serialization.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/tutorials/transforms.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/annotations.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/charts.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/composition.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/configuration.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/encodings.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/genome-browser-layouts.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/genomic-axes.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/genomic-data.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/importing-specifications.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/scales-axes-legends.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/transforms.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/edit-sequence.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/pick-genes.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/docs/user-guide/workflows/select-genes.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/annotate_genomic_intervals.ipynb +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/brush_linked_genome_tracks.ipynb +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/edit_sequence.ipynb +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/embed_api.ipynb +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/pick_genes.ipynb +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/notebooks/select_genes.ipynb +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_chart_authoring.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_embed.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_expressions.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_parameters.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_render.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_utils.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/_widget.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/api.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/arrow.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/channels.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/chart.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/data.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/data_transformers.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/__init__.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_airway.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_annotations.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_direct_rna.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_gistic.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_grammar.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_hapmap.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_mutation.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/_oncoprint.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/airway_metadata.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/airway_scaledcounts.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/brca.maf.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/hapmap_gwas.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/mutation_impact_reference.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/oncoprint_dataset3.json +0 -0
- {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
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/pik3ca_mutations.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/pik3ca_tcga_brca_lollipop.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/refseq_gene_bodies.csv.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/rnf7_direct_rna.json.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tal1_alphagenome_reference.json.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tcga.tsv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tcga_laml.maf.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/datasets/data/tcga_laml_annot.tsv +0 -0
- {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
- {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
- {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
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/embed.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/helpers.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/jupyter.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/py.typed +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/channels.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schema/lazy.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/schemapi.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/static/embed-bridge.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/src/genome_spy/static/widget.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/__init__.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/browser/test_docs_workflows.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/browser/test_embed_api.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/browser/test_offline_rendering.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/embed-bridge.test.mjs +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_arrow.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_combined_gallery_data.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_data_transformers.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_datasets.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_docs_api_reference.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_embed.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_embed_notebook.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_expressions.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_generated_schema_package.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_generated_transform_methods.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_javascript_assets.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_licensing.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_render_thumbnails.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_rnf7_direct_rna_example.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_schema_codegen.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_widget.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/test_workflow_notebooks.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tests/widget.test.mjs +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/check_notebook_rendering.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/docs_workflows.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/generate_api_docs.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/generate_schema_wrapper.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/prepare_combined_gallery_data.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/prepare_refseq_gene_annotations.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/render_thumbnails.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.5.0}/tools/schemapi/__init__.py +0 -0
- {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.
|
|
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",
|
|
Binary file
|
|
Binary file
|
|
@@ -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": "
|
|
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(
|
|
@@ -8,7 +8,7 @@ import pandas as pd
|
|
|
8
8
|
|
|
9
9
|
import genome_spy as gs
|
|
10
10
|
|
|
11
|
-
META = {"category": "
|
|
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)
|
|
@@ -8,7 +8,7 @@ import pandas as pd
|
|
|
8
8
|
|
|
9
9
|
import genome_spy as gs
|
|
10
10
|
|
|
11
|
-
META = {"category": "
|
|
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": "
|
|
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")
|
|
@@ -8,7 +8,7 @@ import pandas as pd
|
|
|
8
8
|
|
|
9
9
|
import genome_spy as gs
|
|
10
10
|
|
|
11
|
-
META = {"category": "
|
|
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)})
|
|
@@ -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": "
|
|
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
|
+
:::
|