Skip to content

SN2 RXN

SN2RXN

Bases: BaseDataset

This dataset probes chemical reactions of methyl halides with halide anions, i.e. X- + CH3Y -> CH3X + Y-, and contains structures for all possible combinations of X,Y = F, Cl, Br, I. The conformations are generated by running MD simulations at a temperature of 5000K with a time step of 0.1 fs using Atomic Simulation Environment (ASE). The forces are derived using semi-empirical method PM7 and the structures are saved every 10 steps, and for each of them, energy and forces are calculated at the DSD-BLYP-D3(BJ)/def2-TZVP level of theory. The dataset contains 452,709 structures along with the energy, force and dipole moments.

Usage:

from openqdc.datasets import SN2RXN
dataset = SN2RXN()

References

https://doi.org/10.1021/acs.jctc.9b00181

https://zenodo.org/records/2605341

Source code in openqdc/datasets/potential/sn2_rxn.py
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
class SN2RXN(BaseDataset):
    """
    This dataset probes chemical reactions of methyl halides with halide anions, i.e. X- + CH3Y -> CH3X +  Y-, and
    contains structures for all possible combinations of X,Y = F, Cl, Br, I. The conformations are generated by
    running MD simulations at a temperature of 5000K with a time step of 0.1 fs using Atomic Simulation Environment
    (ASE). The forces are derived using semi-empirical method PM7 and the structures are saved every 10 steps, and
    for each of them, energy and forces are calculated at the DSD-BLYP-D3(BJ)/def2-TZVP level of theory. The dataset
    contains 452,709 structures along with the energy, force and dipole moments.

    Usage:
    ```python
    from openqdc.datasets import SN2RXN
    dataset = SN2RXN()
    ```

    References:
        https://doi.org/10.1021/acs.jctc.9b00181\n
        https://zenodo.org/records/2605341
    """

    __name__ = "sn2_rxn"

    __energy_methods__ = [
        PotentialMethod.DSD_BLYP_D3_BJ_DEF2_TZVP
        # "dsd-blyp-d3(bj)/def2-tzvp",
    ]
    __energy_unit__ = "ev"
    __distance_unit__ = "ang"
    __forces_unit__ = "ev/ang"
    __links__ = {"sn2_rxn.npz": "https://zenodo.org/records/2605341/files/sn2_reactions.npz"}

    energy_target_names = [
        # TODO: We need to revalidate this to make sure that is not atomization energies.
        "DSD-BLYP-D3(BJ):def2-TZVP Atomization Energy",
    ]

    __force_mask__ = [True]

    force_target_names = [
        "DSD-BLYP-D3(BJ):def2-TZVP Gradient",
    ]

    def read_raw_entries(self):
        raw_path = p_join(self.root, "sn2_rxn.npz")
        data = np.load(raw_path)
        samples = extract_npz_entry(data)

        return samples