Warning

The implementation of this model is currently experimental. Parameterization details and the interface might change.

The Record surface-type transfer model

The MTRecord model implements the atom-resolved transfer model of Guinn, Pegram, Capp, Pollock, and Record (PNAS 2011), which explains why urea denatures proteins while glycine betaine (a protecting osmolyte) stabilizes them. Unlike the AutonBolen, MoeserHorinek, and Accessibility models, which are built from amino-acid transfer free energies (TFEs) split into backbone and side-chain contributions, the MTRecord model is parameterized directly on atomic surface types.

Motivation. Guinn et al. measured preferential interactions (osmometry and solubility) of urea and glycine betaine (GB) with 44 small model compounds (amino acids, peptides, sugars, polyols, aromatics, and salts), and fit the resulting chemical potential derivatives to a surface-additive model over seven coarse-grained atom/surface types: aliphatic C, aromatic C, hydroxyl O, amide O, carboxylate O, amide N, and cationic N. Because the surface types are transferable between model compounds and proteins, the resulting interaction potentials can be applied directly to a protein structure's atom-resolved solvent-accessible surface area (SASA), without ever forming an amino-acid-level TFE.

Fixed-state transfer free energies

The transfer free energy of a single (fixed) structure can be computed directly from its atom-resolved SASA with transfer_free_energy, by requesting the MTRecord model:

using PDBTools
native_state = read_pdb(PDBTools.MJC_NATIVE, "protein")
tfe = transfer_free_energy(native_state, "urea"; model=MTRecord)
TransferFreeEnergy{MTRecord} - 69 residues to 1M "urea".
    Total transfer free energy: -0.79470193 kcal mol⁻¹
    Backbone contributions: -0.35762113 kcal mol⁻¹
    Side-chain contributions: -0.43708083 kcal mol⁻¹

As with the other models, the result is split into backbone and side-chain contributions, here obtained by summing the atom-resolved surface-type contributions of backbone and side-chain atoms, respectively.

ASA convention: radii_set and exclude_cavities

Under the hood, MTRecord computes ASA with sasa_particles(RichardsUnitedAtomRadii, ...) (see SASA and, for the cavity-exclusion algorithm specifically, Excluding solvent-sealed cavities). Both transfer_free_energy(..., model=MTRecord) and MTRecordDenaturedModel expose the underlying radii_set and exclude_cavities (and cavity_dot_cutoff) keywords, and default them to radii_set=:set1 (Richards, 1977) and exclude_cavities=true:

tfe_default = transfer_free_energy(native_state, "urea"; model=MTRecord)
tfe_legacy  = transfer_free_energy(native_state, "urea"; model=MTRecord, radii_set=:set2, exclude_cavities=false)
(tfe_default.tot, tfe_legacy.tot)
(-0.79470193f0, -0.8054449f0)

This default combination was chosen empirically, not on general SASA-correctness grounds: the alpha_i values of this model were calibrated using SurfaceRacer with its "Richards (1977)" radii option (this package's :set1; the SurfaceRacer SI of Guinn et al. 2011, the source of the urea/betaine alpha_i values, states this explicitly), and SurfaceRacer's own ASA excludes solvent-sealed cavities. On a validation benchmark (the concanavalin A tetramer dissociating into two dimers, PDB 3CNA, compared against Knowles et al. 2015's own reported predictions for glycerol and tetraEG, and against Guinn-convention alpha_i predictions for urea/proline/betaine), the radii_set=:set2, exclude_cavities=false combination that used to be the implicit default underpredicted every one of these five solutes' m-values by 17-66%; radii_set=:set1, exclude_cavities=true gets four of the five within about 1-2% of target, and the fifth (tetraEG, whose m-value is an unusually sensitive small residual of large offsetting surface-type contributions) within about 6%. Neither change alone accounts for this: :set1 alone and exclude_cavities=true alone each close only part of the gap; the combination is what matters.

If you need the previous behavior for reproducibility (e.g., to compare against results computed before this default changed), pass radii_set=:set2, exclude_cavities=false explicitly, as shown above.

Denaturation m-values

Unlike the other transfer models, which pair a native structure with a parametric estimate of the denatured-state backbone/side-chain ASA (the Creamer model, see CreamerDenaturedModel), MTRecord is meant to be used with an explicit atomistic model of the unfolded state, since it needs a real $\Delta$ASA for every atom and surface type, not just per-residue backbone/side-chain totals. The unfolded-state reference used here is the fully extended (all-trans, $\phi = \psi = 180°$) chain, obtained with extended_chain - this is the same "extended β" reference state that Guinn et al. themselves use in their own validation (Table S3 of the paper).

MTRecordDenaturedModel wraps a protein's native structure together with its extended chain (built automatically) and the atom-resolved SASAs of both, computed once at construction:

PDBTools.MTRecordDenaturedModel — Type
MTRecordDenaturedModel

Type that specifies that a m-value calculation will consider the MTRecord transfer model (Guinn et al., PNAS 2011). Like the other transfer models, the alpha_i surface interaction potentials of MTRecord come from model-compound (small-molecule) transfer free energies, not from the unfolded-state model itself. What is specific to MTRecord is that Guinn et al. validate it (their Table S3, urea) against an explicit atomistic denatured-state model — the fully-extended (all-trans, phi = psi = 180°, see extended_chain) chain — rather than a residue-type-average ASA table. This type wraps a protein's native (folded) structure together with that extended chain, and the atom-resolved SASAs of both, precomputed once at construction. This type is used as the first input variable of the mvalue function.

Construction:

MTRecordDenaturedModel(atoms::AbstractVector{<:Atom}; radii_set=:set1, exclude_cavities=true, cavity_dot_cutoff=nothing)

builds the extended chain internally (via extended_chain) and computes both SASAs.

radii_set and exclude_cavities (passed on to sasa_particles(RichardsUnitedAtomRadii, ...) for both the native and extended-chain SASA) default to :set1 (Richards, 1977) and true: this is the combination found to best reproduce the ASA convention (SurfaceRacer, Tsodikov, Record & Sergeev, 2002) that the underlying alpha_i values were calibrated against — see richards.jl's tests for the validation. cavity_dot_cutoff is forwarded to exclude_cavity_dots! and only has an effect when exclude_cavities=true.

Use the MTRecordDenaturedModel model as the first input argument of mvalue, for example:

mvalue(MTRecordDenaturedModel(prot), "urea")

to obtain the estimated m-value of denaturation in "urea".

Reference:

Guinn EJ, Pegram LM, Capp MW, Pollock MN, Record MT Jr. Quantifying why urea is a protein denaturant, whereas glycine betaine is a protein stabilizer. PNAS. 2011;108:16932-16937. doi: 10.1073/pnas.1109372108.

source
PDBTools.mvalue — Method
mvalue(m::MTRecordDenaturedModel, cosolvent::AbstractString; alpha=1.0, temperature=298.15)

Compute Record-model m-values from coarse-grained surface interaction potentials, using Eq. 4 (Guinn et al. 2011) and the atom-resolved ΔASA between the native and fully-extended chains wrapped in m (that is, ASA of the extended chain minus ASA of the native chain, for each atom), following the original Record model.

The optional alpha keyword scales the extended-chain (denatured-state) transfer free energy tfe_d before subtracting the native-state tfe_n: mval = alpha * tfe_d - tfe_n. The default, alpha=1.0, uses the extended-chain ASA as computed, with no adjustment; this reproduces the urea benchmarks of Guinn et al. (Table S3) well. There is no equivalent extended-chain validation set for betaine in the paper, so alpha is exposed to allow empirically fitting the denatured-state ASA scale to experimental betaine data, if needed.

Because it rescales only the denatured-state term, alpha is not the same quantity as the ΔASA correction factor f of Hong & Xiong, which rescales the whole ΔASA (tfe_d - tfe_n) instead: the two are related by alpha = f + (1 - f) * tfe_n / tfe_d.

The optional temperature keyword (in K, default 298.15) rescales the R * T * alpha_i surface interaction potentials (Eq. 4) to a different temperature, assuming the dimensionless alpha_i themselves are temperature-independent. It only affects cosolvents parameterized in the Guinn et al. convention (betaine, urea, tmao, proline, trehalose); the TetraEG and glycerol coefficients are raw empirical values with no such decomposition in their source paper, and are unaffected by this keyword.

source
model = MTRecordDenaturedModel(native_state)
m = mvalue(model, "urea")
MValue{MTRecord} - 69 residues - cosolvent: "urea"
    Total m-value: -0.96455896 kcal mol⁻¹
    Backbone contributions: -0.3588792 kcal mol⁻¹
    Side-chain contributions: -0.60567975 kcal mol⁻¹

The m-value is obtained directly from Eq. 4, using the real, atom-by-atom $\Delta$ASA between the extended and native chains (extended minus native). By default (alpha=1.0), the extended-chain ASA is used as computed, with no adjustment; for urea, this reproduces the m-values reported in Table S3 of Guinn et al. well. Glycine betaine has no equivalent extended-chain validation set in the paper (Table S3 is urea-only), so predictions for "betaine" should be interpreted with more caution; the alpha keyword is available to empirically rescale the extended-chain ASA, if needed to better match experimental betaine data.

Model details

The additive model. Guinn et al.'s Eq. 4 expresses the chemical potential derivative $\mu_{23}/RT$ (essentially the preferential-interaction m-value per unit of exposed area) of a compound as a sum over surface types $i$, weighted by the corresponding ASA, plus an optional ionic term:

\[\frac{\mu_{23}}{RT} = \sum_i \alpha_i\, \text{ASA}_i + \sum_\text{ion} \nu_\text{ion}\, \beta_\text{ion}.\]

PDBTools uses only the surface-type sum (proteins are treated as neutral in this model). For a surface type $i$ and cosolvent, PDBTools.model_combination_rule returns the potential in cal mol⁻¹ Å⁻²:

\[\sigma_i = RT\,\alpha_i,\]

so that the contribution of a given atom to the transfer free energy (or m-value) is $\sigma_i \times \text{ASA}$ (or $\sigma_i \times \Delta\text{ASA}$ when comparing two states).

Surface-type assignment. PDBTools.record_surface_type maps each protein atom to one of the seven surface types based on element and residue/atom name, following the assignment used by Guinn et al.:

Surface typeAssignment
Aliphatic carbonAny carbon not classified as aromatic
Aromatic carbonRing carbons of Phe, Tyr, Trp, His
Hydroxyl oxygenSer OG, Thr OG1, Tyr OH
Amide oxygenBackbone carbonyl O, Asn OD1, Gln OE1
Carboxylate oxygenAsp/Glu carboxylate oxygens, C-terminal OXT/OT1/OT2
Amide nitrogenBackbone amide N, Asn ND2, Gln NE2, and Trp NE1 (explicit exception)
Cationic nitrogenLys NZ, Arg NE/NH1/NH2, and His ND1/NE2 (explicit exception)

Sulfur (Met, Cys) and hydrogen atoms are ignored, since their contribution to the $\Delta$ASA of folding is negligible in the reference dataset. These surface types are also exposed as selection macro keywords, so that, for example, select(atoms, "record_aromatic_carbon") selects the atoms assigned to the aromatic-carbon surface type.

Interaction potentials. The values of $10^4\,\alpha_i$ (in m⁻¹ Å⁻²) currently implemented are, for urea and betaine, from Table 1 of Guinn et al., and, for the other cosolvents, from the surface-type potentials reported in the references below:

Surface type$10^4\alpha_i$ (urea)$10^4\alpha_i$ (betaine)$10^4\alpha_i$ (TMAO)$10^4\alpha_i$ (proline)$10^4\alpha_i$ (trehalose)
Aliphatic carbon-1.13.017.85.322.4
Aromatic carbon-8.9-23.022.6-9.25.9
Hydroxyl oxygen-2.51.09.9-0.7-0.8
Amide oxygen-8.728.09.314.5-19.6
Carboxylate oxygen-4.029.052.316.6-28.2
Amide nitrogen-3.2-20.011.6-11.8-4.7
Cationic nitrogen1.8-12.0-4.6-12.612.9

"urea" and "betaine" come from Guinn et al. (PNAS 2011, Table 1); "tmao" from doi:10.1016/j.bpj.2016.09.035; "proline" from doi:10.1021/bi400683y; and "trehalose" from doi:10.1016/j.bpj.2015.05.037.

"tetraeg" and "glycerol". Two more cosolvents, tetraethylene glycol (TetraEG) and glycerol, are available from doi:10.1021/acs.biochem.5b00246. Unlike the cosolvents above, this reference reports the group interaction potentials $\alpha_i$ directly in cal mol⁻¹ molal⁻¹ Å⁻², rather than as $10^4\alpha_i$ in m⁻¹ Å⁻², so PDBTools uses them as-is (no RT rescaling):

Surface type$\alpha_i$ (TetraEG)$\alpha_i$ (glycerol)
Aliphatic carbon-0.3490.0548
Aromatic carbon-2.66-0.431
Hydroxyl oxygen0.8430.0305
Amide oxygen2.940.826
Carboxylate oxygen3.590.467
Amide nitrogen-1.67-0.491
Cationic nitrogen-0.805-0.245

The reference also reports a "carboxylic acid oxygen" surface type (protonated, neutral -COOH), which has no counterpart in record_surface_type (following Guinn et al., only a single, deprotonated :carboxylate_oxygen class is used), and is therefore not included here.

These are currently the seven cosolvents for which a full set of surface-type potentials is available.

The contribution of each type of atom to the transfer free energies can be obtained by decomposing the solvent accessible surface areas into the contribution of the types above, using the record_type_contributions function.

PDBTools.record_type_contributions — Function
record_type_contributions(sasa_ats::SASA{RichardsUnitedAtomRadii})

Decompose the total SASA in sasa_ats into the contribution of each Record surface type (see record_surface_type), returning a Dict{Symbol,@NamedTuple{area::Float32,fraction::Float32}} with one entry per surface type:

  • :aliphatic_carbon
  • :aromatic_carbon
  • :hydroxyl_oxygen
  • :amide_oxygen
  • :carboxylate_oxygen
  • :amide_nitrogen
  • :cationic_nitrogen

area is the summed SASA (in Ų) of the atoms classified into that type; fraction is area divided by the total SASA of sasa_ats (all atoms, including the sulfur and hydrogen atoms that record_surface_type does not classify and that are therefore absent from every area) — so the seven fractions need not add up to 1.

Terminal-group classification follows the same residue-position rules used internally by transfer_free_energy(::Type{MTRecord}, ...) (see record_surface_type): the first residue of each chain/model is treated as N-terminal, and a residue carrying an OXT/OT1/OT2 atom is treated as C-terminal. As with the rest of the Record model, sasa_ats is assumed to contain only protein atoms.

Example

julia> using PDBTools

julia> pep = read_pdb(PDBTools.TESTPDB, "protein and residue 1 to 5");

julia> sasa_ats = sasa_particles(RichardsUnitedAtomRadii, pep);

julia> contrib = record_type_contributions(sasa_ats);

julia> contrib[:aliphatic_carbon].area > 0
true
source