Bio Datasets|生物数据数据集|数据存储与共享数据集
收藏Bio Datasets
概述
Bio Datasets 是一个非官方扩展,旨在将生物数据(如分子等)引入 HuggingFace Datasets 库。主要目标包括:
- 高效存储生物数据以供机器学习使用。
- 低开销加载并将数据标准化为机器学习就绪的 Python 对象。
- 共享大小不一的数据集。
支持的生物分子结构数据格式
存储和加载格式
特征名称 | 存储格式 | 加载格式(由 load_as 特征关键字参数控制) |
---|---|---|
AtomArrayFeature | 笛卡尔内部坐标和注释的数组 | biotite.structure.AtomArray (默认)/ bio_datasets.BiomoleculeChain / bio_datasets.BiomoleculeComplex |
StructureFeature | 嵌入到 parquet 列中的压缩字节字符串编码文件格式:PDB / mmCIF / binaryCIF | biotite.structure.AtomArray / bio_datasets.BiomoleculeChain / bio_datasets.BiomoleculeComplex |
蛋白质特定版本
特征名称 | 存储格式 | 加载格式 |
---|---|---|
ProteinAtomArrayFeature | 笛卡尔或(实验性)离散内部坐标和注释的数组 | biotite.structure.AtomArray / bio_datasets.ProteinChain / bio_datasets.ProteinComplex (默认) |
ProteinStructureFeature | 嵌入到 parquet 列中的压缩字节字符串编码文件格式:PDB / mmCIF / binaryCIF / foldcomp | biotite.structure.AtomArray / bio_datasets.ProteinChain / bio_datasets.ProteinComplex (默认) |
安装
bash pip install datasets-bio
使用示例
从 Hub 加载数据
python import foldcomp from bio_datasets import load_dataset
dataset = load_dataset(
"biodatasets/afdb_e_coli",
split="train",
)
ex = dataset[0] # 包含 name
和 structure
(biotite.structure.AtomArray
包装在 bio_datasets.Protein
对象中)
print(type(ex["structure"]))
<class bio_datasets.structure.protein.protein.ProteinChain>
创建数据集
从本地文件构建和共享数据集
python from bio_datasets import Dataset, Features, 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]
将生物数据集分享到 HuggingFace Hub
ds.push_to_hub(HUB_REPO_ID)
性能优化
python from bio_datasets import Features, Value, load_dataset, AtomArrayFeature
dataset = load_dataset( "biodatasets/afdb_e_coli", split="train", ) pdb_time = timeit.timeit(stmt="""[ex for ex in dataset]""", number=1, globals=globals()) def convert_structure_to_array(ex, features): return features.encode_example(ex)
new_features = Features(name=Value("string"), structure=AtomArrayFeature()) array_dataset = dataset.map(convert_structure_to_array, features=new_features, fn_kwargs={"features": new_features}) array_time = timeit.timeit(stmt="""[ex for ex in array_dataset]""", number=1, globals=globals())
print( f"Iterated over {len(dataset)} examples in " f"{pdb_time:.1f}s with PDB storage vs {array_time:.1f}s with array storage " f" i.e. {len(dataset)/pdb_time:.1f} samples/s vs {len(dataset)/array_time:.1f} samples/s" )
Iterated over 8726 examples in 47.5s with PDB storage vs 7.0s with array storage i.e. 183.6 samples/s vs 1237.8 samples/s
未来计划
- 支持其他生物数据类型:MD、单细胞/组学等。
贡献
欢迎代码贡献(如新的特征类型)、新数据格式/特征类型的建议,以及兼容生物数据集的分享。

GME Data
关于2021年GameStop股票活动的数据,包括每日合并的GME短期成交量数据、每日失败交付数据、可借股数、期权链数据以及不同时间框架的开盘/最高/最低/收盘/成交量条形图。
github 收录
中国1km分辨率逐月降水量数据集(1901-2023)
该数据集为中国逐月降水量数据,空间分辨率为0.0083333°(约1km),时间为1901.1-2023.12。数据格式为NETCDF,即.nc格式。该数据集是根据CRU发布的全球0.5°气候数据集以及WorldClim发布的全球高分辨率气候数据集,通过Delta空间降尺度方案在中国降尺度生成的。并且,使用496个独立气象观测点数据进行验证,验证结果可信。本数据集包含的地理空间范围是全国主要陆地(包含港澳台地区),不含南海岛礁等区域。为了便于存储,数据均为int16型存于nc文件中,降水单位为0.1mm。 nc数据可使用ArcMAP软件打开制图; 并可用Matlab软件进行提取处理,Matlab发布了读入与存储nc文件的函数,读取函数为ncread,切换到nc文件存储文件夹,语句表达为:ncread (‘XXX.nc’,‘var’, [i j t],[leni lenj lent]),其中XXX.nc为文件名,为字符串需要’’;var是从XXX.nc中读取的变量名,为字符串需要’’;i、j、t分别为读取数据的起始行、列、时间,leni、lenj、lent i分别为在行、列、时间维度上读取的长度。这样,研究区内任何地区、任何时间段均可用此函数读取。Matlab的help里面有很多关于nc数据的命令,可查看。数据坐标系统建议使用WGS84。
国家青藏高原科学数据中心 收录
URPC系列数据集, S-URPC2019, UDD
URPC系列数据集包括URPC2017至URPC2020DL,主要用于水下目标的检测和分类。S-URPC2019专注于水下环境的特定检测任务。UDD数据集信息未在README中详细描述。
github 收录
DALY
DALY数据集包含了全球疾病负担研究(Global Burden of Disease Study)中的伤残调整生命年(Disability-Adjusted Life Years, DALYs)数据。该数据集提供了不同国家和地区在不同年份的DALYs指标,用于衡量因疾病、伤害和早逝导致的健康损失。
ghdx.healthdata.org 收录
AgiBot World
为了进一步推动通用具身智能领域研究进展,让高质量机器人数据触手可及,作为上海模塑申城语料普惠计划中的一份子,智元机器人携手上海人工智能实验室、国家地方共建人形机器人创新中心以及上海库帕思,重磅发布全球首个基于全域真实场景、全能硬件平台、全程质量把控的百万真机数据集开源项目 AgiBot World。这一里程碑式的开源项目,旨在构建国际领先的开源技术底座,标志着具身智能领域 「ImageNet 时刻」已到来。AgiBot World 是全球首个基于全域真实场景、全能硬件平台、全程质量把控的大规模机器人数据集。相比于 Google 开源的 Open X-Embodiment 数据集,AgiBot World 的长程数据规模高出 10 倍,场景范围覆盖面扩大 100 倍,数据质量从实验室级上升到工业级标准。AgiBot World 数据集收录了八十余种日常生活中的多样化技能,从抓取、放置、推、拉等基础操作,到搅拌、折叠、熨烫等精细长程、双臂协同复杂交互,几乎涵盖了日常生活所需的绝大多数动作需求。
github 收录