Skip to content

Repository files navigation

ExoSAGE

ExoSAGE is a point-in-time, risk-controlled research system for exoplanet transit screening and rocky/temperate follow-up allocation.

It treats discovery like a quantitative research problem: remove shared systematics, search residual signals, control a large hypothesis universe, calibrate uncertainty through time, and allocate limited telescope hours under correlated risk.

The project does not claim to detect life or output a ground-truth probability of habitability.

What Works Now

  • Immutable NASA Exoplanet Archive TOI snapshots with query, retrieval time, schema, SHA-256 checksums, and overwrite protection
  • A tracked 160-row NASA fallback slice for reproducible UI and CI execution
  • A real 12,000-point TESS/MAST light curve for Pi Mensae c
  • Robust low-rank factor residualization for target-by-time flux panels
  • Box Least Squares search with robust cadence-noise estimation
  • Benjamini-Hochberg false-discovery control and calibration diagnostics
  • Monte Carlo rocky-composition and habitable-zone characterization
  • Point-in-time walk-forward backtesting with future outcomes used only for evaluation
  • Mixed-integer telescope allocation with budget, target-count, idiosyncratic risk, and shared factor-exposure risk
  • A FastAPI research service and responsive vanilla JavaScript/D3 workstation
  • CI tests, remote-only training guardrails, and a Linux container

The current candidate ranking is a transparent physics-and-observability screen, not a trained classifier. The workstation says this explicitly.

Architecture

flowchart LR
    A[NASA TOI snapshots] --> B[Point-in-time universe]
    C[TESS and Kepler light curves] --> D[Common-factor residualizer]
    D --> E[BLS signal search]
    E --> F[Vetting and FDR control]
    B --> G[Physical uncertainty model]
    F --> H[Calibrated discovery score]
    G --> I[Candidate evidence]
    H --> J[Walk-forward evaluation]
    I --> K[Covariance-aware allocator]
    H --> K
    K --> L[Telescope follow-up portfolio]
Loading

The system separates three questions:

  1. Does the photometric signal look planetary rather than instrumental or astrophysical contamination?
  2. Given measurement uncertainty, how plausible are a rocky composition and a conservative or optimistic habitable-zone orbit?
  3. Which candidate set maximizes expected scientific value under limited telescope time and correlated failure risk?

Quant Research Design

Quant concept ExoSAGE implementation
Point-in-time universe Dated, checksummed NASA snapshots
Factor neutralization Robust low-rank common-mode removal
Alpha signal Residual transit-search statistic and vetting evidence
Multiple testing Benjamini-Hochberg q-values
Calibration Brier score, ECE, and MCE
Walk-forward research Grouped temporal cutoffs with an embargo-ready config
Risk model Candidate uncertainty plus shared sector/stellar/magnitude/radius exposures
Portfolio construction Binary mixed-integer allocation under telescope-hour constraints

Verified Result

The API analyzes the tracked real TESS light curve and recovers Pi Mensae c at approximately 6.2660 days, close to its known 6.2679-day period. This is a signal-processing validation case, not a trained-model benchmark.

The Python/API suite contains 18 tests and currently maintains more than 80% statement coverage. The browser code is dependency-free apart from pinned D3 v7.9.0 loaded from a CDN, and CI performs a JavaScript syntax check.

Quick Start

Requirements: Python 3.12 and uv. Node is only needed for the optional browser-code syntax check.

make setup
make api

In a second terminal:

make web

Open:

  • Workstation: http://localhost:5173
  • API: http://localhost:8000
  • OpenAPI docs: http://localhost:8000/docs

The committed demo assets are enough to run the complete vertical slice. To create a new full NASA snapshot:

make data

A snapshot for the current UTC date is immutable. The command refuses to overwrite it.

API Surface

Method Route Purpose
GET /health Data provenance and model-state disclosure
GET /api/candidates Ranked point-in-time candidate universe
GET /api/candidates/{id} Physical posterior and evidence decomposition
GET /api/signal/demo Real TESS signal views and BLS result
POST /api/portfolio Risk-aware follow-up allocation

Repository Map

src/exosage/
  data/          immutable ingestion, manifests, repository
  signals/       factor residualization and transit search
  risk/          FDR and calibration
  science/       physical uncertainty characterization
  backtest/      point-in-time walk-forward evaluation
  allocation/    covariance-aware telescope portfolio
  api/           FastAPI research service
  training/      remote-compute policy guard
web/             vanilla JavaScript and hand-written D3 workstation
scripts/         reproducible static-data build and remote training entrypoint
configs/         versioned experiment definitions
data/demo/       tracked public runtime assets
tests/           numerical, policy, and end-to-end API tests

The workstation can also run without the API. make web-data rebuilds the tracked browser payload from the public demo assets, and make web serves it with Python's standard-library HTTP server. See web/README.md for the visual encoding, interaction, and accessibility decisions.

Compute Policy

Training is disabled on macOS. Local execution is limited to data contracts, small public demo assets, unit tests, signal-processing validation, and model forward passes. Full preprocessing and training must run in a versioned Linux container with EXOSAGE_REMOTE_TRAINING=1.

make remote-train

The remote entrypoint remains intentionally locked until a labeled, point-in-time dataset and leakage audit are approved.

Research Standard

Public metrics must come from grouped, point-in-time, walk-forward experiments. Random row splits, future dispositions in features, proxy labels presented as ground truth, synthetic calibration metrics, and unversioned datasets are not accepted.

Rocky and habitable-zone posteriors are physical screening quantities. They are not evidence for an atmosphere, surface water, biological activity, or life.

About

Point in time exoplanet transit screening with false discovery rate control, walk forward backtesting, and mixed integer telescope hour allocation

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages