Skip to content

DSSP guess_hydrogens=True produces small secondary-structure mismatches vs reference DSSP outputs #5186

@sushk2904

Description

@sushk2904

Expected behavior

The test test_file_guess_hydrogens in MDAnalysisTests.analysis.test_dssp is expected to pass when DSSP is run with guess_hydrogens=True, producing secondary structure assignments that match the reference .dssp files shipped with MDAnalysisTests.

Actual behavior

When running the DSSP hydrogen-guessing tests locally, multiple failures occur in test_file_guess_hydrogens.
Specifically:

  • Out of 100 selected tests, 22 fail and 78 pass
  • Failures occur consistently for the same PDB files
  • The failures appear both with the multiprocessing backend and the serial backend
  • The mismatches are small and localized, typically involving helix (H) or strand (E) boundary assignments, often differing by a single residue
  • The output strings always have the same length and overall structure, but exact string comparison fails due to these small boundary shifts.

This suggests an environment or execution-sensitive behavior rather than an installation or setup issue.

Code to reproduce the behavior

The issue can be reproduced by running only the DSSP hydrogen-guessing tests:

pytest --pyargs MDAnalysisTests.analysis.test_dssp -k guess_hydrogens -vv

This selects 100 tests (12 deselected), of which 22 fail on my system.
Failures occur for the same structures under both client_DSSP0 (multiprocessing) and client_DSSP1 (serial).
Example failing structures include (3gknA.pdb.gz, 2j49A.pdb.gz, 3aqgA.pdb.gz, 3nzmA.pdb.gz, 3hklA.pdb.gz, 3l4rA.pdb.gz, 3e8mA.pdb.gz, 2fvvA.pdb.gz, 3a4rA.pdb.gz, 3gfsA.pdb.gz, 1eteA.pdb.gz etc.)

All failures show similar off-by-one or boundary-level differences in DSSP assignments.

Current version of MDAnalysis

  • MDAnalysis version: 2.11.0-dev0 (editable install from source)
  • Python version: 3.11.0rc1
  • Operating system: Ubuntu 22.04 (Linux)

Additional context:

  • MDAnalysis built from source with C extensions compiled
  • MDAnalysisTests installed via pip
  • The broader test suite passes, with failures isolated to DSSP hydrogen guessing
    @orbeckst

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