CRT splits one question into algebraically independent channels. Z/21 = Z/3 x Z/7: two independent test channels. The evidence tuple: per-channel p-values plus R-squared reconstruction. The data's index set determines the test design. No parameters. No model fitting.
Kyte-Doolittle hydrophobicity scale for 20 amino acids + Stop, indexed 0-20 alphabetically. Z/21 = Z/3 x Z/7 gives each index two independent coordinates: mod-3 channel and mod-7 channel. Groups are equal-sized: 21/3 = 7 per mod-3 group, 21/7 = 3 per mod-7 group.
| Index | AA | Hydro | mod 3 | mod 7 |
|---|---|---|---|---|
| 0 | A | +1.8 | 0 | 0 |
| 1 | C | +2.5 | 1 | 1 |
| 2 | D | -3.5 | 2 | 2 |
| 3 | E | -3.5 | 0 | 3 |
| 4 | F | +2.8 | 1 | 4 |
| 5 | G | -0.4 | 2 | 5 |
| 6 | H | -3.2 | 0 | 6 |
| 7 | I | +4.5 | 1 | 0 |
| 8 | K | -3.9 | 2 | 1 |
| 9 | L | +3.8 | 0 | 2 |
| 10 | M | +1.9 | 1 | 3 |
| 11 | N | -3.5 | 2 | 4 |
| 12 | P | -1.6 | 0 | 5 |
| 13 | Q | -3.5 | 1 | 6 |
| 14 | R | -4.5 | 2 | 0 |
| 15 | S | -0.8 | 0 | 1 |
| 16 | T | -0.7 | 1 | 2 |
| 17 | V | +4.2 | 2 | 3 |
| 18 | W | -0.9 | 0 | 4 |
| 19 | Y | -1.3 | 1 | 5 |
| 20 | * | +0.0 | 2 | 6 |
500 random permutations. For each, shuffle hydrophobicity values across the 21 indices, compute H for mod-3 and mod-7 groupings. Count how many exceed the observed values. Try different seeds to verify stability.
Seed:
The acid test: generate data WITH known channel structure, and WITHOUT. CRT should detect the first and miss the second. Three scenarios per run: (1) signal in mod-3 channel only, (2) signal in mod-7 channel only, (3) pure noise. 20 trials each, 50 permutations per trial.
Seed:
How strong must a signal be before CRT detects it? Sweep signal strength from 0 (noise) to 30 (strong). At each level, inject signal into the mod-3 channel only and run 15 trials. The S-shaped power curve shows the transition from chance (~5%) to reliable detection (~100%). The non-signal channel (mod-7) acts as a built-in negative control.
Seed:
Enter 21 comma-separated integers. The CRT test decomposes your data into Z/3 x Z/7 channels and runs the same permutation analysis. The default values are the amino acid hydrophobicity data above.
21 values (comma-separated):
The traditional approach tests one correlation (eigenvalue vs hydrophobicity, r=0.409, p=0.073 after investigation). The CRT approach enriches this with a structured evidence tuple: per-channel p-values reveal WHICH algebraic axis carries the signal, and R-squared measures how much the decomposition explains.
The evidence tuple provides structured information beyond a single p-value. Per-channel p-values show which channels detect the signal. R-squared above the null baseline (37% for Z/21) shows genuine explanatory power beyond what grouping alone provides. The joint p-value handles multiplicity directly: it measures the fraction of permutations where ALL channels exceed simultaneously.
CAVEAT: The amino acid indexing is alphabetical by 1-letter code. This is one possible ring embedding. Other orderings (molecular weight, codon position) give different channel assignments. The method works for ANY embedding -- the question is which reveals the most structure.
The power curve shows CRT's minimum detectable effect size empirically. Channel independence means each non-signal channel is a free negative control -- no separate control group needed. This structural advantage grows with the number of CRT channels.
Source code · Public domain (CC0)
.ax source compiled to WASM via self-hosting compiler. Zero HTML authored.