This tutorial provides an introduction to using the Python Elastic Network Model Program (Simple ENM) developed by Janko Civic during the 2021/2022 academic year TCCM internship. If you are interested in learning more about the theory behind ENMs, you can check out the following resources:
- Yves-Henri Sanejouand, "Elastic Network Models: Theoretical and Empirical Foundations", Methods Mol. Biol., 2012, 924, 601-616
- Monique M. Tirion, "Large Amplitude Elastic Motions in Proteins from a Single-Parameter. Atomic Analysis", Phys. Rev. Lett., 1996, 77, 1905
To get started with Simple ENM:
- Clone the Simple ENM GitHub repository by running
git clone https://github.com/jankocivic/simple-enm.git
in your terminal. - Navigate to the cloned directory
- Install the necessary dependencies in your local virtual environment. Depending on whether you have conda installed, choose one of the following options:
- If you have conda, create the environment and install the dependencies by running
conda env create -f environment.yml
in your terminal. Activate the environment withconda activate simple-enm
. - If you don't have conda, create a new virtual environment and install the dependencies by running
pip install -r requirements.txt
.
- If you have conda, create the environment and install the dependencies by running
Once you have set up your environment, you can start performing calculations with Simple ENM. Here are the steps to follow for each type of calculation:
- Navigate to the Scripts directory in the Simple ENM repository.
- Save the necessary PDB files in the PDB folder.
- Run the calcualtion with the command
python enm_modes.py TITLE PDB_ID
, where:
TITLE
is the name of the directory that will be created in the Output folder and where output files will be stored.PDB_ID
is the 4-letter PDB identifier for the protein (see notes at the end about PDB files).
- The following output files will be generated:
- eigenvalues.txt - Eigenvalues in ascending order.
- eigenvectors.txt - The first 36 eigenvectors.
- general.txt - General information about the calculation.
- normal_modes.nmd - Files for visualizing the normal modes.
- temperature_factors.png - Plot of the normalized calcualted and experimental temperature factors of each residue.
To compute the overlap between normal modes and conformational changes, do the following:
- Navigate to the Scripts directory in the Simple ENM repository.
- Save the necessary PDB files in the PDB folder.
- Run the calcualtion with the command
python overlap.py PDB_ID[CHAIN_ID] PDB_ID[CHAIN_ID]
where:
- The first argument is the PDB code of the model protein for which normal modes are calucluated.
- The second argument is the PDB code of the conformer.
- The PDB codes consist of 4 characters, but it is possible to append a fifth letter to specify an exact chain.
- Change of the cutoff or the name of the output folder needs to be done manually inside the script.
- The following output files will be generated:
- eigenvalues.txt - Eigenvalues in ascending order.
- eigenvectors.txt - The first 36 eigenvectors.
- general.txt - General information about the calcualtion.
- normal_modes.nmd - Files for visualizing the normal modes.
- temperature_factors.png - Plot of the normalized calcualted and experimental temeprature factors of residue.
- cum_overlap.png - Plot of the cumulative overlap of the first N lowest modes and the conformational change.
- overlap.png - Individual overlaps of each normal mode with the conformational change.
- summary.txt - csv file with the most important data.
To visualize the output of Simple ENM, you need to install the Visual Molecular Dynamics (VMD) software. Once installed, follow the steps below:
- Open VMD.
- Click on the Extensions tab.
- Select Analysis.
- Click on Normal Mode Wizard.
- Load the .nmd file generated by Simple ENM.
Here are some important remarks to consider when using Simple ENM:
- PDB files should only contain one model (careful with NMR structures).
- All HETATM entries are ignored.
- Only Ca atoms with occupancy 1 are considered.
- The program automatically performs structure allignment before the overlap calculation.
- When comparing two conformations, the two PDB files need to have the same residue numbering.
- Too many missing residues can result in a disconnected graph causing the computaiton to fail.
- The program can run for more than 10 minutes for proteins with thousands residues.