cosmoTRON¶
cosmoTRON is an automated large-scale-structure (LSS) power-spectrum analysis system: it turns galaxy clustering and/or weak-lensing shear catalogues — single-probe or a joint 3×2pt — into a validated angular power spectrum and cosmology analysis:
%%{init: {"flowchart": {"useMaxWidth": false}}}%%
flowchart TD
A[Catalogue] --> B[HEALPix maps]
B --> C[Mask apodisation]
C --> D["Pseudo-Cℓ<br/>(spin-0/2)"]
D --> E[Covariance]
E --> F[SACC data vector]
F --> G[Systematics deprojection<br/>& null tests]
F -.->|optional| H[Inference]
G --> I{{Review}}
H --> I
I -->|"FAIL: fix root cause,<br/>re-review (≤2×)"| F
I -->|PASS| J[Done]
The numerical pipeline lives in deterministic Python tools, exposed as an MCP server (a thin FastMCP layer) and driven by a roster of opencode agents running local open-weights models. The agents call tools and make decisions but never hand-write the physics — which keeps the model small enough to run locally alongside the compute. The MCP server is one component of the system, not the whole product: the same tools work directly from Python, or from any MCP-compatible client (opencode and Claude Code).
Probe support¶
cosmoTRON runs both galaxy clustering (spin-0) and weak-lensing shear (spin-2), single-probe or as a joint multi-probe / 3×2pt analysis, over any mix of: spin, single-bin or tomographic, full-sky or masked, and auto-only / a chosen subset / all pairwise correlations.
End-to-end: shear catalogues standardise to Q/U maps (mask = weighted
occupancy); compute_all_cls_from_session produces every pair type —
clustering×clustering, galaxy–galaxy lensing (0×2), shear×shear (2×2,
EE/BB/EB) — with σ_e² shot noise; a mixed-spin joint covariance is the EE
data vector, while shear B-modes get their own validation covariances
and null tests; the SACC carries the correct Firecrown data types and feeds
Firecrown/CosmoSIS inference. Correlation selection is decided early (see
Writing TASK.md), so only the requested pairs are ever
computed. nside is global; lmax, bias, mask, σ_e, and scale cuts can vary
per probe. Spin/probe are set only by an explicit task declaration, never
guessed from prose.
Runs local or on a cluster¶
The pipeline runs wherever the MCP server runs (e.g. a DGX Spark), but any
heavy step — ingest of a multi-GB catalogue, spectra, covariance, a
CosmoSIS/Firecrown chain — can run as a Slurm job on an HPC cluster
instead, while the session stays put. You never touch the machinery: a
## remote: block (or a site:path data location) in the task says which
steps run where, and the tools dispatch, poll, and pull results back
automatically. See Remote execution.
Where to go next¶
- New to the repo? Start with Install, then Quickstart.
- Setting up a new dataset? Writing DATA_DESCRIPTION.md and Catalogue-type profiles.
- Writing an analysis request? Writing TASK.md.
- Running on an HPC cluster? Remote execution.
- Looking for a specific tool? API reference — organized by the real module each tool is implemented in.
- Understanding the agent roster? Agent roster.
- Full worked walkthroughs? Examples.