OPLS3e refinement of ribosome + ligand structures (Maestro)
Introduction
written and edited by Jenna Pellegrino 20200225, 20200326, 20200401
Materials
standard apo ribosome with Hydrogens (.pdb)
you will use this for all refinements. do NOT phenix.ready_set a ribosome pdb and blindly use it. phenix.ready_set has added extra hydrogens to my 6MZ that should not have been there. it's ok to start with a ready_set output, but seriously check it through, run refinement with it a bit (for just one structure), fix errors you find during phenix and coot refinement, and get yourself a ribosome that behaves. once you do, use it for everything. do not phenix.ready_set a pdb whose naming scheme you're happy with, because it will rename and readd hydrogens, which will then have weird names. and for 6MZ, it will add an extra hydrogen.
again, this standard should not have any issues with it; phenix refinement should run smoothly with it. the names of atoms should match whatever they are in your companion standard restraints file.
something i have done to standardize my ribosome is to rename all the atoms as follows: (1) * -> ' ; (2) O1P -> OP1 ; (3) O2P -> OP2 ; (4) H5'1 -> H5' ; (5) H5'2 -> H5''. most nonstandard RNA follow this. only PSU, for whatever reason, uses O1P and O2P. why? i've had many issues related to naming discrepancies related to these things, so i just renamed them all in the standard ribosome and made sure to do the same to the standard cif.
/data/jpellegrino/refinement/std.ribosome.for.refinement.pdb | this is chains I, J, and truncated K at Ser 118
/data/jpellegrino/refinement/std.ribosome.for.refinement.extra.chains.pdb | this is chains I, J, and K in full PLUS 4 other polypeptide chains that are nearish the PTC
standard restraints file (.cif) for nonstandard RNA residues
do NOT use what phenix.ready_set gives you. i've seen a naming discrepancy bw a phenix.ready_set output's pdb and related RNA cif. i think it was 6MZ. i'm for absolute certain phenix.ready_set adds extra hydrogens on 6MZ though.
justin helped me rewrite the cif files for nonstandard RNA cifs. they originally came from phenix.ready_set (except PSU, which phenix.ready_set will sometimes neglect to give you. there are cifs for all the nonstandard RNA residues on the pdb in the ligands section. i copied the restraints from there for PSU). what we added in were "RNA" lines, so phenix and coot knew they are not true ligands but RNA residues that should be bound to other RNA residues. (i was having a recurring issue, specifically with 6MZ, where refining it in coot caused the nonstandard RNA residue to break its bond with its neighboring RNA residue(s) -- sometimes it happened on one side, and sometimes it happened on both sides. also, the pdb validation during deposition does NOT use the same list of ideal bond angles, lengths, etc. as the cifs found from phenix.ready_set, the pdb itself, mogul.... it's got its own list of ideals. and there's nowhere where they are listed in a nice easy format. so take it with a grain of salt? our source was... the pdb itself, i think?)
/data/jpellegrino/refinement/std.all.good.ligands.cif
density map (.mrc)
ligand (.pdb) -OR- old rib+lig that is refined into the map already (.pdb)
Procedure
in chimera, open std rib and map > fit_in_map > save pdb (default save settings)
e.g. rib-F1037.fit_in_map.pdb
in coot, open rib.fit_in_map, map, and either (1) the lig or (2) the older rib+lig pdb. if (1), open lig inside the lig density and do your best to center it in its density using the rotate/translate tool > save pdb. if (2), use LQS to superpose your rib onto the refined pdb (I use chain I as reference chain) > copy fragment on the ligand > merge ligand into rib.fit_in_map > save pdb
e.g. rib-lig-F1037.fit_in_map.pdb
in maestro, open rib-lig.fit_in_map.pdb > extract lig to new entry > run the preprocess section of protein prep wizard with defaults on lig
select All in the Quick select panel > Build > Other Edits > Change Atom Properties > Property: PDB atom name > unique PDB atom names within residues > Apply
When you run protein prep wizard in maestro, epik will rename atoms. Because schrodinger software is not sensitive like phenix, it will rename hydrogens to having the same names (two H12 atoms, for example). However, the PDB standard is to have all unique names. If you don't do this step, there's a chance all your atom names are fine, but there's also a possibility you'll have an error while merging in your prepped ligand later. Better to do this step and avoid the potential issues later.
Note: Gydo told me to do protein prep wizard and then change the prep'd ligands atom naming properties. I believe this is the optimal way to do it. But, if this doesn't work for whatever reason and you still get some atom naming error... you might try changing the atom naming properties of the extracted ligand and then run protein prep wizard on that? I don't know if protein prep wizard will change atom names or comply to the atom naming property of the ligand you run it on. Just saying you could try this?
export prepped ligand as .mae
merge prepped ligand into rib
e.g. rib-lig-F1037.rsr.in.pdb
in maestro, merge the ligands together, as you would to merge lig into rib, and export as one .mae. if you've forgotten to do this and closed you maestro session already, you can import the mae files of the individual ligands and then merge those ligands together and export as one mae.
e.g. lig-F1037-and-VRS.mae
delete MODEL, ENDMDL; it will error otherwise
delete CRYST lines; it will error if the xyz in these lines are different from the box size of the map. don't worry though - phenix will rewrite this line into the pdb after refinement, so you aren't losing any information
have the Schrodinger path sourced: $ source /data/jpellegrino/scripts/set_environ.sh
export SCHRODINGER=/opt/sbgrid/x86_64-linux/schrodinger/2019-4
echo "SCHRODINGER="$SCHRODINGER
export PHENIX=/opt/sbgrid/x86_64-linux/phenix/1.17-3644
export PHENIX_VERSION=3644
echo "PHENIX_VERSION="$PHENIX_VERSION
$SCHRODINGER/utilities/hetgrp_ffgen 2005 lig.mae -write_phenix_cif
delete unnecessary files and rename the phenix cif for clarity
rm lig (or rm vrs - it's named after the ligand)
mv lig-phenix.cif lig-F1037-phenix.cif
do NOT use refinement.run=minimization_global+adp. i've had my runs error on me because minimization_global doesn't always play nice with schrodinger.
use the default rmsd. i've had my runs error on me for making them 10x tighter, which is something i used to do and worked fine on vanilla phenix w/o schrodinger. Gydo says when they fully refine structures with OPLS. they use rmsd of bonds 0.015 and rmsd of angle 2. so the phenix defaults are quite close to those. Gydo approves.
refinement.target_bonds_rmsd=0.01 refinement.target_angles_rmsd=1
in your first round of refinement, turn the secondary structure restraints for protein and nucleic acid ON. in your second and further round(s) of refinement, turn these restraints OFF.
[jpellegrino@florion 00-phenix-real-space-refine-H]$ phenix.real_space_refine ../rib-lig-F1037.rsr.in.H.pdb ../F1037_0-8289.mrc /data/jpellegrino/refinement/std.all.good.ligands.cif ../lig-F1037-phenix.cif resolution=2.47 use_schrodinger=True use_symmetry=False maestro_file=../lig-F1037.mae schrodinger.selection="(resid 3001 and chain I)" refinement.target_bonds_rmsd=0.01 refinement.target_angles_rmsd=1 secondary_structure.protein.enabled=True secondary_structure.nucleic_acid.enabled=True
[jpellegrino@florion 01-phenix-real-space-refine-H]$ phenix.real_space_refine ../00-phenix-real-space-refine-H/rib-lig-F0224SB.rsr.in.H_real_space_refined.pdb ../F0224SB_0-8289.mrc /data/jpellegrino/refinement/std.all.good.ligands.cif ../lig-F0224-phenix.cif ../lig-VRS-phenix.cif resolution=2.67 use_schrodinger=True use_symmetry=False maestro_file=../lig-F0224-and-VRS.mae schrodinger.selection="(chain I and resid 3001 through 3101)" refinement.target_bonds_rmsd=0.01 refinement.target_angles_rmsd=1 weight=1 secondary_structure.protein.enabled=False secondary_structure.nucleic_acid.enabled=False