DOI: 10.6084/m9.figshare.26363959.v2
title: <b>Hessian QM9 Dataset</b>

description: <pre><br></pre><b>Overview</b>Hessian QM9 is the first database of equilibrium configurations and numerical Hessian matrices, consisting of 41,645 molecules from the QM9 dataset at the $\omega$B97x/6-31G* level. Molecular Hessians were calculated in vacuum, as well as in water, tetrahydrofuran, and toluene using an implicit solvation model.A pre-print article associated with this dataset is available at here.<b>Data records</b>The dataset is stored in Hugging Face's dataset format. For each of the four implicit solvent environments (vacuum, THF, toluene, and water), the data is divided into separate datasets containing vibrational analysis of 41,645 optimized geometries. Labels are associated with the QM9 molecule labelling system given by Ramakrishnan <i>et al</i>.Please note that only molecules containing H, C, N, O were considered. This exclusion was due to the limited number of molecules containing fluorine in the QM9 dataset, which was not sufficient to build a good description of the chemical environment for fluorine atoms. Including these molecules may have reduced the overall precision of any models trained on our data.**Important:** To avoid issues caused by Figshare's DOI numbering system, where 8-digit numbers are prepended to the file names upon downloading, it is recommended to use the provided Python script for downloading and unzipping the dataset. This script ensures that the files are extracted without unnecessary prefixes, preserving the correct file names for easier access and use.<br><b>To download and load the dataset:</b>Use the following Python script to download, extract, and rename the files:```pythonimport requestsimport zipfileimport osfrom datasets import load_from_disk<br># Download the dataseturl = 'https://figshare.com/ndownloader/articles/26363959/versions/1?folder_path=hessian_qm9_DatasetDict'response = requests.get(url)zip_filename = 'data.zip'<br># Save and extract the fileswith open(zip_filename, 'wb') as f: f.write(response.content)<br>with zipfile.ZipFile(zip_filename, 'r') as zip_ref: zip_ref.extractall('./')<br># Remove the DOI prefixes from filenamesroot_directory = 'hessian_qm9_DatasetDict'for subdir in os.listdir(root_directory): subdir_path = os.path.join(root_directory, subdir) if os.path.isdir(subdir_path): for filename in os.listdir(subdir_path): if filename[:8].isdigit() and filename[8] == '_': new_filename = filename[9:] os.rename(os.path.join(subdir_path, filename), os.path.join(subdir_path, new_filename))<br># Load the datasetdataset = load_from_disk(root_directory)print(dataset)```<br>Expected output:<br>```pythonDatasetDict({ vacuum: Dataset({ features: ['energy', 'positions', 'atomic_numbers', 'forces', 'frequencies', 'normal_modes', 'hessian', 'label'], num_rows: 41645 }), thf: Dataset({ features: ['energy', 'positions', 'atomic_numbers', 'forces', 'frequencies', 'normal_modes', 'hessian', 'label'], num_rows: 41645 }), toluene: Dataset({ features: ['energy', 'positions', 'atomic_numbers', 'forces', 'frequencies', 'normal_modes', 'hessian', 'label'], num_rows: 41645 }), water: Dataset({ features: ['energy', 'positions', 'atomic_numbers', 'forces', 'frequencies', 'normal_modes', 'hessian', 'label'], num_rows: 41645 })})```<br><b>DFT Methods</b>All DFT calculations were carried out using the NWChem software package. The density functional used was $\omega$B97x with a 6-31G* basis set to create data compatible with the ANI-1/ANI-1x/ANI-2x datasets. The self-consistent field (SCF) cycle was converged when changes in total energy and density were less than 1e-6 eV. All molecules in the set are neutral with a multiplicity of 1. The Mura-Knowles radial quadrature and Lebedev angular quadrature were used in the integration. Structures were optimized in vacuum and three solvents (tetrahydrofuran, toluene, and water) using an implicit solvation model.The Hessian matrices, vibrational frequencies, and normal modes were computed for a subset of 41,645 molecular geometries using the finite differences method.<b>Example model weights</b>An example model trained on Hessian data is included in this dataset. Full details of the model will be provided in an upcoming publication. The model is an E(3)-equivariant graph neural network using the `e3x` package with specific architecture details. To load the model weights, use:<br>```pythonparams = jnp.load('params_train_f128_i5_b16.npz', allow_pickle=True)['params'].item()```