rosetta icon indicating copy to clipboard operation
rosetta copied to clipboard

Failed to add residue HME at position 209 to surface - cannot find radius for FE1

Open black-desk opened this issue 9 months ago • 1 comments

When my molecule includes a metal atom (FE1) with 2-letter atomtype, Rosetta produces the following error:

core.scoring.sc.MolecularSurfaceCalculator: [ ERROR ] Failed to add residue HME at position 209 to surface - cannot find radius for FE1

I tried resolving this by adding a line like * FE* 1.41 to the sc_radii.lib file, but the error persists.

Root Cause Analysis

After investigating the relevant code:

https://github.com/RosettaCommons/rosetta/blob/695b0f21aed8ace84a900449ce857ab632f8e4d1/source/src/core/scoring/sc/MolecularSurfaceCalculator.cc#L325-L330

I believe the issue occurs when copying residue.atom_name(i) to scatom.atom, as the code skips the first character. However, when generating the error message, it prints the full residue.atom_name(i), which is misleading.

Workaround

Instead of adding * FE* 1.41 to sc_radii.lib, adding * E* 1.41 works correctly. This confirms that the code is looking for the atom name without the first character.

black-desk avatar Apr 09 '25 02:04 black-desk

Note that the default radii for the MolecularSurfaceCalculator are really only intended for use with protein-only structures. For general usage which includes non-protein or non-canonical residues, you may want to enable the use_rosetta_radii setting on MolecularSurfaceCalculator::settings -- I believe most end-user usage of MolecularSurfaceCalculator has this as an option.

roccomoretti avatar Apr 25 '25 17:04 roccomoretti