Hydrophobic-polar protein folding model: main theoretical development #
A treatment of the hydrophobic-polar protein folding model in a generality
that covers rectangular, triangular and hexagonal lattices: P_rect, P_tri, P_hex.
We formalize the non-monotonicity of the objective function, refuting an unpublished conjecture of Stecher.
We prove objective function bounds:
P_tri ≤ P_rect ≤ P_hex (using a theory of embeddings)
and for any model, P ≤ b * l and P ≤ l * (l-1)/2 [see pts_earned_bound_loc']
(The latter is worth keeping when l ≤ 2b+1.)
where b is the number of moves and l is the word length.
We also prove P ≤ b * l / 2 using "handshake lemma" type reasoning
that was pointed out in Agarwala, Batzoglou et al. (RECOMB 97, Lemma 2.1)
and a symmetry assumption on the folding model that holds for rect and hex but not for tri.
The latter result required improving our definitions.
We prove the correctness of our backtracking algorithm for protein folding.
To prove some results about rotations
(we can always assume our fold starts by going to the right)
we use the type
Fin n → α instead of Vector α n
.
.
.
Instances For
This is needed to get the Handshake Lemma bound from Agarwal et al.'s paper, but it is also just a nicer definition. March 13, 2024. think "ik = (i,k)"
Instances For
.
Equations
Instances For
Write points_tot as a disjoint union over ik.2 to prove. March 14, 2024
.
.
Equations
- pts_at_improved go k ph fold = {i : Fin (↑k).pred | pt_loc go fold (Fin_trans_pred i) k ph = true}.card
Instances For
.
can make this i.pred I think
.
The result pts_earned_bound_loc'_improved is sharp in that for l=2,
we have words of length 3 and the points bound is 1,
which does in fact happen for hex fold. April 2, 2024
.
.
.
.
left_injective f which we can prove for tri_rect_embedding although it's harder than left_injective_tri!
location, direction
.
This trivial instance is nonetheless needed.
.
Almost obsolete, except for rect₃ fold which is not symmetric so that Handshake Lemma
reasoning does not apply.
.
.
.
.
this is anyway obsolete since Handshake lemma gives another /2 factor
.
.
Equations
- path_transformedᵥ f go₀ go₁ v = pathᵥ go₁ (morphᵥ f go₀ v)
Instances For
.
Equations
- pts_tot_bound go ph q = ∀ (moves : List.Vector β l), (Function.Injective fun (k : Fin (↑(path go ↑moves)).length) => (↑(path go ↑moves)).get k) → pts_tot' go ph ⟨↑(path go ↑moves), ⋯⟩ ≤ q
Instances For
This version of pts_tot_bound is correct even for the asymmetric 3-move version of rect:
Equations
- One or more equations did not get rendered due to their size.
Instances For
.
Equations
.
Equations
.
Equations
.
Equations
.
.
.
.