# Missing atoms and cannot find atom pose when refining ligand position with EM density

3 posts / 0 new
Missing atoms and cannot find atom pose when refining ligand position with EM density
#1

Dear all,

I am using emdensity to refine my model. My pdb file contains HEME atoms and I need them to be refined as well. I used relax protocol with -edensity options and adding extra tags -extra_res_fa and -extra_res_cen. When I looked at the output file, I saw warnings showing "missing heavy atoms" along with "can't find pose atoms". Also. the pdb file does not seem reasonable, since the HEMEs were not quite sitting in the density. (This is a test run, so I only generated one structure). In addition, there is some error message such as core.optimization.LineMinimizer: [ ERROR ] Inaccurate G!. I am wondering how I could fix this? I attched my bash file here.

Best,

Yangqi

AttachmentSize
565 bytes
Category:
Post Situation:
Mon, 2018-12-31 16:22
BuddySphinx

The "missing heavy atoms" warnings may or may not be an issue. Some of the times PDB files are missing heavy atoms because they couldn't be modeled well. Rosetta will build them back in, but will warn you about it. As long as it's just a few atoms per residue (particularly sidechain atoms), you should be fine.

The problem might arise if you're getting that message for a large number of atoms, particularly if that's your HEME residue. Taken with the "can't find pose atoms" message, this indicates is that there's some atom naming mismatch between the HEME residue in your input PDB and the params file you're providing. You get the "missing heavy atoms" warning because it's looking for the atom names listed in the params file and can't find them, and then it gives the "can't find pose atoms" because it's looking at the PDB atoms and can't find their equivalent in the from-params-file loaded structure.

The big issue is that Rosetta will use the naming convention from the params file, and if the input PDB has atoms with names not found in the params file, Rosetta will discard the PDB coordinates and rebuild them from scratch. Worse, if there's a name mismatch (e.g. C1 is in one location in the params file, but refers to a different atom in the input PDB), Rosetta will mess up the input coordinate reading, resulting in a mis-placed or junk ligand conformation.

You'll either need to rename the atoms in the input PDB to match the convention in the params file, or alternatively, you can take the output ligand PDB structure from the molfile_to_params step and replace the existing input structure HEME with the appropriately translated/rotated version of the molfile_to_params structure. (A third option is to try adding the option -remap_pdb_atom_names_for HEM [using the name3 for your ligand] to the command line. This will attempt to do a structure matching heuristic when reading in that ligand. This isn't always accurate, though, and can take a long time, especially for large ligands. But you'll only need to do it on the initial read in - any Rosetta-output structure should have the appropriate names from the params file.)

Fri, 2019-03-29 13:06
rmoretti

Thank you, rmoretti, for summarizing the issue so precisely. Molfile_to_params.py reorganizes the atoms in the params file such that the atoms are in different places relative to their positions in the original pdb. As you pointed out, the result is a "junk ligand conformation" with atoms flying everywhere. I tried "remap_pdb_atom_names_for" to no avail. If I replaced the ligand coordinates in the original pdb with those generated by molfile_to_params.py, the ligand conformation looks good. No missing heavyatom warnings. Problem is there are tens of thousands of these structures it's impossible to replace them all. Is there a way to tell molfile_to_params.py not to screw with the order of the ligand atoms in the pdb?

Tue, 2021-09-14 10:02
e3lm