---
title: "Validate Forcefield"
method: POST
path: "/protein/{slug}/validate_forcefield"
tags: ["protein"]
---

# Validate Forcefield

`POST /protein/{slug}/validate_forcefield`

Validate that a protein can be parameterized with the specified forcefields.

This endpoint checks if all residues in the protein are recognized by OpenMM
and can be assigned forcefield parameters. Call this before running expensive
MD calculations to catch preparation issues early.

Excluded residues are ones the caller parameterizes itself rather than from the protein force
field, so validation would otherwise fail on them for having no template.

:param exclude_residues: posted as the request body; a residue name (case-insensitive) excludes
    every non-polymer record and polymer residue with that name, while a 0-based index into the
    sorted non-polymer records excludes that record without naming it
:raises HTTPException: 400 if the protein cannot be parameterized

## Path parameters

- `slug` string, required

## Query parameters

- `protein_ff` string
- `water_ff` string

## Cookies

- `access_token` string, nullable

## Request body

- union[]
  - union
    - string
    - integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/rowansci/apis/eyrie.md) · [All operations](https://skmtc.dev/rowansci/apis/eyrie/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rowansci/eyrie/revisions/f786577eede6/schema)
