> This page is for MSA Search, version 1.0.0.
> 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.

# Deploy Using Docker

This section describes how to deploy using Docker.

<Note>
This page assumes you have prepared your environment as detailed in the [Getting Started section](/nim/bionemo/msa-search/1.0.0/getting-started) (see the sections on setting up Docker, NGC CLI, and NGC registry access).
</Note>

1. Pull the MSA Search NIM container with the following command.

```bash
docker pull nvcr.io/nim/colabfold/msa-search:1.0.0
```


2. Run the NIM container with the following command.

```bash
export LOCAL_NIM_CACHE=~/.cache/nim
export NGC_API_KEY=<Your NGC API Key>
```

```bash
docker run --rm --name msa-search --runtime=nvidia \
    -e NGC_API_KEY \
    -v $LOCAL_NIM_CACHE:/opt/nim/.cache \
    -p 8000:8000 \
    nvcr.io/nim/colabfold/msa-search:1.0.0
```


This command will start the NIM container and expose port 8000 for the user to interact with the NIM. It will pull the model to the cache at `$LOCAL_NIM_CACHE` on the local filesystem. **Note**: This download can take a very long time (2-10 hours on a 100+Mbps internet connection).

3. Open a new terminal, leaving the current terminal open with the launched service.

4. In the new terminal, wait until the health check end point returns `200 OK` before proceeding. This may take a couple of minutes. You can use the following command to query the health check.

```bash
curl -X 'GET' \
    'http://localhost:8000/v1/health/ready' \
    -H 'accept: application/json'
```

To check the NIM's status using Python, use the requests module (once installed via `pip install requests`):

```python
import requests

url = "http://localhost:8000/v1/health/ready"  # Replace with the actual URL

headers = {
    "content-type": "application/json"
}
try:
    response = requests.get(url, headers=headers)

    # Check if the request was successful
    if response.ok:
        print("Request succeeded:", response.json())
    else:
        print("Request failed:", response.status_code, response.text)
except Exception as E:
    print("Request failed:", E)
```

5. Run inference to get a multiple sequence alignment for an amino acid sequence. Here is an example using cURL in BASH:


```bash
curl -X 'POST' \
    'http://localhost:8000/biology/colabfold/msa-search/predict' \
    -H 'accept: application/json' \
    -H 'Content-Type: application/json' \
    -d '{"sequence": "MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN" }' > output.json
```

The following is an example, in Python, that demonstrates some of the other arguments available to the NIM:

```python
import requests
import json

url = "http://localhost:8000/biology/colabfold/msa-search/predict"  # Replace with the actual URL if needed.
sequence = "MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN"  # Replace with your sequence value of interest

headers = {
    "content-type": "application/json"
}

data = {
    "sequence": sequence,
    "databases": ["Uniref30_2302", "PDB70_220313", "colabfold_envdb_202108"],
    "e_value" : 0.0001,
    "iterations" : 2
}

response = requests.post(url, headers=headers, data=json.dumps(data))

# Check if the request was successful
if response.ok:
    print("Request succeeded:", response.json())
else:
    print("Request failed:", response.status_code, response.text)

```


6. View the outputs. You can use the `cat` tool to print the outputs to the command line as with the following command.

```bash
cat output.json
```

You can also view the output in a text viewer, or pretty-print it using Python's built-in JSON module:

```bash
python -m json.tool output.json
```

## Advanced Usage

For Advanced Usage of the NIM, see the sections on [Optimization](/nim/bionemo/msa-search/1.0.0/optimization) and [Performance](/nim/bionemo/msa-search/1.0.0/performance).

For details about available endpoints, see the [API Reference](/nim/bionemo/msa-search/1.0.0/api-reference) section.