Skip to content

v1.0.0 Release - #60

Merged
alexsweeten merged 16 commits into
mainfrom
develop
Oct 5, 2026
Merged

alexsweeten merged 16 commits into
mainfrom
develop

Conversation

@alexsweeten

Copy link
Copy Markdown
Member

ModDotPlot v1.0.0
A major performance, plotting, and packaging update.
Highlights:

  • Faster, lower-memory dotplot generation with native ntHash, indexed FASTA streaming, multiprocessing, memory limits, and reusable sketch caching.
  • Expanded comparative plotting: pair manifests, region selection, multi-sequence grids, --grid-only, configurable sequence order, and strand-direction plots.
  • Improved static plots, BED annotations, custom palettes, vector output, Cooler export, and reproducibility summaries.
  • BEDPE files can now be loaded alongside JSON configuration files, with clearer input validation and error messages.
  • Supports Python 3.10–3.14 with a smaller core dependency set.
  • Interactive mode is now deprecated, explicitly invoked with moddotplot interactive, and installed through the optional interactive extra.
  • Substantially expanded automated testing and cross-platform CI coverage.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Interactive BEDPE export transposes coordinates, and self-identity Cooler export lacks coverage for invalid duplicate bins.

Review effort: Balanced
Findings: 1 High severity · 1 Medium severity

Open (2)
What changed in this PR

Prepares ModDotPlot 1.0.0 with native performance improvements, expanded plotting, optional interactive dependencies, packaging updates, and broader automated coverage.

Changes:

  • Adds native sparse rendering, annotations, direction plots, caching, and reproducibility summaries.
  • Modernizes packaging, dependency extras, CI, and PyPI publishing.
  • Expands tests across algorithms, FASTA access, plotting, CLI behavior, and native hashing.
File Description
THIRD_PARTY_LICENSES.md Adds ColorBrewer licensing.
tests/​test_static_customization.py Tests static plot customization.
tests/​test_sparse_containment.py Tests sparse containment calculations.
tests/​test_sketch_cache.py Tests sketch caching and release.
tests/​test_plot_summary.py Tests reproducibility summaries.
tests/​test_plot_fonts.py Tests font sizing and fallback.
tests/​test_packaging_metadata.py Validates package and workflow metadata.
tests/​test_optional_dependencies.py Tests optional dependency behavior.
tests/​test_nthash.py Validates native ntHash results.
tests/​test_native_sequence_sketches.py Tests native sequence sketching.
tests/​test_native_render.py Tests native rendering primitives.
tests/​test_native_full_plot.py Tests full native plots.
tests/​test_modimizer_vectorization.py Tests vectorized modimizer generation.
tests/​test_issue53_memory_safe_plotting.py Covers memory-safe sparse plotting.
tests/​test_interactive_parser.py Tests interactive CLI parsing.
tests/​test_interactive_export.py Tests interactive BEDPE export.
tests/​test_interactive_annotations.py Tests interactive annotation tracks.
tests/​test_grid.py Tests multi-sequence grids.
tests/​test_fasta_parser.py Tests streamed and indexed FASTA access.
tests/​test_entrypoints.py Tests module entry points.
tests/​test_direction_plot.py Tests strand-direction plots.
tests/​test_direction_cli.py Tests direction CLI integration.
tests/​test_cli_integration.py Adds end-to-end CLI coverage.
tests/​test_annotation_track.py Tests BED annotation rendering.
tests/​test_algorithms.py Expands algorithm regression coverage.
src/​moddotplot/​plot_summary.py Generates plot summaries.
src/​moddotplot/​optional_dependencies.py Provides optional dependency errors.
src/​moddotplot/​native_render.py Implements sparse Matplotlib rendering.
src/​moddotplot/​interactive.py Updates interactive plotting and export.
src/​moddotplot/​const.py Updates version and direction colors.
src/​moddotplot/​annotations.py Adds shared BED parsing.
src/​moddotplot/​__main__.py Lazily loads and quiets the CLI.
setup.py Builds the native extension.
setup.cfg Configures licenses and stable ABI wheels.
pyproject.toml Updates metadata and dependencies.
LICENSE.ntHash Adds ntHash’s license.
CITATION.cff Converts citation metadata to CFF.
.gitignore Adds Python build exclusions.
.github/​workflows/​publish-to-pypi.yml Reworks release publishing.
.github/​workflows/​ci.yml Adds cross-version CI.
.github/​workflows/​black.yml Removes the superseded formatting workflow.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/moddotplot/interactive.py
Comment thread tests/test_optional_dependencies.py
…re exporting coordinates'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@alexsweeten
alexsweeten merged commit 8976d2f into main Oct 5, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants