Protein conformational changes

Consider these two states of a model protein, a native and a denatured (straight chain) state, obtained from a simulation. Here the conformational change could be of any kind. We load the structures of the two states:

using PDBTools, LazyArtifacts
native_state = read_pdb(PDBTools.test_file("1MJC_native.pdb"), "protein")
desnat_state = read_pdb(PDBTools.test_file("1MJC_straight.pdb"), "protein")
   Structure{Atom{Nothing}} with 999 atoms
   index name resname chain   resnum  residue        x        y        z occup  beta model segname index_pdb
       1    N     SER     A        2        1   14.210   24.950   39.381  0.80  0.00     1     AP1        37
       2   HN     SER     A        2        1   13.353   24.515   39.657  0.80  0.00     1     AP1        38
⋮
     998    C     LEU     A       70       69  -26.425   41.129 -200.385  0.80  0.00     1     AP2      1034
     999    O     LEU     A       70       69  -27.110   41.780 -201.182  0.80  0.00     1     AP2      1035

The denatured state has a greater surface area than the native state. Thus, cosolvents that bind preferentially to the surface, as urea, should promote a stabilization of the denatured state. This is obtained with:

m = mvalue(native_state, desnat_state, "urea"; model=MoeserHorinek)
MValue{MoeserHorinek} - 69 residues - cosolvent: "urea"
    Total m-value: -1.2025213 kcal mol⁻¹
    Backbone contributions: -0.675961 kcal mol⁻¹
    Side-chain contributions: -0.5265603 kcal mol⁻¹

Where the tot, bb and sc fields contain, respectively, the total, backbone and side-chain contributions. The MValue object contains, additionally, the contribution of the side chain and backbone of each amino acid residue type for the m-value, in the residue_contributions_bb and residue_contributions_sc fields.

We can set the beta fields (for example) of the atoms as the residue contributions, and observe the contributions drawn on top of the structure:

for (ir, r) in enumerate(eachresidue(native_state)) # iterate over residues
    # total contribution of residue ir
    c_residue = m.residue_contributions_sc[ir] + m.residue_contributions_bb[ir]
    for at in r # iterate over atoms in residue
        at.beta = c_residue
    end
end
phe_and_trp = select(native_state, "resname PHE TRP")
visualize(
    native_state => (color_by=beta.(native_state),),
    phe_and_trp => (style=:ballandstick, color_by=beta.(phe_and_trp))
)

Where we can see that Phe53 is a buried hydrophobic residue with the most important contribution to the denaturation m-value.