Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adapt protein mutation setup pipeline to handle glycosylated RBD:ACE2 #777

Closed
wants to merge 33 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
a364bf6
speed up residue map creation
zhang-ivy Mar 15, 2021
20ec9e2
speed up construct atom map
zhang-ivy Mar 15, 2021
2e21839
add PointMutationExecutorRBD
zhang-ivy Mar 15, 2021
8b2dcdb
add PointMutationEngineRBD
zhang-ivy Mar 15, 2021
bf2bf77
add utils
zhang-ivy Mar 15, 2021
185973f
fix imports, remove _mutate(), remove tqdm_notebook
zhang-ivy Mar 15, 2021
48967f0
fix imports utils
zhang-ivy Mar 15, 2021
b880b39
fix imports PointMutationExecutorRBD
zhang-ivy Mar 15, 2021
af98ccf
Merge branch 'rbd-ace2' of ssh://github.com/choderalab/perses into rb…
zhang-ivy Mar 15, 2021
a139c5a
add code to fix atoms in mutated PDB
zhang-ivy Mar 16, 2021
0a32dea
add debug_dir and use resource_Filename
zhang-ivy Mar 16, 2021
8049977
fix edit_tleap_in_inputs
zhang-ivy Mar 16, 2021
a6455a8
fix _prep_for_tleap definition and docstring
zhang-ivy Mar 16, 2021
af3af51
add debug_dirr and use resource_filename for PointMutationExecutorRBD
zhang-ivy Mar 16, 2021
32ef03a
add tempfile import, fix 0* filenames, pass debug_dir to propose()
zhang-ivy Mar 16, 2021
6ce4aaf
fix _prep_for_tleap()
zhang-ivy Mar 16, 2021
dc84bbe
add data/rbd-ace2
zhang-ivy Mar 16, 2021
d90230c
fix is_temp
zhang-ivy Mar 16, 2021
1cbd3ac
expand atom name fix to include atom names with 3 chars
zhang-ivy Mar 16, 2021
f7e0a25
pass omm new_positions, not inpcrd.positions:
zhang-ivy Mar 18, 2021
0edd264
add barostat to tleap system
zhang-ivy Mar 22, 2021
779152b
delete CB from map
zhang-ivy Mar 24, 2021
7630497
do not map sidechain atoms
zhang-ivy Mar 24, 2021
459328c
remove logger
zhang-ivy Mar 29, 2021
3ed8119
update solvent box in tleap
zhang-ivy Mar 30, 2021
c8543b8
add counterion fix
zhang-ivy Mar 31, 2021
7974941
fix wrong function and class names
zhang-ivy Apr 1, 2021
2b38429
fix prep_for_mutation to handle mutant PDBs as input
zhang-ivy Apr 8, 2021
de39578
change default temp to 298K
zhang-ivy Apr 9, 2021
19c1011
update barostat temperature in tleap system
zhang-ivy Apr 9, 2021
2b32010
fix neighboring residues
zhang-ivy May 26, 2021
2ab680c
merge master
zhang-ivy Aug 31, 2021
885879f
update with master
zhang-ivy Aug 31, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
293 changes: 292 additions & 1 deletion perses/app/relative_point_mutation_setup.py

Large diffs are not rendered by default.

6,562 changes: 6,562 additions & 0 deletions perses/data/rbd-ace2/0_ace2.pdb

Large diffs are not rendered by default.

1,674 changes: 1,674 additions & 0 deletions perses/data/rbd-ace2/0_rbd.pdb

Large diffs are not rendered by default.

131 changes: 131 additions & 0 deletions perses/data/rbd-ace2/1_rbd_ace2_template_tleap.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
source leaprc.GLYCAM_06j-1 # Source leaprc file for GLYCAM force field
source leaprc.protein.ff14SB # Source leaprc file for ff14SB protein force field
source leaprc.water.tip3p # Source leaprc file for TIP3P water model (and ions)


######### RBD #########

mol1 = loadpdb 0_rbd_tleap.pdb

# Add disulphide bridges

bond mol1.336.SG mol1.361.SG
bond mol1.379.SG mol1.432.SG
bond mol1.391.SG mol1.525.SG
bond mol1.480.SG mol1.488.SG

# N343 glycans

bond mol1.343.ND2 mol1.528.C1 # Bond N343 to GlcNAc
bond mol1.528.O6 mol1.537.C1
bond mol1.528.O4 mol1.529.C1
bond mol1.529.O4 mol1.530.C1
bond mol1.530.O6 mol1.531.C1
bond mol1.531.O2 mol1.532.C1
bond mol1.532.O4 mol1.533.C1
bond mol1.530.O3 mol1.534.C1
bond mol1.534.O2 mol1.535.C1
bond mol1.535.O4 mol1.536.C1

######### ACE2 #########

mol2 = loadpdb 0_ace2_tleap.pdb

# Add disulphide bridges
bond mol2.133.SG mol2.141.SG
bond mol2.344.SG mol2.361.SG
bond mol2.530.SG mol2.542.SG

# N53 glycans

bond mol2.53.ND2 mol2.727.C1 # Bond ASN53 to GlcNAc
bond mol2.727.O6 mol2.734.C1
bond mol2.727.O4 mol2.728.C1
bond mol2.728.O4 mol2.729.C1
bond mol2.729.O6 mol2.730.C1
bond mol2.730.O2 mol2.731.C1
bond mol2.729.O3 mol2.732.C1
bond mol2.732.O2 mol2.733.C1

# N90 glycans

bond mol2.90.ND2 mol2.735.C1 # Bond ASN90 to GlcNAc
bond mol2.735.O6 mol2.743.C1
bond mol2.735.O4 mol2.736.C1
bond mol2.736.O4 mol2.737.C1
bond mol2.737.O6 mol2.738.C1
bond mol2.738.O2 mol2.739.C1
bond mol2.739.O4 mol2.740.C1
bond mol2.737.O3 mol2.741.C1
bond mol2.741.O2 mol2.742.C1

# N103 glycans

bond mol2.103.ND2 mol2.744.C1 # Bond ASN103 to GlcNAc
bond mol2.744.O6 mol2.751.C1
bond mol2.744.O4 mol2.745.C1
bond mol2.745.O4 mol2.746.C1
bond mol2.746.O6 mol2.747.C1
bond mol2.747.O2 mol2.748.C1
bond mol2.746.O3 mol2.749.C1
bond mol2.749.O2 mol2.750.C1

# N322 glycans

bond mol2.322.ND2 mol2.752.C1 # Bond ASN322 to GlcNAc
bond mol2.752.O6 mol2.759.C1
bond mol2.752.O4 mol2.753.C1
bond mol2.753.O4 mol2.754.C1
bond mol2.754.O6 mol2.755.C1
bond mol2.755.O2 mol2.756.C1
bond mol2.754.O3 mol2.757.C1
bond mol2.757.O2 mol2.758.C1

# N432 glycans

bond mol2.432.ND2 mol2.760.C1 # Bond ASN432 to GlcNAc
bond mol2.760.O6 mol2.769.C1
bond mol2.760.O4 mol2.761.C1
bond mol2.761.O4 mol2.762.C1
bond mol2.762.O6 mol2.763.C1
bond mol2.763.O2 mol2.764.C1
bond mol2.764.O4 mol2.765.C1
bond mol2.762.O3 mol2.766.C1
bond mol2.766.O2 mol2.767.C1
bond mol2.767.O4 mol2.768.C1

# N546 glycans

bond mol2.546.ND2 mol2.770.C1 # Bond ASN546 to GlcNAc
bond mol2.770.O4 mol2.771.C1
bond mol2.771.O4 mol2.772.C1
bond mol2.772.O6 mol2.773.C1
bond mol2.773.O2 mol2.774.C1
bond mol2.772.O3 mol2.775.C1
bond mol2.775.O2 mol2.776.C1

# N690 glycans

bond mol2.690.ND2 mol2.777.C1 # Bond ASN690 to GlcNAc
bond mol2.777.O6 mol2.784.C1
bond mol2.777.O4 mol2.778.C1
bond mol2.778.O4 mol2.779.C1
bond mol2.779.O6 mol2.780.C1
bond mol2.780.O2 mol2.781.C1
bond mol2.779.O3 mol2.782.C1
bond mol2.782.O2 mol2.783.C1

# Combine both systems to make RBD:ACE2 complex
complex = combine {mol1 mol2}

# Solvate the system and add ions
charge complex
solvateoct complex TIP3PBOX 9 # Add some solvent with padding = 9
addionsrand complex Na+ 187 Cl- 167 # Randomly replace waters with ions, waters = 61736, see README for how No. ions chosen

# Save everything
savepdb complex 1_rbd_ace2_tleap.pdb

saveamberparm complex 1_rbd_ace2_tleap.prmtop 2_rbd_ace2_tleap.inpcrd

quit # Quit tleap program
40 changes: 40 additions & 0 deletions perses/data/rbd-ace2/1_rbd_template_tleap.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
source leaprc.GLYCAM_06j-1 # Source leaprc file for GLYCAM force field
source leaprc.protein.ff14SB # Source leaprc file for ff14SB protein force field
source leaprc.water.tip3p # Source leaprc file for TIP3P water model (and ions)


######### RBD #########

mol1 = loadpdb 0_rbd_tleap.pdb

# Add disulphide bridges

bond mol1.336.SG mol1.361.SG
bond mol1.379.SG mol1.432.SG
bond mol1.391.SG mol1.525.SG
bond mol1.480.SG mol1.488.SG

# N343 glycans

bond mol1.343.ND2 mol1.528.C1 # Bond N343 to GlcNAc
bond mol1.528.O6 mol1.537.C1
bond mol1.528.O4 mol1.529.C1
bond mol1.529.O4 mol1.530.C1
bond mol1.530.O6 mol1.531.C1
bond mol1.531.O2 mol1.532.C1
bond mol1.532.O4 mol1.533.C1
bond mol1.530.O3 mol1.534.C1
bond mol1.534.O2 mol1.535.C1
bond mol1.535.O4 mol1.536.C1

# Solvate the system and add ions
charge mol1
solvateoct mol1 TIP3PBOX 9 # Add some solvent with padding = 9
addionsrand mol1 Na+ 50 Cl- 52 # Randomly replace waters with ions, waters = 18534, see README for how No. ions chosen

# Save everything
savepdb mol1 0_rbd_tleap.pdb

saveamberparm mol1 0_rbd_tleap.prmtop 0_rbd_tleap.inpcrd

quit # Quit tleap program
51 changes: 51 additions & 0 deletions perses/data/rbd-ace2/3_mutate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import pymol
from pymol import cmd
import sys
import argparse

# https://sourceforge.net/p/pymol/mailman/message/27979284/
# https://sourceforge.net/p/pymol/mailman/message/11671708/

# Read in arguments
parser = argparse.ArgumentParser(description='run pymol mutagenesis')
parser.add_argument('input_pdb', type=str, help='path to input file')
parser.add_argument('output_pdb', type=str, help='path to output file')
parser.add_argument('selection', type=str, help='e.g. "R/337/"')
parser.add_argument('mutant', type=str, help='amino acid three letter code, e.g. ALA')
args = parser.parse_args()

# Beware, the error message you get is because pymol unsuccessfully tries
#to open the command line arguments as files.

d = {'CYS': 'C', 'ASP': 'D', 'SER': 'S', 'GLN': 'Q', 'LYS': 'K',
'ILE': 'I', 'PRO': 'P', 'THR': 'T', 'PHE': 'F', 'ASN': 'N',
'GLY': 'G', 'HIS': 'H', 'LEU': 'L', 'ARG': 'R', 'TRP': 'W',
'ALA': 'A', 'VAL':'V', 'GLU': 'E', 'TYR': 'Y', 'MET': 'M'}

print(f"Mutating {args.mutant}...")

# Launch pymol session
pymol.pymol_argv = ["pymol", "-qc"] + sys.argv[1:]
pymol.finish_launching()

# Load RBD (no solvent)
cmd.load(args.input_pdb)

# Mutate
cmd.wizard("mutagenesis")
cmd.do("refresh_wizard")
cmd.get_wizard().set_mode(args.mutant)
cmd.get_wizard().do_select(args.selection)

# Select rotamer
cmd.frame(1)

# Apply the mutation
cmd.get_wizard().apply()
cmd.set_wizard() # Equivalent to clicking "Done" in the GUI

# Save
cmd.save(args.output_pdb)
# Wait for everything to be done
cmd.refresh()

128 changes: 128 additions & 0 deletions perses/data/rbd-ace2/5_rbd_ace2_mutant_template_tleap.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
source leaprc.GLYCAM_06j-1 # Source leaprc file for GLYCAM force field
source leaprc.protein.ff14SB # Source leaprc file for ff14SB protein force field
source leaprc.water.tip3p # Source leaprc file for TIP3P water model (and ions)

######### RBD #########

mol1 = loadpdb 4_rbd_ace2_mutant_rbd_tleap_final.pdb
# Add disulphide bridges

bond mol1.336.SG mol1.361.SG
bond mol1.379.SG mol1.432.SG
bond mol1.391.SG mol1.525.SG
bond mol1.480.SG mol1.488.SG

# N343 glycans

bond mol1.343.ND2 mol1.528.C1 # Bond N343 to GlcNAc
bond mol1.528.O6 mol1.537.C1
bond mol1.528.O4 mol1.529.C1
bond mol1.529.O4 mol1.530.C1
bond mol1.530.O6 mol1.531.C1
bond mol1.531.O2 mol1.532.C1
bond mol1.532.O4 mol1.533.C1
bond mol1.530.O3 mol1.534.C1
bond mol1.534.O2 mol1.535.C1
bond mol1.535.O4 mol1.536.C1

######### ACE2 #########

mol2 = loadpdb 4_rbd_ace2_mutant_ace2_tleap_final.pdb

# Add disulphide bridges
bond mol2.133.SG mol2.141.SG
bond mol2.344.SG mol2.361.SG
bond mol2.530.SG mol2.542.SG

# N53 glycans

bond mol2.53.ND2 mol2.727.C1 # Bond ASN53 to GlcNAc
bond mol2.727.O6 mol2.734.C1
bond mol2.727.O4 mol2.728.C1
bond mol2.728.O4 mol2.729.C1
bond mol2.729.O6 mol2.730.C1
bond mol2.730.O2 mol2.731.C1
bond mol2.729.O3 mol2.732.C1
bond mol2.732.O2 mol2.733.C1

# N90 glycans

bond mol2.90.ND2 mol2.735.C1 # Bond ASN90 to GlcNAc
bond mol2.735.O6 mol2.743.C1
bond mol2.735.O4 mol2.736.C1
bond mol2.736.O4 mol2.737.C1
bond mol2.737.O6 mol2.738.C1
bond mol2.738.O2 mol2.739.C1
bond mol2.739.O4 mol2.740.C1
bond mol2.737.O3 mol2.741.C1
bond mol2.741.O2 mol2.742.C1

# N103 glycans

bond mol2.103.ND2 mol2.744.C1 # Bond ASN103 to GlcNAc
bond mol2.744.O6 mol2.751.C1
bond mol2.744.O4 mol2.745.C1
bond mol2.745.O4 mol2.746.C1
bond mol2.746.O6 mol2.747.C1
bond mol2.747.O2 mol2.748.C1
bond mol2.746.O3 mol2.749.C1
bond mol2.749.O2 mol2.750.C1

# N322 glycans

bond mol2.322.ND2 mol2.752.C1 # Bond ASN322 to GlcNAc
bond mol2.752.O6 mol2.759.C1
bond mol2.752.O4 mol2.753.C1
bond mol2.753.O4 mol2.754.C1
bond mol2.754.O6 mol2.755.C1
bond mol2.755.O2 mol2.756.C1
bond mol2.754.O3 mol2.757.C1
bond mol2.757.O2 mol2.758.C1

# N432 glycans

bond mol2.432.ND2 mol2.760.C1 # Bond ASN432 to GlcNAc
bond mol2.760.O6 mol2.769.C1
bond mol2.760.O4 mol2.761.C1
bond mol2.761.O4 mol2.762.C1
bond mol2.762.O6 mol2.763.C1
bond mol2.763.O2 mol2.764.C1
bond mol2.764.O4 mol2.765.C1
bond mol2.762.O3 mol2.766.C1
bond mol2.766.O2 mol2.767.C1
bond mol2.767.O4 mol2.768.C1

# N546 glycans

bond mol2.546.ND2 mol2.770.C1 # Bond ASN546 to GlcNAc
bond mol2.770.O4 mol2.771.C1
bond mol2.771.O4 mol2.772.C1
bond mol2.772.O6 mol2.773.C1
bond mol2.773.O2 mol2.774.C1
bond mol2.772.O3 mol2.775.C1
bond mol2.775.O2 mol2.776.C1

# N690 glycans

bond mol2.690.ND2 mol2.777.C1 # Bond ASN690 to GlcNAc
bond mol2.777.O6 mol2.784.C1
bond mol2.777.O4 mol2.778.C1
bond mol2.778.O4 mol2.779.C1
bond mol2.779.O6 mol2.780.C1
bond mol2.780.O2 mol2.781.C1
bond mol2.779.O3 mol2.782.C1
bond mol2.782.O2 mol2.783.C1

######### Solvent #########
mol3 = loadpdb 4_rbd_ace2_mutant_solvent_tleap_final.pdb

# Combine both molecules to make solvated RBD:ACE2 complex
complex = combine {mol1 mol2 mol3}

# Add box dimensions
set complex box {114.609 118.869 170.037}

# Save everything
savepdb complex 5_rbd_ace2_mutant_tleap.pdb
saveamberparm complex 5_rbd_ace2_mutant_tleap.prmtop 5_rbd_ace2_mutant_tleap.inpcrd
quit # Quit tleap program
41 changes: 41 additions & 0 deletions perses/data/rbd-ace2/5_rbd_mutant_template_tleap.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
source leaprc.GLYCAM_06j-1 # Source leaprc file for GLYCAM force field
source leaprc.protein.ff14SB # Source leaprc file for ff14SB protein force field
source leaprc.water.tip3p # Source leaprc file for TIP3P water model (and ions)


######### RBD #########

mol1 = loadpdb 4_rbd_mutant_rbd_tleap_final.pdb
# Add disulphide bridges

bond mol1.336.SG mol1.361.SG
bond mol1.379.SG mol1.432.SG
bond mol1.391.SG mol1.525.SG
bond mol1.480.SG mol1.488.SG

# N343 glycans

bond mol1.343.ND2 mol1.528.C1 # Bond N343 to GlcNAc
bond mol1.528.O6 mol1.537.C1
bond mol1.528.O4 mol1.529.C1
bond mol1.529.O4 mol1.530.C1
bond mol1.530.O6 mol1.531.C1
bond mol1.531.O2 mol1.532.C1
bond mol1.532.O4 mol1.533.C1
bond mol1.530.O3 mol1.534.C1
bond mol1.534.O2 mol1.535.C1
bond mol1.535.O4 mol1.536.C1

######### Solvent #########
mol2 = loadpdb 4_rbd_mutant_solvent_tleap_final.pdb

# Combine both molecules to make solvated RBD
complex = combine {mol1 mol2}

# Add box dimensions
set complex box {114.609 118.869 170.037}

# Save everything
savepdb complex 5_rbd_mutant_tleap.pdb
saveamberparm complex 5_rbd_mutant_tleap.prmtop 5_rbd_mutant_tleap.inpcrd
quit # Quit tleap program
Loading