> This page is for MSA Search, version 2.6.0 (Latest) (default).
> For other versions, use one of these documentation indexes:
> - 2.6.0 (Latest) (default): https://docs.nvidia.com/nim/bionemo/msa-search/2.6.0/llms.txt
> - 2.5.0: https://docs.nvidia.com/nim/bionemo/msa-search/2.5.0/llms.txt
> - 2.4.0: https://docs.nvidia.com/nim/bionemo/msa-search/2.4.0/llms.txt
> - 2.3.0: https://docs.nvidia.com/nim/bionemo/msa-search/2.3.0/llms.txt
> - 2.2.0: https://docs.nvidia.com/nim/bionemo/msa-search/2.2.0/llms.txt
> - 2.1.0: https://docs.nvidia.com/nim/bionemo/msa-search/2.1.0/llms.txt
> - 2.0.0: https://docs.nvidia.com/nim/bionemo/msa-search/2.0.0/llms.txt
> - 1.0.0: https://docs.nvidia.com/nim/bionemo/msa-search/1.0.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nim/bionemo/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nim/bionemo/_mcp/server.

## Release 2.3.0

### Summary

This release adds support for the unknown residue `X` in query sequences, enabling MSA search on sequences containing ambiguous or unresolved amino acids.

### New Features

#### Unknown Residue (X) Support

Query sequences may now contain the unknown residue character `X`, representing an ambiguous or unresolved amino acid.

* **Accepted in all endpoints**: Monomer, paired, and structural template search endpoints all accept `X` in query sequences.
* **No performance penalty**: Search speed is equal to or faster than equivalent sequences without `X`, since fewer hits survive prefiltering with degraded queries.

Refer to [Unknown Residue (X) Tolerance](/nim/bionemo/msa-search/benchmarking#unknown-residue-x-tolerance) for detailed benchmarks.

### API Changes

#### Database Config Endpoint

Based on user feedback, the `/biology/colabfold/msa-search/config/msa-database-configs` endpoint will continue to be supported. However, all response fields except `name` and `display_name` are deprecated and should not be relied upon.

A new `display_name` field provides human-readable database names suitable for UI presentation (for example., `UniProt Reference Clusters (30% identity) 2023-02`). Display names can be customized using the `NIM_MSA_DB_DISPLAY_NAMES` environment variable or by mounting a custom `/opt/nim/msa/config.py`.

#### `max_msa_sequences` Validation

The API-level and GPU Server upper limits for `max_msa_sequences` have been unified into a single limit controlled by the existing `NIM_GLOBAL_MAX_MSA_DEPTH` environment variable (default 500). The OpenAPI specification now correctly reflects the effective upper bound. The redundant `NIM_MSA_API_MAX_MSA_SEQUENCES` variable has been removed. Most users are unaffected since GPU Server (enabled by default since 2.0.0) already enforced this limit.

#### Typed Response Schemas

The OpenAPI specification now includes proper return type schemas for the `/biology/colabfold/msa-search/config/msa-database-configs` endpoint (`list[MSADataBaseConfig]`) and the `/biology/colabfold/msa-search/mmseqs2/version` endpoint (`MMSeqs2Version`). Previously these endpoints did not have typed response schemas in the OpenAPI spec. This may affect clients using OpenAPI code generation tools.

#### API Version

The OpenAPI specification version has been updated from 1.2.0 to 1.3.0 to reflect new features, improved validation, and endpoint changes introduced in this release. This version bump signals to users and client tools that the API specification includes updates such as unknown residue support, changes to `max_msa_sequences` validation, and other adjustments described above.

### Migration Notes

Model profile hashes have changed in this release. If you pin a specific profile using `NIM_MODEL_PROFILE`, update the hash. Run `list-model-profiles` to obtain the new hashes (refer to [Listing Available Profiles](/nim/bionemo/msa-search/task-specific-profiles-and-custom-databases#listing-available-profiles) for more information).