[ PROMPT_NODE_26714 ]
annotation-validation
[ SKILL_DOCUMENTATION ]
# LaminDB 标注与验证
本文档涵盖了 LaminDB 中的数据整理、验证、模式管理和标注的最佳实践。
## 概述
LaminDB 的整理流程通过三个基本步骤确保数据集既经过验证又可查询:
1. **验证**:确认数据集符合预期的模式
2. **标准化**:修复拼写错误等不一致之处并映射同义词
3. **标注**:将数据集链接到元数据实体以实现可查询性
## 模式设计
模式定义了预期的数据结构、类型和验证规则。LaminDB 支持三种主要的模式方法:
### 1. 灵活模式
仅验证与 Feature 注册表名称匹配的列,允许包含额外的元数据:
python
import lamindb as ln
# 创建灵活模式
schema = ln.Schema(
name="valid_features",
itype=ln.Feature # 针对 Feature 注册表进行验证
).save()
# 任何匹配 Feature 名称的列都将被验证
# 允许存在额外的列,但不会被验证
### 2. 最小必需模式
指定必要的列,同时允许额外的元数据:
python
# 定义必需的特征
required_features = [
ln.Feature.get(name="cell_type"),
ln.Feature.get(name="tissue"),
ln.Feature.get(name="donor_id")
]
# 创建包含必需特征的模式
schema = ln.Schema(
name="minimal_immune_schema",
features=required_features,
flexible=True # 允许额外的列
).save()
### 3. 严格模式
强制对数据结构进行完全控制:
python
# 定义所有允许的特征
all_features = [
ln.Feature.get(name="cell_type"),
ln.Feature.get(name="tissue"),
ln.Feature.get(name="donor_id"),
ln.Feature.get(name="disease")
]
# 创建严格模式
schema = ln.Schema(
name="strict_immune_schema",
features=all_features,
flexible=False # 不允许额外的列
).save()
## DataFrame 整理工作流
典型的整理过程涉及六个关键步骤:
### 第 1-2 步:加载数据并建立注册表
python
import pandas as pd
import lamindb as ln
# 加载数据
df = pd.read_csv("experiment.csv")
# 定义并保存特征
ln.Feature(name="cell_type", dtype=str).save()
ln.Feature(name="tissue", dtype=str).save()
ln.Feature(name="gene_count", dtype=int).save()
ln.Feature(name="experiment_date", dtype="date").save()
# 填充有效值(如果使用受控词表)
import bionty as bt
bt.CellType.import_source()
bt.Tissue.import_source()
`