Bio Datasets
收藏Bio Datasets
概述
Bio Datasets 是一个非官方扩展,旨在将生物数据(如分子等)引入 HuggingFace Datasets 库,主要目标包括:
- 高效存储生物数据以供机器学习使用。
- 低开销地将数据加载到标准化的 Python 对象中,便于下游处理。
- 共享大小不一的数据集。
支持的生物分子结构数据格式
| 特征名称 | 存储格式 | 加载格式 |
|---|---|---|
| AtomArrayFeature / ProteinAtomArrayFeature | 笛卡尔坐标或离散内部坐标的数组及注释 | biotite.structure.AtomArray / bio_datasets.ProteinChain / bio_datasets.ProteinComplex |
| StructureFeature / ProteinStructureFeature | 嵌入到 Parquet 列中的字节字符串编码文件格式:PDB / 压缩 PDB (gzip / foldcomp fcz) | biotite.structure.AtomArray / bio_datasets.ProteinChain / bio_datasets.ProteinComplex |
安装
bash git clone https://github.com/alex-hh/bio-datasets.git && cd bio-datasets pip install .
使用示例
从 Hub 加载数据
python import foldcomp import bio_datasets # 注册自定义特征类型 from datasets import load_dataset
dataset = load_dataset(
"biodatasets/afdb_e_coli",
split="train",
)
ex = dataset[0] # 包含 name 和 structure 键的字典
print(type(ex["structure"]))
输出:
<class bio_datasets.structure.protein.protein.ProteinChain>
创建自定义数据集
python from datasets import Dataset, Features from bio_datasets import ProteinStructureFeature
def examples_generator(pdb_file_list): for file_path in pdb_file_list: yield {"structure": {"path": file_path}}
features = Features(structure=ProteinStructureFeature(encode_with_foldcomp=True)) ds = Dataset.from_generator(examples_generator, gen_kwargs={"pdb_file_list": pdb_file_list}, features=features) ds[0]
ds.push_to_hub(HUB_REPO_ID)
性能优化
bio_datasets.StructureFeature数据存储为 PDB 格式字节字符串,自动转换为biotite.AtomArray格式。- 支持使用
bio_datasets.AtomArrayFeature类型进行更快的迭代。
未来计划
- 支持其他生物数据类型,如蛋白质-配体复合物、分子动力学、单细胞/组学等。
贡献
欢迎代码贡献、新数据格式/特征类型的建议,以及共享兼容的生物数据集。




