lamindb は何をしますか?
概要
LaminDBは、生物学向けのオープンソース系譜対応レイクハウスです。データセットとモデルを検索可能、追跡可能、検証可能、再現可能、かつFAIR(Findable、Accessible、Interoperable、Reusable)にし、データをオープンフォーマットでローカルファイルシステム、S3、GCS、Hugging Face、SQLite、Postgresに保存します。
中核的な価値提案:
- 検索可能性: アーティファクト、レコード、ラン、フィーチャー、スキーマ、コレクションを検索・フィルタリング
- 追跡可能性: ノートブック、スクリプト、関数、パイプラインの入力、出力、パラメータ、ソースコード、環境を追跡
- 検証: DataFrame、AnnData、SpatialData、TileDB-SOMA、Parquet、Zarr、その他の生物学的フォーマットをスキーマでキュレーション
- FAIRコンプライアンス: Biontyベースのオントロジーとカスタムレジストリでアノテーションを標準化
- 変更管理: プロジェクト、ブランチ、スペース、コレクション、保存されたノートや計画で作業を整理
このスキルを使用すべき場合
以下の場合にこのスキルを使用してください:
- 生物学的データセットの管理: scRNA-seq、バルクRNA-seq、空間トランスクリプトミクス、フローサイトメトリー、マルチモーダルデータ、EHRデータ
- 計算ワークフローの追跡: ノートブック、スクリプト、関数、シェルスクリプト、パイプライン実行(Nextflow、Snakemake、Redun)
- データのキュレーションと検証: スキーマ検証、標準化、オントロジーベースのアノテーション
- 生物学的オントロジーの操作: 遺伝子、タンパク質、細胞タイプ、組織、疾患、経路(Bionty経由)
- データレイクハウスの構築: 複数のデータセットにわたる統合クエリインターフェース
- 再現性の確保: 自動バージョン管理、系譜追跡、環境キャプチャ
- MLパイプラインの統合: Weights & Biases、MLflow、Hugging Face、Lightning、scVI-toolsとの連携
- データインフラのデプロイ: ローカルまたはクラウドベースのデータ管理システムのセットアップ
- データセットの共同作業: 標準化されたメタデータでキュレーションされたアノテーション付きデータの共有
中核機能
LaminDBは6つの相互接続された機能領域を提供し、それぞれがreferencesフォルダに詳細に文書化されています。
1. 中核概念とデータ系譜
中核エンティティ:
- アーティファクト: バージョン管理されたデータセット(DataFrame、AnnData、Parquet、Zarrなど)
- レコードとULabel: 実験エンティティ、型付きレコード、単純なラベル
- コレクション: バージョン管理された不変のアーティファクトセット
- ランとトランスフォーム: 計算系譜の追跡(どのコードがどのデータを生成したか)
- フィーチャー: アノテーションとクエリのための型付きメタデータフィールド
- プロジェクト、ブランチ、スペース: プロジェクトグループ化、変更管理、アクセス境界
主要ワークフロー:
- ファイルまたはPythonオブジェクトからのアーティファクトの作成とバージョン管理
ln.track()とln.finish()によるノートブック/スクリプト実行の追跡@ln.flow()と@ln.step()による関数ワークフローの追跡- レコード、ulabel、プロジェクト、型付きフィーチャーによるアーティファクトのアノテーション
artifact.view_lineage()によるデータ系譜グラフの可視化- 来歴によるクエリ(特定のコード/入力からのすべての出力を見つける)
リファレンス: references/core-concepts.md - アーティファクト、レコード、ラン、トランスフォーム、フィーチャー、バージョン管理、系譜追跡の詳細についてはこちらを参照してください。
2. データ管理とクエリ
クエリ機能:
- 自動補完によるレジストリの探索とルックアップ
get()、one()、one_or_none()による単一レコードの取得- 比較演算子(
__gt、__lte、__contains、__startswith)によるフィルタリング Featureオブジェクトを使用した式スタイルのクエリを含むフィーチャーベースのクエリ- 二重アンダースコア構文によるレジストリ間のトラバーサル
- レジストリ全体の全文検索
ln.Qオブジェクトを使用した高度な論理クエリ(AND、OR、NOT)- メモリにロードせずに大規模データセットをストリーミング
主要ワークフロー:
- フィルターと順序付けによるアーティファクトのブラウズ
- フィーチャー、作成日、作成者、サイズなどによるクエリ
- 大きなファイルをチャンクまたは配列スライシングでストリーミング
- 階層キーによるデータの整理
- アーティファクトをコレクションにグループ化
リファレンス: references/data-management.md - 包括的なクエリパターン、フィルタリング例、ストリーミング戦略、データ整理のベストプラクティスについてはこちらを参照してください。
3. アノテーションと検証
キュレーションプロセス:
- 検証: データセットが目的のスキーマに一致することを確認
- 標準化: タイプミスの修正、同義語の正規用語へのマッピング
- アノテーション: データセットをメタデータエンティティにリンクして検索可能にする
スキーマタイプ:
- フレキシブルスキーマ: 既知の列のみを検証し、追加のメタデータを許可
- 最小必須スキーマ: 必須列を指定し、追加を許可
- 厳格スキーマ: 構造と値を完全に制御
サポートされるデータタイプ:
- DataFrame(Parquet、CSV)
- AnnData(シングルセルゲノミクス)
- MuData(マルチモーダル)
- SpatialData(空間トランスクリプトミクス)
- TileDB-SOMA(スケーラブル配列)
主要ワークフロー:
- データ検証のためのフィーチャーとスキーマの定義
DataFrameCurator、AnnDataCurator、SpatialDataCurator、またはTiledbsomaExperimentCuratorを使用した検証.cat.standardize()による値の標準化.cat.add_ontology()によるオントロジーへのマッピング- スキーマリンケージを使用したキュレーションされたアーティファクトの保存
- フィーチャーによる検証済みデータセットのクエリ
リファレンス: references/annotation-validation.md - 詳細なキュレーションワークフロー、スキーマデザインパターン、検証エラーの処理、ベストプラクティスについてはこちらを参照してください。
4. 生物学的オントロジー
利用可能なオントロジー(Bionty経由):
- 遺伝子(Ensembl)、タンパク質(UniProt)
- 細胞タイプ(CL)、細胞株(CLO)
- 組織(Uberon)、疾患(Mondo、DOID)
- 表現型(HPO)、経路(GO)
- 実験因子(EFO)、発生段階
- 生物(NCBItaxon)、薬物(DrugBank)
主要ワークフロー:
bt.CellType.import_source()によるパブリックオントロジーのインポート- キーワードまたは完全一致によるオントロジーの検索
- 同義語マッピングを使用した用語の標準化
- 階層関係(親、子、祖先)の探索
- オントロジー用語に対するデータの検証
- オントロジーレコードによるデータセットのアノテーション
- カスタム用語と階層の作成
- マルチ生物コンテキスト(ヒト、マウスなど)の処理
リファレンス: references/ontologies.md - 包括的なオントロジー操作、標準化戦略、階層ナビゲーション、アノテーションワークフローについてはこちらを参照してください。
5. 統合
ワークフローマネージャー:
- Nextflow: パイプラインプロセスと出力の追跡
- Snakemake: Snakemakeルールへの統合
- Redun: Redunタスク追跡との組み合わせ
- Lightning: チェックポイントとトレーニングメタデータの永続化
MLOpsプラットフォーム:
- Weights & Biases: 実験とデータアーティファクトのリンク
- MLflow: モデルと実験の追跡
- Hugging Face: モデルファインチューニングの追跡
- scVI-tools: シングルセル解析ワークフロー
ストレージシステム:
- ローカルファイルシステム、AWS S3、Google Cloud Storage
- S3互換(MinIO、Cloudflare R2)
- HTTP/HTTPSエンドポイント(読み取り専用)
- HuggingFace datasets
配列ストア:
- TileDB-SOMA(cellxgeneサポート付き)
- Parquetファイルに対するSQLクエリ用DuckDB
可視化:
- Vitessce: インタラクティブな空間・シングルセル可視化
バージョン管理:
- Git統合: ソースコード追跡
リファレンス: references/integrations.md - 統合パターン、コード例、サードパーティシステムのトラブルシューティングについてはこちらを参照してください。
6. セットアップとデプロイ
インストール:
- 現在の安定ベースライン:
lamindb==2.5.1(2026-06-01リリース; Python >=3.10、<=3.14) - 基本:
uv pip install 'lamindb==2.5.1' - 拡張機能付き:
uv pip install 'lamindb[gcp,zarr-v2,fcs]==2.5.1' - 最小限の名前空間のみ:
uv pip install 'lamindb-core==2.5.1' - Biontyモジュール: LaminDBドキュメントに含まれており、
uv pip install 'bionty==2.4.0'で利用可能 - オプションモジュール: 最新の浮動バージョンをインストールするのではなく、wetlabまたは臨床スキーマモジュールにはレビュー済みのリリースを固定
インスタンスタイプ:
- ローカルSQLite(開発)
- クラウドストレージ + SQLite(小規模チーム)
- クラウドストレージ + PostgreSQL(本番環境)
ストレージオプション:
- ローカルファイルシステム
- 構成可能なリージョンと権限を持つAWS S3
- Google Cloud Storage
- S3互換エンドポイント(MinIO、Cloudflare R2)
設定:
- クラウドファイルのキャッシュ管理
- マルチユーザーシステム設定
- Gitリポジトリ同期
- 資格情報と接続URLのための名前付き環境変数
デプロイパターン:
- ローカル開発 → クラウド本番環境への移行
- マルチリージョンデプロイ
- 個人インスタンスによる共有ストレージ
リファレンス: references/setup-deployment.md - 詳細なインストール、設定、ストレージセットアップ、データベース管理、セキュリティのベストプラクティス、トラブルシューティングについてはこちらを参照してください。
安全性とセキュリティのデフォルト
LaminDBのセットアップや統合を支援する場合:
- APIキー、クラウド資格情報、データベースパスワード、シークレットを含む完全な接続文字列を表示、ログ記録、または送信しないでください。
- IAMロール、ワークロードアイデンティティ、シークレットマネージャー、
LAMIN_DB_URL、AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、GOOGLE_APPLICATION_CREDENTIALSなどの名前付き環境変数を優先し、名前付き変数が存在するかどうかのみを確認し、その値を確認しないでください。 - REST API、外部データベース、またはユーザー提供ファイルからコンテンツを保存する前に、明示的なスキーマまたはキュレーターでコンテンツを検証およびサニタイズしてください。
- 再現可能なインストールのために、パッケージバージョンを固定するか、ロックファイルを使用してください。ユーザーが最新のアップストリームリリースを明示的に希望する場合にのみ、浮動インストールは許容されます。
一般的なユースケースワークフロー
ユースケース1: オントロジー検証によるシングルセルRNA-seq解析
import lamindb as ln
import bionty as bt
import anndata as ad
# ノートブック/スクリプト実行の追跡を開始
ln.track(params={"analysis": "scRNA-seq QC and annotation"})
# 細胞タイプオントロジーのインポート
bt.CellType.import_source()
# データのロード
adata = ad.read_h5ad("raw_counts.h5ad")
# 細胞タイプの検証と標準化
adata.obs["cell_type"] = bt.CellType.standardize(adata.obs["cell_type"])
# スキーマを使用したキュレーション
curator = ln.curators.AnnDataCurator(adata, schema)
curator.validate()
artifact = curator.save_artifact(key="scrna/validated.h5ad")
# 検索可能性のためにオントロジーベースのアノテーションをリンク
cell_types = bt.CellType.from_values(adata.obs["cell_type"])
artifact.cell_types.add(*cell_types)
ln.finish()
ユースケース2: 検索可能なデータレイクハウスの構築
import lamindb as ln
# 複数の実験を登録
for i, file in enumerate(data_files):
artifact = ln.Artifact.from_anndata(
ad.read_h5ad(file),
key=f"scrna/batch_{i}.h5ad",
description=f"scRNA-seq batch {i}"
).save()
# フィーチャーでアノテーション
artifact.features.set_values({
"batch": i,
"tissue": tissues[i],
"condition": conditions[i]
})
# アノテーションされたフィーチャーですべての実験を横断してクエリ
immune_datasets = ln.Artifact.filter(
key__startswith="scrna/",
tissue="PBMC",
condition="treated"
).to_dataframe()
# 特定のデータセットをロード
for artifact in immune_datasets:
adata = artifact.load()
# 解析
ユースケース3: W&B統合によるMLパイプライン
import lamindb as ln
import wandb
# 両方のシステムを初期化
wandb.init(project="drug-response", name="exp-42")
ln.track(params={"model": "random_forest", "n_estimators": 100})
# LaminDBからトレーニングデータをロード
train_artifact = ln.Artifact.get(key="datasets/train.parquet")
train_data = train_artifact.load()
# モデルをトレーニング
model = train_model(train_data)
# W&Bにログ
wandb.log({"accuracy": 0.95})
# W&BリンケージでLaminDBにモデルを保存
import joblib
joblib.dump(model, "model.pkl")
model_artifact = ln.Artifact("model.pkl", key="models/exp-42.pkl").save()
model_artifact.features.set_values({"wandb_run_id": wandb.run.id})
ln.finish()
wandb.finish()
ユースケース4: Nextflowパイプライン統合
# Nextflowプロセススクリプト内
import lamindb as ln
ln.track()
# 入力アーティファクトをロード
input_artifact = ln.Artifact.get(key="raw/batch_${batch_id}.fastq.gz")
input_path = input_artifact.cache()
# 処理(アラインメント、定量化など)
# ... Nextflowプロセスロジック ...
# 出力を保存
output_artifact = ln.Artifact(
"counts.csv",
key="processed/batch_${batch_id}_counts.csv"
).save()
ln.finish()
ネイティブNextflowプロジェクトの場合は、nf-laminプラグインと現在のnextflow.configパターンを優先してください。小規模またはカスタムパイプラインステップには、インラインPython追跡を使用してください。
はじめにのチェックリスト
LaminDBを効果的に使い始めるには:
-
インストールと設定(
references/setup-deployment.md)- 固定されたLaminDBと必要な拡張機能をインストール
lamin loginで認証lamin init --storage ...でインスタンスを初期化
-
中核概念を学ぶ(
references/core-concepts.md)- アーティファクト、レコード、ラン、トランスフォームを理解
- アーティファクトの作成と取得を練習
- ワークフローで
ln.track()/ln.finish()または@ln.flow()/@ln.step()を実装
-
クエリをマスターする(
references/data-management.md)- レジストリのフィルタリングと検索を練習
- フィーチャーベースのクエリと式スタイルのフィルターを学ぶ
- 大きなファイルのストリーミングを試す
-
検証を設定する(
references/annotation-validation.md)- 研究ドメインに関連するフィーチャーを定義
- データタイプのスキーマを作成
- キュレーションワークフローを練習
-
オントロジーを統合する(
references/ontologies.md)- 関連する生物学的オントロジー(遺伝子、細胞タイプなど)をインポート
- 既存のアノテーションを検証
- オントロジー用語でメタデータを標準化
-
ツールを接続する(
references/integrations.md)- 既存のワークフローマネージャーと統合
- 実験追跡のためにMLプラットフォームをリンク
- クラウドストレージとコンピューティングを設定
主要原則
LaminDBを操作する際は、以下の原則に従ってください:
-
すべてを追跡: 自動系譜キャプチャのために、すべての解析の開始時に
ln.track()を使用 -
早期に検証: 広範な解析の前にスキーマを定義し、データを検証
-
オントロジーを使用: 標準化されたアノテーションのためにパブリック生物学的オントロジーを活用