Skip to main content
The ESMC model learns protein structure and function from sequence, so it can estimate how likely each amino acid is at every position and predict which mutations a protein is likely to tolerate. To find out how a protein responds to mutations or amino-acid substitutions, prompt your AI agent, and the Biohub MCP scores them with ESMC to return predicted scores.
Calls are billed to the Biohub account you are signed in with.

What you can ask

Ask in your own words, and your AI agent picks the tool for your task. For example:

Use ESMC to score the S65T and Y66H substitutions in GFP and explain what the scores mean.

Scan PETase from Ideonella sakaiensis for mutation tolerance with ESMC and list the most constrained and most tolerant positions.

You can paste a sequence instead of a name in either prompt.
Positions count from 1 along the sequence that is scored. When you name a protein, that is its UniProt sequence, which can number residues differently from a paper, for example when the paper leaves out a signal peptide. If the numbering doesn’t match, expected_wild_type makes the call fail instead of scoring the wrong residue.

Which tools your AI agent uses

How scoring works

ESMC hides the residue at one position and predicts how likely each amino acid is there. A substitution’s score is ln P(new residue) - ln P(original residue) at that hidden position:
  • A positive score means ESMC finds the new residue more likely than the original.
  • A negative score means ESMC prefers the original.
  • Each substitution is scored on its own on the original sequence, not combined with the others.
A scan scores all 20 amino acids at every position it covers, then ranks the positions by how constrained they are:
  • entropy_bits, the default, measures how spread out ESMC’s prediction is at the position. Low entropy means few residues fit, so the position is constrained.
  • negative_substitution_fraction is the share of the 19 other amino acids that score below the original. A high fraction means the position is constrained.
These scores are predictions, not measured fitness, stability, or activity. To run the same scoring using, see the mutation scoring tutorial.

Costs

Each position costs the protein’s length divided by 10,000 credits, whichever ESMC model you choose. Scoring several substitutions at the same position costs the same as scoring one. A scan never costs more than 20 credits.
Every call starts new work and bills again, even for the same input. If a call returns indeterminate, it may have been billed already, so don’t retry it automatically.

Score substitutions

esmc_score_mutations takes your protein sequence and any desired amino-acid substitutes and returns a score for each substitution.

Inputs

Each entry in mutations names one substitution: Residues are one of the 20 standard amino acids, as uppercase one-letter codes. This example scores W43F and W43A in GB1:

Results

Both substitutions in the example share one position, so they took one ESMC call:

Scan mutation tolerance

esmc_scan_mutation_tolerance finds the positions where a protein is most and least tolerant to change. It returns the top positions of each kind with their strongest substitutions, not the full matrix of scores.

Inputs

One scan covers at most 400 positions, and at most 200,000 divided by the protein’s length. For a longer request, the tool returns invalid_input with a window that fits; it never shortens the scan for you.

Results

Each position in most_constrained and most_tolerant has: For example, a full scan of GB1 with the default model ranked Asp46 as most constrained, with every substitution scoring below the original, and Gly38 as most tolerant. It made 56 ESMC calls for 0.31 credits.

Partial scans

A scan that reaches the time limit, or a rate limit after some positions finished, returns partial and bills only the finished positions. To finish it, scan again with coverage.unscanned as positions. Each scan ranks only the positions it covers, so compare the two results to get the full picture.

Limits

Errors

When an error includes credits or billed_calls, it describes the work Biohub confirmed before the failure. A later failure doesn’t refund earlier ESMC calls in the same request. See Troubleshooting for details about codes.