genome-spy-python 0.4.0__tar.gz → 0.6.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.6.0}/.github/workflows/ci.yml +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.gitignore +3 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/CHANGELOG.md +57 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/PKG-INFO +85 -28
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/README.md +84 -27
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/THIRD_PARTY_NOTICES.md +13 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_ext/genomespy_gallery.py +5 -0
- genome_spy_python-0.6.0/docs/_static/gallery/airway_ma_plot.png +0 -0
- genome_spy_python-0.6.0/docs/_static/gallery/airway_volcano_plot.png +0 -0
- genome_spy_python-0.6.0/docs/_static/gallery/multiple_sequence_alignment.png +0 -0
- genome_spy_python-0.6.0/docs/_static/gallery/pisa_interaction_matrix.png +0 -0
- genome_spy_python-0.6.0/docs/_static/gallery/pisa_squid.png +0 -0
- genome_spy_python-0.6.0/docs/_static/gallery/sequence_logo.png +0 -0
- genome_spy_python-0.6.0/docs/_static/readme-manhattan.webp +0 -0
- genome_spy_python-0.6.0/docs/_static/readme-sequence-logo.webp +0 -0
- genome_spy_python-0.6.0/docs/_static/snaketie.svg +1 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/workflows.css +6 -4
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/api.md +5 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/datasets.md +1 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/airway_ma_plot.py +64 -51
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/airway_volcano_plot.py +64 -51
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/ascat_fitting.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/bam_read_alignments.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/bam_read_pileup.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/bigbed_ccre_track.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/composing_genome_browser.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/coverage_pileup.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/cytobands.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/diverging_bars.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/dynseq_adaptive_bqtl.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/dynseq_bqtl.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/genome_tracks.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/geometric_zoom.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/gff3_gene_annotations.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/hcc1954_sv_cnv.py +6 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/heatmap_with_text.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/independent_scales.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/indexed_fasta_sequence.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/layered_lollipop.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/link_mark.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/multiple_sequence_alignment.py +8 -8
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/p53_sequence_comparison.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/penguin_brush.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/pik3ca_tcga_brca_lollipop.py +2 -1
- genome_spy_python-0.6.0/docs/examples/pisa_interaction_matrix.md +50 -0
- genome_spy_python-0.6.0/docs/examples/pisa_interaction_matrix.py +354 -0
- genome_spy_python-0.6.0/docs/examples/pisa_squid.md +52 -0
- genome_spy_python-0.6.0/docs/examples/pisa_squid.py +304 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/point_mark.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/point_styles.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/ranged_rule.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/rect_heatmap.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/refseq_scored_genes.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/rnf7_direct_rna.py +2 -2
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/sashimi_plot.py +10 -2
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/scrollable_viewport.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/sequence_logo.py +3 -4
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/six_frame_translation.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/stacked_bar.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/stacked_genome_browser.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/tsne.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/vertical_concat.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/volcano_plot.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/getting-started.md +2 -4
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/index.md +1 -1
- genome_spy_python-0.6.0/docs/integration/component.py +92 -0
- genome_spy_python-0.6.0/docs/integration/index.html +50 -0
- genome_spy_python-0.6.0/docs/integration/notebook.ipynb +101 -0
- genome_spy_python-0.6.0/docs/integration/server.py +103 -0
- genome_spy_python-0.6.0/docs/user-guide/connect-python.md +8 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/data.md +1 -1
- genome_spy_python-0.6.0/docs/user-guide/display-controls.md +8 -0
- genome_spy_python-0.6.0/docs/user-guide/embed-api.md +124 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/index.md +9 -29
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/interaction.md +60 -15
- genome_spy_python-0.6.0/docs/user-guide/notebooks.md +146 -0
- genome_spy_python-0.6.0/docs/user-guide/serialization.md +114 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/transforms.md +27 -5
- genome_spy_python-0.6.0/docs/user-guide/using-charts.md +31 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/workflows/annotate-intervals.md +3 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/workflows/index.md +6 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/notebooks/edit_sequence.ipynb +7 -3
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/notebooks/pick_genes.ipynb +3 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/notebooks/select_genes.ipynb +3 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/pyproject.toml +2 -2
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/__init__.py +11 -1
- genome_spy_python-0.6.0/src/genome_spy/_conditions.py +131 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/api.py +10 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/__init__.py +1 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/_airway.py +35 -47
- genome_spy_python-0.6.0/src/genome_spy/datasets/data/airway_review.json.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/__init__.py +15 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/_kwds.py +1 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/_typing.py +1 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/capabilities.json +13 -1
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/composition.py +43 -26
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/core.py +1195 -402
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/ergonomics.py +40 -3
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/expressions.py +12 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/genome-spy-schema.json +576 -100
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/mixins.py +233 -103
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/static/controls.js +1 -1
- genome_spy_python-0.6.0/src/genome_spy/static/genome-spy.js +1005 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/static/inspector.js +1 -1
- genome_spy_python-0.6.0/tests/browser/test_python_web_example.py +153 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_chart.py +31 -2
- genome_spy_python-0.6.0/tests/test_conditions.py +135 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_datasets.py +7 -13
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_docs_gallery.py +74 -104
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_docs_tutorial.py +53 -7
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_generated_schema_package.py +26 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_licensing.py +1 -0
- genome_spy_python-0.6.0/tests/test_pisa_gallery.py +94 -0
- genome_spy_python-0.6.0/tests/test_python_connection_example.py +93 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_schema_codegen.py +29 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/docs_gallery.py +34 -15
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/docs_workflows.py +15 -11
- genome_spy_python-0.6.0/tools/prepare_airway_review.py +55 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/schemapi/codegen.py +49 -10
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/vendor_javascript.py +3 -3
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/uv.lock +1 -1
- genome_spy_python-0.4.0/docs/_static/gallery/airway_ma_plot.png +0 -0
- genome_spy_python-0.4.0/docs/_static/gallery/airway_volcano_plot.png +0 -0
- genome_spy_python-0.4.0/docs/_static/gallery/multiple_sequence_alignment.png +0 -0
- genome_spy_python-0.4.0/docs/_static/gallery/sequence_logo.png +0 -0
- genome_spy_python-0.4.0/docs/_static/snaketie.svg +0 -74
- 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.6.0}/.agents/skills/commit/SKILL.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.agents/skills/proper-code-review/SKILL.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.agents/skills/proper-code-review/references/correctness.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.agents/skills/proper-code-review/references/design.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.agents/skills/proper-code-review/references/performance.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.claude/skills/commit/SKILL.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.claude/skills/proper-code-review/SKILL.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.claude/skills/proper-code-review/references/correctness.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.claude/skills/proper-code-review/references/design.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.claude/skills/proper-code-review/references/performance.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.gitattributes +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.github/workflows/docs.yml +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.github/workflows/release.yml +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.pre-commit-config.yaml +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/.python-version +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/AGENTS.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/CLAUDE.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/CONTRIBUTING.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSE +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSES/ALTAIR-BSD-3-Clause.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSES/CC-BY-4.0.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSES/CC-BY-NC-SA-4.0.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSES/CC0-1.0.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSES/DATA-SOURCE-REPOSITORIES-MIT.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSES/GENOMESPY-MIT.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSES/LATO-OFL-1.1.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSES/VEGA-BSD-3-Clause.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/LICENSES/VEGA-LITE-BSD-3-Clause.txt +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/data/README.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/data/airway_metadata.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/data/airway_scaledcounts.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/data/hapmap_gwas.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/data/oncoprint_dataset3.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/data/pik3ca_mutations.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/external-links.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/ascat_copy_number.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/ascat_fitting.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/bam_read_alignments.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/bam_read_pileup.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/bigbed_ccre_track.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/brush_linked_genome_tracks.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/clinvar_variants.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/combined_laml_oncoplot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/composing_genome_browser.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/copy_number.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/coverage_pileup.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/cytobands.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/diverging_bars.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/dynseq_adaptive_bqtl.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/dynseq_bqtl.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/genome_tracks.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/geometric_zoom.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/gff3_gene_annotations.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/hcc1954_sv_cnv.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/heatmap_with_text.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/independent_scales.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/indexed_fasta_sequence.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/layered_lollipop.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/link_mark.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/luad_oncoprint.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/manhattan_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/needle_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/oncoprint.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/p53_sequence_comparison.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/penguin_brush.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/pik3ca_tcga_brca_lollipop.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/point_mark.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/point_styles.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/rainfall_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/ranged_rule.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/rect_heatmap.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/refseq_scored_genes.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/rnf7_direct_rna.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/sashimi_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/scrollable_viewport.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/six_frame_translation.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/stacked_bar.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/stacked_genome_browser.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/tcga_ov_gistic.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/tsne.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/upset_mutations.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/vertical_concat.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/gallery/volcano_plot.png +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/genomespy.css +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/showcase.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_static/workflows.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_templates/autosummary/class.rst +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_templates/autosummary/class_own_members.rst +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_templates/base.html +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/_templates/components/view-this-page.html +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/about.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/conf.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/airway_ma_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/airway_volcano_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/ascat_copy_number.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/ascat_copy_number.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/ascat_fitting.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/bam_read_alignments.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/bam_read_pileup.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/brush_linked_genome_tracks.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/brush_linked_genome_tracks.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/clinvar_variants.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/clinvar_variants.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/combined_laml_oncoplot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/combined_laml_oncoplot.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/composing_genome_browser.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/copy_number.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/coverage_pileup.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/cytobands.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/diverging_bars.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/dynseq_adaptive_bqtl.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/dynseq_bqtl.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/geometric_zoom.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/gff3_gene_annotations.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/hcc1954_sv_cnv.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/heatmap_with_text.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/independent_scales.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/layered_lollipop.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/luad_oncoprint.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/luad_oncoprint.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/manhattan_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/manhattan_plot.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/multiple_sequence_alignment.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/needle_plot.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/oncoprint.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/oncoprint.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/p53_sequence_comparison.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/penguin_brush.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/pik3ca_tcga_brca_lollipop.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/point_styles.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/rainfall_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/rainfall_plot.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/refseq_scored_genes.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/rnf7_direct_rna.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/sashimi_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/six_frame_translation.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/stacked_bar.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/tcga_ov_gistic.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/tcga_ov_gistic.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/tsne.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/upset_mutations.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/upset_mutations.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/examples/volcano_plot.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/annotations.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/charts_and_marks.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/composition.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/configuration.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/data_inputs.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/display_controls.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/encoding_channels.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/genome_browser_layouts.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/genomic_coordinates.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/genomic_data.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/getting_started.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/importing_specifications.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/interaction.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/notebooks.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/scales_and_guides.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/serialization.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/tutorials/transforms.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/annotations.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/charts.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/composition.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/configuration.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/encodings.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/genome-browser-layouts.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/genomic-axes.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/genomic-data.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/importing-specifications.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/scales-axes-legends.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/workflows/edit-sequence.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/workflows/pick-genes.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/docs/user-guide/workflows/select-genes.md +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/notebooks/annotate_genomic_intervals.ipynb +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/notebooks/brush_linked_genome_tracks.ipynb +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/notebooks/embed_api.ipynb +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/_chart_authoring.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/_embed.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/_expressions.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/_parameters.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/_render.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/_utils.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/_widget.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/arrow.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/channels.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/chart.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/data.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/data_transformers.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/_annotations.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/_direct_rna.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/_gistic.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/_grammar.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/_hapmap.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/_mutation.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/_oncoprint.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/airway_metadata.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/airway_scaledcounts.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/brca.maf.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/hapmap_gwas.csv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/mutation_impact_reference.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/oncoprint_dataset3.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/p53_sequence_comparison_aligned.fasta.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/pik3ca_mutations.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/pik3ca_tcga_brca_lollipop.json +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/refseq_gene_bodies.csv.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/rnf7_direct_rna.json.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/tal1_alphagenome_reference.json.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/tcga.tsv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/tcga_laml.maf.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/tcga_laml_annot.tsv +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/tcga_laml_combined_oncoplot.json.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/tcga_ov_gistic_lesions.tsv.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/datasets/data/tcga_ov_gistic_scores.tsv.gz +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/embed.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/helpers.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/jupyter.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/py.typed +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/channels.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schema/lazy.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/schemapi.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/static/embed-bridge.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/src/genome_spy/static/widget.js +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/__init__.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/browser/test_docs_workflows.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/browser/test_embed_api.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/browser/test_offline_rendering.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/embed-bridge.test.mjs +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_arrow.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_combined_gallery_data.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_data_transformers.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_docs_api_reference.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_embed.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_embed_notebook.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_expressions.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_generated_transform_methods.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_javascript_assets.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_render_thumbnails.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_rnf7_direct_rna_example.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_widget.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/test_workflow_notebooks.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tests/widget.test.mjs +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/check_notebook_rendering.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/generate_api_docs.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/generate_schema_wrapper.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/prepare_combined_gallery_data.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/prepare_refseq_gene_annotations.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/render_thumbnails.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.0}/tools/schemapi/__init__.py +0 -0
- {genome_spy_python-0.4.0 → genome_spy_python-0.6.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,62 @@ 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.6.0] - 2026-10-01
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add the prepared `airway_review` dataset for gene-review examples.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Upgrade GenomeSpy Core, controls, and Inspector to 1.0.0 and regenerate
|
|
17
|
+
the Python schema API, including configurable `displace2d` animation half-life.
|
|
18
|
+
- Extend the sequence-editing notebook to support multi-base edits across the
|
|
19
|
+
displayed locus.
|
|
20
|
+
- Improve interaction and PISA documentation, gallery expressions, and README
|
|
21
|
+
animations.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Expose selection predicate classes through `gs` and support typed endpoint
|
|
26
|
+
projection setters, avoiding raw dictionaries in composed conditions.
|
|
27
|
+
- Restrict sequence-logo and alignment-logo zoom to the position axis and share
|
|
28
|
+
one bottom alignment axis.
|
|
29
|
+
- Render the ASCAT fitting example title as literal text.
|
|
30
|
+
|
|
31
|
+
## [0.5.0] - 2026-09-25
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
- Compose selection conditions in `gs.when()` with `and`, `or`, and `not`,
|
|
36
|
+
endpoint projections, and named predicate references. Nested selection
|
|
37
|
+
handles retain their empty-selection behavior.
|
|
38
|
+
- Add PISA squid and interaction-matrix gallery examples adapted from the
|
|
39
|
+
official GenomeSpy specifications, with endpoint brushing, conditional link
|
|
40
|
+
highlighting, and zoom-dependent cell labels.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- Use browser-side `displace2d` label placement in the airway volcano and MA
|
|
45
|
+
gallery plots, with denser gene annotations and adaptive leader lines.
|
|
46
|
+
|
|
47
|
+
- Reorganize the gallery into 13 categories, separating regulatory model
|
|
48
|
+
interpretation, read alignments and RNA splicing, sequences and alignments,
|
|
49
|
+
and interaction examples from the broader browser, annotation, and basic groups.
|
|
50
|
+
- Upgrade GenomeSpy Core, controls, and Inspector from 0.88.1 to 0.89.0.
|
|
51
|
+
Regenerate support for 2D displacement, bidirectional arrows, debounced
|
|
52
|
+
expression parameters and transforms, composed selection predicates, and
|
|
53
|
+
`tickStep` expressions.
|
|
54
|
+
- Upstream interval brushes now use half-open boundaries. View-level scale
|
|
55
|
+
declarations require explicit `axes` settings to create axes when no
|
|
56
|
+
positional encoding supplies them.
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
|
|
60
|
+
- Preserve explicitly wrapped `ExprParameter` declarations after upstream
|
|
61
|
+
split expression parameters into plain, transitioned, and debounced variants.
|
|
62
|
+
- Refresh the bundled runtime build for the relocated upstream font license.
|
|
63
|
+
|
|
8
64
|
## [0.4.0] - 2026-09-18
|
|
9
65
|
|
|
10
66
|
### Added
|
|
@@ -96,6 +152,7 @@ First public alpha release, targeting GenomeSpy Core 0.87.0.
|
|
|
96
152
|
- Packaged example datasets, documentation, tutorials, and an interactive
|
|
97
153
|
visualization gallery.
|
|
98
154
|
|
|
155
|
+
[0.5.0]: https://github.com/genome-spy/genome-spy-python/compare/v0.4.0...v0.5.0
|
|
99
156
|
[0.4.0]: https://github.com/genome-spy/genome-spy-python/compare/v0.3.0...v0.4.0
|
|
100
157
|
[0.3.0]: https://github.com/genome-spy/genome-spy-python/compare/v0.2.0...v0.3.0
|
|
101
158
|
[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.6.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/
|
|
@@ -102,59 +102,113 @@ See the [getting-started guide](docs/getting-started.md) for the first example.
|
|
|
102
102
|
|
|
103
103
|
## Examples
|
|
104
104
|
|
|
105
|
+
A zoomable Manhattan plot using the bundled HapMap data (requires `pandas`):
|
|
106
|
+
|
|
105
107
|
```python
|
|
106
108
|
import genome_spy as gs
|
|
109
|
+
from genome_spy.datasets import load_dataset
|
|
107
110
|
|
|
108
111
|
chart = (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
.mark_point(size=
|
|
112
|
+
# Load data.
|
|
113
|
+
gs.Chart(load_dataset("hapmap_gwas"))
|
|
114
|
+
# Format chromosome names.
|
|
115
|
+
.transform_formula(expr="datum.CHR == 23 ? 'chrX' : 'chr' + datum.CHR", as_="chrom")
|
|
116
|
+
# Calculate −log10 p.
|
|
117
|
+
.transform_formula(expr="-log(datum.P) / log(10)", as_="neglogp")
|
|
118
|
+
# Draw variants.
|
|
119
|
+
.mark_point(size=12)
|
|
120
|
+
# Set positions and colors.
|
|
117
121
|
.encode(
|
|
118
|
-
x="
|
|
119
|
-
y="
|
|
120
|
-
color="
|
|
122
|
+
x=gs.Locus("chrom", "BP").scale(assembly="hg18"),
|
|
123
|
+
y=gs.Y("neglogp:Q").title("−log10 p"),
|
|
124
|
+
color=gs.Color("CHR:N").scale(range=["#5b8fd6", "#8f98a3"]).legend(None),
|
|
121
125
|
)
|
|
122
126
|
)
|
|
123
|
-
|
|
124
127
|
chart
|
|
125
128
|
```
|
|
126
129
|
|
|
127
|
-
|
|
128
|
-
|
|
130
|
+

|
|
131
|
+
|
|
132
|
+
[Explore the full example and data provenance](https://genomespy.app/genome-spy-python/gallery/manhattan_plot.html).
|
|
133
|
+
|
|
134
|
+
A sequence logo and aligned sequences with shared horizontal zoom:
|
|
129
135
|
|
|
130
136
|
```python
|
|
131
137
|
import genome_spy as gs
|
|
132
138
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
]
|
|
137
|
-
|
|
139
|
+
logo = (
|
|
140
|
+
gs.Chart()
|
|
141
|
+
# Count bases at each position.
|
|
142
|
+
.transform_aggregate(groupby=["pos", "sequence"])
|
|
143
|
+
# Handle gaps.
|
|
144
|
+
.transform_formula(expr="datum.sequence == '-' ? null : datum.sequence", as_="base")
|
|
145
|
+
# Stack bases by information content.
|
|
146
|
+
.transform_stack(
|
|
147
|
+
field="count",
|
|
148
|
+
groupby=["pos"],
|
|
149
|
+
offset="information",
|
|
150
|
+
baseField="base",
|
|
151
|
+
as_=["y0", "y1"],
|
|
152
|
+
)
|
|
153
|
+
# Draw logo letters.
|
|
154
|
+
.mark_text(logoLetters=True, fitToBand=True, fontWeight="bold")
|
|
155
|
+
# Set stack bounds.
|
|
156
|
+
.encode(
|
|
157
|
+
y=gs.Y("y0:Q").scale(domain=[0, 2], zoom=False).title("Bits"),
|
|
158
|
+
y2="y1:Q",
|
|
159
|
+
text="base:N",
|
|
160
|
+
)
|
|
161
|
+
.properties(height=100)
|
|
162
|
+
)
|
|
163
|
+
# Create sequence rows.
|
|
164
|
+
rows = gs.Chart().encode(y=gs.Y("identifier:N").scale(zoom=False).axis(None))
|
|
165
|
+
# Add base labels.
|
|
166
|
+
letters = rows.mark_text(size=11, fitToBand=True, opacity=0.7).encode(
|
|
167
|
+
text="sequence:N", color=gs.value("black")
|
|
168
|
+
)
|
|
169
|
+
# Layer tiles and labels.
|
|
170
|
+
sequences = (rows.mark_rect() + letters).properties(
|
|
171
|
+
height=gs.step(16), viewportHeight=160
|
|
172
|
+
)
|
|
138
173
|
chart = (
|
|
139
|
-
|
|
140
|
-
|
|
174
|
+
# Combine panels.
|
|
175
|
+
(logo & sequences)
|
|
176
|
+
# Load data.
|
|
177
|
+
.properties(
|
|
178
|
+
data=gs.Data(
|
|
179
|
+
url="https://data.genomespy.app/sample-data/16SRNA_Deino_87seq.aln",
|
|
180
|
+
format=gs.data_format(type="fasta"),
|
|
181
|
+
)
|
|
182
|
+
)
|
|
183
|
+
# Split sequences into bases.
|
|
184
|
+
.transform_flatten_sequence()
|
|
185
|
+
# Set positions and colors.
|
|
141
186
|
.encode(
|
|
142
|
-
x=gs.
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
187
|
+
x=gs.X("pos:I").scale(domain=[190, 310], zoom=True).title(None),
|
|
188
|
+
color=gs.Color("sequence:N")
|
|
189
|
+
.scale(
|
|
190
|
+
domain=list("ACTGN-"),
|
|
191
|
+
range=["#4FBF45", "#4D96E8", "#E85F78", "#E8B322", "#BDBDBD", "#f5f5f5"],
|
|
192
|
+
)
|
|
193
|
+
.legend(None),
|
|
146
194
|
)
|
|
195
|
+
# Share zoom and colors.
|
|
196
|
+
.resolve_scale(x="shared", color="shared")
|
|
197
|
+
.resolve_axis(x="shared")
|
|
147
198
|
)
|
|
148
|
-
|
|
149
199
|
chart
|
|
150
200
|
```
|
|
151
201
|
|
|
202
|
+

|
|
203
|
+
|
|
152
204
|
Charts can be serialized to a portable GenomeSpy specification or standalone
|
|
153
205
|
HTML:
|
|
154
206
|
|
|
155
207
|
```python
|
|
208
|
+
# Export JSON.
|
|
156
209
|
chart.to_json()
|
|
157
|
-
|
|
210
|
+
# Save HTML.
|
|
211
|
+
chart.save("chart.html")
|
|
158
212
|
```
|
|
159
213
|
|
|
160
214
|
### Update data without recreating the chart
|
|
@@ -165,12 +219,15 @@ existing GenomeSpy instance, so view state such as zoom is preserved.
|
|
|
165
219
|
|
|
166
220
|
```python
|
|
167
221
|
chart = (
|
|
222
|
+
# Create an empty chart.
|
|
168
223
|
gs.Chart(data={"name": "table"}, datasets={"table": []})
|
|
169
224
|
.mark_point()
|
|
170
225
|
.encode(x="x:Q", y="y:Q")
|
|
171
226
|
)
|
|
227
|
+
# Show widget.
|
|
172
228
|
view = chart.widget()
|
|
173
229
|
|
|
230
|
+
# Update data.
|
|
174
231
|
view.set_dataset("table", updated_dataframe)
|
|
175
232
|
```
|
|
176
233
|
|
|
@@ -63,59 +63,113 @@ See the [getting-started guide](docs/getting-started.md) for the first example.
|
|
|
63
63
|
|
|
64
64
|
## Examples
|
|
65
65
|
|
|
66
|
+
A zoomable Manhattan plot using the bundled HapMap data (requires `pandas`):
|
|
67
|
+
|
|
66
68
|
```python
|
|
67
69
|
import genome_spy as gs
|
|
70
|
+
from genome_spy.datasets import load_dataset
|
|
68
71
|
|
|
69
72
|
chart = (
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
.mark_point(size=
|
|
73
|
+
# Load data.
|
|
74
|
+
gs.Chart(load_dataset("hapmap_gwas"))
|
|
75
|
+
# Format chromosome names.
|
|
76
|
+
.transform_formula(expr="datum.CHR == 23 ? 'chrX' : 'chr' + datum.CHR", as_="chrom")
|
|
77
|
+
# Calculate −log10 p.
|
|
78
|
+
.transform_formula(expr="-log(datum.P) / log(10)", as_="neglogp")
|
|
79
|
+
# Draw variants.
|
|
80
|
+
.mark_point(size=12)
|
|
81
|
+
# Set positions and colors.
|
|
78
82
|
.encode(
|
|
79
|
-
x="
|
|
80
|
-
y="
|
|
81
|
-
color="
|
|
83
|
+
x=gs.Locus("chrom", "BP").scale(assembly="hg18"),
|
|
84
|
+
y=gs.Y("neglogp:Q").title("−log10 p"),
|
|
85
|
+
color=gs.Color("CHR:N").scale(range=["#5b8fd6", "#8f98a3"]).legend(None),
|
|
82
86
|
)
|
|
83
87
|
)
|
|
84
|
-
|
|
85
88
|
chart
|
|
86
89
|
```
|
|
87
90
|
|
|
88
|
-
|
|
89
|
-
|
|
91
|
+

|
|
92
|
+
|
|
93
|
+
[Explore the full example and data provenance](https://genomespy.app/genome-spy-python/gallery/manhattan_plot.html).
|
|
94
|
+
|
|
95
|
+
A sequence logo and aligned sequences with shared horizontal zoom:
|
|
90
96
|
|
|
91
97
|
```python
|
|
92
98
|
import genome_spy as gs
|
|
93
99
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
]
|
|
98
|
-
|
|
100
|
+
logo = (
|
|
101
|
+
gs.Chart()
|
|
102
|
+
# Count bases at each position.
|
|
103
|
+
.transform_aggregate(groupby=["pos", "sequence"])
|
|
104
|
+
# Handle gaps.
|
|
105
|
+
.transform_formula(expr="datum.sequence == '-' ? null : datum.sequence", as_="base")
|
|
106
|
+
# Stack bases by information content.
|
|
107
|
+
.transform_stack(
|
|
108
|
+
field="count",
|
|
109
|
+
groupby=["pos"],
|
|
110
|
+
offset="information",
|
|
111
|
+
baseField="base",
|
|
112
|
+
as_=["y0", "y1"],
|
|
113
|
+
)
|
|
114
|
+
# Draw logo letters.
|
|
115
|
+
.mark_text(logoLetters=True, fitToBand=True, fontWeight="bold")
|
|
116
|
+
# Set stack bounds.
|
|
117
|
+
.encode(
|
|
118
|
+
y=gs.Y("y0:Q").scale(domain=[0, 2], zoom=False).title("Bits"),
|
|
119
|
+
y2="y1:Q",
|
|
120
|
+
text="base:N",
|
|
121
|
+
)
|
|
122
|
+
.properties(height=100)
|
|
123
|
+
)
|
|
124
|
+
# Create sequence rows.
|
|
125
|
+
rows = gs.Chart().encode(y=gs.Y("identifier:N").scale(zoom=False).axis(None))
|
|
126
|
+
# Add base labels.
|
|
127
|
+
letters = rows.mark_text(size=11, fitToBand=True, opacity=0.7).encode(
|
|
128
|
+
text="sequence:N", color=gs.value("black")
|
|
129
|
+
)
|
|
130
|
+
# Layer tiles and labels.
|
|
131
|
+
sequences = (rows.mark_rect() + letters).properties(
|
|
132
|
+
height=gs.step(16), viewportHeight=160
|
|
133
|
+
)
|
|
99
134
|
chart = (
|
|
100
|
-
|
|
101
|
-
|
|
135
|
+
# Combine panels.
|
|
136
|
+
(logo & sequences)
|
|
137
|
+
# Load data.
|
|
138
|
+
.properties(
|
|
139
|
+
data=gs.Data(
|
|
140
|
+
url="https://data.genomespy.app/sample-data/16SRNA_Deino_87seq.aln",
|
|
141
|
+
format=gs.data_format(type="fasta"),
|
|
142
|
+
)
|
|
143
|
+
)
|
|
144
|
+
# Split sequences into bases.
|
|
145
|
+
.transform_flatten_sequence()
|
|
146
|
+
# Set positions and colors.
|
|
102
147
|
.encode(
|
|
103
|
-
x=gs.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
148
|
+
x=gs.X("pos:I").scale(domain=[190, 310], zoom=True).title(None),
|
|
149
|
+
color=gs.Color("sequence:N")
|
|
150
|
+
.scale(
|
|
151
|
+
domain=list("ACTGN-"),
|
|
152
|
+
range=["#4FBF45", "#4D96E8", "#E85F78", "#E8B322", "#BDBDBD", "#f5f5f5"],
|
|
153
|
+
)
|
|
154
|
+
.legend(None),
|
|
107
155
|
)
|
|
156
|
+
# Share zoom and colors.
|
|
157
|
+
.resolve_scale(x="shared", color="shared")
|
|
158
|
+
.resolve_axis(x="shared")
|
|
108
159
|
)
|
|
109
|
-
|
|
110
160
|
chart
|
|
111
161
|
```
|
|
112
162
|
|
|
163
|
+

|
|
164
|
+
|
|
113
165
|
Charts can be serialized to a portable GenomeSpy specification or standalone
|
|
114
166
|
HTML:
|
|
115
167
|
|
|
116
168
|
```python
|
|
169
|
+
# Export JSON.
|
|
117
170
|
chart.to_json()
|
|
118
|
-
|
|
171
|
+
# Save HTML.
|
|
172
|
+
chart.save("chart.html")
|
|
119
173
|
```
|
|
120
174
|
|
|
121
175
|
### Update data without recreating the chart
|
|
@@ -126,12 +180,15 @@ existing GenomeSpy instance, so view state such as zoom is preserved.
|
|
|
126
180
|
|
|
127
181
|
```python
|
|
128
182
|
chart = (
|
|
183
|
+
# Create an empty chart.
|
|
129
184
|
gs.Chart(data={"name": "table"}, datasets={"table": []})
|
|
130
185
|
.mark_point()
|
|
131
186
|
.encode(x="x:Q", y="y:Q")
|
|
132
187
|
)
|
|
188
|
+
# Show widget.
|
|
133
189
|
view = chart.widget()
|
|
134
190
|
|
|
191
|
+
# Update data.
|
|
135
192
|
view.set_dataset("table", updated_dataframe)
|
|
136
193
|
```
|
|
137
194
|
|
|
@@ -14,6 +14,10 @@ browser files are generated from the pinned `@genome-spy/core` and
|
|
|
14
14
|
`@genome-spy/inspector` npm releases and include their bundled open-source
|
|
15
15
|
runtime dependencies.
|
|
16
16
|
|
|
17
|
+
The workflow menu and dialog styles in `docs/_static/workflows.css` adapt
|
|
18
|
+
GenomeSpy App's `_generic.scss`, `baseDialog.js`, and `componentStyles.js`
|
|
19
|
+
under the same MIT license.
|
|
20
|
+
|
|
17
21
|
The Core browser bundle embeds the Lato font bitmap and metrics, copyright
|
|
18
22
|
2010–2014 tyPoland Lukasz Dziedzic, with Reserved Font Name "Lato", under the
|
|
19
23
|
SIL Open Font License 1.1. Its full upstream notice is retained in
|
|
@@ -169,3 +173,12 @@ The adapted areas are:
|
|
|
169
173
|
`tools/generate_schema_wrapper.py`;
|
|
170
174
|
- the multifeature penguins and cars strip-plot cases in `tests/test_chart.py`,
|
|
171
175
|
adapted from Altair's example suite and mark documentation.
|
|
176
|
+
|
|
177
|
+
## Prepared airway review table
|
|
178
|
+
|
|
179
|
+
`airway_review.json.gz` uses the same Bioconnector workshop tables and paired
|
|
180
|
+
log-count t-tests as the gallery volcano example. Source attribution and
|
|
181
|
+
CC BY-NC-SA 4.0 terms are listed under Airway data above. Added fields contain
|
|
182
|
+
gallery statistics, display values, sample counts, and host aliases;
|
|
183
|
+
`tools/prepare_airway_review.py` reproduces the transformation. Source checksums
|
|
184
|
+
are retained in the bundle. No PyDESeq2 analysis is used.
|
|
@@ -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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 650 497" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"><g><path d="M89.04,354.223c0,0 8.235,46.873 26.95,73.014c18.715,26.141 76.485,66.864 76.485,66.864c0,0 71.387,-53.269 132.868,-174.003c0,0 18.387,2.122 37.318,-9.43c18.93,-11.552 17.227,-6.777 23.076,-23.338c0,0 57.472,10.176 133.729,-0.832c43.096,-6.222 87.538,-20.416 127.457,-50.325c0,0 -23.608,-34.551 -52.116,-105.406c-10.848,-26.959 -40.294,-37.125 -94.4,-94.654l-167.7,177.164l-243.668,140.945Z" style="fill-opacity:0.11;"/></g><g><path d="M251.063,229.621c0,0 -81.99,-37.202 -245.98,55.639c0,0 20.763,74.975 49.947,106.825c29.185,31.848 47.202,74.525 94.583,96.096c0,0 96.143,-61.477 141.731,-189.885l62.887,-40.211c0,0 95.533,57.541 256.482,-32.247c0,0 -12.007,-68.269 -61.168,-124.472c-52.15,-59.618 -77.935,-96.782 -77.935,-96.782c0,0 -83.958,47.979 -153.04,192.581l-67.507,32.457Z" style="fill:#7fbbdd;"/><clipPath id="_clip1"><path d="M251.063,229.621c0,0 -81.99,-37.202 -245.98,55.639c0,0 20.763,74.975 49.947,106.825c29.185,31.848 47.202,74.525 94.583,96.096c0,0 96.143,-61.477 141.731,-189.885l62.887,-40.211c0,0 95.533,57.541 256.482,-32.247c0,0 -12.007,-68.269 -61.168,-124.472c-52.15,-59.618 -77.935,-96.782 -77.935,-96.782c0,0 -83.958,47.979 -153.04,192.581l-67.507,32.457Z"/></clipPath><g clip-path="url(#_clip1)"><path d="M56,444.5c0,0 26.361,-47.811 96.486,-67c102.441,-28.032 107.921,-41.489 143.514,-82c57.943,-65.949 119.036,-13.987 191,-83c52.116,-49.978 96.483,-67.007 104.713,-76c22.96,-25.088 49.253,112.734 47.287,115.474l-292.12,73.526l-181.88,192l-109,-73Z" style="fill:#63a3c7;"/></g><g><clipPath id="_clip2"><path d="M251.063,229.621c0,0 -81.99,-37.202 -245.98,55.639c0,0 20.763,74.975 49.947,106.825c29.185,31.848 47.202,74.525 94.583,96.096c0,0 96.143,-61.477 141.731,-189.885l62.887,-40.211c0,0 95.533,57.541 256.482,-32.247c0,0 -12.007,-68.269 -61.168,-124.472c-52.15,-59.618 -77.935,-96.782 -77.935,-96.782c0,0 -83.958,47.979 -153.04,192.581l-67.507,32.457Z"/></clipPath><g clip-path="url(#_clip2)"><g><path d="M271.179,279.61c3.32,15.643 -17.832,37.052 -41.341,54.277c-15.19,11.13 -56.864,19.863 -74.141,41.355c-20.149,25.065 2.186,34.54 20.104,19.615c38.597,-32.148 66.785,-56.314 72.118,-48.359c9.854,14.698 -39.76,72.778 -74.531,99.203c-17.153,13.036 -53.262,14.43 -74.227,-11.546c-7.628,-9.452 -11.882,-26.281 -9.327,-35.694c4.72,-17.397 10.997,-37.853 40.708,-61.853c38.934,-31.45 91.489,-35.185 83.193,-49.459c-9.928,-17.082 -52.072,2.157 -77.166,22.647c-31.759,25.932 -20.02,26.777 -49.078,46.409c-17.818,12.039 -36.933,5.914 -46.661,-0.38c-7.791,-5.041 -11.517,-37.951 -0.453,-58.394c15.111,-27.92 70.762,-54.533 117.743,-60.174c105.963,-12.723 108.277,19.826 113.057,42.353Zm-208.179,18.89c-5.519,0 -10,4.481 -10,10c0,5.519 4.481,10 10,10c5.519,0 10,-4.481 10,-10c-0,-5.519 -4.481,-10 -10,-10Z" style="fill:#fff;fill-opacity:0.45;"/><path d="M377.914,238.729c11.76,8.108 34.86,7.082 55.315,-8.672c24.313,-18.726 31.269,-38.485 71.603,-45.658c27.972,-4.975 30.585,18.52 12.343,28.207c-39.294,20.867 -91.316,29.349 -82.698,44.288c7.924,13.736 92.007,-9.177 125.32,-28.845c16.434,-9.702 29.604,-39.059 15.22,-65.29c-5.234,-9.544 -17.659,-18.83 -26.252,-19.947c-15.881,-2.066 -54.579,-10.062 -84.212,6.257c-38.832,21.384 -59.278,55.661 -68.256,43.911c-10.744,-14.061 20.076,-40.334 45.285,-54.041c31.904,-17.348 26.796,-13.228 52.619,-30.504c15.835,-10.594 17.163,-28.488 15.225,-38.684c-1.552,-8.166 -27.379,-22.53 -47.878,-20.399c-27.996,2.911 -68.416,39.766 -88.7,76.651c-45.749,83.189 -11.873,101.054 5.064,112.728Zm86.086,-176.229c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c-0,-5.519 4.481,-10 10,-10Z" style="fill:#fff;fill-opacity:0.45;"/></g><g><path d="M268.179,276.61c3.32,15.643 -17.832,37.052 -41.341,54.277c-15.19,11.13 -56.864,19.863 -74.141,41.355c-20.149,25.065 2.186,34.54 20.104,19.615c38.597,-32.148 66.785,-56.314 72.118,-48.359c9.854,14.698 -39.76,72.778 -74.531,99.203c-17.153,13.036 -53.262,14.43 -74.227,-11.546c-7.628,-9.452 -11.882,-26.281 -9.327,-35.694c4.72,-17.397 10.997,-37.853 40.708,-61.853c38.934,-31.45 91.489,-35.185 83.193,-49.459c-9.928,-17.082 -52.072,2.157 -77.166,22.647c-31.759,25.932 -20.02,26.777 -49.078,46.409c-17.818,12.039 -36.933,5.914 -46.661,-0.38c-7.791,-5.041 -11.517,-37.951 -0.453,-58.394c15.111,-27.92 70.762,-54.533 117.743,-60.174c105.963,-12.723 108.277,19.826 113.057,42.353Zm-208.179,18.89c-5.519,0 -10,4.481 -10,10c0,5.519 4.481,10 10,10c5.519,0 10,-4.481 10,-10c-0,-5.519 -4.481,-10 -10,-10Z" style="fill:#fff;"/><path d="M374.914,235.729c11.76,8.108 34.86,7.082 55.315,-8.672c24.313,-18.726 31.269,-38.485 71.603,-45.658c27.972,-4.975 30.585,18.52 12.343,28.207c-39.294,20.867 -91.316,29.349 -82.698,44.288c7.924,13.736 92.007,-9.177 125.32,-28.845c16.434,-9.702 29.604,-39.059 15.22,-65.29c-5.234,-9.544 -17.659,-18.83 -26.252,-19.947c-15.881,-2.066 -54.579,-10.062 -84.212,6.257c-38.832,21.384 -59.278,55.661 -68.256,43.911c-10.744,-14.061 20.076,-40.334 45.285,-54.041c31.904,-17.348 26.796,-13.228 52.619,-30.504c15.835,-10.594 17.163,-28.488 15.225,-38.684c-1.552,-8.166 -27.379,-22.53 -47.878,-20.399c-27.996,2.911 -68.416,39.766 -88.7,76.651c-45.749,83.189 -11.873,101.054 5.064,112.728Zm86.086,-176.229c5.519,0 10,4.481 10,10c0,5.519 -4.481,10 -10,10c-5.519,0 -10,-4.481 -10,-10c-0,-5.519 4.481,-10 10,-10Z" style="fill:#fff;"/></g></g></g><path d="M251.063,229.621c0,0 -81.99,-37.202 -245.98,55.639c0,0 20.763,74.975 49.947,106.825c29.185,31.848 47.202,74.525 94.583,96.096c0,0 96.143,-61.477 141.731,-189.885l62.887,-40.211c0,0 95.533,57.541 256.482,-32.247c0,0 -12.007,-68.269 -61.168,-124.472c-52.15,-59.618 -77.935,-96.782 -77.935,-96.782c0,0 -83.958,47.979 -153.04,192.581l-67.507,32.457Z" style="fill:none;stroke:#000;stroke-width:4.17px;"/></g><g><path d="M249.178,229.174c0,0 42.973,-40.866 62.33,-40.064c21.784,0.902 44.598,54.518 45.544,71.163c0.947,16.644 -43.785,48.806 -64.408,46.693c0,0 1.205,-24.266 -14.29,-51.994c-15.496,-27.729 -29.177,-25.798 -29.177,-25.798Z" style="fill:#7fbbdd;"/><g><clipPath id="_clip3"><path d="M249.178,229.174c0,0 42.973,-40.866 62.33,-40.064c21.784,0.902 44.598,54.518 45.544,71.163c0.947,16.644 -43.785,48.806 -64.408,46.693c0,0 1.205,-24.266 -14.29,-51.994c-15.496,-27.729 -29.177,-25.798 -29.177,-25.798Z"/></clipPath><g clip-path="url(#_clip3)"><path d="M278.736,244.277c18.831,17.544 13.365,44.867 31.522,41.231c21.468,-4.298 29.675,-18.015 29.137,-34.975c-0.538,-16.96 -2.503,-19.359 -9.928,-37.452c-7.425,-18.092 -19.874,-21.741 -44.548,-14.902c-20.522,5.686 -17.531,4.339 -23.302,11.797c-5.771,7.459 -12.47,26.945 -12.47,26.945c0,0 7.443,-13.274 29.589,7.356Z" style="fill:#fff;"/></g></g><path d="M249.178,229.174c0,0 42.973,-40.866 62.33,-40.064c21.784,0.902 44.598,54.518 45.544,71.163c0.947,16.644 -43.785,48.806 -64.408,46.693c0,0 1.205,-24.266 -14.29,-51.994c-15.496,-27.729 -29.177,-25.798 -29.177,-25.798Z" style="fill:none;stroke:#000;stroke-width:3.96px;"/></g></svg>
|
|
@@ -11,18 +11,20 @@
|
|
|
11
11
|
.gs-workflow input, .gs-workflow button {
|
|
12
12
|
font: inherit;
|
|
13
13
|
padding: 0.45rem 0.65rem;
|
|
14
|
-
border: 1px solid var(--color-foreground-border);
|
|
14
|
+
border: 1px solid var(--color-foreground-border, #d6dce5);
|
|
15
15
|
border-radius: 4px;
|
|
16
|
-
color: var(--color-foreground-primary);
|
|
17
|
-
background: var(--color-background-secondary);
|
|
16
|
+
color: var(--color-foreground-primary, #172637);
|
|
17
|
+
background: var(--color-background-secondary, #ffffff);
|
|
18
18
|
}
|
|
19
19
|
.gs-workflow button:not(:disabled) { cursor: pointer; }
|
|
20
20
|
.gs-workflow button:disabled { opacity: 0.5; }
|
|
21
|
+
.gs-workflow [data-draft] { flex-basis: 100%; margin: 0; }
|
|
22
|
+
.gs-workflow-table button { margin: 0.15rem; }
|
|
21
23
|
.gs-workflow-table { overflow: auto; max-height: 18rem; }
|
|
22
24
|
.gs-workflow-table table { width: 100%; font-size: 0.85rem; border-collapse: collapse; }
|
|
23
25
|
.gs-workflow-table th, .gs-workflow-table td {
|
|
24
26
|
padding: 0.4rem 0.5rem;
|
|
25
|
-
border-bottom: 1px solid var(--color-foreground-border);
|
|
27
|
+
border-bottom: 1px solid var(--color-foreground-border, #d6dce5);
|
|
26
28
|
text-align: left;
|
|
27
29
|
overflow-wrap: anywhere;
|
|
28
30
|
}
|
|
@@ -144,12 +144,17 @@ Schema-backed configuration objects accepted by charts, channels, and helpers.
|
|
|
144
144
|
GenomeAxis
|
|
145
145
|
HandledTooltip
|
|
146
146
|
Legend
|
|
147
|
+
NamedSelectionPredicateRef
|
|
147
148
|
Paddings
|
|
148
149
|
Parameter
|
|
150
|
+
ParameterPredicate
|
|
149
151
|
Parse
|
|
150
152
|
RulerMarkConfig
|
|
151
153
|
Scale
|
|
152
154
|
SelectionDomainRef
|
|
155
|
+
SelectionPredicateDefinition
|
|
156
|
+
SelectionPredicateOperand
|
|
157
|
+
SelectionUnionTest
|
|
153
158
|
SizeDef
|
|
154
159
|
Step
|
|
155
160
|
Title
|
|
@@ -27,6 +27,7 @@ for JSON files. Pass `as_format="text"` to get the raw file contents instead.
|
|
|
27
27
|
|
|
28
28
|
| Dataset | Contents |
|
|
29
29
|
| --- | --- |
|
|
30
|
+
| `airway_review` | Gallery airway statistics and sample counts for downstream gene review |
|
|
30
31
|
| `airway_metadata` | Sample table for the airway RNA-seq experiment |
|
|
31
32
|
| `airway_scaledcounts` | Rounded, length-scaled gene counts for the same eight samples |
|
|
32
33
|
| `hapmap_gwas` | HapMap coordinates with simulated p-values and effect sizes |
|