---
title: Interpreting RXNFP outputs
description: 'A 256-dimensional float vector per reaction, matches ranked by cosine similarity, and the score bands from very similar to no meaningful similarity.'
tags:
  - rxnfp
  - outputs
---

Fingerprinting returns one vector per reaction, and its shape follows the `fingerprint_type` you asked for: 256 floats for `rxnfp`, 2048 binary 0/1 values for `drfp`. Similarity search returns your query's fingerprint plus a ranked list of matching reactions. Use fingerprints as ML features or for your own downstream comparison; use similarity search to find known reactions like a novel one.

⛔ Record which `fingerprint_type` produced a stored vector or score. The two are not interchangeable and their similarity scores are not comparable, so a vector of unknown type is not reusable.

## Fingerprinting output

Per reaction:

| Field | Type | Description |
|-------|------|--------------|
| `reaction_smiles` | string | The input reaction SMILES. |
| `fingerprint` | number[] | The vector: 256 floats under `rxnfp`, or 2048 binary values under `drfp`. |
| `is_valid` | boolean | Whether the fingerprint was computed. |
| `error` | string \| null | Error message if `is_valid` is `false`. |

The job as a whole reports `total_reactions`, `successful`, `failed`, and `processing_time_seconds` alongside the per-reaction `results` array.

```json
{
  "reaction_smiles": "CC(=O)O.OCC>>CC(=O)OCC",
  "fingerprint": [0.0234, -0.1567, 0.0891, "...(256 values)"],
  "is_valid": true,
  "error": null
}
```

## Similarity search output

| Field | Type | Description |
|-------|------|--------------|
| `query_smiles` | string | The query reaction SMILES. |
| `query_fingerprint` | number[] | The query's 256-D fingerprint. |
| `similar_reactions` | array | Ranked matches from the reference index. |
| `similar_reactions[].index` | integer | Position in the reference index. |
| `similar_reactions[].similarity` | number | Cosine similarity, 0–1. |
| `similar_reactions[].reaction_smiles` | string \| null | The matched reaction's SMILES, if available. |
| `similar_reactions[].reaction_name` | string \| null | Named reaction type, if available. |
| `similar_reactions[].classification` | string \| null | Reaction classification, if available. |

Results are capped by `top_k` (default 10) and floored by `min_similarity` (default 0.7) — see [inputs & parameters](/docs/rxnfp/inputs).

## Interpreting similarity scores

Cosine similarity between two 256-D fingerprints:

| Score range | Interpretation |
|-------------|----------------|
| 0.90 – 1.00 | Very similar transformations (same reaction type, similar substrates) |
| 0.70 – 0.90 | Related transformations (same reaction class, different substrates) |
| 0.40 – 0.70 | Moderate similarity (related functional-group chemistry) |
| &lt; 0.40 | Weak or no meaningful similarity |

## Using fingerprints downstream

Fingerprints are a plain float vector, so anything you do with them happens outside the platform:

- **Clustering**: apply DBSCAN, k-means, or hierarchical clustering on a set of fingerprint vectors you've collected.
- **Visualization**: project 256-D vectors to 2D with UMAP or t-SNE for a reaction-space map.
- **ML features**: use fingerprints as input features for your own reaction-property models.

## Read next
