Skip to content

Resolution lost in cryo-EM #1000

Closed

Description

@aalhossary

Several entries have the resolution value set to 99 when obtained from PDB and 0 when obtained from mmCif.

Each was cryo-EM with resolutions in the range 3.35 - 3.8 Å.

4 examples are
(3j8h, 3jaj (available only in mmCIF).
6hu9, 7o3e (available as PDB files).

By experimenting, I found that

Activity

  1. aalhossary commented on Nov 27, 2021

    @aalhossary
    MemberAuthor

    Proposed solutions:

    • Proper parsing of the PDB entries. (I will submit a PR)
    • Contacting someone (?) to indicate some value in the mmCif entries _refine.ls_d_res_high field
    • Fixing how the period (.) is dealt with in this field, unless this ZERO is an intended outcome. Is it?
  2. josemduarte commented on Dec 2, 2021

    @josemduarte
    Contributor

    The PDB entries have the resolution reported in REMAK 2 (not parsed at all) and in REMARK 3 (using a format not recognized by the PDBFileParser). --> they are left as the default resolution value (99).

    One issue here is that the PDB format doesn't seem to be standardised regarding REMARK 3. See:
    https://www.wwpdb.org/documentation/file-format-content/format33/remark3.html . So parsing it would be nice, but won't necessarily cover all cases. Anyway I suppose that's a problem of the legacy PDB format and another reason to continue decreasing its usage.

    mmCIF resolution parsing for EM case

    The real issue here is that there's a different field to get the resolution for cryoEM method: _em_3d_reconstruction.resolution. So in principle the mmCIF parser should be using the resolution value from there if available (which would indicate that the method is EM). The field _refine.ls_d_res_high is for diffraction methods only.

  3. aalhossary commented on Dec 6, 2021

    @aalhossary
    MemberAuthor

    I submitted a pull request to fix that.
    However, a new question arises:
    There are cases where the resolution is unknown (the _em_3d_reconstruction.resolution value is a ?). In that case, should the default value be 0.0 or 99?

    Some examples include

    • 2FTE
    • 3JC8
    • 3JC9
    • 6EDT
    • 6ZTS
    • 6ZTY
    • 6ZTZ
    • 7EIZ
    • 7MBS
    • 7MBT
    • 7MBU
    • 7O2W
  4. josemduarte commented on Dec 6, 2021

    @josemduarte
    Contributor

    I suppose it'd be ok to stay with 99, since that's the expected behaviour looking at the code. The rationale behind it is that filtering on resolution would work as naturally expected (resolution<2 would filter out all the unknown resolution cases).

    In any case, it'd be good to document it. Could you add a brief explanation to PDBHeader.getResolution() ?

  5. aalhossary commented on Dec 7, 2021

    @aalhossary
    MemberAuthor

    Both done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions