Julian Echave
The mutenm package builds Elastic Network Models (ENMs) of proteins
and simulates mutation effects using linear response theory.
# install.packages("devtools")
devtools::install_github("jechave/mutenm")An Elastic Network Model represents a protein as a network of nodes (typically Cα atoms) connected by harmonic springs. The model captures the protein’s intrinsic flexibility through normal mode analysis.
Mutations are modeled as perturbations to the equilibrium lengths of springs connected to the mutated site. The structural response is calculated using linear response theory:
δr = C × f
where C is the covariance matrix and f is the force from edge
perturbations.
| Function | Description |
|---|---|
enm() |
Build an ENM from a PDB structure |
mutenm() |
Simulate a mutation at a specific site |
mrs() |
Mutation Response Scanning — scan all sites |
plot_mrs() |
Visualize MRS results |
library(mutenm)pdb <- bio3d::read.pdb(system.file("extdata", "2acy.pdb", package = "mutenm"))
wt <- enm(pdb, node = "ca", model = "anm", d_max = 10.5)mut <- mutenm(wt, site_mut = 50, mutation = 1, mut_model = "lfenm", seed = 123)
# Calculate displacement
dxyz <- mut$nodes$xyz - wt$nodes$xyz
dr2 <- rowSums(matrix(dxyz^2, ncol = 3, byrow = TRUE))Scan all sites systematically:
result <- mrs(pdb, pdb_id = "2ACY", nmut = 1, seed = 42)
names(result)
#> [1] "dr2ij" "influence" "sensitivity" "params"plot_mrs(result)Save as PDF for publications:
p <- plot_mrs(result)
ggplot2::ggsave("mrs_figure.pdf", p, width = 8, height = 5)See the package vignette for a detailed introduction:
vignette("introduction", package = "mutenm")If you use mutenm in your research, please cite:
Echave, J. (2025). mutenm: An R package to mutate elastic network models of proteins. Zenodo. https://doi.org/10.5281/zenodo.17989557
