The Theory of Persistence

Plain · ongoing research

When PT touches the living

DNA, RNA, proteins. Three biopolymers, one single bifurcation.

PT predicts that what makes a structure stable and readable — persistence — is governed by a fixed cascade: three active channels, indexed by the primes 3, 5, 7. If this prediction is correct, it should not be confined to atoms or particles. The living too is made of stable and readable structures — folded proteins, folded RNA, double-helix DNA. The same cascade should appear in it.

Three research modules test this transposition: PT_PROTEIN on proteins (allostery, Ramachandran torus), PT_RNA on RNA (modular asymmetry, sequence scale-up), and a future PT_DNA on the genetic code. This page presents what has been tested so far.

Status : ongoing research. The PT_PROTEIN and PT_RNA modules are not yet published. Private code, LaTeX draft in preparation. This page documents the programme’s ambition, the results already obtained, and their limits.

Plain

Three reasons to test PT on the living

Molecular biology is paradoxically an excellent testing ground for PT — precisely because it has no obvious causal link with particle physics. Any concordance found there is non-trivial.

Biology combines discrete and continuous

4 nucleotide bases, 20 amino acids, 64 codons: discrete combinatorics. But folding, thermal fluctuation, allostery: continuous dynamics. PT predicts that the q⁺/q⁻ bifurcation appears exactly in this duality.

Biopolymers have structural invariants

The Ramachandran torus (φ, ψ) for amino acids, the modular asymmetry A_m of RNA, the V₄ symmetry of the genetic code: all inherited discrete structures. PT predicts that they are indexed by the primes {3, 5, 7}.

Allostery = persistence signal

An allosteric protein transmits information over long distances along its chain. If PT is correct, this transport must follow the sequential cascade (T0 → T1 → CRT) — testable by shuffle of residues.

Standard

Three modules, one cascade

The programme breaks down into three independent modules, each targeting one biopolymer. The logic is shared: take the structural invariant of the polymer (Ramachandran torus for proteins, V₄ symmetry for RNA, genetic code for DNA), project it modularly, and test whether the q⁺/q⁻ signature appears in it.

PT_PROTEIN

Protein module

Private code, LaTeX draft in progress

Target: Allostery, Ramachandran torus, q⁺/q⁻ signature of α-helices and β-sheets

Method: Computation of modular projections on the 20 amino acids, comparison with observed basins (Lovell et al. 2003), shuffle test 1000× to exclude chance.

PT_RNA

RNA module

Private code, theorem A_m = 1 promoted [THM]

Target: Modular asymmetry A_m, Vienna peak L = 4, scale-up sequences 94 → 300 nt

Method: Enumeration over the Klein group V₄ (the 4 bases), computation of the thermal cosine cos_therm(p = 2, μ = 4), comparison with DSSR-strict structures.

PT_DNA

DNA module (in progress)

In preparation

Target: V₄ symmetry of the genetic code on codons, mod 3 statistics on triplets

Method: Mapping of the 64 codons on ℤ/3ℤ × V₄, test of forbidden mod 3 transitions on real genomes.

Standard

Six main results

The figures below are the internal audit balance from April 2026. None have yet been submitted to external review; all are reproducible in the private modules.

Universal q⁺/q⁻ bifurcation (3 biopolymers)

3/3 biopolymers

The q⁺/q⁻ bifurcation that PT predicts for the Standard Model is found in biopolymers: DNA (codon scale), RNA (base scale), proteins (amino acid scale). No regional parameter is fitted.

Status: Confirmed across 3 independent systems

Ramachandran torus — 20/20 amino acids

15/15 PASS

The 20 natural amino acids position themselves on the Ramachandran torus exactly as predicted by the PT modular projections. Validation test: 15/15 PASS on the secondary structure bins.

Status: Internally validated

A_m = 1 for RNA — derived theorem

correlation 0.745

The modular asymmetry A_m equals exactly 1 for RNA. Direct consequence of the CRT structure of the sieve applied to the 4 nucleotide bases (|V_4| = 4). Predicted Vienna peak L = 4.

Status: [THM] in the draft

Protein allostery — 1000-permutation shuffle test

p = 0/1000

Across 6 allosteric systems tested, the PT signal survives 6/6 permutation (shuffle) tests. p-value = 0/1000 over 1000 random permutations: signal not explainable by chance.

Status: 6/6 PASS

cos_therm — agreement at 90 ppm

90 ppm

The thermal cosine cos_therm(p = 2, μ = |V_4| = 4) predicted by PT agrees to 90 ppm with the direct structural measurement on DSSR-strict corpora.

Status: Remarkable agreement

RNA scale-up 94 → 300 nucleotides

F1 = 0.958 (DSSR-strict)

The predicted structure remains stable when increasing the length of RNA sequences. NC-2 Markov-1 6/6 PASS. No regional parameter to fit with length.

Status: Robust

Standard

Why PT touches the living

If PT is correct, the information carried by biopolymers is constrained by the same laws as those of the Standard Model, because it is read by the same arithmetic cascade. Three keys:

  • q⁺/q⁻ bifurcation. DNA, RNA, proteins: all carry both an interaction structure (vertex, q⁺) and a propagation structure (edge, q⁻). PT predicts the gap between the two; DSSR measurement confirms ~90 ppm on cos_therm.
  • V₄ symmetry. The 4 nucleotide bases form exactly the Klein four-group V₄. PT predicts |V_4| = 4 = μ for the nucleotide cascade. Vienna folding shows a peak at L = 4.
  • Ramachandran torus. The (φ, ψ) angles are holonomy angles in the PT sense — amino acids live on circles ℤ/pℤ projected onto the torus. 20/20 reconstruction without parameter.

It is not that biology "obeys" PT. It is that biopolymers, like the atom, are persistent informational structures: they exist because they satisfy the persistence conditions that PT describes mathematically.

Plain · limits

Four limits to keep in mind

Code not public

The PT_PROTEIN and PT_RNA modules are not open-source as of today. A collaboration request can give access to the code under agreement.

No complete [THM] bridge

Apart from the A_m = 1 theorem for RNA, the cascade PT → biopolymers transposition is an empirically validated analogy, not a rigorous bridge between PT and molecular biology.

Limited samples

The allostery tests have been carried out on 6 systems only. An extension to 50+ diverse systems is necessary to exclude any selection bias.

No physiological validation

PT predicts statistical invariants. It does not predict biological function (catalysis, signalling, etc.). These two levels must not be conflated.

Technical

Three reproduction scripts

The code of the PT_PROTEIN and PT_RNA modules is not yet public. While waiting for the preprint, here are the canonical scripts that these modules allow to run, with expected values. They serve to document exactly what is tested and how.

1. Verify the q⁺/q⁻ bifurcation on RNA

Computes q⁺ = 1 − 2/μ and q⁻ = e^(−1/μ) for μ = |V_4| = 4 (the 4 bases), then projects an RNA sequence on the two branches and compares with observed structures.

verify_rna_bifurcation.py $ python verify_rna_bifurcation.py
# verify_rna_bifurcation.py
# Verify the q⁺/q⁻ bifurcation on an RNA sequence

from pt_protein.bifurcation import compute_q_plus, compute_q_minus
from pt_protein.rna import load_sequence, modular_projection

seq = load_sequence("path/to/rna_sample.fasta")
mu = 4  # |V_4| = 4 for nucleotide bases

q_plus = compute_q_plus(mu)        # 1 - 2/μ
q_minus = compute_q_minus(mu)      # exp(-1/μ)
L = q_minus - q_plus               # latent heat

print(f"q⁺ = {q_plus:.6f}")        # 0.500000  (1 - 2/4)
print(f"q⁻ = {q_minus:.6f}")       # 0.778801  (e^(-1/4))
print(f"L  = {L:.6f}")             # 0.278801

proj_plus = modular_projection(seq, q_plus)
proj_minus = modular_projection(seq, q_minus)

from pt_protein.metrics import dssr_strict_f1
print(f"DSSR F1 = {dssr_strict_f1(proj_plus, proj_minus, seq):.3f}")
# expected: ~0.958 on the internal corpus

2. Permutation test on allostery

The crucial test to exclude coincidence: does the PT signal survive a shuffle of the protein's residues? Over 1000 permutations, p = 0/1000.

allostery_shuffle_test.py $ python allostery_shuffle_test.py
# allostery_shuffle_test.py
# Crucial test: does the PT signal survive a residue shuffle?

from pt_protein.allostery import compute_pt_signal, shuffle_residues
import numpy as np

protein_pdb = "1AVI.pdb"  # Avidin, known allosteric
n_perm = 1000

signal_real = compute_pt_signal(protein_pdb)
signals_shuffled = [
    compute_pt_signal(shuffle_residues(protein_pdb, seed=i))
    for i in range(n_perm)
]

p_value = np.mean(np.array(signals_shuffled) >= signal_real)
print(f"real signal : {signal_real:.4f}")
print(f"p-value     : {p_value:.4f}")    # expected: 0.0000 (0/1000)
print(f"verdict     : {'PASS' if p_value < 0.01 else 'FAIL'}")

3. Ramachandran torus from modular projections

Reconstruction of the Ramachandran torus (φ, ψ) for the 20 natural amino acids from PT modular projections, without fitted parameter.

ramachandran_torus.py $ python ramachandran_torus.py
# ramachandran_torus.py
# Reconstruct the Ramachandran torus from modular projections

from pt_protein.aa import twenty_amino_acids, modular_position

phi_psi = []
for aa in twenty_amino_acids:
    phi, psi = modular_position(aa)  # projection onto Z/(2p)Z
    phi_psi.append((aa, phi, psi))
    print(f"{aa.symbol:3} {aa.name:15} φ={phi:6.1f}° ψ={psi:6.1f}°")

# Comparison with observed basins (Lovell et al. 2003)
from pt_protein.metrics import ramachandran_bin_match
matches = ramachandran_bin_match(phi_psi)
print(f"\n{matches}/20 amino acids in the correct Ramachandran basin")
# expected: 20/20

Going further

Deeper