OC20 数据集完整指南:Open Catalyst 2020 的结构、任务、下载与在 fairchem 中的使用 OC20 数据集完整指南Open Catalyst 2020 的结构、任务、下载与在 fairchem 中的使用【免费下载链接】ocpFAIR Chemistrys library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocpOpen Catalyst 2020OC20是 FAIR Chemistryfairchem开源仓库中面向多相催化场景的奠基性大规模数据集包含 1.33 亿余条 DFT 计算结果覆盖 S2EF、IS2RE、IS2RS 三大学习任务与 82 种吸附质。本文以 docs/catalysts/datasets/oc20.md 为骨架结合仓库内下载、预处理脚本与训练/评测配置系统讲解 OC20 的下载方式、命令行参数、各任务数据切分、轨迹文件格式、配套映射文件以及版本演进帮助读者完整掌握从数据获取到模型训练的落地链路。OC20 数据集概览OC20 由 Open Catalyst Project 于 2020 年发布论文发表于ACS Catalysis2021其核心目标是训练机器学习模型预测吸附质与催化剂表面体系的能量与受力从而加速催化剂筛选。官方文档给出的关键统计如下属性值规模133M 条 DFT 计算体系约 46 万条吸附质-催化剂弛豫轨迹任务S2EF、IS2RE、IS2RS元素周期表中 55 种元素吸附质82 种论文Chanussot, Das, Goyal, Lavril, Shuaibi 等ACS Catalysis 2021DOI: 10.1021/acscatal.0c04525许可证CC-BY-4.0::: warning 重要版本提示 所有任务与切分的数据文件已于2021 年 2 月 10 日更新原因是早期版本存在影响不到 1% 数据的细微 bug。如果你在此日期之前下载过数据请重新下载。 :::OC20 在仓库中承担着催化领域基础数据的角色。在 docs/catalysts/datasets/summary.md 中OC20 被描述为针对吸附质-表面体系的 133M DFT 计算的基础数据集后续的 OC20-mAds覆盖度效应、OC20Dense吸附能稠密采样、OC20NEB过渡态以及 OC22、OC25、OCx24 等数据集均在此基础上扩展。下载与预处理一键脚本download_data.py官方提供了一体化脚本 download_data.py可完成下载 → 解压 → 预处理 → 组织目录全流程产出可直接被现有配置使用的数据目录。脚本内通过两个字典维护了所有官方下载地址DOWNLOAD_LINKS_s2efS2EF 任务的 200k / 2M / 20M / all / val_id / val_ood_ads / val_ood_cat / val_ood_both / test / rattled / md 共 11 个切分DOWNLOAD_LINKS_is2reIS2RE 的 trainvaltest 一体化 LMDB 包。IS2RE / IS2RS 数据下载IS2* 数据集以 LMDB 形式存储下载后即可直接使用无需额外预处理。执行python scripts/download_data.py --task is2reS2EF 训练/验证数据下载S2EF 的 trainval 数据需要额外的预处理步骤先解压轨迹再生成 LMDB。执行python scripts/download_data.py --task s2ef --split SPLIT_SIZE --get-edges --num-workers WORKERS --ref-energy各命令行参数的语义如下参数取值/说明--split指定切分大小200k、2M、20M、all、val_id、val_ood_ads、val_ood_cat或val_ood_both--get-edges将边信息edge indices预存进 LMDB。代价是约10 倍存储占用、3~5 倍预处理耗时不启用则在训练时即时构图需更大 GPU 显存--num-workers并行预处理的工作进程数同时决定 LMDB 分块数量--ref-energy使用参考能量referenced energies而非原始能量即在写入 LMDB 时减去参考能量--data-path数据保存目录。默认保存到fairchem.core/data脚本实现为os.path.dirname(fairchem.core.__path__[0]) /data--keep保留下载的压缩包与中间目录默认会清理S2EF 测试数据下载测试集提供的是预计算好的 LMDB直接下载即可python scripts/download_data.py --task s2ef --split test下载后的目录组织基线配置期望数据位于fairchem/data目录下。如果你通过--data-path指定了其他目录需要建立符号链接或同步修改配置文件中的数据路径。从源码看get_data()的实际流程为wget下载 →tar -xvf解压 → 对 S2EF 非测试切分调用uncompress_data()解压 LZMA 轨迹 → 调用preprocess_data()生成 LMDB → 通过verify_count()校验帧数是否与S2EF_COUNTS完全一致。目录会被组织为训练切分200k/2M/20M/all/rattled/mddata/s2ef/split/train验证切分data/s2ef/all/val_id等测试切分data/s2ef/all/test_*verify_count()的实现逻辑是统计输出目录中所有*.txt文件的行数总和并与内置计数比对例如all为 133934018val_id为 999866不匹配即断言失败用于确认预处理完整成功。底层预处理管线源码解析OC20 的 S2EF 预处理链路由两个脚本组成均在download_data.py内部被调用uncompress.py多进程解压。main()通过 glob 收集*txt.xz与*extxyz.xz文件用multiprocessing.Pool并行执行lzma.decompress借助tqdm展示进度。它也可独立使用--ipdir/--opdir/--num-workers三个参数与文档中的描述一致。preprocess_ef.py从*.extxyz提取图特征写入 LMDB。关键实现细节使用AtomsToGraphs(max_neigh50, radius6, r_energyTrue, r_forcesTrue, r_fixedTrue, r_edgesargs.get_edges)构建图从帧日志中解析sidrandomXYZ中的整数与fid为每个数据对象写入原子标签tags若启用--ref-energy且非测试数据则从frame_log[2]读取参考能量并做data_object.energy - ref_energyLMDB 的map_size设为1099511627776 * 2约 2 TB 映射空间每个数据对象以 pickle 序列化键为自增整数并写入length键记录总数输出为data.%04d.lmdb与记录系统/帧 ID 的data_log.%04d.txt。S2EF 任务结构到能量与受力S2EFStructure to Energy and Forces任务的训练/验证集以压缩轨迹文件形式提供包含输入结构与输出的能量、受力测试集则直接提供预计算 LMDB。训练 ML 模型前需要将解压后的轨迹生成 LMDB供 dataloader 使用相关 dataloader 与 LMDB 生成代码均在仓库中见上文预处理链路。训练集提供 4 种不同规模的切分且互为子集2M 包含于 20M 与 all 中。验证集提供 4 个切分分别用于评测不同类型的外推能力切分外推类型val_id域内In Domain与训练集同分布val_ood_ads域外吸附质unseen adsorbateval_ood_cat域外催化剂unseen catalyst compositionval_ood_both吸附质与催化剂组合均域外测试集同样按上述 4 个子切分提供预计算 LMDB。每个 tarball 内含 README说明文件格式、结构/轨迹数量等细节。各切分的体积与校验信息如下校验方式为 MD5切分压缩体积解压体积MD5训练集all225G1.1T12a7087bfd189a06ccbec9bc7add2bcd20M34G165G863bc983245ffc0285305a1850e19cf72M3.4G17G953474cb93f0b08cdc523399f03f7c36200K344M1.7Gf8d0909c2623a393148435dede7d3a46验证集val_id1.7G8.3Gf57f7f5c1302637940f2cc858e789410val_ood_ads1.7G8.2G431ab0d7557a4639605ba8b67793f053val_ood_cat1.7G8.3G532d6cd1fe541a0ddb0aa0f99962b7dbval_ood_both1.9G9.5G5731862978d80502bbf7017d68c2c729测试集全切分 LMDB30G415Gbcada432482f6e87b24e14b6b744992aRattled 数据29G136G40431149b27b64ce1fb40cac4e2e064bMD 数据42G306G9fed845aaab8fb4bf85e3a8db57796e0其中 rattled振动扰动结构与 MD分子动力学数据于 2021 年 3 月补充常用于增强 S2EF 训练的构型多样性。从 download_data.py 中S2EF_COUNTS可看到各切分的帧数all为 133934018200k/2M/20M对应 200000/2000000/20000000rattled为 16677031md为 38315405验证集各切分约 100 万帧。IS2RS / IS2RE 任务初始结构到弛豫结构/能量对于 IS2RSInitial Structure to Relaxed Structure与 IS2REInitial Structure to Relaxed Energy任务官方提供两类资源预计算 LMDB 压缩包解压后可直接用于训练 ML 模型。LMDB 包含输入的初始结构与输出的弛豫结构、能量。训练集按规模切分且互为子集与 S2EF 类似验证/测试集则按外推类型In Domain、OOD Adsorbate、OOD Catalyst、OOD Both分为子切分。底层的 ASE 弛豫轨迹覆盖训练集与验证集全部吸附质催化剂体系训练 ML 模型并非必需供有需求的用户使用。切分压缩体积解压体积MD5Train全切分 Validation全切分 Test全切分8.1G97Gcfc04dd2f87b4102ab2f607240d25fb1Test-challenge 20211.3G17Gaed414cdd240fbb5670b5de6887a138b其中 Test-challenge 2021 数据专为 Open Catalyst Challenge 2021 挑战赛发布2021 年 9 月。弛豫轨迹Relaxation Trajectories吸附质催化剂体系轨迹可选下载该轨迹数据覆盖全部 IS2RE/S 训练与验证体系用于研究与分析弛豫过程切分压缩体积解压体积MD5全部 IS2RE/S 训练轨迹约 466k 条109G841G9e3ed4d1e497bfdce4472ee70455edefval_id约 25K 条5.9G46Gfcb71363018fb1e7127db2500e39e11aval_ood_ads约 25K 条5.7G44G5ced8ea84584aa229d31e693e0fb090fval_ood_cat约 25K 条6.0G46G88dcc02fd8c174a72d2c416878fc44ffval_ood_both约 25K 条4.4G35Gbc74b6474a13542cc56eaa97bd51adfc单吸附质轨迹可选下载官方为每个吸附质单独提供了轨迹包按吸附质索引index0~81组织便于按吸附质粒度定向下载研究。完整清单如下吸附质符号、压缩体积与 MD5吸附质体积MD5吸附质体积MD5*O1006Md4151542856b4b6405f276808f75358a*H850M3697f04faf04251a23da8b88a78209f7*OH1.6Ga21081f3f55eb0c98a91021bbe3dac44*OH21.8Gb12b706854f5d899e02a9ae6578b5d45*C1.1Ge4fe9890764fcf59e01e3ceab089b978*CH1.4Gec9aa2c4c4bd4419359438ba7fbb881d*CHO1.4Gd32200f74ad5c3bfd42e8835f36d57ab*COH1.6G5418a1b331f6c7689a5405cca4cc8d15*CH21.6G8ee1066149c305d7c17c219b369c5a73CH2O1.7G960c2450814024b66f3c79121179ac60*CHOH1.8G60ac9f965f9589a3389483e3d1e58144*CH31.7G7e123e6f4fb10d6897be3f47721dfd4a*OCH31.8G0823047bbbe05fa0e63f9d83ec601487*CH2OH1.9G9ac71e198d75b1427182cd34abb73e4d*CH41.9Ga405ce403018bf8afbd4425d5c0b34d5*OHCH32.1Gd3c829f1952db6e4f428273ee05f59b1CC1.5Gd687a151345305897b9245af4b0f9967*CCO1.7G214ca96e620c5ec6e8a6ff8144a22a04*CCH1.6Gda2268545e80ca1664026449dd2fdd24*CHCO1.7G386c99407fe63080d26cda525dfdd8cd*CCHO1.8G918b20960438494ab160a9dbd9668157*COCHO1.8G84424aa2ad30301e23ece1438ea39923*CCHOH2.0G3cc90425ec042a70085ba7eb2916a79a*CCH21.8G9dbcf7566e40965dd7f8a186a75a718eCHCH1.7Ga193b4c72f915ba0b21a41790696b23cCH2*CO1.8Gde83cf50247f5556fa4f9f64beff1eeb*CHCHO1.9G1d140aaa2e7b287124ab38911a711d70CHCOH1.3G682d8a6b05ca5948b34dc5e5f6bbcd61*COCH2O1.9Gc8742faa8ca40e8edb4110069817fa70CHOCHO2.0G8cfbb67beb312b98c40fcb891dfa480a*COHCHO1.9G6ffa903a62d8ec3319ecec6a03b06276*COHCOH2.0Gcaca0058b641bfdc9f8de4527e60feb7*CCH31.8G906543aaefc171edab388ff4f0fe8a20*CHCH21.8G4dfab479495f76179749c1956046fbd8*COCH31.9G29d1b992715054e920e8bb2afe97b393*CHCHOH2.0G9e5912df6f7b11706d1046cdb9e3087e*CCH2OH2.1G7bcae43cee451306e34ec416588a7f09*CHOCHOH2.0Gf98866d08fe3451ae7ebc47bb51599aa*COCH2OH1.4Gbfaf689e5827fcf26c51e567bb8dd1be*COHCHOH2.0G236fe4e950aa2fbdde94ef2821fb48d2*OCHCH32.1G66acc5460a999625c3364f0f3bcca871*COHCH32.1Gbb4a01956736399c8cee5e219f8c1229*CHOHCH22.1Ge836de4ec146b1b611533f1ef682cace*CHCH2OH2.0G66df44121806debef6dc038df7115d1d*OCH2CHOH2.2Gff6981fdbcd2e65d351505c15d218d76*CHOCH2OH2.1G448f7d352ab6e32f754e24de64ca302a*COHCH2OH2.1G8bff6bf3e10cc84acc4a283a375fcc23*CHOHCHOH2.0G9c9e4d617d306751760a80f1453e71f1*CH2CH32.0Gec1e964d2ee6f468fa5773743e3994a4*OCH2CH32.1Gd297b27b02822f9b6af80bdb64aee819*CHOHCH32.1G368de083dafdc3bbdb560d35e2a102c0*CH2CH2OH2.1G3c1aaf790659f7ff89bf1eed8b396b63*CHOHCH2OH2.2G2d71adb9e305e6f3bca49e5df9b5a86a*OHCH2CH32.3Gcf51128f8522b7b66fc68d79980d6def*NH2N(CH3)21.6G36ba974d80c20ff636431f7c0ad225da*ONN(CH3)22.3Gfdc4cd19977496909d61be4aee61c4f1*OHNNCH32.1G50a6ff098f9ba7adbba9ac115726cc5a*ONH1.8G47573199c545afe46c554ff756c3e38f*NHNH1.7Gdd456b7e19ef592d9f0308d911b91d7cNNH1.6Gc05289fd56d64c74306ebf57f1061318*NO2NO22.1G4822a06f6c5f41bdefd3cbbd8856c11fNNO1.6G2a27de122d32917cc5b6ac0a21c63c1c*N21.5Gcc668fecf679b6edaac8fd8fb9cdd404*ONNH22.1Gdff880f1a5baa7f67b52fd3ed745443d*NH21.6Gc7f383b50faa6244e265c9611466cb8f*NH31.9G2b355741f9300445703270e0e4b8c01c*NONH1.8G48877a0c6f2994baac82cb722711aaa2*NH1.4G7979b9e7ab557d6979b33e352486f0ef*NO21.7G9f352fbc32bb2b8caf4788aba28b2eb7*NO1.4G482ee306a5ae2eee78cac40d10059ebc*N1.1Gbfb6e03d4a687987ff68976f0793cc46*NO31.8G700834326e789a6e38bf3922d9fcb792*OHNH22.1Gfa24472e0c02c34d91f3ffe6b77bfb11*ONOH1.4G4ddcccd62a834a76fe6167461f512529*CN1.5Gbc7c55330ece006d09496a5ff01d5d50注意少数吸附质被有意排除在测试切分之外用于评测域外吸附质外推。下载并解压任意上述包后会得到index/目录内部结构为system.txt文本文件列出该吸附质下所有吸附质催化剂体系名共 N 个体系。index/子目录包含 N 个 LZMA 压缩的轨迹文件命名为system_id.extxyz.xz。其中index可取 0~81N 取决于所选吸附质索引。system.txt每行格式为system_id,reference_energysystem_id吸附质催化剂体系对应的内部随机 IDreference_energy用于将体系能量参考到裸催化剂气相参考能量的能量用于吸附能计算。.extxyz.xz是 LZMA 压缩的.extxyz轨迹文件每条轨迹对应一个吸附质催化剂体系的弛豫过程。解压可借助仓库中的 uncompress.py它提供了多核并行实现见上文源码解析。催化剂体系轨迹可选下载数量压缩体积解压体积MD5294k 个体系20G151G347f4183465810e9b384e7a033baefc7Bader 电荷数据官方提供了 OC20 全部 trainvalidation 体系S2EF 与 IS2RE/RS 任务最终帧的 Bader 电荷分析数据。下载解压后得到若干目录目录名为唯一体系 ID格式为randomXYZXYZ 为整数每个目录包含原始的 Bader 电荷分析输出。该数据基于 Henkelman 组的 Bader 电荷分析工具生成适用于电子结构层面的研究如电荷转移分析。OC20 映射信息Mappings数据映射 pickleoc20_data_mapping.pkl该文件为 Python pickle加载后得到一个字典键为吸附质催化剂体系 IDrandomXYZ格式值为包含体系构成信息的字典字段含义如下字段含义bulk_mpid对应催化剂表面的体相体系在 Materials Project 中的 IDbulk_symbols体相对应部分的化学组成ads_symbols吸附质部分的化学组成ads_id吸附质内部唯一标识数据集 82 种吸附质各一个bulk_id体相内部唯一标识数据集 11500 个体相各一个miller_index表面 Miller 指数3 元整数元组shift用于确定表面截断的 c 方向位移c 方向遵循 Pymatgen 命名top布尔值指示所选表面位于原始枚举表面的顶部还是底部adsorption_site3 元元组组成的元组含每个结合吸附质原子的笛卡尔坐标class体系 slab 所属材料类别0-金属间化合物1-准金属2-非金属3-卤化物anomaly可能的异常标记基于通用启发式规则非绝对分类0-无异常1-吸附质解离2-吸附质脱附3-表面重构4-CHCOH 放置错误表现为 CHCO 加一个孤立、无相互作用的 H 远离在晶胞中示例条目random2181546: {bulk_id: 6510, ads_id: 69, bulk_mpid: mp-22179, bulk_symbols: Si2Ti2Y2, ads_symbols: *N2, miller_index: (2, 0, 1), shift: 0.145, top: True, adsorption_site: ((4.5, 12.85, 16.13),), class: 1, anomaly: 0}吸附质催化剂体系 → 催化剂体系映射mapping_adslab_slab.pkl该 pickle 文件提供吸附质催化剂体系到其对应催化剂体系的映射键为吸附质催化剂体系 IDrandomXYZ值为催化剂体系 IDrandomPQR。示例random1981709: random533137此类映射常用于把吸附质-表面体系的预测结果归一到催化剂体系层面例如吸附能的外推分析、催化剂筛选排序。数据版本变更记录Changelog2021 年 9 月发布 IS2REtest-challenge数据用于 Open Catalyst Challenge 2021。2021 年 3 月修改数据映射 pickle新增miller_index、shift、top与adsorption_site字段。为 S2EF 任务新增 Molecular DynamicsMD与 rattled 数据。2021 年 2 月Version 2移除只有单帧检查点的 slab 体系导致 130M 帧中 35 万帧的参考帧能量被修改。修复吸附质催化剂轨迹中的检查点拼接stitching。发布 slab 轨迹。各切分帧数/体系数变化旧 → 新S2EF 帧数train133953162 → 133934018val_id1000000 → 999866val_ood_ads1000000 → 999838val_ood_cat1000000 → 999809val_ood_both1000000 → 999944test_id1000000 → 999736test_ood_ads1000000 → 999859test_ood_cat1000000 → 999826test_ood_both1000000 → 999973IS2RE/IS2RS 体系数train461313 → 460328val_id24946 → 24943val_ood_ads24966 → 24961val_ood_cat24988 → 24963val_ood_both24963 → 24987test_id24951 → 24948test_ood_ads24931 → 24930test_ood_cat24967 → 24965test_ood_both24986 → 249852020 年 10 月Version 1初始版本S2EF 帧数train 133953162val_id / val_ood_ads / val_ood_cat / val_ood_both 各 1000000test 各切分 1000000。IS2RE/IS2RS 体系数train 461313val_id 24936val_ood_ads 24966val_ood_cat 24988val_ood_both 24963test 各切分 24951 / 24931 / 24967 / 24986。在 fairchem 仓库中使用 OC20 数据OC20 数据下载并预处理完成后即可接入仓库内的训练与评测配置仓库中提供了大量可直接参考的示例训练数据集配置configs/escaip/training/dataset/fair_cluster_oc20.yaml 展示了 S2EF 训练数据源的组织方式训练集由${cluster.data_root_dir}/oc20/s2ef/train/all等目录构成可叠加 md38M、rattled17M 及 oc20_slabs 数据验证集则从oc20/s2ef/val/id、oc20/s2ef/val/ood_both按sample_n: 25000采样同时通过key_mapping将能量/受力映射为oc20_energy/forces键。端到端训练入口configs/escaip/training/oc20_direct_escaip_fair.yml 是 OC20 直接预测direct forces训练的完整配置使用 EScAIP 骨架、max_neighbors: 30、cutoff_radius: 6、AdamW 优化器、direct_forces_coef: 60、oc20_energy_coef: 20并通过MaxAtomDistributedBatchSamplermax_atoms: 300组织批量训练 3 个 epoch。S2EF 评测入口configs/escaip/benchmark/oc20-s2ef-id.yaml 演示了用AdsorptionSinglePointRunnerFAIRChemCalculator在 S2EF 验证集上进行单点能量/受力评测输出键为energy/forces按sid索引归约。提交 Leaderboard如需参加 OC20 公开排行榜评测docs/leaderboard/oc20.md 提供了 S2EF/IS2RE 预测结果的.npz提交格式{split}_ids、{split}_energy、{split}_forces、{split}_chunk_idx以及基于AseDBDatasetFAIRChemCalculator的参考生成脚本。另外仓库还为 OC20 提供了配套的独立数据集文档如 OC20-mAds多吸附质/覆盖度、OC20-slabs裸 slab 体系、OC20Dense稠密采样 与 OC20NEB过渡态轨迹可在完成 OC20 基础数据准备后按需进阶。引用 OC20OC20 数据集采用 Creative Commons Attribution 4.0CC-BY-4.0许可。任何使用 OC20 数据集的研究论文请引用article{ocp_dataset, author {Chanussot*, Lowik and Das*, Abhishek and Goyal*, Siddharth and Lavril*, Thibaut and Shuaibi*, Muhammed and Riviere, Morgane and Tran, Kevin and Heras-Domingo, Javier and Ho, Caleb and Hu, Weihua and Palizhati, Aini and Sriram, Anuroop and Wood, Brandon and Yoon, Junwoong and Parikh, Devi and Zitnick, C. Lawrence and Ulissi, Zachary}, title {Open Catalyst 2020 (OC20) Dataset and Community Challenges}, journal {ACS Catalysis}, year {2021}, doi {10.1021/acscatal.0c04525}, }小结OC20 是 fairchem 生态中催化方向的数据基石S2EF/IS2RE/IS2RS 三大任务覆盖了能量与受力预测→弛豫结构/能量预测的完整建模需求ID / OOD-Ads / OOD-Cat / OOD-Both 四类切分系统性地评测模型的域内精度与外推能力轨迹、Bader 电荷与映射文件则为深入的机制分析提供素材。通过 download_data.py 一键脚本配合--split、--get-edges、--ref-energy等参数即可复现官方组织好的数据目录并直接对接仓库中现成的训练与评测配置是开展催化剂机器学习研究的实用起点。【免费下载链接】ocpFAIR Chemistrys library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考