Blog
November 26th, 2024

Présentation de OpenQDC – L'hub open-source de données quantiques prêtes pour le ML

Explorez aujourd'hui

Introduction

Nous avons organisé et consolidé plus de 40 ensembles de données de mécanique quantique (QM), couvrant 1,5 milliard de géométries sur 70 espèces d’atomes et plus de 250 méthodes QM, dans un hub unique et accessible appelé OpenQDC. C’est open source et les ensembles de données sont accessibles via la bibliothèque Python OpenQDC. Installez‑le avec pip (pip install OpenQDC) pour commencer à télécharger et utiliser divers ensemble de données QM en une seule ligne de code.

Github page: https://github.com/valence-labs/openQDC



Website: https://www.openqdc.io/

Défis liés aux ensembles de données MQ

Développer des MLIP (potentiels interatomiques pilotés par apprentissage automatique) robustes nécessite d’énormes quantités de données de mécanique quantique (MQ). Malheureusement, il y a un manque d’ensemble de données standardisées et prêts à l’emploi (« plug‑and‑play ») pouvant être utilisés pour entraîner et tester de nouveaux algorithmes de ML, ce qui entrave le prototypage de nouvelles recherches dans ce domaine.

Les ensembles de données QM existants couvrent diverses méthodes et différents espaces chimiques. Ils sont également éparpillés dans plusieurs dépôts (p. ex. QCArchive, ColabFit, NablaDFT, GEOM) avec des métadonnées manquantes (p. ex. niveau de théorie et unités), ajoutant une couche de complexité supplémentaire à leur utilisation. Cela entrave non seulement l’adoption et l’utilité des données, mais aussi les opportunités de collaboration entre physiciens, chimistes, experts en ML et spécialistes d’autres disciplines, limitant les avancées de la recherche en ML.

Présentation de OpenQDC

Avec OpenQDC, nous visons à unifier et standardiser les ensembles de données bien connus afin de faire progresser la recherche sur les MLIP. Nous avons rassemblé des ensembles de donnés publics et calculé des métadonnées essentielles qui manquaient mais nécessaires à un traitement précis des données (par exemple l’énergie, la distance, les unités de force, et les énergies d’atomes isolés).

Les méthodes QM et unités physiques sont rigoureusement annotées, validées, et utilisées pour fournir des statistiques utiles, des méthodes de normalisation et des conversions, offrant des moyens efficaces d’utiliser de multiple ensemble de données de manière nouvelle et auparavant impossibles pour progresser davantage la frontière de la recherche MLIP.

Dataset# conf.# E# F# Atom typeAtom Min/MaxDataset# conf.# E# F# Atom typeAtom Min/Max
ANI-122,057,3741042/26ANI-1x4,956,0058242/63
ANI-1ccx489,5714042/63ANI-2x9,651,71211422/63
COMP6101,3521046/312GDML3,875,4683349/24
GEOM33,078,4831163/181ISO17640,9821051/19
MD22223,44211442/370Molecule3D3,899,6471081/137
MultixQM9133,631229053/29NablaDFT1,275,3401188/57
OrbNet D.2,338,88920172/74Pub. PM6189,890,15510701/215
Pub. B3lyp85,915,77310701/215QM771651052/23
QM7-X4,195,1922164/23QM821,7862053/8
QM9133,8851053/9Qmugs1,992,98420104/228
RevMD17999,9881149/24SN2 React.452,7091062/6
Sol. Prot.2,731,1801152/120Spice1,110,16511152/110
SpiceV22,008,62811172/110tmQM86,66510445/569
Transition1x9,654,8131144/23WaterClusters4,464,7401229/90
Alchemy202,57910411/38ANICCXv2489,4576042/55
BPA13,99311427/27MACEOFF1,001,20011103/150
QM7xv24,195,1923164/23QMugsv21,992,94130104/228
QM7b721176064/60SpiceLv22,004,89331172/110
SCANWater32219081/23VQMd241,104,9821051/21
PtrFrags2,731,9861052/120MDDataset11,819105162/321
QM1B1,000,000,0001059/11DESSM4,955,938
Potential Total1,400,126,27939516701/370
DES370K370,95914022/44DESSM4,955,938170142/34
DESS866617046/34DESS86x852817046/34
Metcalf13,41550412/41X40405097/25
L7780448/112Splinter1,677,830200102/51
Interaction Total7,018,78302022/112

La bibliothèque OpenQDC

La bibliothèque Python OpenQDC facilite le travail avec tous les ensembles de données quantiques du hub. C’est un paquetage visant à fournir un moyen simple et efficace pour télécharger, charger et exploiter divers ensembles de données. Vous pouvez télécharger des ensembles de données avec une seule ligne de code.

  • Une API (Application Programming Interfaces / Interfaces de programmation d'applications) pythonique simple: La simplicité de l’interface Python garantit une facilité d’utilisation, ce qui la rend parfaite pour un prototypage rapide.
  • Prêt pour le ML: Vous ne manipulez que des objets torch.Tensor, jax.Array ou numpy.Array.
  • Prêt pour le quantique: Les méthodes quantiques utilisées par les ensemble de données sont vérifiées et standardisées pour fournir des valeurs complémentaires, des normalisations utiles et différentes statistiques.
  • Standardisé: Les ensembles de données sont fournis dans des formats standards et performants avec des métadonnées annotées telles que des unités et des étiquettes.
  • La performance compte: Lecture et écriture dans plusieurs formats (memmap, zarr, xyz, etc.).
  • Données: Ayez accès à plus de 1,5 milliard de points de données.
  • Open source et extensible: OpenQDC et tous ses fichiers et ensembles de données sont open source; et vous pouvez ajouter votre propre ensemble de données et le partager avec la communauté en quelques minutes seulement.

Getting Started

Installez OpenQDC avec pip ou conda:

Python

pip install openqdc
or
conda install openqdc -c conda-forge

Vous êtes maintenant prêt·e à utiliser tous nos ensembles de données QM avec CLI prêt à l’emploi.

Unset

openqdc download SpiceV2

Ou en utilisant l’API Python.

Python

from openqdc import SpiceV2

# Automatically download the data
dataset=SpiceV2()

Ci-dessous un aperçu illustrant la facilité d'utilisation d’OpenQDC et de la manière dont il s'interface avec torch et torch_geometric.

Python

# Load the dataset
from openqdc import MACEOFF
from torch.data.utils import DataLoader

dataset=MACEOFF(energy_unit=“ang”,energy_unit=“kj/mol”,array_format=”torch”)

# Create the dataloader by simply passing the dataset
dataloader=DataLoader(dataset, batch_size=32)

# Do your own magic
. . .

Étant “framework agnostic”, OpenQDC peut s’utiliser facilement avec torch_geometric, dans ce cas, nous pouvons utiliser la fonction radius_graph de torch_cluster pour créer un graphe.

Python

from openqdc import SpiceV2
from torch_cluster import radius_graph
from torch_geometric.loader import DataLoader
from torch_geometric.data import Data

# We create a function to convert object into their graph
def to_pyg_data(x):

# or any other techniques to build a graph (or use the smiles from the dataset)
edge_index = radius_graph(x.positions, 5)
return Data(edge_index=edge_index, **x)


# Use the transform attribute to automatically convert your items
ds=SpiceV2(array_format=”torch”, distance_unit=”ang”, transform=to_pyg_data)

# Create the pyg dataloader by simply passing the new dataset
loader = DataLoader(ds, batch_size=32, shuffle=True)

# Do your own magic
. . .

Nous espérons qu’OpenQDC puisse devenir une ressource importante pour la communauté afin de faire progresser la recherche sur les MLIP vers un avenir où l’on entraînera des potentiels universels dotés d’une meilleure généralisabilité et d’une plus grande robustesse.

N’hésitez pas à partager vos commentaires ou à contacter l’équipe Valence Labs sur GitHubXLinkedInou via le portail de Valence !!

Backgroung image

Vous souhaitez en savoir plus sur OpenQDC?

Contactez nos experts dès aujourd'hui !
Nous contacter