(2) Generate tautomers and proton-transfer intermediates Solvent mediates proton transfer are often important low-barrier steps in the mechanism. While these in principle can be modeled with meta-MD it is more efficient to generate them systematically with tools like RDKit. We consider the following two kinds of proton transfer reactions for every saved intermediate found in step (1). We first generate all tautomers using the TautomerEnumerator() function in RDKit. Second, for every tautomer we consider proton transfers between equivalent heteroatoms. For example, if both an alkoxy group an a hydroxy group is present in the tautomer, we consider the intermediate formed after a proton transfer from the hydroxy group to the alkoxy group (Figure ). Similarly if e.g. both a protonated amine and a neutral amine is present, we consider proton transfer between the amine groups.