Skip to main content
Structure Ensemble RMSD
License: This constraint can use multiple tools, each under its own license. See the Tools Used tab and each tool’s page for license details.

This constraint is open source. Any third-party models, product names, or trademarks referenced are the property of their respective owners, and Proto is not affiliated with them.


proto-bio/proto-language/proto_language/constraint/protein_structure/structure_ensemble_similarity_constraint.py
View source
Generate conformational ensembles and compute RMSD against an experimental. target structure. This constraint:
  1. Prepares the target structure (extracting chain/residue range if specified).
  2. For each proposal sequence, generate a conformational ensemble.
  3. Computes PyMOL-aligned RMSD between each ensemble frame and the target.
  4. Summarizes the RMSDs using the specified aggregation method.
  5. Converts the summarized RMSD to a 0-1 score using a sigmoid function.

API Reference

ConfigStructureEnsembleSimilarityConfig Source
Configuration for structure ensemble similarity constraints.This constraint generates a conformational ensemble for a proposal protein sequence and computes the RMSD between ensemble members and an experimental target structure using PyMOL alignment.
target_structure
Structure | string
required
Target structure: a Structure object, file path (.pdb/.cif), or raw PDB/CIF content string.
target_chain_id
string
Chain ID to extract from the target structure (e.g., ‘A’).
target_residue_range
array
Residue range (start, end) to extract from target (1-indexed, inclusive).
proposal_residue_range
array
Residue range (start, end) of the proposal sequence to use.
bioemu_config
BioEmuConfig
Dictionary of configuration parameters passed to the ensemble prediction tool.
rmsd_aggregation
enum
default:"min"
How to summarize ensemble RMSD values: min (best match), p10, mean, or median.Options: min, p10, mean, median
pymol_alignment_method
enum
default:"align"
PyMOL alignment routine for ensemble RMSD calculation.Options: cealign, align
inflection_point_angstroms
number
default:"3.0"
RMSD in Ångströms where the sigmoid score equals 0.5; values below 3 Å are generally a good match.
sigmoid_slope
number
default:"3.0"
Steepness of the penalty curve.
verbose
boolean
default:"False"
Whether to print progress messages.
ReturnsConstraintOutput
Per-proposal score in [0, 1] (0 is a perfect match) with ensemble RMSD summary/distribution metadata.

Usage

python
from proto_language.core import Constraint
from proto_language.constraint import structure_ensemble_rmsd_constraint, StructureEnsembleSimilarityConfig

constraint = Constraint(
    inputs=[segment],
    function=structure_ensemble_rmsd_constraint,
    function_config=StructureEnsembleSimilarityConfig(
        # Configure parameters here
    ),
)

scores = constraint.evaluate()

Metadata

PropertyValue
Keystructure-ensemble-rmsd
Functionstructure_ensemble_rmsd_constraint
Categoryprotein_structure
Modediscrete
Uses GPUTrue
Supported Typesprotein