Skip to content

v0.1.4

Choose a tag to compare

@KrotosBenjamin KrotosBenjamin released this 08 May 12:05

[0.1.4] — 2026-05-08

IsoGraph v0.1.4 introduces multi-channel module discovery, extending IsoGraph beyond isoform-switch-only networks to jointly model isoform-switch coordinates and gene abundance. This release adds multiplex feature graphs, gene channel-role classification, synthetic multiplex benchmarks, calibrated edge policies, WGCNA comparison diagnostics, and multiplex-aware explanation outputs. It also improves repository hygiene by removing bulky generated artifacts from version control while retaining compact benchmark evidence.

Added

  • Multi-channel multiplex module discovery — IsoGraph now models gene abundance as a distinct feature channel alongside isoform-switch coordinates. Multi-isoform genes can contribute both switch and abundance features, while single-isoform genes contribute abundance-only features. Module discovery operates on a typed multiplex feature graph that supports switch–switch, switch–abundance, and abundance–abundance edge policies, enabling discovery of switch-dominant, abundance-dominant, coupled, and discordant modules.

  • Gene channel-role classificationFitArtifacts.module_gene_roles now classifies module genes as:

    • switch_only
    • abundance_only
    • coupled
    • discordant

    Roles are computed with compute_module_gene_roles() in models/base.py.

  • multiplex_v1 synthetic benchmark suite — added four multiplex benchmark fixtures:

    • toy_multiplex_v1
    • medium_multiplex_v1
    • noisy_multiplex_v1
    • large_multiplex_v1

    These include planted modules, switch/abundance truth tables, and channel-role truth tables generated by generate_multiplex_suite() in benchmarks/synthetic.py.

  • Multiplex benchmark runner integrationbenchmark() now dispatches multiplex_v1 fixtures and reports switch recall, abundance recall, and overall module recovery by fixture and backend.

  • Calibrated multiplex edge policies — VAE, graph, and latent configs now support:

    • allow_abundance_abundance
    • alpha_switch
    • alpha_abundance
    • alpha_abundance_grid

    Tuned configs are available as:

    • stage9_multiplex_vae
    • stage9_multiplex_graph
    • stage9_multiplex_latent
  • WGCNA multiplex comparison config and diagnostics — added stage9_multiplex_wgcna and WGCNA calibration reports, including selected soft-threshold power, scale-free topology fit R², module count, and unassigned-gene count.

  • Role-aware recovery metrics — multiplex benchmark JSON now reports recall for switch_only, abundance_only, coupled, and discordant genes, along with giant-component diagnostics.

  • Multiplex stress reporting scripts — added:

    • scripts/stress_multiplex_summary.py for backend-vs-WGCNA summaries
    • scripts/stress_multiplex_explain.py for Stage 8 explanation accuracy checks on multiplex artifacts
  • Extra-large multiplex stress fixture — added optional xxlarge_multiplex_v1, which generates 12,000 genes, 240 samples, and 16 planted multiplex modules only when explicitly requested. Added configs:

    • stress_multiplex_xxlarge_vae
    • stress_multiplex_xxlarge_wgcna
  • Per-channel attribution in explain-modulegene_driver_table, VAE decoder attribution output (vae_drivers.parquet), and Captum Integrated Gradients output (ig_attributions.parquet) now include feature_id and feature_type. Per-gene deduplication retains the channel with the strongest signal.

  • Configurable WGCNA timeoutWgcnaModelConfig.timeout_seconds now supports long-running large multiplex comparisons.

Changed

  • Stage 8D/8E accuracy scripts are now multiplex-aware — explanation scoring now detects feature-score sample columns and collapses multiplex feature rows back to gene-level metrics before evaluating decoder Jacobian or Integrated Gradients outputs.

  • Generated artifact policy updated — bulky generated benchmark directories and dataset bundles are now ignored by git. Compact benchmark evidence remains tracked as JSON under artifacts/reports/.

Benchmarks

  • Standard multiplex stress — VAE recovered the medium, noisy, and large multiplex fixtures with recovery scores of 1.0, 0.9885057471264368, and 0.9977777777777778, respectively. Role-aware recall was 1.0 across switch_only, abundance_only, coupled, and discordant genes for these fixtures. Graph and latent backends cleared the Stage 9 gates without giant-component failures. WGCNA remains available as the comparison backend.

  • Explain-module multiplex stress — Stage 8 explanation metrics remain accurate on multiplex artifacts. VAE, graph, and latent achieved switch_strength_auc=1.0 wherever defined, while WGCNA ranged from 0.993174484983867 to 1.0 across stress fixtures.

  • 12k multiplex stress — on xxlarge_multiplex_v1, VAE recovered the correct 16 planted modules with recovery 0.9266666666666667. WGCNA achieved similar recovery, 0.9191666666666665, but detected 1,898 modules, indicating severe over-segmentation.

Removed

  • Tracked bulky generated artifacts — previously tracked benchmark payload directories and generated dataset bundles were removed from version control. Compact JSON reports remain trackable.

Pull Requests

  • [#12] Add multiplex abundance filtering and benchmarks
  • [#13] Update for xxlarge multiplex stress benchmark and ignoring artifacts

Full Changelog: v0.1.3...v0.1.4