You are here

Produces a set of rotamers from a given residue

6 posts / 0 new
Last post
Produces a set of rotamers from a given residue

Dear Rosettaers

I would like to dock Individual residues against the target surface on my protein. In this way, I have to produce a set of individual hydrophobic rotamers which can bind to a hydrophobic pocket on my protein. 

I used this RosettaScript to generate inverse rotamers:

        <EnergyPerResidue name="energy" pdb_num="102H" energy_cutoff="1.0"/>
        <Ddg name="ddg" threshold="-1.0"/>
        <TryRotamers name="try" pdb_num="102H" shove="102H"/>
        <Add mover_name="try"/>
        <Add filter_name="energy"/>
        <Add filter_name="ddg"/>

but after some seconds it will failed and gives this error:

ERROR: Conformation: fold_tree nres should match conformation nres. conformation nres: 312 fold_tree nres: 219
ERROR:: Exit from: src/core/conformation/ line: 761




I included log file in attachments.

For your information, I did relax and refinement successfully. Also, I removed water and heteroattom from my PDB. There are some missing residues in the PDB.

Should I includ fold_tree?

How can I solve this error?



Untitled Document 1.txt12.75 KB
Post Situation: 
Tue, 2017-08-15 08:05

Try adding `automatic_connection="false"` to the tag for TryRotamers.  

By default TryRotamers attempts to set up an "inverse rotamer fold tree" ( -- It looks like the automatic setup for this doesn't work with the pose as you have it. It appears it's not recognizing all the chains in your structure, and thus the FoldTree it sets up is only for the first chain.

You probably don't actually need this, so you can turn it off.

Wed, 2017-08-16 10:08

It works now, but It gave me new error:

protocols.protein_interface_design.movers.TryRotamers: current fold-tree:
FOLD_TREE  EDGE 1 218 -1  EDGE 1 219 1  EDGE 219 312 -1
core.pack.dunbrack.RotamerLibrary: Using Dunbrack library binary file '/home/ali-linux/linux_program/rosetta/main/database/rotamer/bbdep02.May.sortlib.Dunbrack02.lib.bin'.
core.pack.dunbrack.RotamerLibrary: Dunbrack library took 0.038552 seconds to load from binary
protocols.protein_interface_design.movers.TryRotamers: building rotamer set of 163 different rotamers ...
TryRotamers passed the final_filter
protocols.rosetta_scripts.ParsedProtocol: =======================BEGIN FILTER =======================
protocols.rosetta_scripts.ParsedProtocol: =======================END FILTER =======================
protocols.rosetta_scripts.ParsedProtocol: =======================BEGIN MOVER NullMover - NULL_MOVER=======================
protocols.rosetta_scripts.ParsedProtocol: =======================BEGIN FILTER energy=======================
protocols.simple_filters.EnergyPerResidueFilter: Apply Filter Scoretype total_score total of 312: 102+ Database file opened: scoring/score_functions/disulfides/fa_SS_distance_score
protocols.simple_filters.EnergyPerResidueFilter: Scoretype total_score for residue: 102 TYR is 902.342
protocols.rosetta_scripts.ParsedProtocol: =======================END FILTER energy=======================

protocols.rosetta_scripts.ParsedProtocol: Filter energy reports failure!
protocols.jd2.JobDistributor: 1cz8-2_0001 reported failure 1 times and will no longer retry (permanent failure)
protocols.jd2.JobDistributor: no more batches to process...
protocols.jd2.JobDistributor: 1 jobs considered, 1 jobs attempted in 6 seconds
Error: ERROR: Exception caught by rosetta_scripts application:1 jobs failed; check output for error messages


Let's give you more details. I'd like to create inverse rotamers from just one residue. I used three different PDBs: 

1. In first try, I kept both proteins which had interaction and wrote in InverseRotamers.xml to produce Inverse Rotamers from one residue.

2. In second try, I used a PDB containing protein 1 and just one residue from protein 2 which had interaction with protein 1.

3. In third try, I used one residue from protein 2 with 2 residue before and 2 residue after mentioned residue.


In all tries, it gave me above error.


I think its due to energy filter or energy_cutoff. I changed energy_cutoff but the error still remain.


Thu, 2017-08-17 13:20

That error is somewhat expected - it's doing what you want it to do. You're imposing a rotamer, then immediately checking the energy of that rotamer, with a hard absolute cutoff of +1.0 REU. It turns out that the rotamer you've imposed has issues, and has a really bad energy of +902.342. (Not to surprising, as you're just imposing a rotamer without any consideration for what's around it -- this is likely to lead to a clash.) As such, the filter fails and RosettaScripts cancels the output for that rotatmer.

If this isn't what you want to happen, then you either need to remove the filter, change the threshold of the filter, or do some sort of packing/minimization of surounding residues between the TryRotamers imposition and the filtering step in order to alieviate any clashes/issues with that rotamer.

Keep in mind that TryRotamers is rather simple, just iterating through the availible rotamers, imposing each in turn without any sort of optimization. Also note that "each in turn" refers to different nstruct. Typically with TryRotamers you don't want just one output structure, but want to increase the -nstruct to something high. TryRotamers will iterate through each rotamer in turn, each output structure getting a different rotamer until it runs out, at which point it will stop. (Or rather, result in errors for any additional nstruct.) As such, you typically crank -nstruct rather high on TryRotamers runs to make sure you cover everything.


I'm not quite understanding your full protocol. How are you attempting to use the models produces here?

You say "inverse rotamers", but is that what you want? Normal rotamers have a fixed backbone, and the sidechain varies based on the rotamer. An "inverse rotamer" flips this, fixing the location of certain atoms on the sidechain, and allowing the position of the backbone to vary.  I think TryRotamers can do this, but it may take a bit of parameter tweaking.

I'd recommend simplifying your protocol to start with to *just* the TryRotamers mover - get rid of the filters, at least to begin with. Run your TryRotamers with a large -nstruct and examine the models produced. Make sure the variation for that residue looks like you want it to, and your ensemble is being built correctly. Tweak the TryRotamers parameters until you get a rotamer ensemble you like. *Then* go back and add in filters and minimization, etc. to adjust which rotamers you keep and which you throw out.

Typically you're not going to want all the -nstruct to pass - you're going to select a subset of the rotamers, which will give you output structures, and the rest of the runs (the output structures) will result in an "error" and not give any structure output.


Thu, 2017-08-17 14:13

Dear. Moretti

I am going to produce inverse rotamer from a hot-spot residue for protein binder design. For this aim, is it necessary to add `automatic_connection="false"` to the tag for TryRotamers?

I did many sort of packing/minimization and also docking refinement and now total minimization score is about -570 REU. I think this score is good to continue.

Also, in a Protein-Protein interaction and for Inverserotamer.xml, I used cutoff of +100.0 REU in and nstruct 500,000. Finally, Rosetta gave me just 13 rotamers, which had a bit structural differences.

I don't know, Should I use these rotamers? Or is there any other way to improve and increase the output?





Sun, 2017-08-20 04:55

I have a problem with inverse rotamers generation after re-installation of ROSETTA. Actually, I the latest weekly release of ROSETTA 3.8 for using new score function, but I couldn't generate inverse rotamers and gave me following error: 



ali-linux@alilinux-Lenovo-Y50-70:~/Desktop/peptide_design/1CZ8/docking_stubs/1_HR1-W108/W108/4_rotamers/1$ ~/linux_program/rosetta/main/source/bin/rosetta_scripts.default.linuxgccrelease -database ~/linux_program/rosetta/main/database/ -ignore_zero_occupancy false -ignore_unrecognized_res -use_input_sc -nstruct 50000 -s 1cz8_W108_0005_H.pdb -ex1 -ex2 -parser:protocol  InverseRotamers.xml -restore_pre_talaris_2013_behavior


core.init: Rosetta version unknown:exported  from
core.init: command: /home/ali-linux/linux_program/rosetta/main/source/bin/rosetta_scripts.default.linuxgccrelease -database /home/ali-linux/linux_program/rosetta/main/database/ -ignore_zero_occupancy false -ignore_unrecognized_res -use_input_sc -nstruct 50000 -s 1cz8_W108_0005_H.pdb -ex1 -ex2 -parser:protocol InverseRotamers.xml -restore_pre_talaris_2013_behavior
core.init: 'RNG device' seed mode, using '/dev/urandom', seed=-1057562819 seed_offset=0 real_seed=-1057562819
core.init.random: RandomGenerator:init: Normal mode, seed=-1057562819 RG_type=mt19937
protocols.jd2.PDBJobInputter: Instantiate PDBJobInputter
protocols.jd2.PDBJobInputter: PDBJobInputter::fill_jobs
protocols.jd2.PDBJobInputter: pushed 1cz8_W108_0005_H.pdb nstruct indices 1 - 50000
protocols.evaluation.ChiWellRmsdEvaluatorCreator: Evaluation Creator active ...
protocols.jd2.JobDistributor: Parser is present.  Input mover will be overwritten with whatever the parser creates.
protocols.jd2.PDBJobInputter: PDBJobInputter::pose_from_job
protocols.jd2.PDBJobInputter: filling pose from PDB 1cz8_W108_0005_H.pdb
core.chemical.GlobalResidueTypeSet: Finished initializing fa_standard residue type set.  Created 74 residue types
core.chemical.GlobalResidueTypeSet: Total time to initialize 0.047058 seconds.
core.import_pose.import_pose: File '1cz8_W108_0005_H.pdb' automatically determined to be of type PDB
protocols.rosetta_scripts.RosettaScriptsParser: dock_design_filename=InverseRotamers.xml
protocols.rosetta_scripts.RosettaScriptsParser: Generating XML Schema for rosetta_scripts...
protocols.rosetta_scripts.RosettaScriptsParser: ...done
protocols.rosetta_scripts.RosettaScriptsParser: Initializing schema validator...
protocols.rosetta_scripts.RosettaScriptsParser: ...done
protocols.rosetta_scripts.RosettaScriptsParser: Validating input script...
protocols.rosetta_scripts.RosettaScriptsParser: ...done
protocols.rosetta_scripts.RosettaScriptsParser: Parsed script:


        <EnergyPerResidue energy_cutoff="1.0" name="energy" pdb_num="1H"/>
        <Ddg name="ddg" threshold="-1.0"/>
        <TryRotamers name="try" pdb_num="1H" shove="1H"/>
        <Add mover_name="try"/>
        <Add filter_name="energy"/>
        <Add filter_name="ddg"/>


core.scoring.ScoreFunctionFactory: SCOREFUNCTION: pre_talaris_2013_standard.wts
core.scoring.ScoreFunctionFactory: SCOREFUNCTION PATCH: score12
core.scoring.etable: Starting energy table calculation
core.scoring.etable: smooth_etable: changing atr/rep split to bottom of energy well
core.scoring.etable: smooth_etable: spline smoothing lj etables (maxdis = 6)
core.scoring.etable: smooth_etable: spline smoothing solvation etables (max_dis = 6)
core.scoring.etable: Finished calculating energy tables. Database file opened: scoring/score_functions/PairEPotential/pdb_pair_stats_fine Database file opened: scoring/score_functions/hbonds/score12_params/HBPoly1D.csv Database file opened: scoring/score_functions/hbonds/score12_params/HBFadeIntervals.csv Database file opened: scoring/score_functions/hbonds/score12_params/HBEval.csv Database file opened: scoring/score_functions/P_AA_pp/P_AA Database file opened: scoring/score_functions/P_AA_pp/P_AA_n Database file opened: scoring/score_functions/P_AA_pp/P_AA_pp Database file opened: scoring/score_functions/rama/Rama_smooth_dyn.dat_ss_6.4
core.scoring.etable: Using alternate parameters: LJ_RADIUS_SOFT in Etable construction.
core.scoring.etable: Starting energy table calculation
core.scoring.etable: smooth_etable: changing atr/rep split to bottom of energy well
core.scoring.etable: smooth_etable: spline smoothing lj etables (maxdis = 6)
core.scoring.etable: smooth_etable: spline smoothing solvation etables (max_dis = 6)
core.scoring.etable: Finished calculating energy tables. Database file opened: scoring/score_functions/InterchainPotential/interchain_env_log.txt Database file opened: scoring/score_functions/InterchainPotential/interchain_pair_log.txt Database file opened: scoring/score_functions/EnvPairPotential/env_log.txt Database file opened: scoring/score_functions/EnvPairPotential/cbeta_den.txt Database file opened: scoring/score_functions/EnvPairPotential/pair_log.txt Database file opened: scoring/score_functions/EnvPairPotential/cenpack_log.txt
protocols.simple_filters.EnergyPerResidueFilter: EnergyPerResidueFilter for residue 1 of score_type total_score with cutoff 1
protocols.rosetta_scripts.RosettaScriptsParser: Defined filter named "energy" of type EnergyPerResidue
protocols.simple_filters.DdgFilter: ddg filter with threshold -1 repeats=1 and scorefxn commandline over jump 1extreme_value_removal: 0 and repack 1
protocols.rosetta_scripts.RosettaScriptsParser: Defined filter named "ddg" of type Ddg
protocols.protein_interface_design.movers.TryRotamers: Using shove atomtype for 1H
TryRotamers was instantiated using scorefxn=commandline, jump_number=1, solo_res=0, clash_check=0, include_current=1, and explosion=0
protocols.rosetta_scripts.RosettaScriptsParser: Defined mover named "try" of type TryRotamers
protocols.rosetta_scripts.ParsedProtocol: ParsedProtocol mover with the following movers and filters
protocols.rosetta_scripts.ParsedProtocol: added mover "try" with filter "true_filter"
protocols.rosetta_scripts.ParsedProtocol: added mover "NULL_MOVER" with filter "energy"
protocols.rosetta_scripts.ParsedProtocol: added mover "NULL_MOVER" with filter "ddg"
protocols.jd2.PDBJobInputter: PDBJobInputter::pose_from_job
protocols.jd2.PDBJobInputter: filling pose from saved copy 1cz8_W108_0005_H.pdb
protocols.rosetta_scripts.ParsedProtocol: =======================BEGIN MOVER TryRotamers - try=======================
protocols.protein_interface_design.movers.TryRotamers: current fold-tree:
Segmentation fault (core dumped)


I googled this errors and somebody says this could be doe to that ROSETTA can not access to some parts of the ROSETTA. Then, I reinstalled previous version of ROSETTA, which had perfectly worked with inverse rotamer generation. Also, I prepared the samples with same version of rosetta and then I intended to generate inverse rotamers, but again had same error.

I don't know whats wrong? Can you help me?


Fri, 2017-09-15 07:45