alterlab-lamindb について
alterlab-lamindb は、生物学データや計算ワークフローを管理する研究者向けの LaminDB スキルガイドです。データのバージョン管理と来歴追跡、メタデータ検索、スキーマ検証、生物学オントロジーによる注釈を扱います。
主な機能
- 01データセットのバージョン管理と来歴追跡
- 02メタデータや特徴量による検索
- 03スキーマ検証とデータキュレーション
- 04生物学オントロジーによる標準化注釈
- 05ワークフロー・MLOps ツールとの連携
活用シーン
- 01シングルセルデータの整理と検索
- 02ノートブックやパイプライン出力の追跡
- 03生物学的注釈の検証と標準化
- 04データセットと ML 実験の関連付け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-lamindbインストール後、Claude Code で/alterlab-lamindbを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonreferences/annotation-validation.mdcore-concepts.mddata-management.mdintegrations.mdontologies.mdsetup-deployment.md詳細
LaminDB
概要
LaminDB は、生物学向けのオープンソースデータフレームワークです。データのクエリ、追跡、再現を可能にし、FAIR(検索可能、アクセス可能、相互運用可能、再利用可能)を実現します。レイクハウスアーキテクチャ、系譜追跡、フィーチャーストア、生物学的オントロジー、LIMS(ラボ情報管理システム)、ELN(電子実験ノート)の機能を単一の Python API で統合したプラットフォームを提供します。
主な価値:
- クエリ可能性:メタデータ、特徴量、オントロジー用語でデータセットを検索・絞り込みできます
- 追跡可能性:生データから解析、結果に至るまでの系譜を自動的に追跡します
- 再現性:データ、コード、環境のバージョン管理ができます
- FAIR 準拠:生物学的オントロジーを用いて標準化されたアノテーションを行います
このスキルを使用する場面
次のような場合に、このスキルを使用します。
- 生物学的データセットの管理:scRNA-seq、bulk RNA-seq、空間トランスクリプトミクス、フローサイトメトリー、マルチモーダルデータ、EHR データ
- 計算ワークフローの追跡:ノートブック、スクリプト、パイプライン実行(Nextflow、Snakemake、Redun)
- データのキュレーションと検証:スキーマ検証、標準化、オントロジーに基づくアノテーション
- 生物学的オントロジーの利用:遺伝子、タンパク質、細胞種、組織、疾患、経路(Bionty 経由)
- データレイクハウスの構築:複数のデータセットを横断する統合クエリインターフェース
- 再現性の確保:自動バージョン管理、系譜追跡、環境の記録
- ML パイプラインの統合:Weights & Biases、MLflow、HuggingFace、scVI-tools との連携
- データインフラストラクチャのデプロイ:ローカルまたはクラウドベースのデータ管理システムのセットアップ
- データセットでの共同作業:標準化されたメタデータを持つ、キュレーション済みアノテーション付きデータの共有
該当しない場合
| シナリオ | 代わりに使用 |
|---|---|
| AnnData を登録するのではなく、scRNA-seq AnnData を解析する(QC、クラスタリング、DE) | alterlab-scanpy |
| AnnData オブジェクト自体を操作する(スライス、結合、h5ad/zarr I/O) | alterlab-anndata |
| 公開 CELLxGENE Census から参照細胞を取得する | alterlab-cellxgene |
| 記録システムとしてラボの ELN/LIMS(Benchling)を使用する | alterlab-benchling |
| 完成したデータセットを DOI 付きで公開リポジトリに登録する | alterlab-open-science |
主な機能
LaminDB は、相互に連携する 6 つの機能領域を提供します。それぞれの詳細は references フォルダーに記載されています。
1. コアコンセプトとデータ系譜
コアエンティティ:
- アーティファクト:バージョン管理されたデータセット(DataFrame、AnnData、Parquet、Zarr など)
- レコード:実験エンティティ(サンプル、摂動、機器)
- 実行と変換:計算系譜の追跡(どのコードがどのデータを生成したか)
- 特徴量:アノテーションとクエリ用の型付きメタデータフィールド
主なワークフロー:
- ファイルまたは Python オブジェクトからアーティファクトを作成し、バージョン管理する
ln.track()とln.finish()でノートブック/スクリプトの実行を追跡する- 型付き特徴量でアーティファクトにアノテーションを付ける
artifact.view_lineage()でデータ系譜グラフを可視化する- プロヴェナンスでクエリする(特定のコード/入力から生成されたすべての出力を検索する)
リファレンス: references/core-concepts.md — アーティファクト、レコード、実行、変換、特徴量、バージョン管理、系譜追跡の詳細については、こちらを参照してください。
2. データ管理とクエリ
変更された API 名。 クエリ結果は
.to_dataframe()(以前の.df())で実体化されます。アーティファクトにはfeatures.set_values({...})/features.remove_values([...])でアノテーションを付与します(以前のadd_values)。また、リモートインスタンスはレジストリをインポートするのではなく、データベースオブジェクトとして開きます。つまり、db = ln.DB("account/instance")を実行してからdb.Artifact.filter(...)を使用します。ln.track()/ln.finish()とln.Artifact.from_dataframe/from_anndataコンストラクターに変更はありません。
クエリ機能:
- 自動補完を使ったレジストリの探索と検索
get()、one()、one_or_none()による単一レコードの取得- 比較演算子(
__gt、__lte、__contains、__startswith)を使ったフィルタリング - 特徴量に基づくクエリ(アノテーション付きメタデータによる検索)
- ダブルアンダースコア構文を使ったレジストリ間の走査
- レジストリ全体を対象とする全文検索
- Q オブジェクトを使った高度な論理クエリ(AND、OR、NOT)
- メモリに読み込まずに大規模データセットをストリーミング
主なワークフロー:
- フィルターや並べ替えを指定してアーティファクトを閲覧する
- 特徴量、作成日、作成者、サイズなどでクエリする
- 大きなファイルをチャンク単位または配列スライスでストリーミングする
- 階層キーを使ってデータを整理する
- アーティファクトをコレクションにまとめる
リファレンス: references/data-management.md — 包括的なクエリパターン、フィルタリングの例、ストリーミング戦略、データ整理のベストプラクティスについては、こちらを参照してください。
3. アノテーションと検証
キュレーションのプロセス:
- 検証: データセットが目的のスキーマに一致していることを確認します
- 標準化: 誤記を修正し、同義語を標準用語に対応付けます
- アノテーション: データセットをメタデータエンティティに紐付け、クエリ可能にします
スキーマの種類:
- 柔軟なスキーマ: 既知の列のみを検証し、追加のメタデータを許可します
- 最小限の必須スキーマ: 必須列を指定し、追加項目を許可します
- 厳格なスキーマ: 構造と値を完全に制御します
対応するデータ型:
- DataFrames(Parquet、CSV)
- AnnData(シングルセルゲノミクス)
- MuData(マルチモーダル)
- SpatialData(空間トランスクリプトミクス)
- TileDB-SOMA(スケーラブルな配列)
主なワークフロー:
- データ検証用の特徴量とスキーマを定義する
- 検証に
DataFrameCuratorまたはAnnDataCuratorを使用する .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 のタスク追跡と連携します
MLOps プラットフォーム:
- Weights & Biases:実験とデータアーティファクトを関連付けます
- MLflow:モデルと実験を追跡します
- HuggingFace:モデルのファインチューニングを追跡します
- scVI-tools:シングルセル解析ワークフローに対応します
ストレージシステム:
- ローカルファイルシステム、AWS S3、Google Cloud Storage
- S3 互換(MinIO、Cloudflare R2)
- HTTP/HTTPS エンドポイント(読み取り専用)
- HuggingFace データセット
アレイストア:
- TileDB-SOMA(cellxgene に対応)
- Parquet ファイルへの SQL クエリ用の DuckDB
可視化:
- インタラクティブな空間/シングルセル可視化用の Vitessce
バージョン管理:
- ソースコード追跡用の Git インテグレーション
リファレンス: references/integrations.md — サードパーティシステムとのインテグレーションパターン、コード例、トラブルシューティングについては、こちらを参照してください。
6. セットアップとデプロイ
インストール:
- データサイエンス向けフルスタック:
uv pip install lamindb(2026-09 時点で 2.10.x) - 最小限の名前空間のみ:
uv pip install lamindb-core - エクストラ:
gcp、fcs、zarr-v2(現在は zarr v3 がデフォルトです。従来の単独のzarrエクストラ は廃止されています)、例:uv pip install 'lamindb[gcp,fcs]' - モジュールはインスタンスにマウントされ、pip ではインストールされません:
lamin init --storage ./mydata --modules bionty
インスタンスタイプ:
- ローカル SQLite(開発用)
- クラウドストレージ + SQLite(小規模チーム向け)
- クラウドストレージ + PostgreSQL(本番環境向け)
ストレージのオプション:
- ローカルファイルシステム
- リージョンと権限を設定可能な AWS S3
- Google Cloud Storage
- S3 互換エンドポイント(MinIO、Cloudflare R2)
設定:
- クラウドファイルのキャッシュ管理
- マルチユーザーシステムの設定
- Git リポジトリの同期
- 環境変数
デプロイパターン:
- ローカル開発環境からクラウド本番環境への移行
- マルチリージョンデプロイ
- パーソナルインスタンスを使用した共有ストレージ
リファレンス: references/setup-deployment.md — 詳細なインストール、設定、ストレージのセットアップ、データベース管理、セキュリティのベストプラクティス、トラブルシューティングについては、こちらを参照してください。
よくあるユースケースのワークフロー
ユースケース 1:オントロジー検証を伴うシングルセル RNA-seq 解析
import lamindb as ln
import bionty as bt
import anndata as ad
# Start tracking
ln.track(params={"analysis": "scRNA-seq QC and annotation"})
# Import cell type ontology
bt.CellType.import_source()
# Load data
adata = ad.read_h5ad("raw_counts.h5ad")
# Validate and standardize cell types
adata.obs["cell_type"] = bt.CellType.standardize(adata.obs["cell_type"])
# Curate with schema
curator = ln.curators.AnnDataCurator(adata, schema)
curator.validate()
artifact = curator.save_artifact(key="scrna/validated.h5ad")
# Link ontology annotations (validated CellType records)
cell_types = bt.CellType.from_values(adata.obs.cell_type)
artifact.cell_types.add(cell_types) # typed accessor: <registry-name-plural>.add(...)
ln.finish()
ユースケース 2:クエリ可能なデータレイクハウスの構築
import lamindb as ln
# Register multiple experiments
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()
# Annotate with features. Current API is set_values / remove_values
# (add_values was renamed).
artifact.features.set_values({
"batch": i,
"tissue": tissues[i],
"condition": conditions[i]
})
# Query across all experiments
immune_datasets = ln.Artifact.filter(
key__startswith="scrna/",
tissue="PBMC",
condition="treated"
).to_dataframe()
# Load specific datasets
for artifact in immune_datasets:
adata = artifact.load()
# Analyze
ユースケース 3:W&B インテグレーションを使用した ML パイプライン
import lamindb as ln
import wandb
# Initialize both systems
wandb.init(project="drug-response", name="exp-42")
ln.track(params={"model": "random_forest", "n_estimators": 100})
# Load training data from LaminDB
train_artifact = ln.Artifact.get(key="datasets/train.parquet")
train_data = train_artifact.load()
# Train model
model = train_model(train_data)
# Log to W&B
wandb.log({"accuracy": 0.95})
# Save model in LaminDB with W&B linkage
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 パイプラインのインテグレーション
# In Nextflow process script
import lamindb as ln
ln.track()
# Load input artifact
input_artifact = ln.Artifact.get(key="raw/batch_${batch_id}.fastq.gz")
input_path = input_artifact.cache()
# Process (alignment, quantification, etc.)
# ... Nextflow process logic ...
# Save output
output_artifact = ln.Artifact(
"counts.csv",
key="processed/batch_${batch_id}_counts.csv"
).save()
ln.finish()
はじめるためのチェックリスト
LaminDB を効果的に使い始めるには:
-
インストールとセットアップ(
references/setup-deployment.md)- LaminDB と必要なエクストラをインストールします
lamin loginで認証します- インスタンスを初期化します:
lamin init --storage ./mydata --modules bionty(Postgres を使用するインスタンスの場合は--db postgresql://...を追加します)
-
コアコンセプトを学ぶ(
references/core-concepts.md)- Artifacts、Records、Runs、Transforms を理解します
- アーティファクトの作成と取得を練習します
- ワークフローに
ln.track()とln.finish()を実装します
-
クエリを習得する(
references/data-management.md)- レジストリのフィルタリングと検索を練習します
- 特徴量ベースのクエリを学びます
- 大容量ファイルのストリーミングを試します
-
検証を設定する(
references/annotation-validation.md)- 研究分野に関連する特徴量を定義します
- データ型に対応するスキーマを作成します
- キュレーションのワークフローを練習します
-
オントロジーを統合する(
references/ontologies.md)- 関連する生物学的オントロジー(遺伝子、細胞型など)をインポートします
- 既存のアノテーションを検証します
- オントロジー用語でメタデータを標準化します
-
ツールを接続する(
references/integrations.md)- 既存のワークフローマネージャーと統合します
- 実験追跡のために ML プラットフォームを連携します
- クラウドストレージとコンピューティングを設定します
主な原則
LaminDB を使用する際は、次の原則に従ってください。
-
すべてを追跡する:すべての分析の開始時に
ln.track()を使用し、リネージを自動的に取得します -
早期に検証する:大規模な分析に取りかかる前に、スキーマを定義してデータを検証します
-
オントロジーを使用する:標準化されたアノテーションには、公開されている生物学的オントロジーを活用します
-
キーで整理する:アーティファクトキーを階層的に構成します(例:
project/experiment/batch/file.h5ad) -
まずメタデータをクエリする:大きなファイルを読み込む前に、フィルター処理と検索を行います
-
複製ではなくバージョン管理を行う:変更のために新しいキーを作成するのではなく、組み込みのバージョン管理を使用します
-
特徴量でアノテーションする:クエリ可能なメタデータには、型付きの特徴量を定義します
-
十分にドキュメント化する:アーティファクト、スキーマ、トランスフォームに説明を追加します
-
リネージを活用する:
view_lineage()を使用して、データの来歴を把握します -
ローカルで始め、クラウドへ拡張する:SQLite を使用してローカルで開発し、PostgreSQL を使用してクラウドにデプロイします
リファレンスファイル
このスキルには、機能別に整理された包括的なリファレンスドキュメントが含まれています。
references/core-concepts.md- アーティファクト、レコード、実行、トランスフォーム、特徴量、バージョン管理、リネージreferences/data-management.md- データのクエリ、フィルター処理、検索、ストリーミング、整理references/annotation-validation.md- スキーマ設計、キュレーションのワークフロー、検証戦略references/ontologies.md- 生物学的オントロジーの管理、標準化、階層構造references/integrations.md- ワークフローマネージャー、MLOps プラットフォーム、ストレージシステム、ツールreferences/setup-deployment.md- インストール、設定、デプロイ、トラブルシューティング
必要な LaminDB の機能に応じて、該当するリファレンスファイルを読んでください。
追加リソース
- 公式ドキュメント:https://docs.lamin.ai
- API リファレンス:https://docs.lamin.ai/api
- GitHub リポジトリ:https://github.com/laminlabs/lamindb
- チュートリアル:https://docs.lamin.ai/tutorial
- FAQ:https://docs.lamin.ai/faq
AlterLab Academic Skills スイートの一部です。