gRPC Serving#

This page shows how to run the local gRPC server and query it using the official alphagenome Python client classes.

Install#

Install the package with serving dependencies:

cd /path/to/alphagenome-torch
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e ".[serving]"

Start gRPC Server#

Run the local serving process:

cd /path/to/alphagenome-torch
source .venv/bin/activate
agt serve \
  --weights /ABS/PATH/model.pth \
  --fasta /ABS/PATH/hg38.fa \
  --track-metadata /ABS/PATH/track_metadata.parquet \
  --device cuda \
  --host 127.0.0.1 \
  --grpc-port 50051

Remote Access (SSH Tunnel)#

If the server runs on a remote machine, tunnel the gRPC port:

ssh -N -L 50051:127.0.0.1:50051 your_user@your_remote_host

Query with Local alphagenome Library#

Use DnaClient with an insecure channel to your local tunnel:

import grpc
from alphagenome.models import dna_client

channel = grpc.insecure_channel(
    "127.0.0.1:50051",
    options=[
        ("grpc.max_send_message_length", -1),
        ("grpc.max_receive_message_length", -1),
    ],
)
client = dna_client.DnaClient(channel=channel)

sequence = "GATTACA".center(dna_client.SEQUENCE_LENGTH_16KB, "N")
output = client.predict_sequence(
    sequence=sequence,
    organism=dna_client.Organism.HOMO_SAPIENS,
    requested_outputs=[dna_client.OutputType.DNASE],
    ontology_terms=["UBERON:0002048"],
)

print("DNASE values shape:", output.dnase.values.shape)
print(output.dnase.metadata.head(3).to_string(index=False))

Note

For local serving, instantiate dna_client.DnaClient directly with your channel, as shown above. dna_client.create(...) is intended for the hosted Google endpoint.