Skip to main content

RhyDB

High-performance analytical database for sequence alignment data

RhyDB was formerly named SILO. The rename is currently limited to the product name: the executable is still silo, the Python package is still silodb, 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 silodb.

See Contributing for build instructions.

Usage

from silodb 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 silodb 0.13.2

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 silodb 0.13.2
File
silodb-0.13.2-cp314-cp314-manylinux_2_35_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.35+ x86-64 Details
silodb-0.13.2-cp314-cp314-manylinux_2_35_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.35+ ARM64 Details
silodb-0.13.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
silodb-0.13.2-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
silodb-0.13.2-cp313-cp313-manylinux_2_35_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.35+ x86-64 Details
silodb-0.13.2-cp313-cp313-manylinux_2_35_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.35+ ARM64 Details
silodb-0.13.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
silodb-0.13.2-cp313-cp313-macosx_10_15_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.15+ x86-64 Details
silodb-0.13.2-cp312-cp312-manylinux_2_35_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.35+ x86-64 Details
silodb-0.13.2-cp312-cp312-manylinux_2_35_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.35+ ARM64 Details
silodb-0.13.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
silodb-0.13.2-cp312-cp312-macosx_10_15_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.15+ x86-64 Details
silodb-0.13.2-cp311-cp311-manylinux_2_35_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.35+ x86-64 Details
silodb-0.13.2-cp311-cp311-manylinux_2_35_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.35+ ARM64 Details
silodb-0.13.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
silodb-0.13.2-cp311-cp311-macosx_10_15_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.15+ x86-64 Details

Total release size: 111.6 MB

Release files / silodb-0.13.2-cp314-cp314-manylinux_2_35_x86_64.whl

Download URL silodb-0.13.2-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
e2b9226437bbbf035ceee286f81783bd65c177921e9c84bf0efd2afa432b96f5
BLAKE2b-256 checksum
How to use checksums
b92e26e8cb1a25d9a64701e00c950a6eaa5e3c8389e64439857cff76c5796a80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp314-cp314-manylinux_2_35_aarch64.whl

Download URL silodb-0.13.2-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
576cd25fbfe7049a979bfcb929b79fabbf1eed1c2b9b85d77627185d84f3027f
BLAKE2b-256 checksum
How to use checksums
3275a1c093871278d53a0dfe5ba9de55aec9af3c3c5ae32ff05fcf5844a11e12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL silodb-0.13.2-cp314-cp314-macosx_11_0_arm64.whl
Size 5.3 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8d8e25b91f8051a57face7a638fdbab50758c73991f6fdb6b9401761915eddc6
BLAKE2b-256 checksum
How to use checksums
5f6c0a5ed64e38036724a43791115b96f77e3fef0050d41745e4663c787264ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp314-cp314-macosx_10_15_x86_64.whl

Download URL silodb-0.13.2-cp314-cp314-macosx_10_15_x86_64.whl
Size 6.2 MB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
fb3a9e70ad7da2258927b29b05b539e75087ae93ed6296c60ab86f8566e61b78
BLAKE2b-256 checksum
How to use checksums
1b731f2a9cbfeec6fbf50ee37ee2a6dd4fdd1b4462f5448c53142efe32eba313
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp313-cp313-manylinux_2_35_x86_64.whl

Download URL silodb-0.13.2-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
0a862d6c94c4500cea2cbcd2e092ab7d3031c6e5fbfb3fac006379c232e688a3
BLAKE2b-256 checksum
How to use checksums
25f1bd6080f014a9f06e8d969e638656f485f2d7293961e812bad57e18ee0d99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp313-cp313-manylinux_2_35_aarch64.whl

Download URL silodb-0.13.2-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
817411a827edd819652f3039cd10fdd1413d16df92c9a3fbae2e5ee0c5be16d5
BLAKE2b-256 checksum
How to use checksums
d173a6e8ab37bc8c592994ee1b8844a07fc03de382da7e6d1c5dd8d09cf75157
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL silodb-0.13.2-cp313-cp313-macosx_11_0_arm64.whl
Size 5.3 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d9ff8e0cb89daf4879845950bb4108365dc3b31aa39db918dab4e97bdbf714c6
BLAKE2b-256 checksum
How to use checksums
4ce6afae482c4c266dd82672efa8d2058d8d866c9b4b9b29b1b4989dc71e45f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp313-cp313-macosx_10_15_x86_64.whl

Download URL silodb-0.13.2-cp313-cp313-macosx_10_15_x86_64.whl
Size 6.2 MB
Tags CPython 3.13 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
97edcfc5bf0982cc1f737e24941e0bc17eb8bb0081c855fd35da6bc920e2903b
BLAKE2b-256 checksum
How to use checksums
44e75aadfdf345ca78e0f1dba502f5ea7fcc58325caf4a4e958ee988a64431c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp312-cp312-manylinux_2_35_x86_64.whl

Download URL silodb-0.13.2-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
94e36583d2d659fb5bf94e99bdaad917df9d3c08bf7b3d1e441f50fdd5cbf412
BLAKE2b-256 checksum
How to use checksums
c26b4ca8682ad52effc91c738982d9cb71af480bd9ac3a9ff6d4d39d81698470
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp312-cp312-manylinux_2_35_aarch64.whl

Download URL silodb-0.13.2-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
2e222084d1c82962e8794cc8af9ac183b0e19aff6291a3184c51322e3ed85a72
BLAKE2b-256 checksum
How to use checksums
e93f8149ce47c4960525c8ba5a8e74acce9721561436bc492793c5b6afdb7dda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL silodb-0.13.2-cp312-cp312-macosx_11_0_arm64.whl
Size 5.3 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fec5bb898f5767f7eed5b8318c4c5255f22297c9b2319d4a4dd397a45443ed5c
BLAKE2b-256 checksum
How to use checksums
6e27049f936722a982fb575d8f9c763df057b3292805867c10c4466b257b4267
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp312-cp312-macosx_10_15_x86_64.whl

Download URL silodb-0.13.2-cp312-cp312-macosx_10_15_x86_64.whl
Size 6.2 MB
Tags CPython 3.12 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
57a3f7151a02ce652587b2271bd4a56c17c681da9974d40cb4c073718d04be41
BLAKE2b-256 checksum
How to use checksums
1639fa7aab9de84a8c254e61a33ac37a5dfb1545a52a5416727721cf4b4bf56f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp311-cp311-manylinux_2_35_x86_64.whl

Download URL silodb-0.13.2-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
ba3133d665c942162ffd97f78d9f367b7e658eea4e9b03345c1b59cf9d7a7d49
BLAKE2b-256 checksum
How to use checksums
c2d5d0e4028c3b23a450a2ff798fb0bf4cdb92565187e7cae0c848de1a178f1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp311-cp311-manylinux_2_35_aarch64.whl

Download URL silodb-0.13.2-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
7f5af432d375f9949ae597c1ff9ed104a177b4f947bfafc4ac8d8d9a3b2da96a
BLAKE2b-256 checksum
How to use checksums
3938cf6763c836331335f67ba14b6b596171a0bee94ba0adb67f20210b58adef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL silodb-0.13.2-cp311-cp311-macosx_11_0_arm64.whl
Size 5.3 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a75e432a45f79eb733cc37dcb33b4ef098434ba6b4794bb5a14230ea6ee68b65
BLAKE2b-256 checksum
How to use checksums
1ab1374f7777505fb719977f24f9454ff9eb40cc5d473d4b4595b46dd80a9212
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / silodb-0.13.2-cp311-cp311-macosx_10_15_x86_64.whl

Download URL silodb-0.13.2-cp311-cp311-macosx_10_15_x86_64.whl
Size 6.2 MB
Tags CPython 3.11 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
117e89e7f97e57334a98dc48145b11596f48e3fab10ae58d0aff485dbf12995e
BLAKE2b-256 checksum
How to use checksums
6061b2582977669beb607615283c65af5b9f7032033de98bafa0afb2765e3266
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.2 This release

16 release files

0.9.11

3 release files

0.0.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