> ## Documentation Index
> Fetch the complete documentation index at: https://proto.evodesign.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Structure pLDDT Score

> Evaluate structure quality using predicted LDDT score

<div class="page-hero">
  <img class="page-hero-banner" src="https://proto-bio.github.io/proto-assets/images/constraint/structure-plddt/hero.png" alt="Structure pLDDT Score" />
</div>

<Note>
  **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.
</Note>

<p class="entity-disclaimer">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.</p>

<hr class="entity-rule" />

<input type="radio" name="tab-constraint-structure-plddt" id="none-constraint-structure-plddt" class="tab-radio-input" />

<input type="radio" name="tab-constraint-structure-plddt" id="tools-constraint-structure-plddt" class="tab-radio-input" defaultChecked />

<input type="radio" name="tab-constraint-structure-plddt" id="source-constraint-structure-plddt" class="tab-radio-input" />

<div class="tool-tab-bar"><span class="tool-tab-wrap"><label for="tools-constraint-structure-plddt" class="tool-tab tab-open badge-tools"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="7" height="7" x="3" y="3" rx="1" /><rect width="7" height="7" x="14" y="3" rx="1" /><rect width="7" height="7" x="14" y="14" rx="1" /><rect width="7" height="7" x="3" y="14" rx="1" /></svg> Tools Used</label><label for="none-constraint-structure-plddt" class="tool-tab tab-close badge-tools"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="7" height="7" x="3" y="3" rx="1" /><rect width="7" height="7" x="14" y="3" rx="1" /><rect width="7" height="7" x="14" y="14" rx="1" /><rect width="7" height="7" x="3" y="14" rx="1" /></svg> Tools Used</label></span> <span class="tool-tab-wrap"><label for="source-constraint-structure-plddt" class="tool-tab tab-open badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</label><label for="none-constraint-structure-plddt" class="tool-tab tab-close badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</label></span></div>

<a href="/docs/tools/structure-prediction/overview" class="tab-panel tools-panel tools-panel-single" data-tab="tools-constraint-structure-plddt">
  <div class="tools-single-card tools-single-collage"><div class="tool-catalog-tile-collage"><div class="tool-catalog-tile-cell">  <img noZoom src="https://proto-bio.github.io/proto-assets/images/tool/esmfold/carousel.png" alt="" loading="lazy" /></div><div class="tool-catalog-tile-cell">  <img noZoom src="https://proto-bio.github.io/proto-assets/images/tool/esmfold2/carousel.png" alt="" loading="lazy" /></div><div class="tool-catalog-tile-cell">  <img noZoom src="https://proto-bio.github.io/proto-assets/images/tool/alphafold3/carousel.png" alt="" loading="lazy" /></div><div class="tool-catalog-tile-cell">  <img noZoom src="https://proto-bio.github.io/proto-assets/images/tool/boltz2/carousel.png" alt="" loading="lazy" /></div></div><div class="tool-catalog-tile-label"><span>Structure Prediction · 7 tools</span></div></div>
  <span class="panel-goto-btn tools-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg> Go to Category</span></span>
</a>

<a href="https://github.com/evo-design/proto-language/blob/d3b7822f74ea64747cc751a3b2ab1aa6b799ac47/proto_language/constraint/protein_structure/structure_confidence_constraint.py#L228" target="_blank" class="tab-panel source-panel" data-tab="source-constraint-structure-plddt">
  <div class="source-info">
    <img noZoom src="https://github.com/evo-design.png?size=40" class="source-avatar" width="36" height="36" />

    <span class="source-path">evo-design/proto-language<span class="source-subpath">/proto\_language/constraint/protein\_structure/structure\_confidence\_constraint.py</span></span>
  </div>

  <span class="panel-goto-btn source-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" /></svg> View source</span></span>
</a>

<div class="entity-contributors"><span class="entity-contributors-label">Constraint contributors</span><span class="entity-contributors-people"><a class="entity-contributor" href="https://github.com/dguo8412" target="_blank" rel="noopener" title="dguo8412: 6 commits"><img noZoom class="entity-contributor-avatar" src="https://avatars.githubusercontent.com/u/46211285?v=4&s=64" alt="" loading="lazy" /><span class="entity-contributor-login">dguo8412</span></a><a class="entity-contributor" href="https://github.com/bviggiano" target="_blank" rel="noopener" title="bviggiano: 2 commits"><img noZoom class="entity-contributor-avatar" src="https://avatars.githubusercontent.com/u/21143637?v=4&s=64" alt="" loading="lazy" /><span class="entity-contributor-login">bviggiano</span></a></span></div>
Evaluate structure quality using predicted LDDT (pLDDT) score.

pLDDT (predicted Local Distance Difference Test) measures per-residue
confidence in the predicted structure. Values range from 0.0 to 100.0
(sometimes, these are normalized from 0.0 to 1.0) where higher values
indicate more reliable predictions.

This constraint returns 1.0 - **normalized** pLDDT, so lower scores
indicate better predicted structure quality.

Note that for Boltz2, this is based on the `"complex_plddt"` score
returned natively by the package.

**Supported tools**: ESMFold, ESMFold2, AlphaFold3, Boltz2, Chai1, Protenix, AlphaFold2, AlphaFold2 binder

## API Reference

<div class="api-model-section api-model-static api-config-section">
  <div class="api-model-header"><span class="api-model-badge api-config-badge">Config</span><span class="api-model-name">StructureBasedConstraintConfig</span><a href="https://github.com/evo-design/proto-language/blob/d3b7822f74ea64747cc751a3b2ab1aa6b799ac47/proto_language/constraint/protein_structure/structure_constraint_config.py#L320" target="_blank" class="func-table-btn func-source-btn api-model-source"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a></div>

  Base configuration for constraints using structure prediction tools.

  This base class standardizes how structure prediction tools and their
  configurations are specified across all structure-based constraints.
  Each tool has its own dedicated config field.

  Subclasses can optionally restrict which tools are supported by overriding
  the structure\_tool field with a narrower Literal type.

  <ParamField path="structure_tool" type="enum" default="esmfold">
    Predictor: esmfold/esmfold2/alphafold3/boltz2/chai1/protenix/alphafold2/alphafold2\_binder.

    Options: `esmfold`, `esmfold2`, `alphafold3`, `boltz2`, `chai1`, `protenix`, `alphafold2`, `alphafold2_binder`
  </ParamField>

  <ParamField path="esmfold_config" type="ESMFoldConfig">
    Configuration for ESMFold structure prediction.
  </ParamField>

  <ParamField path="esmfold2_config" type="ESMFold2Config">
    Configuration for ESMFold2 structure prediction.
  </ParamField>

  <ParamField path="alphafold3_config" type="AlphaFold3Config">
    Configuration for AlphaFold3 structure prediction.
  </ParamField>

  <ParamField path="boltz2_config" type="Boltz2Config">
    Configuration for Boltz2 structure prediction.
  </ParamField>

  <ParamField path="chai1_config" type="Chai1Config">
    Configuration for Chai1 structure prediction.
  </ParamField>

  <ParamField path="protenix_config" type="ProtenixConfig">
    Configuration for Protenix structure prediction.
  </ParamField>

  <ParamField path="alphafold2_config" type="AlphaFold2Config">
    Configuration for the general AlphaFold2 multimer structure predictor.
  </ParamField>

  <ParamField path="alphafold2_binder_config" type="AlphaFold2BinderStructureConfig">
    Configuration for the AF2 binder-design backend.
  </ParamField>
</div>

<div class="api-model-section api-model-static api-output-section">
  <div class="api-model-header"><span class="api-model-badge api-output-badge">Returns</span><span class="api-model-name">ConstraintOutput</span></div>

  Per-proposal score and `avg_plddt` / `pdb_output`
  / `structure_tool` metadata for the predicted full input tuple;
  predicted Structure attaches to slot 0.
</div>

## Usage

Programming a homo-trimer with ESMFold:

```python python icon="python" theme={null}
>>> from proto_language.core import Segment
>>> protomer = Segment(length=10, sequence_type="protein")
>>> esmfold_plddt = Constraint(
...     inputs=[protomer, protomer, protomer],
...     function=structure_plddt_constraint,
...     function_config={"structure_tool": "esmfold"},
... )
```

## Metadata

| Property        | Value                             |
| --------------- | --------------------------------- |
| Key             | `structure-plddt`                 |
| Function        | `structure_plddt_constraint`      |
| Category        | `protein_structure`               |
| Mode            | `discrete`                        |
| Uses GPU        | `True`                            |
| Supported Types | `protein`, `rna`, `dna`, `ligand` |
