Hello,
Recently, I had a chance to see a presentation about coupled_moves. There is hardly any information about it since the paper isn't published yet but I figured I would give it a try anyway. What I want to do is to redesign enzyme specificity for a new substrate . The problem is including rotamers library of my new substrate.
I created ligand rotamers with Frog2 (no acces to MOE or OpenEye) and created params files with:
"molfile_2_params.py rotamers.mol2 --conformers-in-one-file".
It created lig.params (with line "PDB_ROTAMERS LG_conformers.pdb" already included) and pdb files: lig.pdb and lig_conformers.pdb. I attached the single pdb to the receptor (separated with TER line) and positioned new ligand in pymol manually in a place where native ligand should be.
It runs but apparently doesn't use any of my rotamers. I suppose it is a general problem rather than specific for coupled_moves. I have no previous experience in rosetta so my problem is probably something simple but I already run out of ideas how to fix it.
What bothers me are two lines from logfile:
core.pack.dunbrack.SingleLigandRotamerLibrary: Read in 21 rotamers for LG1
Which if I undestand correctly means that rotamers are read. But then I get:
core.pack.rotamer_set.RotamerSet_: [ WARNING ] including current in order to get at least 1 rotamer !!!!!! 275 LG1
Which confuses me because it looks like I have not provided rotamers that were previously read...
When I check the results I can see that indeed only one rotamer was used. So my question is where I made a mistake in rotamer library prepration?
I Attached lig.params and lig_conformers and below find first lines of logfile:
core.init: Rosetta version exported from http://www.rosettacommons.org
core.init: command: /home/tyras/rosetta_bin_linux_2015.19.57819_bundle/main/source/bin/coupled_moves.linuxgccrelease @flags
core.init: 'RNG device' seed mode, using '/dev/urandom', seed=1434289079 seed_offset=0 real_seed=1434289079
core.init.random: RandomGenerator:init: Normal mode, seed=1434289079 RG_type=mt19937
core.scoring.ScoreFunctionFactory: SCOREFUNCTION: talaris2013
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.
basic.io.database: Database file opened: scoring/score_functions/hbonds/sp2_elec_params/HBPoly1D.csv
basic.io.database: Database file opened: scoring/score_functions/hbonds/sp2_elec_params/HBFadeIntervals.csv
basic.io.database: Database file opened: scoring/score_functions/hbonds/sp2_elec_params/HBEval.csv
basic.io.database: Database file opened: scoring/score_functions/rama/Rama_smooth_dyn.dat_ss_6.4
basic.io.database: Database file opened: scoring/score_functions/P_AA_pp/P_AA
basic.io.database: Database file opened: scoring/score_functions/P_AA_pp/P_AA_n
basic.io.database: Database file opened: scoring/score_functions/P_AA_pp/P_AA_pp
core.mm.MMBondAngleLibrary: MM bond angle sets added fully assigned: 507; wildcard: 0 and 1 virtual parameter.
protocols.jd2.PDBJobInputter: Instantiate PDBJobInputter
protocols.jd2.PDBJobInputter: PDBJobInputter::fill_jobs
protocols.jd2.PDBJobInputter: pushed 2W1V_N.pdb nstruct indices 1 - 2
protocols.evaluation.ChiWellRmsdEvaluatorCreator: Evaluation Creator active ...
protocols.jd2.PDBJobInputter: PDBJobInputter::pose_from_job
protocols.jd2.PDBJobInputter: filling pose from PDB 2W1V_N.pdb
core.chemical.ResidueTypeSet: Finished initializing fa_standard residue type set. Created 786 residue types
core.conformation.Conformation: [ WARNING ] missing heavyatom: CG on residue MET:NtermProteinFull 1
core.conformation.Conformation: [ WARNING ] missing heavyatom: SD on residue MET:NtermProteinFull 1
core.conformation.Conformation: [ WARNING ] missing heavyatom: CE on residue MET:NtermProteinFull 1
core.conformation.Conformation: [ WARNING ] missing heavyatom: OG on residue SER 2
core.conformation.Conformation: [ WARNING ] missing heavyatom: OXT on residue LYS:CtermProteinFull 274
core.conformation.Conformation: [ WARNING ] missing heavyatom: CG on residue LYS:CtermProteinFull 274
core.conformation.Conformation: [ WARNING ] missing heavyatom: CD on residue LYS:CtermProteinFull 274
core.conformation.Conformation: [ WARNING ] missing heavyatom: CE on residue LYS:CtermProteinFull 274
core.conformation.Conformation: [ WARNING ] missing heavyatom: NZ on residue LYS:CtermProteinFull 274
core.pack.task: Packer task: initialize from command line()
core.pack.pack_missing_sidechains: packing residue number 1 because of missing atom number 6 atom name CG
core.pack.pack_missing_sidechains: packing residue number 2 because of missing atom number 6 atom name OG
core.pack.pack_missing_sidechains: packing residue number 274 because of missing atom number 7 atom name CG
core.scoring.ScoreFunctionFactory: SCOREFUNCTION: talaris2013
core.pack.dunbrack: Dunbrack 2010 library took 0.45 seconds to load from binary
core.pack.dunbrack.SingleLigandRotamerLibrary: Read in 21 rotamers for LG1!
core.pack.interaction_graph.interaction_graph_factory: Instantiating DensePDInteractionGraph
core.pack.pack_rotamers: built 462 rotamers at 3 positions.
core.pack.pack_rotamers: IG: 46836 bytes
apps.coupled_moves: Initial Score:
apps.coupled_moves: ------------------------------------------------------------
Scores Weight Raw Score Wghtd.Score
------------------------------------------------------------
fa_atr 0.800 -1390.749 -1112.599
fa_rep 0.440 1829.765 805.096
fa_sol 0.750 846.085 634.564
fa_intra_rep 0.004 527.390 2.110
mm_bend 1.000 247.424 247.424
fa_elec 0.700 -132.453 -92.717
pro_close 1.000 9.720 9.720
hbond_sr_bb 1.170 -52.613 -61.557
hbond_lr_bb 1.170 -50.561 -59.157
hbond_bb_sc 1.170 -26.454 -30.952
hbond_sc 1.100 -14.907 -16.397
dslf_fa13 1.000 0.000 0.000
atom_pair_constraint 1.000 0.000 0.000
coordinate_constraint 1.000 0.000 0.000
angle_constraint 1.000 0.000 0.000
dihedral_constraint 1.000 0.000 0.000
rama 0.200 -82.057 -16.411
omega 0.500 108.600 54.300
fa_dun 0.560 671.483 376.030
p_aa_pp 0.320 -83.022 -26.567
ref 1.000 2.415 2.415
---------------------------------------------------
Total weighted score: 715.302
core.scoring.constraints.util: Constraint choice: constraints.cst
core.scoring.constraints.ConstraintsIO: read constraints from constraints.cst
core.scoring.constraints.ConstraintsIO: Read in 3 constraints
core.pack.task: Packer task: initialize from command line()
apps.coupled_moves:
basic.io.database: Database file opened: sampling/branch_angle/branch_angle_1.txt
basic.io.database: Database file opened: sampling/branch_angle/branch_angle_2.txt
apps.coupled_moves: Design Positions: 49 116 118 120 122 124 126 154 157 179 180 183 187 216 Starting Sequence: YFIVGIFYRFNTHY
apps.coupled_moves: Starting Score:
apps.coupled_moves: ------------------------------------------------------------
Scores Weight Raw Score Wghtd.Score
------------------------------------------------------------
fa_atr 0.800 -1390.749 -1112.599
fa_rep 0.440 1829.765 805.096
fa_sol 0.750 846.085 634.564
fa_intra_rep 0.004 527.390 2.110
mm_bend 1.000 247.424 247.424
fa_elec 0.700 -132.453 -92.717
pro_close 1.000 9.720 9.720
hbond_sr_bb 1.170 -52.613 -61.557
hbond_lr_bb 1.170 -50.561 -59.157
hbond_bb_sc 1.170 -26.454 -30.952
hbond_sc 1.100 -14.907 -16.397
dslf_fa13 1.000 0.000 0.000
atom_pair_constraint 1.000 0.000 0.000
coordinate_constraint 1.000 0.000 0.000
angle_constraint 1.000 0.000 0.000
dihedral_constraint 1.000 0.000 0.000
rama 0.200 -82.057 -16.411
omega 0.500 108.600 54.300
fa_dun 0.560 671.483 376.030
p_aa_pp 0.320 -83.022 -26.567
ref 1.000 2.415 2.415
---------------------------------------------------
Total weighted score: 715.302
apps.coupled_moves: Running 1000 trials...
protocols.backrub.BackrubMover: Segment lengths: 3-34 atoms
protocols.backrub.BackrubMover: Main chain pivot atoms: CA
protocols.backrub.BackrubMover: Adding backrub segments for residues 119-122
protocols.backrub.BackrubMover: Total Segments Added: 3
apps.coupled_moves: 1 YFIVGIFYRFNTHY 1908.09
protocols.backrub.BackrubMover: Segment lengths: 3-7 atoms
protocols.backrub.BackrubMover: Main chain pivot atoms: CA
protocols.backrub.BackrubMover: Adding backrub segments for residues 123-125
protocols.backrub.BackrubMover: Total Segments Added: 3
apps.coupled_moves: 2 YFIVGEFYRFNTHY 1908.27
protocols.backrub.BackrubMover: Segment lengths: 3-7 atoms
protocols.backrub.BackrubMover: Main chain pivot atoms: CA
protocols.backrub.BackrubMover: Adding backrub segments for residues 186-188
protocols.backrub.BackrubMover: Total Segments Added: 3
core.pack.rotamer_set.RotamerSet_: [ WARNING ] including current in order to get at least 1 rotamer !!!!!! 275 LG1
apps.coupled_moves: 4 YFIVGEFYRFNTHY 1670.75
protocols.backrub.BackrubMover: Segment lengths: 3-34 atoms
protocols.backrub.BackrubMover: Main chain pivot atoms: CA
protocols.backrub.BackrubMover: Adding backrub segments for residues 47-50
protocols.backrub.BackrubMover: Total Segments Added: 3
apps.coupled_moves: 5 FFIVGEFYRFNTHY 1669.77
protocols.backrub.BackrubMover: Segment lengths: 3-7 atoms
protocols.backrub.BackrubMover: Main chain pivot atoms: CA
protocols.backrub.BackrubMover: Adding backrub segments for residues 123-125
protocols.backrub.BackrubMover: Total Segments Added: 3
apps.coupled_moves: 6 FFIVGCFYRFNTHY 1667.83
core.pack.rotamer_set.RotamerSet_: [ WARNING ] including current in order to get at least 1 rotamer !!!!!! 275 LG1
[...]
Attachment | Size |
---|---|
![]() | 2.25 KB |
![]() | 29.9 KB |
During the rotamer building process, any rotamers which clash with the backbone (or sidechains of residues which aren't going to repack) will be discarded. I'm guessing that's what's happening in your case - you place all the rotamers, but all of them have a clash, so you discard all of them. You then add back a single rotamer just to have something. You may need to move the ligand around in the pocket somewhat to relieve clashes which are throwing out your ligand.
I don't see anything obviously wrong with your ligand setup. The only thing you might wish to do is change the nbr_atom. The nbr_atom is the atom which is superimposed when different ligand conformations are made. Right now it's the C-beta carbon. If you're more interested in keeping the acid or the amine in a fixed location when you're sampling ligand conformers, you may need to change which atom is the nbr_atom. You can do this either by supplying a nbr_atom selection to molfile_to_params.py, or by manually editing the params file to change the NBR_ATOM line. If you go the manual editing route, you'll also want to change the NBR_RADIUS line as well. This is the maximum distance from the NBR_ATOM to any heavy atom in any ligand conformer. Err on the long side with this - making it too long will only slow things down a little bit, but making it too short may cause errors in energy evaluation.
Thank you rmoretti, it makes sense to me now.
Changing nbr_atom did not help, though. I suppose I might have not chosen the best enzyme for redesign. I still kinda want to align each rotamer via amide bond, run them separately and then compare. There are not so many of them after all. Although, I am not sure if that makes a lot of sense, if any.
One way or the other, I guess I can change the subject to solved now.
Edit: Okay, I missed one step in he ligand setup. I did not specify in the resfile that I want to design the substrate. A line saying: 1 X ALLAA fixed the problem. It works just fine now.