using MonteCarlo to fold a random structure into a helical structure

Member Site Forums PyRosetta PyRosetta – Scripts using MonteCarlo to fold a random structure into a helical structure

Viewing 1 reply thread
  • Author
    Posts
    • #1736
      Anonymous

        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.

      • #9438
        Anonymous

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

        • #9439
          Anonymous

            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

          • #9449
            Anonymous

              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?

            • #9451
              Anonymous

                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

              • #9452
                Anonymous

                  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.

              Viewing 1 reply thread
              • You must be logged in to reply to this topic.