Exoplanet Search
A reproducible Kepler transit-recovery, signal-ranking, and independent-vetting pipeline.
Abstract · CLI Preview · Results · Methodology · Installation · Reproduction · Data · Citation · Documentation · License
Abstract
SXS is a computational astronomy system for detecting and reviewing transit-like signals in public Kepler photometry. It combines segment-aware light-curve preprocessing, Box Least Squares (BLS) period searches, target-grouped machine learning, catalog screening, empirical false-alarm analysis, physical transit fitting, and external evidence from Gaia and TESS. The research evaluates both end-to-end recovery on confirmed systems and a deterministic candidate search among targets without cataloged KOI or confirmed-name history. Its final independent review produced 0 strong candidates, 1 weak candidate, and 19 likely false positives—a reproducible methodology and negative-result record, not a planet-discovery claim.
CLI preview
Recorded CLI output, rendered as a terminal preview—not a graphical application. See the preview gallery for the baseline dry-run view, copyable output, and commands to try locally.
Key results
| Evaluation | Result | Interpretation |
|---|---|---|
| Baseline BLS top-five recovery | 15/36 (41.67%) | Confirmed planets recovered within the fixed search domain |
| Baseline RF end-to-end recovery | 12/36 (33.33%) | Confirmed planets retained after detection and ranking |
| Scaled BLS top-five recovery | 227/434 (52.30%) | Recovery on the quality-filtered confirmed-planet benchmark |
| RF v2 precision / recall | 0.412 / 0.903 | Target-grouped out-of-fold metrics at threshold 0.221107 |
| RF v2 false-positive rate | 0.146 | 292 false passes among 2,000 negative peaks |
| Bounded candidate search | 250 targets; 1,250 peaks | Deterministically selected workstation-scale sample |
| Frozen review queue | 20 signals | Highest-ranked signals passing preliminary checks |
| Independent review | 0 strong; 1 weak; 19 likely FP | Final classification using independent evidence rules |
The sole weak signal, KIC 8300900-r1, has a period of 5.090289 days and empirical BLS false-alarm probability 20/1,001 = 0.01998. It has no supporting TESS period match and is not a confirmed exoplanet.
Methodology
- Acquire public Kepler light curves and catalog ground truth through MAST and the NASA Exoplanet Archive.
- Prepare each observing segment with quality filtering, normalization, and Savitzky–Golay detrending.
- Search the 0.5–50 day domain with BLS and retain distinct top-ranked periods.
- Qualify Random Forest and compact 1D CNN rankers with
StratifiedGroupKFold, keeping every target in only one fold. - Screen a deterministic 250-target sample after excluding cataloged KOI and confirmed-name history.
- Audit independently with segment-shuffle FAP, odd/even and secondary-eclipse tests, limb-darkened transit fits, stellar-radius plausibility, Gaia scene analysis, TESS photometry, and TOI lookup.
- Record evidence as versioned configurations, machine-readable tables, figures, and reports.
Ranking and scientific validation are deliberately separated. The independent audit does not reuse model probabilities in its decision rules.
Architecture
flowchart LR
A[(Kepler<br/>photometry)] --> B[Quality control<br/>and detrending]
B --> C[BLS<br/>period search]
C --> D[RF / CNN<br/>signal ranking]
D --> E[Catalog and<br/>morphology screen]
E --> F[Independent audit<br/>FAP · fit · Gaia · TESS]
F --> G[(Evidence record<br/>tables · figures · reports)]
| Layer | Main implementation | Responsibility |
|---|---|---|
| Acquisition | src/ingest/ |
Mission products and catalog snapshots |
| Signal processing | src/preprocess/, src/detect/ |
Cleaning, detrending, and BLS searches |
| Ranking | src/model/, src/scaleup/ |
Feature extraction and grouped ML evaluation |
| Scientific review | src/independent_validation/, src/validate/ |
Independent tests, catalog checks, and evidence classification |
| Orchestration | src/cli.py, configs/ |
Reproducible commands and decision rules |
Installation
SXS supports Python 3.11 and 3.12. Windows received the full workstation research validation; the CI matrix tests the deterministic core and installed wheel on Ubuntu, Windows, and macOS.
Install from PyPI
Install the verified production package in a virtual environment:
python -m pip install scix-exoplanet-search==1.4.0
sxs --help
sxs demo --output demo
Open demo/report.html. The PyPI wheel includes the core scientific dependencies
and default configurations, but not observations or trained models. Full model
training additionally requires the complete dependency profile from the matching
source release.
Platform downloads
| Platform | Release bundle | Installation entry point |
|---|---|---|
| Windows | Download .zip |
PLATFORM_INSTALL.md using PowerShell |
| macOS | Download .tar.gz |
PLATFORM_INSTALL.md using Terminal |
| Linux | Download .tar.gz |
PLATFORM_INSTALL.md using a POSIX shell |
All three bundles contain the same Python source and scientific record. Verify downloads against SHA256SUMS.txt.
For CLI use without a checkout, download the standalone wheel, verify its checksum, and install it in a Python virtual environment:
python -m pip install scix_exoplanet_search-1.4.0-py3-none-any.whl
sxs demo --output demo
Open demo/report.html. The wheel bundles default configurations, not observations
or trained models. See the installation guide.
Container package (GHCR)
The Python application is packaged as a Linux/amd64 container, including the complete scientific dependencies. Windows and macOS require a Linux-container runtime; this is not a native executable for those platforms.
The GHCR package is public. Anonymous pull and runtime verification for the numbered release is performed by the Public distribution workflow; no GitHub login is needed.
docker pull ghcr.io/science-experimental-technologies/exoplanet-search:v1.4.0
docker run --rm ghcr.io/science-experimental-technologies/exoplanet-search:v1.4.0 --help
v1.4.0 is the final numbered container release; main retains the final tested source state.
See the container guide for persistent data,
digest pinning, local builds, and initial package visibility setup. There are no
npm, NuGet, Maven, or RubyGems packages: SXS currently has no SDK in those languages.
Install from Git
git clone https://github.com/Science-Experimental-Technologies/Exoplanet-Search.git
cd Exoplanet-Search
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".[full,test]"
On Linux or macOS, create the environment with python3.11 -m venv .venv and activate it with source .venv/bin/activate.
Choose the dependency profile appropriate to the task:
requirements-core.txt— production acquisition, preprocessing, BLS, and validation runtime;requirements-test.txt— core runtime plus the deterministic test runner;requirements.txt— complete production scientific and machine-learning runtime;requirements-ml.txt— compatibility alias for the complete environment; andrequirements-docs.txt— documentation website, manuscript, and PDF build support.
The equivalent source-checkout extras are .[full] for TensorFlow/MLflow and
.[test] for pytest. A normal pip install . remains the smaller production
installation. These extras are available from the final 1.4.0 source and wheel
and are not retroactively available from earlier releases.
Reproduction
Try an isolated offline example
Analysis workbench commands included in v1.2.0:
python -m src.cli demo --output runs/demo
python -m src.cli analyze --input runs/demo/input.csv --time-system relative --output runs/analysis
python -m src.cli inject --periods 3 --depths 0.005 --repeats 5 --output runs/injections
python -m src.cli evaluate --demo --trees 20 --bootstrap 100 --output runs/evaluation
Open runs/demo/report.html for the offline analysis report. These synthetic
examples do not constitute scientific discoveries or update archived metrics.
The workbench guide covers FITS/KIC input, model
compatibility, HTML reports, injection recovery, and nested grouped evaluation.
Output folders must be new. Legacy workflows accept --workspace DIR for
separate configs and outputs; their --resume now requires content-verified
checkpoints rather than archived reports alone.
Reproduce the research workflow
The unified interface names workflows by scientific responsibility:
# Inspect the baseline workflow without writing artifacts
python -m src.cli baseline --config configs/base.yaml --dry-run
# Validate every bundled workflow configuration without running the pipeline
python -m src.cli config-check
# Create a clean, isolated experiment workspace
python -m src.cli init runs/research-a
# Inspect configuration and recorded workflow state without modifying it
python -m src.cli status runs/research-a
# After a workflow has checkpointed, verify its recorded integrity
python -m src.cli verify runs/research-a --workflow baseline
# Create a privacy-conscious diagnostic archive for a support request
python -m src.cli support-bundle runs/research-a --output sxs-support.zip
# Execute the baseline (required before scale-up in an empty workspace)
python -m src.cli baseline --workspace runs/research-a
# Reproduce scaled training and model qualification
python -m src.cli scaleup --workspace runs/research-a
# Run the bounded candidate screen
python -m src.cli search --workspace runs/research-a
# Run the independent evidence audit
python -m src.cli validate --workspace runs/research-a --stage all
Full searches can download public mission products, consume substantial storage, and run expensive period grids. Review the chosen configuration before execution.
Use a separate checkout for a new run: tracked reports are frozen evidence, not
proof that the untracked light curves and model binaries exist. Add --resume
only after verifying that those artifacts belong to the same run. See the
reproducibility guide.
Verify the deterministic core with:
python -m pip install -r requirements-test.txt
python -m pytest -m "not network"
python -m src.cli baseline --config configs/base.yaml --dry-run
The live MAST integration test is opt-in:
$env:SXS_RUN_NETWORK_TESTS = "1"
python -m pytest -m network tests/test_mast_client_network.py
Datasets and research record
SXS uses public upstream data but does not relicense or take ownership of it.
| Source | Role in SXS |
|---|---|
| MAST / Kepler | Time-series photometry and product inventory |
| NASA Exoplanet Archive | Confirmed-planet and KOI false-positive ground truth |
| Gaia Archive | Nearby-source and stellar-context evidence |
| TESS | Independent photometric comparison where available |
| ExoFOP | Public TOI cross-check |
Project-authored evidence is tracked in these records:
- Complete research report
- Baseline benchmark
- Scaled model qualification
- Candidate screening
- Independent validation
- RNAAS-length manuscript draft
- AASTeX RNAAS submission package
- Zenodo software archive and archival record
- Documentation and consistency audit
- Workbench implementation and verification
- Archived research preprint v1.0.0 — see publication status and corrections before reuse
Repository structure
configs/ Versioned workflow and decision-rule configuration
data/ Catalog snapshots, compact evidence tables, and cache roots
models/ Model-selection metadata; large fitted binaries are untracked
reports/ Scientific reports, metrics, figures, and release audits
scripts/ Publication and artifact utilities
src/ Acquisition, preprocessing, detection, ranking, and validation
tests/ Deterministic unit and integration tests
Scientific limitations
- The selected benchmarks do not support exoplanet occurrence-rate inference.
- RF and CNN outputs are review-prioritization scores, not calibrated posterior probabilities.
- The empirical shuffle FAP is conditional on the preprocessing, null construction, and search grid; it is not a VESPA-style Bayesian probability.
- The bounded search uses four Kepler products per target even where additional data exist.
- No new spectroscopy, high-resolution imaging, or pixel-level physical follow-up was performed.
- Catalog absence does not establish astrophysical novelty.
Read DISCLAIMER.md before interpreting or redistributing candidate results.
Citation
If SXS materially supports your research or technical work, cite the release metadata in CITATION.cff:
Andrean, R. (2026). SCIX Exoplanet Search (SXS): Reproducible Kepler
Transit Recovery and Independent Vetting (Version 1.4.0).
Science Experimental Technologies.
https://doi.org/10.5281/zenodo.22294858
The concept DOI above resolves to the latest archived SXS version. Cite the version-specific DOI recorded on Zenodo when exact-release identification is required.
Also cite the relevant mission archives, catalogs, and scientific software—including Lightkurve, Astroquery, and batman—when their data or methods are used.
Creator, affiliation, and funding
SXS was created and developed by Rasya Andrean under Science Experimental Technologies. Visit the project website for documentation.
The project was independently funded by Rasya Andrean and Urus Foundation.
For research collaboration, commercial licensing, or royalty administration, contact scix.official@gmail.com.
Contributing
Focused bug reports, reproducibility improvements, and scientifically justified pull requests are welcome. Read CONTRIBUTING.md and the Code of Conduct before contributing. Contributions retain their repository-recorded credit but do not remove the original creator attribution or alter the project license.
New users can follow the independent testing protocol and report installation or usability problems through the dedicated issue template.
License and commercial use
Current revisions are distributed under the SXS Source-Available Commercial License 1.0. This is a source-available license, not an OSI-approved open-source license.
- Public projects, deployments, and outputs materially using SXS must credit Rasya Andrean and Science Experimental Technologies.
- Academic and technical publications must use the release citation in CITATION.cff.
- Commercial use requires registration, quarterly reporting, and a 10% royalty on Covered Revenue, unless a separate signed agreement applies.
- Award or competition submissions materially enabled by SXS must provide the required acknowledgment where applicable rules permit.
See COMMERCIAL_USE.md for the practical process and NOTICE for the required attribution. The full LICENSE controls if any summary differs.
The tagged v1.0.0 release was previously distributed under MIT. Rights already granted with copies of that release are not retroactively withdrawn; the current license governs revisions carrying it. Obtain qualified legal review before relying on custom license terms for material commercial activity.
Metadata
Release files for scix-exoplanet-search 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scix_exoplanet_search-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / scix_exoplanet_search-1.4.0-py3-none-any.whl
| Download URL | scix_exoplanet_search-1.4.0-py3-none-any.whl |
|---|---|
| Size | 152.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7bceb7953528f00768ff418bd5c183f4df690cb14df1bbca4d254d03184d7ddc
|
|
BLAKE2b-256 checksum How to use checksums |
66a64a1d187274363653193151290da706da154c303f9eb7973d7b48284a6fcb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency log