Skip to content

Add DSSP secondary structure assignment as a post-prediction step #76

Description

@wilke

Description

After a structure prediction completes, the pipeline should run DSSP (Dictionary of Protein Secondary Structure) to assign secondary structure elements (helices, sheets, coils) to the predicted model. This annotation would be available in the output alongside the structure file, enabling downstream analysis and richer reports.

Current state

  • DSSP is used internally by protein_compare during report generation (SecondaryStructureAnalyzer via BioPython's DSSP wrapper), but only for the HTML report
  • The secondary structure assignment is not persisted as a standalone output artifact
  • The BV-BRC pipeline does not run DSSP as an explicit step — it is buried inside report generation

Proposed change

Add DSSP as a discrete post-prediction work step in the pipeline, after structure prediction and before report generation:

predict-structure <tool> → DSSP assignment → protein_compare report

This would:

  1. Run mkdssp on the predicted model (model_1.pdb or model_1.cif)
  2. Write the DSSP output to the normalized output directory (e.g. predictions/model_1.dssp)
  3. Optionally produce a per-residue SS assignment file (3-state: H/E/C) for easy parsing
  4. Make the pre-computed assignment available to the report step (avoids re-running DSSP)

Benefits

  • SS assignment becomes a first-class output artifact, usable by downstream tools
  • Report generation can consume pre-computed DSSP rather than running it inline
  • Enables future features: SS filtering, SS-based quality checks, SS comparison across tools
  • Aligns with the pipeline's existing pattern of discrete, composable steps

Implementation notes

  • mkdssp is already installed in the production SIF (required by protein_compare)
  • Could be added to App-PredictStructure.pl as a step between prediction and report, or integrated into the Python normalizer
  • For CWL workflows, this would be a new step in the workflow definition
  • DNA/RNA structures should be skipped (DSSP only works on proteins; see Add nucleic acid secondary structure analysis (DSSR integration) #18 for nucleic acid SS)

Priority

Low — enhancement, not blocking current functionality.

Activity

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