[ PROMPT_NODE_26960 ]
data_management
[ SKILL_DOCUMENTATION ]
# 数据管理与存储
## 概述
PathML 通过 HDF5 存储、切片管理策略和优化的批量处理工作流,为处理大规模病理数据集提供了高效的数据管理解决方案。该框架实现了图像、掩码、特征和元数据的无缝存储与检索,格式针对机器学习流水线和下游分析进行了优化。
## HDF5 集成
HDF5 (分层数据格式) 是处理后的 PathML 数据的主要存储格式,提供:
- 高效压缩和分块存储
- 对数据子集的快速随机访问
- 支持任意大小的数据集
- 异构数据类型的分层组织
- 跨平台兼容性
### 保存到 HDF5
**单个切片:**
python
from pathml.core import SlideData
# 加载并处理切片
wsi = SlideData.from_slide("slide.svs")
wsi.generate_tiles(level=1, tile_size=256, stride=256)
# 运行预处理流水线
pipeline.run(wsi)
# 保存到 HDF5
wsi.to_hdf5("processed_slide.h5")
**多个切片 (SlideDataset):**
python
from pathml.core import SlideDataset
import glob
# 创建数据集
slide_paths = glob.glob("data/*.svs")
dataset = SlideDataset(slide_paths, tile_size=256, stride=256, level=1)
# 处理
dataset.run(pipeline, distributed=True, n_workers=8)
# 保存整个数据集
dataset.to_hdf5("processed_dataset.h5")
### HDF5 文件结构
PathML HDF5 文件按层级组织:
processed_dataset.h5
├── slide_0/
│ ├── metadata/
│ │ ├── name
│ │ ├── level
│ │ ├── dimensions
│ │ └── ...
│ ├── tiles/
│ │ ├── tile_0/
│ │ │ ├── image (H, W, C) 数组
│ │ │ ├── coords (x, y)
│ │ │ └── masks/
│ │ │ ├── tissue
│ │ │ ├── nucleus
│ │ │ └── ...
│ │ ├── tile_1/
│ │ └── ...
│ └── features/
│ ├── tile_features (n_tiles, n_features)
│ └── feature_names
├── slide_1/
└── ...
### 从 HDF5 加载
**加载整个切片:**
python
from pathml.core import SlideData
# 从 HDF5 加载
wsi = SlideData.from_hdf5("processed_slide.h5")
# 访问切片
for tile in wsi.tiles:
image = tile.image
masks = tile.masks
# 处理切片...
**加载特定切片:**
python
# 仅加载特定索引的切片
tile_indices = [0, 10, 20, 30]
tiles = wsi.load_tiles_from_hdf5("processed_slide.h5", indices=tile_indices)
for tile in tiles:
# 处理子集...
pass
**内存映射访问:**
p