Using the Cartesian_ddG method in PyRosetta to predict the binding free energy changes of single-point mutations in antigen-antibody complexes. #230
Unanswered
xianquzhe1
asked this question in
PyRosetta
Replies: 1 comment
-
跑一遍试试呗。(顺便问一下gearbind复现出来了么?我没复现出来,缺gearbingP的权重) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello everyone! I am a newcomer to PyRosetta and I am trying to use the Cartesian_ddG method in PyRosetta to predict the impact of single-point mutations on the binding free energy of antigen-antibody complexes. I don't care if it's extremely accurate; what I want is for this method to give energy change trends that are consistent with the real values measured experimentally. However, the results I obtained are not very consistent with the experimental trends, which confuses me. Below is the code I used for the prediction. Can anyone help me take a look to see if there are any issues?
from pyrosetta import *
from pyrosetta.rosetta import *
from pyrosetta.toolbox import *
from pyrosetta.teaching import *
from pyrosetta.rosetta.protocols.relax import FastRelax
init("-ignore_unrecognized_res 1 -ex1 -ex2 -flip_HNQ -relax:cartesian -nstruct 200 -crystal_refine -optimization:default_max_cycles 200")
#Parameter set up#
testPose= Pose()
testPose = pose_from_pdb("1A22.pdb")
scorefxnDDG=get_fa_scorefxn()
#Firstly relax the structure for later modificiation#
scorefxnRelax = pyrosetta.create_score_function("ref2015_cart")
relax = pyrosetta.rosetta.protocols.relax.FastRelax()
relax.constrain_relax_to_start_coords(True)
relax.coord_constrain_sidechains(True)
relax.ramp_down_constraints(False)
relax.cartesian(True)
relax.min_type("dfpmin_armijo_nonmonotone")
relax.min_type("lbfgs_armijo_nonmonotone")#for non-Cartesian scorefunctions use'dfpmin_armijo_nonmonotone'
relax.set_scorefxn(scorefxnRelax)
relax.apply(testPose)
s0=scorefxnDDG(testPose) #Record the energy score after cartesian_relax
#Energy minimization
min_mover = MinMover() #define a Mover in type of MinMover
mm=MoveMap()
mm.set_bb_true_range(28,36)
min_mover.movemap(mm)
min_mover.score_function(scorefxnDDG)
#min_mover.min_type("dfpmin")
min_mover.tolerance(0.01)
print(min_mover)
ddG=[]
def minimize_Energy(pose):
#Minimization#
min_mover.apply(pose)
#Point mutation#
AA=[18,21,22,25,26,29,42,45,46,48,51,56,61,62,63,65,68,153,156,157,160]
mp=Pose()
for i in AA:
mp.assign(testPose)
mutate_residue(mp,i,'A')
relax.apply(mp)#relax after minimization
minimize_Energy(mp)
#Output#
print("The energy after relax: ",s0)
print("The energy after mutex: ",s1)
print("The ddG: ")
print(ddG)
Beta Was this translation helpful? Give feedback.
All reactions