# Configuration Reference IsoGraph uses dataclass-based typed configuration models in `isograph.workflow.config`. ## Command Configs - `BenchmarkCommandConfig` Controls suite generation, backend selection, report locations, real-data freeze settings, and backend-specific config blocks. The default backend is `"vae"`. - `FitCommandConfig` Controls baseline fitting for a prepared dataset bundle. - `CompareCommandConfig` Controls report or snapshot comparison output paths. ## Backend Configs - `BaselineModelConfig` Sparse partial-correlation baseline with residualization and trait-association defaults. - `LatentModelConfig` Factor Analysis denoising plus partial-correlation inference. Supports cross-validated or fixed component count selection. - `GraphModelConfig` Latent model extended with graph-Laplacian smoothing. - `VaeModelConfig` Variational autoencoder backend with early stopping, latent-dimension controls, and optional checkpoint output. See the `hidden_dim` docstring for gene-count guidance. - `WgcnaModelConfig` WGCNA backend wrapping R's `blockwiseModules`. Configures soft-thresholding power, minimum module size, merge cut height, network type, and subprocess timeout. ## Real-Data and Stability Configs - `RealDataFreezeConfig` Points at the BrainSeq-style count and annotation tables used by `freeze-real`. - `StabilitySelectionConfig` Controls alpha-grid search for real-data edge stability. ## Default Config Files The repository ships with these YAML entry points: | File | Suite | Backend | |---|---|---| | `configs/benchmark.yaml` | `core_v1` | `vae` (default) | | `configs/fit.yaml` | — | baseline | | `configs/compare.yaml` | — | — | | `configs/stage3_graph.yaml` | `core_v1` | `graph` | | `configs/stage4_vae.yaml` | `core_v1` | `vae` | | `configs/stage5_wgcna.yaml` | `core_v1` | `wgcna` | | `configs/stage6_vae_xlarge.yaml` | `scale_v1` | `vae` | | `configs/stage6_scale_comparison_vae.yaml` | `scale_v1` | `vae` | | `configs/stage6_scale_comparison_wgcna.yaml` | `scale_v1` | `wgcna` | | `configs/stage9_multiplex_vae.yaml` | `multiplex_v1` | `vae` | | `configs/stage9_multiplex_graph.yaml` | `multiplex_v1` | `graph` | | `configs/stage9_multiplex_latent.yaml` | `multiplex_v1` | `latent` | | `configs/stage9_multiplex_wgcna.yaml` | `multiplex_v1` | `wgcna` | | `configs/stress_multiplex_xxlarge_vae.yaml` | `multiplex_v1` | `vae` | | `configs/stress_multiplex_xxlarge_wgcna.yaml` | `multiplex_v1` | `wgcna` | Use them as stable entry points and supply Hydra overrides after `--` on the CLI. ## Multiplex-Specific Fields VAE, graph, and latent configs can enable multiplex edge policies with: - `allow_abundance_abundance` — include abundance-abundance edges instead of requiring abundance-only genes to connect through switch-active genes. - `alpha_switch` — threshold for switch-switch feature edges. - `alpha_abundance` — fixed threshold for abundance-abundance feature edges. - `alpha_abundance_grid` — optional grid used to select the smallest abundance threshold that avoids merging baseline switch modules. For very large multiplex fixtures, prefer a fixed `alpha_abundance` because grid selection repeats the O(feature²) graph projection for each candidate threshold. ## Per-Fixture Overrides All backends support per-fixture config overrides in `BenchmarkCommandConfig`: - `fixture_model_overrides` — baseline - `fixture_latent_overrides` — latent - `fixture_graph_overrides` — graph - `fixture_vae_overrides` — vae - `fixture_wgcna_overrides` — wgcna Values are partial field dicts merged with `dataclasses.replace` before the fit.