Qdrant
Open-source vector database for ultra-fast retrieval of high-dimensional embedding vectors.
Qdrant is a next-generation, open-source vector database designed to store, manage, and search high-dimensional, semantic AI embedding vector data at ultra-high speeds. It is built from the ground up in Rust, offering system control and speed comparable to C/C++, enabling stable and efficient processing of large-scale vector operations without latency spikes caused by garbage collection (GC). In modern biotechnology and bioinformatics, attempts to interpret vast amounts of data, such as genomic sequences, protein 3D structures, chemical molecule structures, and single-cell RNA-seq data, by projecting them into vector spaces of hundreds to thousands of dimensions using deep learning embedding models (e.g., ESM-2, ChemBERTa) are rapidly increasing. Qdrant is the optimal engine for performing fast and accurate approximate nearest neighbor (ANN) searches on these massive, high-dimensional biological vector datasets. In particular, it can be easily deployed directly in closed-network servers (on-premise) within laboratories or companies, allowing for secure analysis while perfectly protecting sensitive patient medical data or proprietary material patent structures, where external transfer is strictly prohibited.
๐ป System Requirements
Supports a hybrid storage configuration that allows you to flexibly mix and match in-memory (RAM) mode and high-speed Mmap (disk mapping) mode to optimize node performance and budget.
โก Installation
### 4-1. Quick Start
This section describes how to run a Qdrant server on your local computer in just 10 seconds using Docker.
```bash
# 1. Download the Qdrant container image and run it in the background (ports 6333: REST API, 6334: gRPC API)
docker run -d -p 6333:6333 -p 6334:6334 \
-v $(pwd)/qdrant_storage:/qdrant/storage:z \
qdrant/qdrant:latest
# 2. Install the Python library
pip install qdrant-client
```
Here is a simple Python client example.
```python
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct
# Connect to the client
client = QdrantClient(url="http://localhost:6333")
# Create a collection (128-dimensional vectors, cosine similarity)
client.create_collection(
collection_name="bio_proteins",
vectors_config=VectorParams(size=128, distance=Distance.COSINE),
)
# Insert an arbitrary protein vector (including ID, vector value, and metadata payload)
client.upsert(
collection_name="bio_proteins",
points=[
PointStruct(
id=1,
vector=[0.05] * 128,
payload={"family": "Kinase", "organism": "Homo sapiens"}
)
]
)
# Perform a search
search_result = client.search(
collection_name="bio_proteins",
query_vector=[0.05] * 128,
limit=1
)
print(search_result)
```
### 4-2. Detailed Installation
This is a secure installation guideline based on `docker-compose.yml` for continuous service and operation on large lab servers.
```yaml
# Create a docker-compose.yml file
version: '3.8'
services:
qdrant:
image: qdrant/qdrant:v1.18.2
container_name: qdrant_server
ports:
- "6333:6333"
- "6334:6334"
volumes:
- ./qdrant_data:/qdrant/storage:z
- ./qdrant_config.yaml:/qdrant/config/initialize.yaml:z
environment:
- QDRANT__SERVICE__ENABLE_STATIC_CONTENT=true # Enable the built-in web UI
restart: always
ulimits:
nofile:
soft: 65535
hard: 65535
```
After this, start the container with the following command to activate the monitoring environment.
```bash
# Create the configuration file and run
touch qdrant_config.yaml
docker-compose up -d
# Check the execution logs
docker-compose logs -f qdrant
```๐งฌ Bio Use Cases
Large-Scale Virtual Screening of Protein 3D Structures and Amino Acid Sequence Similarity
Protein 3D structures, estimated using protein language models such as ESM-2 or AlphaFold, are projected into a high-dimensional embedding space and inserted into the Qdrant database. This is used in a virtual candidate screening pipeline that quickly identifies, in milliseconds, the most structurally and functionally relevant active candidate protein groups from tens of millions of naturally occurring protein sequences collected, using protein domain structures corresponding to the target disease as a query.
Cell Atlas Mapping Based on Single-Cell RNA-seq Data Analysis
Gene expression data extracted from hundreds of thousands of cell lines is refined into cell embedding vectors through an encoder neural network, and then mapped and stored in Qdrant along with patient metadata (e.g., tissue type, patient stage, cell biological type). When new single-cell transcriptomic data is obtained from a new patient sample, Qdrant's real-time filtering search instantly classifies and identifies "the cell population in the corresponding tumor microenvironment that has the most similar genetic activity to existing patients with the same type of cancer."
Building an RAG (Retrieval-Augmented Generation) Platform for Exploring Novel Drug Target Information and Conducting Biopatent Searches
Large-scale, unstructured biomedical text data, such as PubMed abstracts, new drug development patents, and clinical information, is divided into paragraph units, vectorized using a medically specialized embedding model, and loaded into Qdrant. When a researcher queries about a new drug substance or the side effects of a target protein, Qdrant performs a Dense (semantic search) and Sparse (precise term matching) hybrid query to extract key supporting documents, and combines and delivers them as context to a local LLM within the lab, thereby serving as the central database for a bio-intelligence agent that provides customized reports based solely on valid scientific facts.
๐ Update Notes
No update notes yet.
๐งช Related Code of Life
No related Code of Life posts yet.