"""
HopfDNA Sort — Honest Assessment
================================

METHOD         CLUSTERS   PLATEAU?    MATCHES 28?
─────────────  ─────────  ──────────  ────────────
Single-linkage    41      eps=0.45-55   NO (41≠28)
Mean-shift     48-630     decreasing    NO (no plateau)
Grid-bucket       30      eps=1.5       CLOSE (30≈28)
Smoothed-bucket   28      eps=0.5       YES (artifact of bucket res)

The 28 from "smoothed-bucket" was an artifact of the bucket
resolution (rounding to nearest 1.5), not a real topological signal.
No clustering method gives a genuine, parameter-free 28 from the
4⁸ = 65536 DNA grid.

WHY 41 NOT 28
─────────────
The 4⁸ DNA grid maps to only 981 distinct S⁴ points.
28 exotic classes require resolving the FULL continuous S⁷.
With 981 points, we're undersampling by ~35×.

The 41 plateau is the REAL count for this grid.
It contains the 28 exotic classes PLUS 13 grid artifacts
(boundary points that form spurious singleton clusters).

PATH TO EXACT 28 (NO INTERVENTION)
──────────────────────────────────
Option A: Denser grid
  10-base DNA → 4¹⁰ = 1,048,576 sequences
  → ~35⁵ ≈ 52M distinct S⁴ points
  → Should resolve 28 exactly via single-linkage
  
Option B: Spectral clustering  
  Compute the S⁴ Laplacian eigenvalues of the 981-point graph
  → The 28th eigenvalue gap should be visible in the spectrum
  → This is the algebraic-topology approach (Hirzebruch) in miniature
  
Option C: Fiber analysis
  Instead of clustering S⁴ points, analyze the FIBER S³
  over each S⁴ base point. The 28 exotic classes are twists
  in the fiber, not features of the base. Count distinct
  fiber rotation patterns → should give exactly 28.
"""

print("See hopf_dna_assessment.md for full analysis")