Skip to main content

RhyDB

High-performance analytical database for sequence alignment data

RhyDB was formerly named SILO. The rename is still in progress: environment variables still use the SILO_ prefix, and the repository is still GenSpectrum/LAPIS-SILO. Documentation refers to those by their actual names.

For information on how to build, test, and contribute to RhyDB, see Contributing.

Python Bindings

RhyDB provides Python bindings via Cython. The bindings wrap the core C++ Database and are installable by pip install rhydb.

See Contributing for build instructions.

Usage

from rhydb import Database

# Create a new database
db = Database()

# Or load from a saved state
db = Database("/path/to/saved/database")

# Create a nucleotide sequence table
db.create_nucleotide_sequence_table(
    table_name="sequences",
    primary_key_name="id",
    sequence_name="main",
    reference_sequence="ACGT..."
)

# Append data from file
db.append_data_from_file("sequences", "/path/to/data.ndjson")

# Get reference sequence
ref = db.get_nucleotide_reference_sequence("sequences", "main")

# Get filtered bitmap (list of matching row indices)
indices = db.get_filtered_bitmap("sequences", "some_filter")

# Query data through the SaneQL front-end
table = db.query("sequences.filter(true)")

# Save database state
db.save_checkpoint("/path/to/save/directory")

# Print all data (to stdout)
db.print_all_data("sequences")

Configuration Files

For RhyDB, there are three different configuration files:

  • DatabaseConfig described in file database_config.h
  • PreprocessingConfig used when started with preprocessing and described in file preprocessing_config.h. For details see rhydb preprocessing --help.
  • RuntimeConfig used when started with api and described in file runtime_config.h For details see rhydb api --help.

The database config contains the schema of the database and is always required when preprocessing data. The database config will be saved together with the output of the preprocessing and is therefore not required when starting RhyDB as an API.

An example configuration file can be seen in testBaseData/exampleDataset/database_config.yaml.

By default, the config files are expected to be YAML files in the current working directory in snake_case (database_config.yaml, preprocessing_config.yaml, runtime_config.yaml), but their location can be overridden using the options --database-config=X, --preprocessing-config=X, and --runtime-config=X.

Preprocessing and Runtime configurations contain default values for all fields and are thus only optional. Their parameters can also be provided as command-line arguments in snake_case and as environment variables prefixed with SILO_ in capital SNAKE_CASE. (e.g. SILO_INPUT_DIRECTORY).

The precendence is CLI argument > Environment Variable > Configuration File > Default Value

Run The Preprocessing

The preprocessing acts as a program that takes an input directory that contains the to-be-processed data and an output directory where the processed data will be stored. Both need to be mounted to the container.

RhyDB expects a preprocessing config that can be mounted to the default location /app/preprocessing_config.yaml.

Additionally, a database config and a ndjson file containing the data are required. They should typically be mounted in /preprocessing/input.

docker run \
  -v your/input/directory:/preprocessing/input \
  -v your/preprocessing/output:/preprocessing/output \
  -v your/preprocessing_config.yaml:/app/preprocessing_config.yaml \
  ghcr.io/genspectrum/lapis-silo preprocessing

Both config files can also be provided in custom locations:

rhydb preprocessing --preprocessing-config=./custom/preprocessing_config.yaml --database-config=./custom/database_config.yaml

The Docker image contains a default preprocessing config that sets defaults specific for running RhyDB in Docker. Apart from that, there are default values if neither user-provided nor default config specify fields. The user-provided preprocessing config can be used to overwrite the default values. For a full reference, see the help text.

Run docker container (api)

After preprocessing the data, the api can be started with the following command:

docker run \
  -p 8081:8081 \
  -v your/preprocessing/output:/data \
  ghcr.io/genspectrum/lapis-silo api

The directory where RhyDB expects the preprocessing output can be overwritten via rhydb api --data-directory=/custom/data/directory or in a corresponding configuration file.

Acknowledgments

Original genome indexing logic with roaring bitmaps by Prof. Neumann: https://db.in.tum.de/~neumann/gi/

Release files for rhydb 0.13.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for rhydb 0.13.3
File
rhydb-0.13.3-cp314-cp314-manylinux_2_35_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.35+ x86-64 Details
rhydb-0.13.3-cp314-cp314-manylinux_2_35_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.35+ ARM64 Details
rhydb-0.13.3-cp314-cp314-macosx_15_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 15.0+ x86-64 Details
rhydb-0.13.3-cp314-cp314-macosx_15_0_arm64.whl CPython 3.14 CPython 3.14 macOS 15.0+ ARM64 Details
rhydb-0.13.3-cp313-cp313-manylinux_2_35_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.35+ x86-64 Details
rhydb-0.13.3-cp313-cp313-manylinux_2_35_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.35+ ARM64 Details
rhydb-0.13.3-cp313-cp313-macosx_15_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 15.0+ x86-64 Details
rhydb-0.13.3-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details
rhydb-0.13.3-cp312-cp312-manylinux_2_35_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.35+ x86-64 Details
rhydb-0.13.3-cp312-cp312-manylinux_2_35_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.35+ ARM64 Details
rhydb-0.13.3-cp312-cp312-macosx_15_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 15.0+ x86-64 Details
rhydb-0.13.3-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details
rhydb-0.13.3-cp311-cp311-manylinux_2_35_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.35+ x86-64 Details
rhydb-0.13.3-cp311-cp311-manylinux_2_35_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.35+ ARM64 Details
rhydb-0.13.3-cp311-cp311-macosx_15_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 15.0+ x86-64 Details
rhydb-0.13.3-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details

Total release size: 111.6 MB

Release files / rhydb-0.13.3-cp314-cp314-manylinux_2_35_x86_64.whl

Download URL rhydb-0.13.3-cp314-cp314-manylinux_2_35_x86_64.whl
Size 8.6 MB
Tags CPython 3.14 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
74a7905cd4c90f814e040001d2c1f421378bc1c947cd9e1907f50610ef0ed2a5
BLAKE2b-256 checksum
How to use checksums
b5f908322efad765f707def26cc8fe6ccff319654079cd939905ee818a3d3eaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp314-cp314-manylinux_2_35_aarch64.whl

Download URL rhydb-0.13.3-cp314-cp314-manylinux_2_35_aarch64.whl
Size 7.8 MB
Tags CPython 3.14 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
4b2e260c087a1a0fd2c30f0ed2d6432fa4be33fee4ecfa66b24cb7b7aa876c31
BLAKE2b-256 checksum
How to use checksums
df21dfeb2b4385621c7dd42e4fe2afa10ec882c99c783c1b06a0da74743cd2ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp314-cp314-macosx_15_0_x86_64.whl

Download URL rhydb-0.13.3-cp314-cp314-macosx_15_0_x86_64.whl
Size 6.2 MB
Tags CPython 3.14 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
4bf28c426b77b31d4df3090ffa4b01902d9bd78f6b247c7bbad84f0acf0d3b3a
BLAKE2b-256 checksum
How to use checksums
e9c0ed397c3ad9256146740617240c30194ba19c074964b12f6aa18bc1b4e5c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp314-cp314-macosx_15_0_arm64.whl

Download URL rhydb-0.13.3-cp314-cp314-macosx_15_0_arm64.whl
Size 5.3 MB
Tags CPython 3.14 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
feca411caea1f78cc60b034ecbd699e279977375b44dcd3c566c7d0baedaa270
BLAKE2b-256 checksum
How to use checksums
f0214827f26d0c88182e21921e96de0c3f2acb6b0d02c9eff413edd9a77884ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp313-cp313-manylinux_2_35_x86_64.whl

Download URL rhydb-0.13.3-cp313-cp313-manylinux_2_35_x86_64.whl
Size 8.6 MB
Tags CPython 3.13 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
cde407c4e7f6b257aacb4e74e631064eb0362a76be96b0ef6870b8b3c48dbb23
BLAKE2b-256 checksum
How to use checksums
71ed4995c7dfe95f03e50045f16c23b4951f8c08ba8692c4d5a2e710c6894ac5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp313-cp313-manylinux_2_35_aarch64.whl

Download URL rhydb-0.13.3-cp313-cp313-manylinux_2_35_aarch64.whl
Size 7.8 MB
Tags CPython 3.13 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
866eea4b8f2799f0c9ded30e1001e35416a1f8d1c501fa020837eb98d3b4b440
BLAKE2b-256 checksum
How to use checksums
6bd6391406db87db2e699158910052d22f6c7759421fe5d6a81f0bc482deb09c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp313-cp313-macosx_15_0_x86_64.whl

Download URL rhydb-0.13.3-cp313-cp313-macosx_15_0_x86_64.whl
Size 6.2 MB
Tags CPython 3.13 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
29eaeead4ef76a1c5335320db3ca9fccf9af9e8f2b30f0872303f5c7038f868a
BLAKE2b-256 checksum
How to use checksums
fa30b1b7f0737d7e6365276a7d8f83a5c84a9f2f56d7e2c9894f60ea5aebee7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp313-cp313-macosx_15_0_arm64.whl

Download URL rhydb-0.13.3-cp313-cp313-macosx_15_0_arm64.whl
Size 5.3 MB
Tags CPython 3.13 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
e5cdd369c7049c86cb8d9cbe76b9e71950c5de560dd1f185a821bcfa6ff68b7f
BLAKE2b-256 checksum
How to use checksums
ebdf142c575a33d9a2e61b4675b2dd3d665f7548b973af57e52602eb2ec2891e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp312-cp312-manylinux_2_35_x86_64.whl

Download URL rhydb-0.13.3-cp312-cp312-manylinux_2_35_x86_64.whl
Size 8.6 MB
Tags CPython 3.12 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
97ccf43c692a46864bc564233bac1ddfaad5f495a622e4fa5c691900bbbe9d91
BLAKE2b-256 checksum
How to use checksums
902c0e2adc4fa580e8bc62be1e49891da3cf71c402734d2393d05fb5ee7914d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp312-cp312-manylinux_2_35_aarch64.whl

Download URL rhydb-0.13.3-cp312-cp312-manylinux_2_35_aarch64.whl
Size 7.8 MB
Tags CPython 3.12 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
b6a96e73b62f8212eb0985fc093ec149843c4ca3c18e4ead65908bec2ee65669
BLAKE2b-256 checksum
How to use checksums
af4c2d7d99405c3fe615c487b6019878e49b33d9a04841072fbc3adf3112d1fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp312-cp312-macosx_15_0_x86_64.whl

Download URL rhydb-0.13.3-cp312-cp312-macosx_15_0_x86_64.whl
Size 6.2 MB
Tags CPython 3.12 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
66efeaa8f5e1b573df31db57f2cc854de95e06e26c72a31f97bbba26f9fdd996
BLAKE2b-256 checksum
How to use checksums
6c9c68c5d488a4a697c320dab87a5d01849a0b9dc08131df8579ded65327839c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp312-cp312-macosx_15_0_arm64.whl

Download URL rhydb-0.13.3-cp312-cp312-macosx_15_0_arm64.whl
Size 5.3 MB
Tags CPython 3.12 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
05cd2f34b59a7dee1bca833d79d5a542c448eb408caeb06ed58c58a45e42a7c9
BLAKE2b-256 checksum
How to use checksums
05a6892153bf8bdaf2479353b872582d93d85e218ee9db3fc0623cf2b3958722
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp311-cp311-manylinux_2_35_x86_64.whl

Download URL rhydb-0.13.3-cp311-cp311-manylinux_2_35_x86_64.whl
Size 8.6 MB
Tags CPython 3.11 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
8c03c3cf48df44d649a6fbe83cc3b8db0fe7bf2c64911ef4d9379f2a91782f13
BLAKE2b-256 checksum
How to use checksums
80746c4e9ed40e1973bb906f33a17afbfaa8bfc926fa0441f25df4f291881fac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp311-cp311-manylinux_2_35_aarch64.whl

Download URL rhydb-0.13.3-cp311-cp311-manylinux_2_35_aarch64.whl
Size 7.8 MB
Tags CPython 3.11 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
1af8c6d5bde2fcccbab331e47bb194b2ffb6c39f19d4e39f7a4148f2df340415
BLAKE2b-256 checksum
How to use checksums
a5543f7816f1713477d163ed07a6d5d81a067f8469ee9bf41f1d227d505b2ff5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp311-cp311-macosx_15_0_x86_64.whl

Download URL rhydb-0.13.3-cp311-cp311-macosx_15_0_x86_64.whl
Size 6.2 MB
Tags CPython 3.11 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
3aff4ff556a739e96e79a6881a112dbb42724f990c1c1441580a01348361b9e2
BLAKE2b-256 checksum
How to use checksums
497d7da5313ae9f6ae74fc7c472ae3b086394bf95a1299dd6404f8544ee96477
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / rhydb-0.13.3-cp311-cp311-macosx_15_0_arm64.whl

Download URL rhydb-0.13.3-cp311-cp311-macosx_15_0_arm64.whl
Size 5.3 MB
Tags CPython 3.11 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
df09f6d6b4bd13d41a2be091c7d1b81e1800172e4f57e8d758e1829d6ed0bdfe
BLAKE2b-256 checksum
How to use checksums
d2a6280afedffbfc6b94528d478876c573e8cfdf9d085c4e25081bcdc7d1fc32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.13.3 This release

16 release files

0.12.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page