---
title: Paragraph outputs and interpretation
description: Paratope residues, per-residue probabilities, and regions from Paragraph.
tags:
  - paragraph
  - outputs
---

Paragraph returns, per sequence, the list of predicted paratope residues, a per-residue table of position, amino acid, probability, and region, and summary counts including the mean paratope probability. Read the per-residue probabilities, not just the paratope/not-paratope call: a residue at 0.9 is a firmer "don't touch this" than one at 0.51, which matters when you're deciding which positions to hold fixed during humanization.

## Per-sequence result

| Field | Type | What it tells you |
|---|---|---|
| `sequence_name` | string | The name you gave the sequence. |
| `chain_type` | string | The chain reported (`H` or `L`). |
| `residue_predictions` | list | Per-residue predictions (see below). |
| `paratope_residues` | string[] | Residues predicted to be part of the paratope. |
| `paratope_sequence` | string \| null | The paratope residues concatenated. |
| `num_paratope_residues` | int | Count of predicted paratope residues. |
| `mean_paratope_probability` | float \| null | Mean probability across the paratope residues. |

### Per-residue prediction

Each entry in `residue_predictions`:

| Field | Type | What it tells you |
|---|---|---|
| `position` | string | Numbered position (e.g. `"31"`). |
| `residue` | string | Amino-acid one-letter code. |
| `probability` | float | Paratope probability (0–1). |
| `is_paratope` | bool | Whether it cleared the threshold. |
| `region` | string \| null | Region annotation (`CDR-H1`, `FR-H2`, …). |

## Job-level summary

| Field | Type | Meaning |
|---|---|---|
| `failed_sequences` | string[] | Sequences Paragraph could not predict. |
| `success_count` | int | Sequences predicted successfully. |
| `fail_count` | int | Sequences that failed. |
| `threshold_used` | float | Probability threshold applied. |

## Reading the result card

The Paragraph result renders on the canvas as an antibody paratope card, surfacing the binding-residue count and the per-residue probabilities so you can see the paratope at a glance.

## What to do next

- Before running `biophi_humanize`, check whether its paratope overlaps the framework — if it's clean, keep binding-residue preservation on (the default) rather than naming positions, since the tool only exposes an on/off toggle.
- Compare the paratope against [Humatch](/docs/humatch)'s flagged low-humanness positions to avoid a conflict.
- Use the region annotations to target a specific CDR loop for redesign.

## Read next
