You are here

Pyrosetta protocol to move protein-peptide docked complex closer to active site.

1 post / 0 new
Pyrosetta protocol to move protein-peptide docked complex closer to active site.
#1

Hi,

I have a protein-peptide(15 a.a) system with alreaddy a good guess for the binding mode of the peptide. Now I want to move slightly the peptide to a more reactive conformation and design mutants in this reactive conformation.

The “enzdes” application with a constraint file would do exactly what I need but I think it was created for “protein-small ligand” systems and I cannot use it with a multiple residues ligand like my peptide.

Thus, what I think might be the most suitable protocol to my pourpose would be something like a high-res protein-protein docking with some constraints.

To test this protocol using pyrosetta, I decided to 1st try on a simpler test protein-peptide system (121 a.a.+10 a.a.), with a simple constraint, the DockMCMProtocol() and asked for 10 solutions without any mutation for now. Bellow you can find my current pyrosetta protocol.

The 10 results I got are almost indistiguishble from each other (only small sidechain differences in 2 or 3 residues and thats it) and regarding the constraint, it seems it wasnt read, as the output structures retain the 2 residues involved in the constraint almost exactly as in the initial structure.

Do you think this protocol might be the best to solve my problem? Looking at the output it seems that it is mostly doing repacking and very slight translation/rotations. Shouldn´t it do more extensive translations, backbone changes, etc. ?
 

out>protocols.docking.DockMCMCycle: /// Dockable Jumps: 1 ///
out>protocols.docking.DockMCMCycle: /// Translation: 0.1 ///
out>protocols.docking.DockMCMCycle: /// Rotation: 5 ///

(I have also looked at the “flexpep” protocol, but I was unnable to apply constraints in that protocol.)

If my protocol is adequate, what am I doing wrong? Can you give me suggestions on how to improve it (best energy function for this case, etc, …)

#!/usr/bin/env python3
import pyrosetta
pyrosetta.init()

pose_cpx = pyrosetta.pose_from_pdb( "test_ProtPept_cpx.pdb")

##2-save a copy of the initial pose
starting_p = pyrosetta.Pose()
starting_p.assign(pose_cpx ) #saving the starting structure

##3-load constraints
set_constraints = pyrosetta.rosetta.protocols.constraint_movers.ConstraintSetMover()
set_constraints.constraint_file('test_ProtPept_constraints.cst')
>“AtomPair NZ 48 CG 126 HARMONIC 3.0 1000”
set_constraints.apply(pose_cpx)

##4-fold tree
from pyrosetta import teaching
teaching.setup_foldtree(pose_cpx, 'A_B', pyrosetta.Vector1([1]) )
##print some checks
print( pose_cpx.fold_tree())
out>FOLD_TREE EDGE 1 110 -1 EDGE 110 121 -1 EDGE 110 127 1 EDGE 127 122 -1 EDGE 127 131 -1

##5-scoring function for prot-pept docking
scorefxn_high = pyrosetta.create_score_function('docking')

##6-load docking protocol
dockprot_highres = teaching.DockMCMProtocol() #define uma nova scoring function
dockprot_highres.set_partners("A_B")

##create a job distributor
jd = pyrosetta.PyJobDistributor("output", 10, scorefxn_high)
print(dockprot_highres.scorefxn_packing().get_name())
out>ref2015
print(dockprot_highres.scorefxn_docking().get_name())
out>docking
jd.native_pose = starting_p

#create a test pose
test_pose = pyrosetta.Pose()
test_pose.assign(pose_cpx)

##wrap up in a cycle
while not jd.job_complete:
test_pose.assign(test_pose)
dockprot_highres.apply(test_pose)
jd.output_decoy(test_pose)
print( teaching.rms_at_corresponding_heavy_atoms(starting_p, test_pose) )
out>~0.4

 

Post Situation: 
Fri, 2018-06-29 02:50
eduardoftoliveira