API Reference

Dnaerys gRPC API is designed for sub-second queries across population-scale datasets. It enables filtering variants based on genomic coordinates, inheritance models, functional and clinical annotations.


Querying Capabilities

The API supports:


Functional / Clinical Annotations

Supported Annotations:

The full list of supported annotations can be found in API proto file.

Note

Transcripts annotations: Genes have multiple transcripts, each is annotated separately by VEP. Annotations for all transcripts are preserved.

Note

Canonical transcripts: Annotations for canonical transcripts are always the first in the list of annotations in amino_acids field. This applies for both HGVSp and native VEP's "Amino_acids" annotations.

Note

CADD, PolyPhen & SIFT: The use of CADD, PolyPhen, and SIFT annotations is subject to their respective end-user licenses.


Python Client Library

Python Client Library for Dnaerys gRPC API. This library wraps the underlying RPCs into ~27 Pythonic methods, handles enum resolution, pagination, proto-to-dataclass conversion, streaming iteration, and translates gRPC errors into a clean exception hierarchy.

Full documentation: dnaerys-python.readthedocs.io

pip install dnaerys
python3 -c "
import dnaerys
from dnaerys import DnaerysClient, Region

print('PROTO_VERSION:', dnaerys.PROTO_VERSION)

with DnaerysClient('db.dnaerys.org:443') as client:
    result = client.health()
    print('Server health:', result.status)
    info = client.dataset_info()
    print('Total samples:', info.samples_total)
"

Security and Authorization

1. Perimeter Security

Authorization in Kubernetes applications is better handled at the Ingress Controller level (or before it - on API GW level, followed by mTLS between API GW & IC). By treating the Ingress Controller as a Policy Enforcement Point, the application containers remain focused on business logic while the infrastructure layer handles identity validation.

2. Node-Level Authorization

For environments lacking ICs, Dnaerys nodes support JWT authorization. You can configure nodes to validate tokens signed with a wide variety of algorithms, including:

Authorization is configured independently per node at startup. Once activated, the node will reject any request that does not carry a valid, signed token.