Planck-era machine-learning and classical candidate screening for localized bubble-collision signatures in the Cosmic Microwave Background.
- This repository implements a candidate-screening front end, not a cosmological detection claim.
- It does not compute a Feeney-style Bayesian evidence ratio, a posterior over collision parameters, or a constraint on the expected number of detectable collisions.
- Paper-facing wording guardrails live in
docs/manuscript_framing_candidate_screening.md. - Signal amplitudes are dimensionless fractional temperature modulations
(
Delta T / T); stored patch tensors are CMB anisotropies in Kelvin. - Current science artifacts use
Nside=256,256 x 256gnomonic patches, Planck5 arcminbeam handling,synfast(pixwin=True), and mixed contained/truncated signal geometry. - All operating thresholds are screening thresholds. They are valid only for the calibration distribution named with the result.
The active claim is deliberately narrow:
A reproducible Planck-era candidate-screening method for localized bubble-collision signatures, intended to accelerate or supplement classical/Bayesian follow-up.
Framing rule for any manuscript or talk built from this repo: describe outputs as candidate screening, sensitivity calibration, candidate-volume accounting, or screening-derived handoff products. Do not describe the current artifacts as standalone cosmological detection evidence.
Use remediated_v1 as the current artifact family. Treat training_v4,
validation_stratified_v1, old matched_template reports, and the old
best-branch 8 / 35 heatmap as historical development artifacts.
Primary products:
| product | rows | role |
|---|---|---|
data/remediated_v1/training_data.h5 |
20000 |
train/calibration/test source, split 16000/2000/2000 |
data/remediated_v1/calibration_data.h5 |
2000 |
threshold calibration copy |
data/remediated_v1/test_data.h5 |
2000 |
held-out final synthetic test copy |
data/remediated_v1/null_controls_{map}_{mask}.h5 |
16000 each |
real-map null controls for smica,nilc,sevem,commander and mask090,mask050 |
The current generator/audit contract is:
- Feeney-style linear-cap disc template with full-temperature modulation
(
feeney2011_full_temperature_modulation). McEwen/OSS matched-filter benchmarks use the first-order additive approximation and must record that convention separately. mask_threshold = 0.9for canonical science products.mask_threshold = 0.5null controls retained for deployment stress tests.- Planck cleaned-map beam modeled as
5 arcmin. - Beam/pixel-window transfer handled in harmonic space for current synthetic products.
- Geometry and harmonic work use
float64; stored tensors usefloat32after finite/range checks. - Splits are train/calibration/test and coordinate-cluster/CAMB-realization disjoint.
Run the lightweight artifact-flow audit:
python scripts/audit_remediated_flow.pyRun the broader quality gate:
python scripts/run_quality_gates.py \
--data-h5 data/remediated_v1/training_data.h5 \
--skip-train-dry-runWrite a compact reproducibility manifest:
python scripts/create_reproducibility_manifest.pyHeld-out remediated synthetic test, thresholds selected on the calibration split:
| method | score mode | threshold | precision | recall | FPR | F1 |
|---|---|---|---|---|---|---|
| ImageNet EfficientNet-B0 U-Net | component_score |
0.96 |
0.888 |
0.396 |
0.050 |
0.548 |
| random-init EfficientNet-B0 U-Net | component_score |
0.99 |
0.819 |
0.362 |
0.080 |
0.502 |
circular_template_screen |
fixed from calibration | 65.0217 |
0.921 |
0.267 |
0.023 |
0.414 |
The preselected ImageNet-vs-circular_template_screen sensitivity heatmap uses
paired bootstrap tests with Holm and Benjamini-Hochberg correction. It reports:
- ImageNet wins
30 / 35amplitude-radius cells. 14cells are Holm-significant at family-wise alpha0.05.17cells are BH-significant at FDR0.05.
This replaces the historical post-hoc best-branch 8 / 35 number.
The remediated sensitivity grid now has an empirical signal-scale diagnostic:
python scripts/phase3_noise_floor_analysis.pyCurrent output:
- Median negative-patch RMS is about
99.8 uK. - The configured instrument white-noise term is only about
2.3 uK/pixel, so CMB structure, foreground/domain transfer, and mask effects dominate. - For
A = 1e-6, support RMS is only about1.6-2.1 uK, or0.016-0.021of the empirical CMB patch RMS. - For
A = 5e-6, support RMS is about7.8-10.4 uK, still below0.11of the empirical CMB patch RMS.
Interpretation: low-amplitude recall is expected to remain poor for patch-level screeners unless the next stage uses stronger priors, full covariance weighting, or Bayesian/template-fit likelihoods. This is a diagnostic, not an impossibility proof; a real bound needs the full CMB covariance and foreground residual model.
The ideal harmonic-space Feeney matched-filter SNR diagnostic is:
python scripts/phase3_matched_filter_snr_curve.pyDefault output:
runs/phase3_unet/remediated_v1_matched_filter_snr/matched_filter_snr_report.jsonruns/phase3_unet/remediated_v1_matched_filter_snr/matched_filter_snr_report.mdruns/phase3_unet/remediated_v1_matched_filter_snr/matched_filter_snr_cells.csvruns/phase3_unet/remediated_v1_matched_filter_snr/matched_filter_snr_profiles.csvruns/phase3_unet/remediated_v1_matched_filter_snr/matched_filter_snr_curves.png
The calculation uses the McEwen/OSS first-order additive template convention,
CAMB TT covariance, the repo beam/noise assumptions, and a rough f_sky scaling.
It does not close the masked-sky Wiener/SMHW same-grid benchmark by itself.
Current results show A <= 2e-6 is low-SNR under the fsky proxy, while several
A >= 1e-5 cells have high ideal matched-filter recall but low current ML
recall. Those higher-SNR cells are algorithmic targets, not physics-impossibility
claims.
The remediated sensitivity grid now has a source-backed post-processing calculator for detectable-collision upper limits:
python scripts/phase3_upper_limit_calculator.pyDefault output:
runs/phase3_unet/remediated_v1_upper_limits/upper_limits.jsonruns/phase3_unet/remediated_v1_upper_limits/upper_limits.mdruns/phase3_unet/remediated_v1_upper_limits/upper_limits.csvruns/phase3_unet/remediated_v1_upper_limits/upper_limit_cell_weights.csvruns/phase3_unet/remediated_v1_upper_limits/upper_limits.png
Under the default log_uniform amplitude prior and sin_theta radius prior,
with zero credible detections at 95% confidence:
| method | mean efficiency | exposure | Nbar_s^95 |
|---|---|---|---|
centered_disc |
0.2201 |
0.1699 |
17.6292 |
circular_template_screen |
0.3189 |
0.2462 |
12.1677 |
imagenet_b64_aux |
0.3780 |
0.2918 |
10.2674 |
random_b64_aux |
0.3388 |
0.2615 |
11.4544 |
This is an efficiency-weighted Poisson upper limit on the detectable-collision
rate parameter Nbar_s. It uses the no-blob form from Feeney et al. Appendix A
and can optionally convert to lambda H_F^-4 using Feeney et al. Eq. 1 when
Omega_k and H_F/H_I are supplied. It reports lambda/B only when an
explicit model-specific exposure factor is supplied; no universal lambda/B
mapping is hard-coded.
Interpretation guardrail: this is a screening-derived detectable-collision upper-limit proxy built from the synthetic efficiency table. It is not a masked-sky Bayesian evidence result and should not be framed as a competitive cosmological constraint.
Batch 6 reran the full-sky tile audit at Nside=32, giving about 11200
patches per cleaned map and reducing FPR-calibration uncertainty to about
0.003.
Tile-recalibrated mixed recall at FPR 0.08:
| map | v6_only |
gbt_6 |
gbt_14 |
gbt_6 - v6 |
|---|---|---|---|---|
| SMICA | 0.347 |
0.337 |
0.329 |
-0.010 |
| NILC | 0.296 |
0.307 |
0.320 |
+0.011 |
| SEVEM | 0.173 |
0.237 |
0.192 |
+0.065 |
| Commander | 0.161 |
0.230 |
0.193 |
+0.070 |
| mean | 0.244 |
0.278 |
0.258 |
+0.034 |
Interpretation:
gbt_6survives as a cross-map score-ensemble lever.- On SMICA alone,
gbt_6is marginally worse thanv6_only. gbt_14is archived; its geometry features overfit the clean-null distribution and do not survive deployment calibration.- Per-map calibration is mandatory. Do not quote cross-map means as SMICA claims.
The current full-sky candidate-volume table is generated from cached Batch 6 tile features:
python scripts/phase3_deployment_burden_table.pyDefault output:
runs/phase3_unet/remediated_v1_deployment_burden/deployment_burden.jsonruns/phase3_unet/remediated_v1_deployment_burden/deployment_burden.mdruns/phase3_unet/remediated_v1_deployment_burden/deployment_patch_burden.csvruns/phase3_unet/remediated_v1_deployment_burden/deployment_cluster_burden.csv
Tile-recalibrated patch burden is about 896 eligible tile candidates per map
at FPR 0.08, by construction. At 15 deg greedy peak clustering, mean
clustered burden across the four cleaned maps is:
| method | mean patch candidates | mean recall | mean clusters at 15 deg |
|---|---|---|---|
v6_only |
896.25 |
0.2440 |
55.00 |
gbt_6 |
897.75 |
0.2779 |
69.25 |
gbt_14 |
915.50 |
0.2583 |
68.50 |
Interpretation: gbt_6 remains the best cross-map recall policy after
deployment calibration, but it carries a higher clustered follow-up burden than
v6_only. The shipped clean-null thresholds are retained only as drift
diagnostics; on SEVEM and Commander they produce thousands of patch candidates
and must not be used as deployment thresholds.
The current recall-vs-FP policy search over existing remediated scores is:
python scripts/phase3_policy_pareto_search.pyDefault output:
runs/phase3_unet/remediated_v1_policy_pareto/policy_pareto.jsonruns/phase3_unet/remediated_v1_policy_pareto/policy_pareto.mdruns/phase3_unet/remediated_v1_policy_pareto/policy_pareto_top.csv
Best diagnostic policies under selected constraints:
| constraints | best policy | CAMB FPR | real FPR | CAMB recall | real recall | gain vs exact single |
|---|---|---|---|---|---|---|
CAMB <=0.05, real <=0.02 |
2-of-3(random>=0.987007, imagenet>=0.947194, circular>=68.79) |
0.0498 |
0.0200 |
0.3288 |
0.2520 |
+0.0289 |
CAMB <=0.05, real <=0.05 |
random>=0.994006 OR imagenet>=0.998799 |
0.0398 |
0.0500 |
0.3163 |
0.2671 |
+0.0441 |
CAMB <=0.08, real <=0.08 |
2-of-3(random>=0.946233, imagenet>=0.947194, circular>=75.0896) |
0.0706 |
0.0750 |
0.3596 |
0.3028 |
+0.0490 |
Interpretation: there are composite-score policies that recover more recall than exact-threshold single-score choices under the same diagnostic FPR budgets. They are not deployment thresholds by themselves.
The Policy-Pareto winners have now been stress-tested two ways:
python scripts/phase3_remediated_null_policy_audit.py
python scripts/phase3_remediated_policy_tile_audit.py
python scripts/phase3_tile_constrained_policy_search.py
python scripts/phase3_emit_tile_constrained_candidates.py
python scripts/phase3_calibrate_candidate_scores.pyDefault outputs:
runs/phase3_unet/remediated_v1_null_policy_audit/null_policy_audit.jsonruns/phase3_unet/remediated_v1_null_policy_audit/null_policy_audit.mdruns/phase3_unet/remediated_v1_policy_tile_audit/policy_tile_audit.jsonruns/phase3_unet/remediated_v1_policy_tile_audit/policy_tile_audit.mdruns/phase3_unet/remediated_v1_deployment_policy_decision/deployment_policy_decision.jsonruns/phase3_unet/remediated_v1_deployment_policy_decision/deployment_policy_decision.mdruns/phase3_unet/remediated_v1_tile_constrained_policy_search/tile_constrained_policy_search.jsonruns/phase3_unet/remediated_v1_tile_constrained_policy_search/tile_constrained_policy_search.mdruns/phase3_unet/remediated_v1_tile_constrained_candidates/candidate_emission_summary.jsonruns/phase3_unet/remediated_v1_tile_constrained_candidates/candidate_records.jsonlruns/phase3_unet/remediated_v1_tile_constrained_candidates/cluster_representatives_15deg.jsonlruns/phase3_unet/remediated_v1_projection_clustering_audit/projection_clustering_audit.mdruns/phase3_unet/remediated_v1_template_fit_handoff/template_fit_summary.jsonruns/phase3_unet/remediated_v1_candidate_score_calibration/candidate_score_calibration.jsonruns/phase3_unet/remediated_v1_candidate_score_calibration/calibrated_candidates.jsonl
On 5976 held-out real-map null-control patches, pooled FPRs remain at a few
percent:
| policy budget | recall diag | null FP | null FPR | 95% CI |
|---|---|---|---|---|
CAMB <=0.05, real <=0.02 |
0.2520 |
168 / 5976 |
0.0281 |
[0.0241, 0.0326] |
CAMB <=0.05, real <=0.05 |
0.2671 |
147 / 5976 |
0.0246 |
[0.0208, 0.0288] |
CAMB <=0.08, real <=0.05 |
0.2778 |
78 / 5976 |
0.0131 |
[0.0103, 0.0163] |
CAMB <=0.08, real <=0.08 |
0.3028 |
205 / 5976 |
0.0343 |
[0.0298, 0.0392] |
The full-sky overlapping-tile audit is more restrictive. At 15 deg greedy
peak clustering, selected cluster burdens are:
| map | 0.05/0.02 |
0.05/0.05 |
0.08/0.05 |
0.08/0.08 |
|---|---|---|---|---|
| SMICA | 41 |
41 |
46 |
53 |
| NILC | 34 |
28 |
33 |
39 |
| SEVEM | 64 |
68 |
64 |
72 |
| Commander | 82 |
101 |
71 |
83 |
Interpretation: the larger null-control split does not reproduce the extreme
Commander/SEVEM full-sky tile burden. Do not promote the high-recall
Policy-Pareto winners until candidate-volume criteria are chosen jointly with
cross-map tile burden. In particular, the 0.05/0.05 pair-OR policy has low
SMICA/NILC burden but too many Commander clusters.
The default deployment-decision rule uses 15 deg clustering, at most 70
clusters on every cleaned map, at most 0.15 trigger fraction on every map,
and pooled held-out null-control FPR upper CI at most 0.04. Under that rule,
0 / 5 composite policies are promotable. The highest-recall row
(0.08/0.08) reaches recall 0.3028, but has 83 Commander clusters and
Commander trigger fraction 0.1772, so it remains a recall-boost candidate
only.
The broader tile-constrained search uses the same default burden rule but searches beyond the original Policy-Pareto winners. Current best feasible row:
| policy | real recall | gain vs feasible single | real FPR | pooled null FPR CI high | max clusters | max trigger fraction |
|---|---|---|---|---|---|---|
2-of-3(random>=0.999983, imagenet>=0.983177, circular>=51.0957) |
0.2620 |
+0.0403 |
0.0650 |
0.0290 |
62 Commander |
0.0899 SEVEM |
The best feasible single-score baseline in that same constrained search is
circular_template_screen >= 73.3128 with recall 0.2216. The exhaustive
search evaluated all 9582 policies that passed the cheap FPR, pooled-null,
and trigger-fraction filters; no cluster-evaluation cap is active in the
current report. This is the current deployment-safe composite candidate, not a
cosmological detection statistic.
The candidate emitter applies that frozen policy to cached full-sky tile scores
on the canonical science footprint mask_fraction >= 0.9. Current emitted
volume:
| map | eligible tiles | tile candidates | eligible trigger frac | cluster reps |
|---|---|---|---|---|
| SMICA | 5298 |
41 |
0.0077 |
9 |
| NILC | 5298 |
19 |
0.0036 |
5 |
| SEVEM | 5298 |
17 |
0.0032 |
5 |
| Commander | 5298 |
25 |
0.0047 |
5 |
Use cluster_representatives_15deg.jsonl for first-pass HM sign-flip or
template-fit follow-up; candidate_records.jsonl preserves all overlapping
tile triggers for provenance.
Projection/clustering systematics for that frozen candidate set live in
runs/phase3_unet/remediated_v1_projection_clustering_audit/.
Candidate score calibration uses the real-map null-control calibration split, not the held-out test split:
python scripts/phase3_remediated_null_policy_audit.py \
--split calibration \
--output-dir runs/phase3_unet/remediated_v1_null_policy_calibration
python scripts/phase3_calibrate_candidate_scores.pyCurrent calibrated candidate set: 24 cluster representatives scored against
5768 pooled calibration-null margins. The most extreme representatives have
plus-one empirical pooled null-survival p = 0.000173 and BH q-value
0.000693. These are screening-tail scores for follow-up prioritization, not
global detection probabilities.
Corrected template-fit and Bayesian handoff artifacts now live in:
runs/phase3_unet/remediated_v1_template_fit_handoff/runs/phase3_unet/remediated_v1_bayesian_template_handoff/
These package deterministic local Feeney-template seeds plus projection-aware follow-up guardrails. They are handoff artifacts, not Bayesian evidence.
The legacy two-channel v7 U-Net branch now has a full-sky tile-burden audit:
python scripts/phase3_mf_channel_tile_audit.pyDefault output:
runs/phase3_unet/remediated_v1_mf_channel_tile_audit/mf_channel_tile_audit.jsonruns/phase3_unet/remediated_v1_mf_channel_tile_audit/mf_channel_tile_audit.mdruns/phase3_unet/remediated_v1_mf_channel_tile_audit/mf_channel_tile_audit.csv
At the SMICA-recalibrated model threshold for nominal FPR 0.05, the legacy
checkpoint reaches diagnostic real-SMICA recall 0.3526 at FPR 0.0440.
The hard regimes remain difficult: recall is 0.0466 for A <= 2e-6,
0.1724 for 5e-6 <= A <= 2e-5, and 0.9288 for A >= 5e-5.
Canonical-footprint full-sky burden is manageable but larger than the frozen tile-constrained composite:
| map | eligible tiles | eligible triggers | eligible trigger frac | clusters |
|---|---|---|---|---|
| SMICA | 5298 |
285 |
0.0538 |
20 |
| NILC | 5298 |
307 |
0.0579 |
21 |
| SEVEM | 5298 |
290 |
0.0547 |
22 |
| Commander | 5298 |
422 |
0.0797 |
23 |
Do not promote this checkpoint as current science. It was trained on the older
training_v4 feature contract with a legacy 15 arcmin circular-template
response channel. The result is a strong engineering target for the next
remediated-v1 retrain: cache features/circular_template_response with the
current 5 arcmin beam contract, retrain a two-channel U-Net, then rerun the
same real-null, tile-burden, candidate-calibration, and HM preflight gates.
Historical matched_template reports are not true Wiener matched filters. They
are now named circular_template_screen.
Current naming contract:
circular_template_screen: patch-space circular disc/ring correlation screen; useful as a simple classical comparator and candidate sanity check.wiener_feeney_matched_filter: harmonic-space Feeney template with beam, HEALPix pixel-window, and CMB/noise inverse-covariance weighting.smhw_screen: spherical Mexican-hat / scale-space context screen.
The true Wiener/SMHW full-sky score-map implementation lives in
scripts/phase3_classical_filters.py. Any headline ML-vs-classical claim must
state exactly which comparator was used.
The same-grid true-classical status report is:
python scripts/phase3_classical_same_grid_status.pyA small, non-claim pilot that exercises the full-sky benchmark path is:
python scripts/phase3_same_grid_fullsky_benchmark.py \
--max-rows 64 \
--skip-mlCurrent output is complete for the stratified same-grid manifest in
runs/phase3_unet/remediated_v1_same_grid_fullsky_manifest/.
Current same-grid summary on that fixed manifest:
- mean recall: Wiener
0.3841, ImageNet U-Net0.3517, random-init U-Net0.2994, SMHW0.2734 - ImageNet beats Wiener in
17 / 35raw cells, loses in16 / 35, ties in2 - under non-overlapping exact 95% CIs, ImageNet is better in
7cells and worse in8
Interpretation: the true Wiener/Feeney matched filter is the strongest average
screener on the closed same-grid benchmark, but the ImageNet U-Net keeps
localized wins in selected amplitude/radius cells. That supports a
complementary-screening claim, not uniform ML superiority over the true
Wiener/SMHW comparators. For remediated synthetic products, keep
--pixel-window-policy synfast_pixwin_true aligned with
synfast(pixwin=True).
For the benchmark-design fork, generators expose --injection-convention.
Use feeney2011_full_temperature_modulation for remediated products and
mcewen2012_first_order_additive for explicit additive full-sky benchmark
products. If Feeney-modulated products are scored with additive filters instead,
quote the phase2_physics_checks.py cross-term report as a direction-specific
approximation check; do not treat it as a universal bound.
- Weak-family recall remains unsolved. The matched-filter SNR report supports a
CMB-confusion explanation for
A <= 2e-6, but it also exposes algorithmic headroom in higher-SNR cells where ideal recall is high and ML recall is low. - The noise-floor diagnostic is still useful as a patch-RMS scale check, but it should not be phrased as the central physical limit without the matched-filter and same-grid classical results.
- The real-SMICA injection diagnostic still has material FPR inflation for the
ImageNet branch (
0.372recall /0.185FPR), so it is a transfer diagnostic, not a deployment result. - The same-grid Wiener/SMHW benchmark is now closed on the stratified manifest and shows Wiener as the strongest average screener. What remains open is how to use that result in deployment: score fusion, the now-completed true-Wiener two-stream branch, and projection-robust follow-up still need final policy decisions.
- The legacy matched-filter-channel checkpoint improves diagnostic recall, but
is not promoted because it was trained before
remediated_v1. It now has a tile-burden audit and should be replaced by a remediated two-channel retrain before paper-facing claims. - Half-mission sign-flip calibration is implemented as a Phase 5 downstream
CLI. The preflight report validates the frozen
24cluster representatives, policy slug, model checkpoints, and common mask, but is currentlyblockedbecause HM1/HM2 cleaned-map paths have not been provided. - There is no Bayesian parameter inference or model comparison against LambdaCDM.
- Candidate-volume accounting exists, but the paper-facing deployment section still needs a final cluster radius and score-calibration convention.
- Decide how to use the completed remediated true-Wiener two-stream branch in
the active comparison set.
Status update:
the corrected full-cache rerun is complete.
true_wiener_ftraises mean sensitivity from0.34875to0.36839overall (+0.01964), helps moderate/high-amplitude cells (+0.03881mean delta) and large-radius cells (+0.02226), but still hurts the hardest low-amplitude subset (-0.00592). Treat it as a promising secondary branch, not a default replacement, until deployment burden or score-fusion tests are closed. - Select/provide Planck HM1/HM2 component-separated map paths, rerun the Phase 5 preflight, then run HM sign-flip calibration on the frozen cluster representatives.
- Choose and justify the paper-facing cluster radius for deployment burden
using the completed projection/clustering audit, rather than the old fixed
15 degconvention by default. - Promote the deterministic template-fit and Bayesian handoff into the
follow-up narrative for the frozen
24cluster representatives, then add native-sphere or projection-robust follow-up for the17projection-caution candidates. - Prioritize real-map null backgrounds over another CAMB-only branch.
- Feed screened candidates into template fitting, Bayesian follow-up, and
scripts/phase5_half_mission_signflip_null.pywhen HM inputs are available.
Generate current training data:
python scripts/phase2_generate_training.py \
--num-samples 20000 \
--pool-size 16000 \
--num-cmb-realizations 384 \
--geometry-mode mixed \
--truncated-positive-fraction 0.35 \
--mask-threshold 0.9 \
--beam-fwhm-arcmin 5.0 \
--output-dir data/remediated_v1Audit the dataset:
python scripts/phase2_audit_dataset.py \
--data-h5 data/remediated_v1/training_data.h5 \
--output-json data/remediated_v1/audit_report.jsonEvaluate a trained branch on the held-out test split:
python scripts/phase3_evaluate_run.py \
--run-dir runs/phase3_unet/remediated_v1_unet_imagenet_b64_aux \
--checkpoint best \
--split test \
--score-mode component_score \
--image-rule connected_componentRebuild the preselected heatmap from existing remediated scores:
python scripts/phase3_ml_gain_heatmap.py \
--analysis-mode preselected \
--primary-method imagenet_b64_aux \
--bootstrap-resamples 2000Update reproducibility and noise-floor reports:
python scripts/create_reproducibility_manifest.py
python scripts/phase3_noise_floor_analysis.py
python scripts/phase3_matched_filter_snr_curve.py
python scripts/phase3_upper_limit_calculator.py
python scripts/phase3_deployment_burden_table.py
python scripts/phase3_policy_pareto_search.py
python scripts/phase3_remediated_null_policy_audit.py
python scripts/phase3_remediated_policy_tile_audit.py
python scripts/phase3_deployment_policy_decision.py
python scripts/phase3_tile_constrained_policy_search.py
python scripts/phase3_emit_tile_constrained_candidates.py
python scripts/phase3_calibrate_candidate_scores.py
python scripts/phase3_classical_same_grid_status.py
python scripts/phase5_half_mission_signflip_null.py \
--preflight-only \
--candidate-jsonl runs/phase3_unet/remediated_v1_tile_constrained_candidates/cluster_representatives_15deg.jsonlRun the Nside=32 deployment audit:
bash scripts/batch6_overnight_orchestrator.sh
python scripts/batch6_overnight_analysis.pyscripts/phase_config.py: canonical physical constants and remediated defaults.scripts/phase2_signal_model.py: Feeney-style signal template, full-temperature modulation, and first-order additive benchmark utilities.scripts/phase2_observing_model.py: CAMB/synfast observing-model utilities.scripts/phase2_generate_training.py: current synthetic generator.scripts/phase2_extract_smica_null_controls.py: per-map real-null extraction.scripts/phase2_audit_dataset.py: split/provenance/data sanity checks.scripts/phase3_train_unet.py: U-Net training harness.scripts/phase3_evaluate_run.py: primary held-out evaluator.scripts/phase3_template_baseline.py: circular-template patch baseline.scripts/phase3_classical_filters.py: full-sky Wiener Feeney and SMHW classical filters.scripts/phase3_sensitivity_curve.py: remediated sensitivity grid.scripts/phase3_ml_gain_heatmap.py: paired ML-vs-circular-template heatmap.scripts/phase3_noise_floor_analysis.py: empirical CMB-confusion diagnostic.scripts/phase3_matched_filter_snr_curve.py: ideal harmonic-space Feeney matched-filter SNR diagnostic under repo beam/noise/CAMB assumptions.scripts/phase3_upper_limit_calculator.py: efficiency-weighted detectable-collision upper limits.scripts/phase3_deployment_burden_table.py: full-sky patch and clustered candidate-volume accounting from Batch 6 tile caches.scripts/phase3_policy_pareto_search.py: composite-policy recall-vs-FP search over existing remediated score caches.scripts/phase3_deployment_policy_decision.py: reproducible promotion/ rejection rule for composite policies.scripts/phase3_tile_constrained_policy_search.py: exhaustive constrained search for deployable composite policies.scripts/phase3_emit_tile_constrained_candidates.py: frozen full-sky candidate and cluster-representative emitter.scripts/phase3_calibrate_candidate_scores.py: calibration-split empirical null-survival scores for emitted representatives.scripts/phase3_classical_same_grid_status.py: guard report for true Wiener/SMHW same-grid benchmark claims.scripts/phase3_same_grid_fullsky_benchmark.py: guarded full-sky same-grid pilot/production driver for Wiener/SMHW and optional ML scoring.scripts/phase3_remediated_null_policy_audit.py: larger held-out real-null audit for composite policies.scripts/phase3_remediated_policy_tile_audit.py: full-sky overlapping-tile burden audit for composite policies.scripts/phase3_fullsky_tile.py: full-sky tile audit.scripts/phase5_half_mission_signflip_null.py: downstream HM1/HM2 sign-flip null calibration and preflight checks for emitted candidates.scripts/audit_remediated_flow.py: lightweight artifact graph audit.scripts/create_reproducibility_manifest.py: compact source/artifact manifest.work/: historical decision notes and batch reports.docs/evaluation_inventory.md: active/deferred/historical evaluation map.docs/phase5_half_mission_signflip_null.md: HM sign-flip null design and usage notes.
Generated datasets, Planck FITS maps, checkpoints, score caches, and large run artifacts are local products and should remain out of git unless explicitly promoted as compact metadata.
- Feeney, Johnson, Mortlock, and Peiris. First Observational Tests of Eternal Inflation. arXiv:1012.1995.
- Feeney, Johnson, Mortlock, and Peiris. First Observational Tests of Eternal Inflation: Analysis Methods and WMAP 7-Year Results. arXiv:1012.3667.
- McEwen, Feeney, Johnson, and Peiris. Optimal filters for detecting cosmic bubble collisions. arXiv:1202.2861.
- HEALPix: Gorski et al., Astrophysical Journal, 2005.
- CAMB: Lewis, Challinor, and Lasenby, Astrophysical Journal, 2000.
- Planck Collaboration. Planck 2018 results. IV. Diffuse component separation. Astronomy & Astrophysics, 2020.
MIT
William Starks
Gus Marcum