Example 16: HIV-1 Env MPER-TM Trimer in a DMPC Symmetric Bilayer¶
HIV-1 gp41 (MPER-TM) trimer embedded in a DMPC lipid bilayer. Each protein chain is colored uniquely, and a transparent isodensity surface is shown. Waters and counterions are not shown.¶
PDB ID 6e8w is a trimeric HIV-1 Env gp41 construct embedded in a DMPC lipid bilayer (the authors also mention DHPC, but these are detergents that don’t readily form bilayers). The structure was determined by NMR, and the structure file contains 15 models, and no lipids are included in the file. This example shows how to use pestifer to generate a membrane-embedded protein system from this structure.
# Author: Cameron F. Abrams, <cfa22@drexel.edu>
#
# pestifer input script
#
# Membrane-embedded build of HIV-1 gp41 MPER-TM trimer (6e8w)
#
# NOTE: This example uses NAMD's on-the-fly pressureProfile calculation in the
# post-equilibration NPAT stage and in the packaged production run. CUDA-enabled
# (GPU) NAMD does not support pressureProfile, so this example must be run with
# a CPU NAMD build. Remove the `pressureProfile*` keys from the relevant
# `other_parameters` blocks (or omit `--gpu`) to use a GPU build.
#
title: HIV-1 gp41 MPER-TM trimer 6e8w embedded in DMPC bilayer
paths:
packmol: /usr/local/bin/packmol
tasks:
- fetch:
sourceID: 6e8w
- psfgen:
source:
model: 15 # last frame
- md:
cpu-override: True
ensemble: minimize
- make_membrane_system:
bilayer:
salt_con: 0.154
cation: POT
anion: CLA
half_mid_zgap: 0.0
SAPL: 60.0
composition:
lower_leaflet:
- name: DMPC
frac: 1.00
upper_leaflet:
- name: DMPC
frac: 1.00
seed: 270272
nloop: 100
nloop_all: 100
relaxation_protocols:
patch:
- md:
ensemble: minimize
nsteps: 1000
- md:
ensemble: NVT
nsteps: 1000
temperature: 310
- md:
ensemble: NPT
nsteps: 500
temperature: 310
pressure: 10.0
- md:
ensemble: NPT
nsteps: 500
temperature: 310
pressure: 10.0
- md:
ensemble: NPT
nsteps: 1000
temperature: 310
pressure: 10.0
- md:
ensemble: NPT
nsteps: 1000
temperature: 310
pressure: 10.0
- md:
ensemble: NPT
nsteps: 4000
temperature: 310
pressure: 10.0
- md:
ensemble: NPT
nsteps: 8000
temperature: 310
pressure: 10.0
- md:
ensemble: NPAT
nsteps: 16000 # this is (probably) too short!
temperature: 310
pressure: 1.0
quilt:
- md:
ensemble: minimize
- md:
ensemble: NVT
nsteps: 1000
temperature: 310
pressure: 1.0
- md:
ensemble: NPAT
nsteps: 2000
temperature: 310
pressure: 1.0
embed:
xydist: 20
zdist: 10
z_head_group: "protein and resid 667"
z_tail_group: "protein and resid 710"
z_ref_group:
text: "protein and resid 696"
z_value: 0.0
- validate:
tests:
- residue_test:
name: test of protein presence
selection: protein
measure: residue_count
relation: '>='
value: 1
- md:
ensemble: minimize
minimize: 1000
constraints:
k: 10
atoms: protein and name CA
- md:
ensemble: NVT
nsteps: 1000
temperature: 410
constraints:
k: 10
atoms: protein and name CA
- md:
ensemble: NVT
nsteps: 1000
temperature: 410
constraints:
k: 1
atoms: protein and name CA
- md:
ensemble: NPT
nsteps: 6400
temperature: 410
- md:
ensemble: NPAT
nsteps: 51200 # this is (probably) way too short!!
temperature: 310
other_parameters:
pressureProfile: on
pressureProfileFreq: 100
pressureProfileSlabs: 20
- mdplot:
timeseries:
- - cpu_time
- wall_time
- density
- - a_x
- b_y
- c_z
profiles:
- pressure
basename: bilayer
grid: True
legend: True
- terminate:
basename: my_6e8w
artifacts: artifacts
package:
basename: prod_6e8w
namd:
ensemble: NPAT
firsttimestep: 0
dcdfreq: 10000
xstfreq: 10000
outputenergies: 1000
nsteps: 10000000
other_parameters:
pressureProfile: on
pressureProfileFreq: 10000 # must equal xstfreq!
pressureProfileSlabs: 20
Step |
Task |
Details |
|---|---|---|
1 |
|
|
2 |
|
standard build |
3 |
|
minimize |
4 |
|
DMPC |
5 |
|
1 test(s) |
6 |
|
minimize → NVT (2,000 steps, 2 phases) → NPT (6,400 steps) → NPAT (51,200 steps) |
7 |
|
equilibration time-series plots → |
8 |
|
basename: |
Notice first that packmol’s path is set explicitly in the paths section to /usr/local/bin/packmol. This avoids any version of packmol that may be installed via conda; for example, when a user installs AmberTools via conda, packmol is installed as a dependency, but this version of packmol is not compatible with the current version of pestifer. If packmol is not found at the specified path, the membrane-building process will fail.
The key task in this example is the make_membrane_system task. This task specifies a bilayer subtask and an embed subtask. The bilayer subtask specifies the composition of the two leaflets, directives for using packmol to assemble the initial minimal bilayer patch, and relaxation protocols for relaxing the patch and the full-sized bilayer, prior to embedding the protein. The embed subtask specifies how the protein is to be oriented and placed in the bilayer. Immediately following the make_membrane_system task, the minimize task is used to relax the system after embedding the protein. This is then followed by a series of md tasks to progressively equilibrate the system density and the bilayer area.
A detailed explanation of the two subtasks can be found at make_membrane_system.
Results¶
The plots below are generated by default during the membrane-building process.
Cell dimensions vs time step for the initial 200-lipid bilayer patch.¶
System density vs time step for the initial 200-lipid bilayer patch.¶
Pressure profiles for selected time intervals during the patch relaxation.¶
The mdplot task generated the following plots for the membrane-embedded system.
Cell dimensions vs time step for the protein-embedded membrane.¶
System density vs time step for the protein-embedded membrane.¶
Pressure profiles for selected time intervals during the protein-embedded membrane relaxation.¶