You are here

Secondary Structure Relax

6 posts / 0 new
Last post
Secondary Structure Relax

Hello everyone,

I have generated a protein, and as you can see it seems to have almost a good backbone structure (the helices and the sheets are clearly visible but not quite there). Attached are two photos, Figure 1 is what I have generated, Figure 2 is the original crystal structure.

Is there a way to relax the structure as to emphasise for the secondary structures. In other words, push the structure to form secondary structures? or complete the hydrogen bonds for secondary structures?

What I Generate207.86 KB
Original Crystal Structure195.96 KB
Post Situation: 
Sat, 2018-03-17 10:50

It's not clear from the question - have you just tried normal relax here?  I guess you could consider upweighting the bb-bb hydrogen bond term plus Rama to try to fix it.

Sat, 2018-03-17 12:09

Thank for your reply.


Well, I tried your suggestion, I added (rama , 1.0) and (hbond_sr_bb , 1.0), plus I tried adding (VDW , 1.0) and (hbond_lr_bb , 1.0). I tried different combinations of these weights and repeated the relaxing 10 times in each attempt, the backbone still more or less remains as it is, i.e: without the development of more secondary structures (attached figure).


Attached is my script:

import os
from pyrosetta import *
pose = pose_from_pdb('test.pdb')
scorefxn = pyrosetta.rosetta.core.scoring.ScoreFunctionFactory.create_score_function('ref2015')
scorefxn.set_weight(rosetta.core.scoring.hbond_sr_bb , 1.0)	#Backbone to backbone hydrogen bonds (close in primary sequence) score
scorefxn.set_weight(rosetta.core.scoring.hbond_lr_bb , 1.0)	#Backbone to backbone hydrogen bonds (long  in primary sequence) score
scorefxn.set_weight(rosetta.core.scoring.vdw , 1.0)		#Van Der Waals score
scorefxn.set_weight(rosetta.core.scoring.rama , 1.0)		#Rama score
relax = pyrosetta.rosetta.protocols.relax.FastRelax()
for x in range(10): relax.apply(pose)
os.system('pymol test2.pdb test.pdb')
os.system('rm test2.pdb')

What else can I do?

File attachments: 
Sun, 2018-03-18 05:05

A) the hydrogen bond terms and rama (as rama_prepro) are ALREADY on in REF2015.  You're just changing the weight.  Look at $ROSETTA/Rosetta/main/database/scoring/weights/ref2015.wts and consider upweighting from there.

VDW is the centroid-mode term for van der Waals, it's split into fa_rep and fa_atr in the full atom score function.  You shouldn't reweight fa_rep with relax; that's what it does internally anyway (cycles of packing an minimization at increasingly higher fa_rep weight).

You can consider trying weights of 10 instead of 1 if you want to really hammer on it.  We're out in the realms of "throwing things to the wall to see what sticks" not 'this is established practice".


B) What are you actually trying to do?  Where did the wonky model come from?  If you know what the protein is supposed to look like, why not use homology modeling or even simply threading?  (Let's consider the why instead of the how).

Sun, 2018-03-18 10:35

Well I am trying to design a protein, and do far my protocol it going well except that i get this type of protein topology: "almost" secondary structures,  but not quite there. So i am looking to give them a nudge so that the proper H-bonds form full secondary structures.

I have zeroed all the REF2015 weights and attempted to adjust them one by one, but i do not think this is the correct appraoch because it is taking a long time through random trial and error without any logic nor direction,. is there a better way to search the parameter sphere instead of (change value-repeat-change value-repeat) etc... ?

Wed, 2018-03-21 00:16

"Is there a better way to do this": Well, honestly, the better way to do it is throw out the existing model, and re-arrange the code that produced the model to create models with proper secondary structure.  Rosetta generally handles this either by fragment insertion (build a protein from chunks of other PDBs, which have regular secondary structure) or parametric generation (generate ideal secondary structures from the equations that describe them).  The scorefunction is meant to recognize good secondary structure, but not to efficiently guide this kind of structure into ideality.  I don't know of a "good" way to do the rescue you describe.  Relax is meant to take bad models from centroid mode and make them into good models in fullatom mode: so if relax is not working here, this model is bad in some way Rosetta is not used to (unsurprising since centroid models come from fragments), and relax isn't a good tool to fix it.  I assume we don't have a canned tool to fix it.

If the standard scorefunction terms are not working, you can always use constraints to write your own scorefunction term.  Perhaps try setting dihedral constraints on the secondary structure phi and psi for whatever psi/phi you calculate is correct for the desired model (I think you will need a narrow range; otherwise upweighting rama would have worked), and AtomPair constraints on the expected hydrogen bonds.  That would specifically tell Rosetta the secondary structures you are trying to form.

Wed, 2018-03-21 08:42