Skip to content

kunalb541/Cosmo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

245 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Constraint-Shape Geometry of Cosmological Probe Disagreements

License: MIT Python 3.11+

Kunal Bhatia — Independent researcher, Meerut, India · ORCID 0009-0007-4447-6325

Code, chains, and a one-command reproduction pipeline for the paper Value and Shape in the H₀ and S₈ Cosmological Tensions. The manuscript and its self-contained build live in paper/; the journal submission package (Elsevier elsarticle, targeting New Astronomy) is in paper/submission_newast/.


The paper

Cosmological probe disagreements carry a reproducible value/shape geometry. In the structure-growth plane (Ω_m, σ₈), primary-CMB probes (a primordial-spectrum constraint) and lensing-amplitude probes — cosmic shear and CMB lensing — occupy two nearly orthogonal constraint-orientation classes (Δψ ≈ 89°). CMB lensing groups with cosmic shear, not with primary CMB (after correcting an earlier wrong-sign summary), so the split tracks measurement type, not redshift. It survives six independent falsifiers and a basis-invariant Fisher–Rao cross-check, and is bounded to the structure-growth plane.

A pre-registered external-validation round (X29) confirms the geometry on four new public chains: the ACT DR6 lensing-alone chain lands 0.3° from the Planck lensing-only chain (making the CMB-lensing placement a two-instrument result), KiDS-Legacy lands 0.9° from the shear class mean, and the official Pantheon+/SH0ES and DESI DR1 BAO+BBN chains reproduce every H₀ value/shape fraction to ≤ 0.2 percentage points.

The paper is deliberately conservative. It does not claim new physics, does not claim the S₈ tension is mislabeled — that stronger reading was stress-tested and retired (it was driven by a single survey and is consistent with a ΛCDM null) — and does not claim the geometry generalizes to (w₀, w_a). An explicit earned / not-earned / retired / data-unavailable ledger is in the paper's Scope-of-Claims appendix.


Reproducing the results

Prerequisites

  • Python 3.11+ (pip install -r requirements.txt)
  • TeX Live 2025+ (pdflatex, bibtex) — the AASTeX v7 class for the canonical paper/paper.pdf; the New Astronomy package ships its own elsarticle.cls + .bst

Quick: rebuild the paper from committed results

The per-battery result JSONs in results/ are committed, so the paper builds without re-running the analysis:

cd paper && ./build.sh        # catalog audit → macros → figures → pdflatex/bibtex

This regenerates paper/paper_macros.tex (every numerical claim, traced to a source in paper/outputs/data/macro_sources.json), the figures, the tables, and paper/paper.pdf.

Full: re-run the analysis from public chains, then build

build.sh runs the analysis batteries directly — it does not download the chains. Fetch the public chains into data/ first (one-time):

python -m src.fetch_chains            # bulk fetch (src/fetch_chains.py / src/download_data.py)

The X29 external-validation chains have dedicated fetchers with md5 provenance records: src/fetch_act_dr6_lensing_chain.py, src/fetch_kids_legacy_chain.py, src/fetch_desi_bao_bbn_chain.py, and paper/preregs/fetch_cmb_lensing_chain.py (Planck PR3 lensing-only). Some sources require an accept-license click-through, which the script reports. Archives and the verbatim survey-mandated data-use statements are in the paper's Data Availability and Acknowledgements sections.

With the chains in place:

./build.sh                            # install deps → run batteries → tests → paper build
                                      # (assumes the chains are already under data/)

Set the interpreter with PYTHON=/path/to/python ./build.sh if needed.

Submission package (New Astronomy)

The journal submission is an Elsevier elsarticle conversion of the canonical AASTeX manuscript, regenerated by a formatting-only transformer — the body text, equations, numbers, figures, and citation keys are byte-identical to paper/paper.tex:

cd paper/newast_build && python convert.py   # paper.tex → paper_newast.tex (+ tables)
cd ../submission_newast
pdflatex paper_newast && bibtex paper_newast && pdflatex paper_newast && pdflatex paper_newast

The self-contained bundle in paper/submission_newast/ compiles standalone to a 14-page two-column (final,5p) article (0 errors, 0 undefined references) and includes the six figures, the two tables, the elsarticle-harv .bbl, elsarticle.cls, and its own README.txt. New Astronomy is a direct Elsevier (Editorial Manager) submission — no arXiv id required. The paper/jcap_build/ transformer is retained for a one-command JCAP rebuild should arXiv endorsement become available.


Repository layout

Cosmo/
├── README.md            this file
├── LICENSE              MIT
├── CITATION.cff         software citation metadata
├── requirements.txt     Python deps
├── build.sh             full pipeline: batteries → tests → paper build
├── paper/            the manuscript + self-contained build
│   ├── paper.tex            canonical manuscript (AASTeX v7) → paper.pdf
│   ├── paper_macros.tex     auto-generated numeric macros (do not hand-edit)
│   ├── refs.bib             bibliography
│   ├── canonical_numbers.json  curated headline numbers
│   ├── catalog_audit.py     defines the four provenance pools → tables
│   ├── make_macros.py       results/*.json → paper_macros.tex (+ macro_sources.json)
│   ├── make_figures.py      results/*.json → figures
│   ├── build.sh             audit → macros → figures → pdflatex/bibtex
│   ├── newast_build/convert.py AASTeX paper.tex → elsarticle (New Astronomy) transformer
│   ├── submission_newast/      self-contained New Astronomy bundle (elsarticle, two-column)
│   ├── jcap_build/convert.py   retained jcappub (JCAP) transformer — regenerates the JCAP bundle on demand
│   └── outputs/{figures,tables,data}/
├── src/                 one battery per file + chain loaders
├── results/             per-battery JSON outputs (read by paper)
├── preregs/             dated pre-registrations
├── tests/               pytest suite
└── data/                chains and inputs (large files git-ignored; re-fetched)

Chain-level claims are restricted to probes loaded as real MCMC chains; the catalog auditor reports every analysis pool by both provenance tag and loader reality.


Navigating the code

This is a pre-registered project that grew across ~70 numbered iterations (src/v2…v73), a set of stress-test "wild" runs (wildA…wildR), and the external/edge rounds (x29, x30). You don't need to read all of them. MANIFEST.md maps each headline result in the paper to the single pre-registration, script, and result JSON that produces it.

Naming convention:

  • Pre-registrations in preregs/ are X<n> / E<n> (earlier: cosmo_battery_v<n>). Each header names the battery it locks, e.g. X5 (V68).
  • Batteries in src/ are one file per run, v<n>_<name>.py, each writing results/<name>_results.json.
  • Paper numbers are generated from those JSONs by paper/make_macros.py. The authoritative machine-readable map from every macro to its source is paper/outputs/data/macro_sources.json.

The remaining iterations are the development record (basis/rank robustness, synthetic-injection nulls, clustering, sensitivity grids). They are retained for transparency, exercised by tests/, and not required to reproduce the paper — the canonical path is cd paper && ./build.sh.


Data attribution

This work uses public chains and posteriors from Planck (incl. the PR3 lensing-only chain), ACT (incl. the DR6 lensing-alone chains), WMAP, KiDS-1000, KiDS-Legacy, DES Y3, HSC Y3, DESI, Pantheon+, SH0ES, H0LiCOW, TDCOSMO, and eROSITA. The verbatim acknowledgement texts required by these collaborations are in the paper's Acknowledgements; archives and citations are in its Data Availability section.


Corrections

Notable corrections to the analysis and manuscript — including the CMB-lensing sign correction — are recorded in CHANGELOG.md. The manuscript is in preparation (prepared for New Astronomy) and not yet published, so these are development corrections, not a journal erratum.

Citation

See CITATION.cff. Repository: https://github.com/kunalb541/Cosmo.

License

MIT — see LICENSE.

About

Constraint-shape geometry of cosmological probe disagreements: value/shape structure in the H₀ and S₈ tensions, with a one-command reproduction pipeline.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors