You are here

dG_separated threshold for identifying non-binding peptides with InterfaceAnalyzer.

7 posts / 0 new
Last post
dG_separated threshold for identifying non-binding peptides with InterfaceAnalyzer.


I am a beginner in protein modelling/analysis and trying to learn through tutorials and the forums here.

A bit of a background of my present Task: I have a crystal structure of an Ab-Ag complex (AbFab with Ag peptide). I also have experimental data on binding affinities of several Ag peptide variants. I want to use this data to predict binding ability of novel Ag peptide variants with the same Ab.

What I have done so far: Relaxed the Pdb structure to be used with rosetta, added mutations to the peptide using Fixbb, relaxed the structure again, used flexpepdock refine to allow peptide backbone flexibility and finally InterfaceAnalyzer to calculate dG_separated.

My questions: 1) Is this workflow okay? 2) The plan is to build a range of dG_separated values based on experimental data of peptide binders vs Non binders and using those to predict the binding ability of the novel peptide variants. I understand that rosetta doesn't predict binding energies in kcal/mol and uses REU that correlate linearly with binding energy. Our collaborators use RDOCK energy of -6 kcal/mol as an empirically-fixed threshold to distinguish between potential binders and non-binders. Does such a threshold value exist for rosetta?

I'd greatly appreciate any and all suggestions. Thanks!

Post Situation: 
Thu, 2016-12-01 00:39

Your pipeline for modeling is perfect.  (Or at least it's what I would have done).

I don't have an answer for your threshold value.  I would guess that it varies with the system anyway (or, put another way, that programs that claim to have solid thresholds regardless of system may be over-claiming).  A good rule of thumb is that if Rosetta thinks it it is really bad or really good, Rosetta is probably right, but for ddgs with low absolute values, they are all predictions of 0.  

I would guess that something like 3 REU represents enough absolute value to be a "strong signal" (that's two perfect hydrogen bonds worth of energy).  

Thu, 2016-12-01 09:42

Thank you for your reply!

I am getting more than 3 REU ddg in some cases, although the I_sc values I get are a bit unrealistic I think. From what I understand, values between -5 and -10 are considered acceptable, but I am getting values around -25, also my dG_separated values are around -100. I am not sure if it's alright or I am doing something wrong.

Here are my workflow commands for reference:-

Fixbb:- fixbb.mpi.linuxgccrelease -database path_to_database -s Native_relaxed.pdb -resfile resfile.txt -ex1 -ex2 -use_input_sc -nstruct 1 -linmem_ig 20 -overwrite

relax:- relax.mpi.linuxgccrelease -database path_to_database -relax:constrain_relax_to_start_coords -relax:ramp_constraints false -ex1 -ex2 -use_input_sc -flip_HNQ -no_optH false -nstruct 1 -in:file:s file.pdb

flexpepdock:- 100 decoys with lowres-preptimize peprefine flag and 100 with only peprefine flags as follows

FlexPepDocking.linuxgccrelease -database path_to_database -s Fixbb_relaxed_ppk.pdb -native Native_relaxed.pdb -receptor_chain A -peptide_chain P -out:file:silent lowres_decoys.silent -out:file:silent_struct_type binary -pep_refine -ex1 -ex2aro -use_input_sc -nstruct 100 -lowres_preoptimize

FlexPepDocking.linuxgccrelease -database path_to_database -s Fixbb_PC2_relaxed_ppk.pdb -native Native_relaxed.pdb -receptor_chain A -peptide_chain P -out:file:silent peprefine_decoys.silent -out:file:silent_struct_type binary -pep_refine -ex1 -ex2aro -use_input_sc -nstruct 100

Following this, I take top10 poses from each category and perform interface analysis as follows:

InterfaceAnalyzer.mpi.linuxgccrelease -database path_to_database -in:file:silent peprefine_decoys.silent -in:file:tags `cat top10.txt` -native Native_relaxed.pdb -out:file:score_only -out:file:scorefile -ex1 -ex2aro -compute_packstat true -pack_separated true -pack_input true -use_input_sc -fixedchains A -nstruct 5 -overwrite





Thu, 2016-12-01 10:53

-100 does seem awfully large.  I assume it's just a very large, very tight interface?  Your pipeline as a whole looks fine to me.

You can try -extrachi_cutoff 0 with interface analyzer - currently you'll be using more rotamers for the bound packing than the unbound packing; that shouldn't be able to make that large a difference but you can try it.

Thu, 2016-12-01 12:02


As you predicted, -extrachi_cutoff 0 did not make a huge difference to the dG_separated values. Although, I seem to have solved the issue of <-90 values. Previously, I had given all the Ab chains the same ID. When I maintained the heavy-light chain IDs as H and L, the dG_separated values dropped down to ~-25. Interestingly, if you give the flag '-fixedchains HL' instead of '-fixedchains H L', the same value difference (~-100 vs ~-25) can be observed. Probably a silly mistake on my part, but I will leave it here for anybody who might make the same mistake.

With respect to your comment regarding 3 REU representing enough absolute value to be a "strong signal" (that's two perfect hydrogen bonds worth of energy) i.e. significant difference in interaction, I'd really appreciate your providing a reference that would help me understand this concept better.

Thank you!

Wed, 2016-12-14 06:29

Reading between the lines a little - the -100 is probably due to it moving ONLY the light or heavy chain and NOT the other ab chain - this will give you an absurd interface energy because it is calculating the energy of the large, constitutive H:L interface plus part of your intended interface.  Fixing the chain letters and using -fixedchains correctly (hopefully "correctly" means "however the documentation says" - if that's not true, warn me so I can go bug hunting or documentation fixing) ought to give you correct values.

Wed, 2016-12-14 06:51

Thank you for clarifying! The documentation is correct as well, it was a silly mistake on my part. Marking the post as 'solved' now!

Wed, 2016-12-14 09:39