You are here

using MonteCarlo to fold a random structure into a helical structure

6 posts / 0 new
Last post
using MonteCarlo to fold a random structure into a helical structure
#1

I want to use MonteCarlo to fold a random structure into a helical stucture.But I have some troubles.
This is my script:from rosetta import *init()
p=pose_from_pdb("output3.pdb")
scorefxn=ScoreFunction()
scorefxn.set_weight(hbond_lr_bb,1.0)
scorefxn.set_weight(vdw,1.0)
ncycles=60000
KT=1.0
mc=MonteCarlo(p,scorefxn,KT)
movemap=MoveMap()
movemap.setbb(True)
small_mover=SmallMover(movemap,KT,5)
for i in range(1,ncycles):
small_mover.apply(p)
mc.boltzmann(p)
if(i%1000==0):
mc.recover_low(p)
mc.recover_low(p)
dump_pdb(p,"mc_output1.pdb")
But it told me:
ERROR: Fatal Error in VDW_Energy
ERROR:: Exit from: src/core/scoring/vdwaals/VDW_Energy.cc line: 199
Traceback (most recent call last):
File "monte_v2.py", line 13, in
mc=MonteCarlo(p,scorefxn,KT)
RuntimeError: unidentifiable C++ exception
I think I use the scorefunction method correctly.Why does it go wrong with scorefunction?
Then I change the scorefxn.(scorefxn=get_fa_scorefxn())And run the script.Unfornately,I can't get a helical structure.I get a line structure.I want to do the same job as http://www.pyrosetta.org/screenshots/ . What should I do if I want to get a helical structure.Is there anything wrong with the input pdb?
Attachments is the pictures of three kinds of pdbs.

AttachmentSize
what I get.jpg35.51 KB
what I input.jpg21.03 KB
what I want.jpg22.45 KB
Post Situation: 
Tue, 2013-10-22 05:48
Run

The random structure I used is the lowest energy structure in the 10000 random structures.

Tue, 2013-10-22 06:45
Run

Hi Run,

What the script on the page doesn't show is that it is loading a centroid structure (The vdw energy is for centroid poses only). You will need to switch your full atom structure to centroid in the beginning of the script, and at the end, you will want to switch it back and recover it's sidechains.

switch = SwitchResidueTypeSetMover('centroid')
recoverer = RecoverSideChainsMover(p)

switch.apply(p)

------------rest of script----------

recoverer.apply(p)

Please see the tutorial for folding at http://www.pyrosetta.org/tutorials#TOC-Workshop-4:-PyRosetta-Folding It should help. Also, the command reference http://www.pyrosetta.org/tutorials#TOC-Appendix-A:-Command-Reference Goes over the basic terms of the scorefunction(Though it should be noted that hack_elec is fa_elec in the newest binaries).

-Jared

Tue, 2013-10-22 07:32
jadolfbr

Thank you very much for your answer.
And fragment mover replaces the angles in pose with those from a random 3-mer fragment from fragset,only in positions allowed by movemap ,it uses a random way. But if I want to use it in a nonrandom way,for example,I want to replace the angles in a certain position,how should I do?Is there any available function?

Fri, 2013-10-25 07:03
Run

First, you can control the movemap to only include the 3-residue window you want a fragment to be applied.

Second, it looks like you can use the constructor of ClassicFragmentMover(fragset), instead of passing a movemap, and use the function define_start_window(first_residue) to define where the fragment starts. I havn't used this myself, and looking at the code, I am unsure if this will actually work; but it's worth a try.

-J

Fri, 2013-10-25 07:49
jadolfbr

If you're talking about the SmallMoves mover above, right now you're passing a movemap with all backbone degrees of freedom set as flexible. For that mover, pass a movemap that has only the backbones of the residues you want to alter set to flexible, and the ones you don't want to move set to fixed.

For a fragment mover, it depends a little on which fragment method you're using currently. For the ClassicFragmentMover, you can either define a particular place to insert with the define_start_window() method, or when you pass in a movemap, simply set the backbone degrees of freedom you don't want to move to be non-movable. The fragment mover then shouldn't insert a fragment that covers (alters) that position.

Fri, 2013-10-25 07:56
rmoretti