[ PROMPT_NODE_26716 ]
core-concepts
[ SKILL_DOCUMENTATION ]
# LaminDB 核心概念
本文档涵盖了 LaminDB 的基本概念和构建模块:Artifacts(制品)、Records(记录)、Runs(运行)、Transforms(转换)、Features(特征)以及数据血缘追踪。
## Artifacts(制品)
Artifacts 代表各种格式的数据集(DataFrames, AnnData, SpatialData, Parquet, Zarr 等)。它们是 LaminDB 中的主要数据对象。
### 创建并保存 Artifacts
**从文件创建:**
python
import lamindb as ln
# 将文件保存为 artifact
ln.Artifact("sample.fasta", key="sample.fasta").save()
# 带描述
artifact = ln.Artifact(
"data/analysis.h5ad",
key="experiments/scrna_batch1.h5ad",
description="单细胞 RNA-seq 批次 1"
).save()
**从 DataFrame 创建:**
python
import pandas as pd
df = pd.read_csv("data.csv")
artifact = ln.Artifact.from_dataframe(
df,
key="datasets/processed_data.parquet",
description="已处理的实验数据"
).save()
**从 AnnData 创建:**
python
import anndata as ad
adata = ad.read_h5ad("data.h5ad")
artifact = ln.Artifact.from_anndata(
adata,
key="scrna/experiment1.h5ad",
description="带有质控的 scRNA-seq 数据"
).save()
### 检索 Artifacts
python
# 通过 key
artifact = ln.Artifact.get(key="sample.fasta")
# 通过 UID
artifact = ln.Artifact.get("aRt1Fact0uid000")
# 通过过滤器
artifact = ln.Artifact.filter(suffix=".h5ad").first()
### 访问 Artifact 内容
python
# 获取缓存的本地路径
local_path = artifact.cache()
# 加载到内存
data = artifact.load() # 返回 DataFrame, AnnData 等
# 流式访问(针对大文件)
with artifact.open() as f:
# 增量读取
chunk = f.read(1000)
### Artifact 元数据
python
# 查看所有元数据
artifact.describe()
# 访问特定元数据
artifact.size # 文件大小(字节)
artifact.suffix # 文件扩展名
artifact.created_at # 时间戳
artifact.created_by # 创建者
artifact.run # 关联的运行
artifact.transform # 关联的转换
artifact.version # 版本字符串
## Records(记录)
Records 代表实验实体:样本、扰动、仪器、细胞系以及任何其他元数据实体。它们通过类型定义支持层级关系。
### 创建 Records
python
# 定义一个类型
sample_type = ln.Record(name="Sample", is_type=True).save()
# 创建该类型的实例
ln.Record(name="P53mutant1", type=sample_type).save()
ln.Record(name="P53mutant2", type=sample_type).save()
ln.Rec