Quin H.
Hu
a,
Andrew M.
Johannesen
a,
Daniel S.
Graham
ab and
Jason D.
Goodpaster
*a
aDepartment of Chemistry, University of Minnesota, 207 Pleasant St. SE, Minneapolis MN 55455, USA. E-mail: jason@jdgoodpaster.com
bDepartment of Chemistry and Physics, Birmingham-Southern College, 900 Arkadelphia Rd., Birmingham, AL 35254, USA
First published on 22nd June 2023
Neural Network potentials are developed which accurately make and break bonds for use in molecular simulations. We report a neural network potential that can describe the potential energy surface for carbon–carbon bond dissociation with less than 1 kcal mol−1 error compared to complete active space second-order perturbation theory (CASPT2), and maintains this accuracy for both the minimum energy path and molecular dynamic calculations up to 2000 K. We utilize a transfer learning algorithm to develop neural network potentials to generate potential energy surfaces; this method aims to use the minimum amount of CASPT2 data on small systems to train neural network potentials while maintaining excellent transferability to larger systems. First, we generate homolytic carbon–carbon bond dissociation data of small size alkanes with density functional theory (DFT) energies to train the potentials to accurately predict bond dissociation at the DFT level. Then, using transfer learning, we retrained the neural network potential to the CASPT2 level of accuracy. We demonstrate that the neural network potential only requires bond dissociation data of a few small alkanes to accurately predict bond dissociation energy in larger alkanes. We then perform additional training on molecular dynamic simulations to refine our neural network potentials to obtain high accuracy for general use in molecular simulation. This training algorithm is generally applicable to any type of bond or any level of theory and will be useful for the generation of new reactive neural network potentials.
A challenge in the development of machine learning potential energy surfaces is the development of quality features to describe the molecular structures of chemical compounds.43–49 In the development of feed-forward NNs, the 3-dimentional structures of any given system must be converted into an NN input of a consistant size. This means finding the correct representation of molecular structures is the key to transferability of the potential between smaller and larger systems, which would allow the method to be applied to larger unseen systems. To this end, Behler and Parrinello50 developed their high-dimensional NN model to represent potential energy surfaces based on symmetry features, which are rotationally and translationally invariant. This choice of molecular features was later utilized and developed into the Accurate NeurAl networK engINe for Molecular Energies (ANAKIN-ME) model (ANI for short).19 The ANI model utilizes symmetry functions to probe radial and angular environments of atoms within a molecule, to accurately and efficiently represents features of molecular structures that would influence the molecular energy of the system. The ANI model has shown great success in the modeling of intramolecular interactions for a variety of different systems,30 and highlights the potential for utilizing NNs to study larger chemical systems by training on smaller-size systems that are computationally affordable for high level quantum methods.
The construction of a transferable NN potential requires large quantities (106 to 107) of training data.51 However, to target the chemical problem of bond dissociation energy, the generation of large quantities of multi-reference calculations at the CASPT2 (ref. 52 and 53) level is still impractical with the current level of computational power. Transfer learning is a potentially useful technique in this regard. Transfer learning54,55 can be used to retain learned relationships between the features and target by freezing certain parameters; the NNP with frozen parameters can then be retrained on data obtained from a different but related task to yield highly accurate predictions even when new data is sparse.56–58 In computational chemistry, DFT level data that relates geometries to energies can be cheap to generate, while the more accurate CASPT2 level data are more computationally expensive, but the general trend of the bond dissociation potential energy surface could be similar enough for a simple correction.59 The ANI group developed a coupled cluster level potential – ANI-1ccx, which was trained using transfer learning where its starting potential, ANI-1x, was a DFT level potential then retrained using five hundred thousand coupled cluster datapoints.31 The ANI-1ccx potential is constructed as a general purpose coupled cluster level NN potential, thus its training still requires a large amount (105) of data points. With the combination of transfer learning and effective sampling, a previously trained NN at the DFT level may need far less than 105 data points to be retrained in order to study a particular chemical system well with sufficient accuracy at the best level of theory for that system.
The research presented here demonstrates one possible way to train NNPs to study carbon–carbon bond dissociation in long chain alkanes approaching the CASPT2 level of accuracy through the utilization of NNPs in combination with transfer learning. We first obtain transferable NNPs with DFT level of accuracy for carbon–carbon bond dissociations. Next, we use transfer learning to obtain transferable NNPs with a CASPT2 level of accuracy. Finally, we explore utilizing these NNPs for molecular dynamics trajectories and demonstrate the high accuracy achived by these NNPs.
The ANI model19 depicted in Fig. 1, uses atomic environment vectors (AEVs) GXm as the features. AEVs are similar to those proposed from Behler and Parrinello's NN model, which was designed to represent and capture potential energy surfaces.50 This model accurately and efficiently enforces translational and rotational invariance while describing the distance and angles of individual atoms with respect to other atoms within the system, and has shown great accuracy and transferability with the prediction of electronic energies.19,30,31
Fig. 1 Accurate NeurAl networK engINe for Molecular Energies (ANAKIN-ME) high dimensional neural network model.19 The general algorithm of the model is shown with the geometric data of a single water molecule as the input. This model is built with atomic neural networks of different atom types. The left-half of the figure shows the algorithm of atomic energy determination of the oxygen atom. The molecular coordinates of the full molecule are used to calculate the features, the atomic environment vectors GXm of a particular atom, and this is used as the input to the atomic NN. Each atomic NN is built with three hidden layers of nodes to process the input and determine atomic energy contribution to the overall system. The right-half of the figure shows the algorithm of total energy determination. Each atomic NN returns atomic energies of a specific atom, and the sum of all atomic energies is the total energy of the molecule. |
Within the ANI model, the 3-dimensional coordinates of the molecule are converted into the AEVs (features). These AEVs then enter the atomic NN model, and after three hidden layers, the atomic NN model returns atomic energy Ei, which is the atomic contributions of a particular atom to the overall system. The total energy of the molecule ET of N atoms is the sum of all atomic energies,
(1) |
The features in this model make use of two types of symmetry functions where the 3D geometry is transformed into a set of GXm vectors, which give numerical descriptions of both radial (X = R) and angular (X = A) features of the local environment of a given atom i. The radial symmetry functions,
(2) |
(3) |
The angular symmetry functions GAm describe the angular environment of an atom i by summing all possible interactions it has with atom pairs within the angular cutoff radius,
(4) |
Each interaction within the sum describes the angular environment of atom i with respect to atom j and k, where θijk is the angle of atoms i, j, k centered on atom i. Similar to the radial symmetry functions, index m of GAm is associated with tunable parameters ζ, θS, η, and RS.
In this project, a ζ value of 32 is used to limit the width of the peaks in the angular environment. Here, η and RS are similar to that of eqn (2), with η set to 8 to control the width of the Gaussians and a total of 4 RS values are used to shift the Gaussians from 0 Å to the angular radial cutoff RC of 3.5 Å. The angular symmetry functions also utilize a total of 8 angular shifts θS from 0 to π to cover all regions of the angular environment. In summary, the radial and angular AEVs are calculated using these definitions and used as the input into the atomic NNs.
The ANI model is an ensemble of atomic NNs, specifically H, C, N, O atom types. In other words, each atom type has its own multi-layer feed-forward NN, and the AEVs discussed above are calculated per atom type. Therefore, there are 4 radial sets of AEVs (one for each atom type) and 10 angular sets of AEVs (one for each atom type pair). The usefulness of these definitions of the AEVs are that the AEVs have a constant size yet can differentiate molecular geometries of any molecules with any number of atoms. All tuneable parameters ζ, θS, η, and RS of the symmetry functions as well as the number of functions (for instance, the number of RS) could be changed to optimized the NN depending on the specific system. The current choice of these parameters is selected to minimize the size of the AEVs while maximizing the resolution. While optimization of these parameters for bond breaking is left to future work, here we simply used the same parameters as those used in the universal ANI potential ANI-1x and ANI-1ccx.30,31 All parameters are provided in the ESI.†
In this project, neurons or nodes within each hidden layer described in the ANI model uses a Continuously-differentiable Exponential Linear Unit62 (CELU) as their activation function, while the final transformation at the output node uses a linear activation function for simple determination of the final singular output. The backpropagation algorithm employed in this project is Adam,63 a computationally efficient algorithm developed specifically for gradient-based optimization in machine learning with large data sets. This algorithm was further improved and tested on NNs, as well as being used for the previous development of the universal ANI potentials.19,30,31,64 All NN calculations in this paper were performed using the ANI model implemented in the open source package TorchANI,65 which is an implementation of the original model in PyTorch.66
The idea of transfer learning is to retain information learned from previous training (such as the general relationship between the AEVs and electronic energies), and to directly apply or optimize on new data that is different but overall related to what has been learned. This use of transfer learning allows fast convergence, and requires significantly less data for the training of the partially frozen networks. Because both DFT and wavefunction methods utilize the same general process of assigning energies to given geometries, previously trained DFT NNPs can be “corrected” with wavefunction data by using transfer learning.
In practice, a previously trained ensemble of DFT NNPs was used as the starting potentials for transfer learning. A large portion (about 80%) of optimized parameters in each NNP were frozen. Specifically, the parameters associated with the transformation of AEV input to the first hidden layer, and the parameters associated with the transformation of the second hidden layer to the third hidden layer were set as constants, meaning these frozen parameters would not be further optimized when this NNP is being trained again with new data. The parameters associated with the first hidden layer to the second, and the third hidden layer to the output were allowed to be further optimized to obtain the final transfer learned NNP. This choice of which layer of parameters to freeze is consistant with ANI-1ccx.31 An example training trajectory is provided in Fig. S2.† We see that after only 100 epoch the RMSE drops to a low value, and further epochs lead to over fitting. Therefore, we employ early stopping and take the best model based on RMSE for our transfer learned NNP.
To do this, we developed the following protocol. First, after the initial Hartree-Fock calculation is performed using the ANO-VT-TZ basis set,68 the orbitals are localized with Atomic Valence Active Spaces69 (AVAS), where all 10 orbitals of the two dissociating carbon atoms were selected, specifically the 1s, 2s, and 2p from each dissociating carbon. We found this lead to better localized orbitals than just using the 2s and 2p orbitals. However, since the 1s carbon orbitals shouldn't significantly contribute to the bond-breaking energies, in a second step from this set of 10 orbitals, we choose 4 occupied and 4 virtual orbitals to perform CASSCF (8, 8) calculations. Incidentally, we found that the CASSCF (8,8) calculations did not always give smooth potential energy surfaces, due to different orbitals selected at equilibrium versus dissociated geometries. However, we observed that the 6 most correlated orbitals did stay consistant. Therefore, after the (8, 8) calculation, we used the new natural orbitals to perform another CASSCF calculation with active space (6, 6), and finally the perturbation correction is calculated on the CASSCF(6,6) wavefunction. We determined that this protocol gives the most consistent results across all alkanes tested in this study and always lead to smooth potential energy surfaces. A sample script for this calculation is included in our github repository.70
The ANI-1 database is a large data set containing the DFT total energies and coordinates from equilibrium and off-equilibrium geometries of organic molecules. This data set contains roughly 22 million molecular conformations of 57462 molecules consisting elements H, C, N, and O.72
All electronic structure calculations in ANI-1 database were performed with the ωB97X73 density functional and the 6-31G(d)74 basis set using Gaussian.75 Here, we trained ensembles of 10 NNPs at a time. To prepare a starting ensemble, 10 NNPs were initialized randomly, and each network was trained on 10% of the ANI-1 database. Specifically, the ANI-1 database was evenly divided into 10 training sets, where each training sets contains 10% of the original ANI-1 data. Each NNP of the ensemble was given 1 of the 10 divided ANI-1 database, where no two potentials of the ensemble were trained with any amount of shared data. This created the initial ensemble of NNPs used for this project. The use of an ensemble of NNPs instead of a single potential is a common tactic to avoid random noise that might be present in a single individual potential. Each NNP discussed in the remainder of the paper is an ensemble of 10 NNPs; therefore, we will use the notation NNP (ANI-1CH) to refer to an ensemble of 10 NNPs trained on the ANI-1CH data set.
For any training that came after the initialization, data within the ANI-1 database containing molecules consisting only of carbons and hydrogens were extracted and used as part of the training data for each potential. This was to ensure each potential would always accurately predict minimum energy geometries of long chain alkanes, so that the performance of NNPs after training with various amount of dissociated geometries can be compared. For the remainder of the paper, we will refer to this subset of the ANI-1 database as the ANI-1CH data set and it contains a total of 1221012 geometries.
Ri = ±ci3NakbT/Ki5 |
In this work, each geometry from the MEP data sets were used as starting point for NMS. A minimum of 10000 new geometries were generated using NMS for each dissociation of 2–8 carbons alkanes. Single point calculations were performed at the DFT level for each geometry to create the NMS training sets. The blue dots in Fig. 2 shows the distribution of NMS for propane in terms of energy with respect to dissociation distance. For the remainder of the paper, we will refer to database as the NMS data set and it contains a total of 159840 geometries.
Using this protocol, we generated a total of 20000 geometries per dissociation where the bond length was fixed from 1.0 to 5.0 Å in 0.1 Å increments. We then took 1950 geometries from each bond dissociation studied (20 total) for a total of 39000 geometries. We randomly selected 10% of these geometries to make the NNMD validation data set. Additionally, for propane, we ran MD trajectories with initial momenta set to 1000 K, 1500 K, and 2000 K, and extracted another 5850 geometries. For the remainder of the paper, we will refer to database as the NNMD data set containing a total of 44850 geometries.
This initial NNP was then trained with increasing amounts of NMS dissociation data. Specifically, an NNP was trained on the ANI-1CH data set and then further trained by adding the ethane dissociation part of the NMS data set to the ANI-1CH data set. A different NNP was trained utilizing the same initial NNP, but now with both the ethane and propane dissociation from the NMS data set (in addition to the ANI-1CH data set), so on and so forth. The last NNP was trained with all C–C bond dissociaitons up to 8 carbon alkanes. This yielded 7 unique NNPs for which performances could be evaluated and compared.
Table 1 and Fig. 3(a) show the RMSE of the NNP performance with respect to DFT on the MEP data set for these NNPs trained with increasing amount of alkanes dissociations. When only including bond dissociation data of ethane, the trained NNP can only accurately predict ethane. A similar result is observed with inclusion of propane dissociation data. The prediction of all other bond dissociations improved in accuracy drastically after the inclusion of butane dissociation data. In fact, after the inclusion of butane dissociations, all energy predictions for all possible C–C bond dissociation paths in alkanes containing 2–8 carbons returned RMSEs lower than 1 kcal mol−1. The reason the accuracy improves dramatically once butane is included is that the training data now contains C–C bond breaking data between two secondary carbons, which is required to predict the longer alkanes dissociations. Minor improvements and fluctuations in performance were observed with the inclusion of more bond dissociation data of longer alkanes, which is associated with slightly different convergence behavior of the NNP training due to differently sized training sets and is not physically significant.
C–C bond dissociation | Largest alkane included in training data | ||||||
---|---|---|---|---|---|---|---|
Ethane | Propane | Butane | Pentane | Hexane | Heptane | Octane | |
C2(12) | 0.53 | 0.10 | 0.54 | 0.10 | 0.09 | 0.17 | 0.10 |
C3(12) | 13.05 | 0.08 | 0.45 | 0.09 | 0.07 | 0.18 | 0.10 |
C4(12) | 12.02 | 6.06 | 0.39 | 0.11 | 0.06 | 0.22 | 0.10 |
C4(23) | 25.33 | 1.59 | 0.33 | 0.17 | 0.10 | 0.18 | 0.10 |
C5(12) | 12.11 | 5.79 | 0.40 | 0.16 | 0.07 | 0.29 | 0.09 |
C5(23) | 24.29 | 6.42 | 0.54 | 0.11 | 0.06 | 0.22 | 0.10 |
C6(12) | 12.12 | 5.78 | 0.38 | 0.23 | 0.07 | 0.35 | 0.10 |
C6(23) | 24.36 | 6.15 | 0.53 | 0.14 | 0.08 | 0.29 | 0.09 |
C6(34) | 23.23 | 13.35 | 0.84 | 0.19 | 0.07 | 0.29 | 0.12 |
C7(12) | 12.08 | 5.71 | 0.39 | 0.30 | 0.07 | 0.43 | 0.10 |
C7(23) | 24.37 | 6.14 | 0.51 | 0.19 | 0.08 | 0.35 | 0.09 |
C7(34) | 23.32 | 13.09 | 0.84 | 0.21 | 0.10 | 0.35 | 0.10 |
C8(12) | 12.11 | 5.72 | 0.41 | 0.36 | 0.09 | 0.50 | 0.11 |
C8(23) | 24.35 | 6.10 | 0.51 | 0.25 | 0.08 | 0.42 | 0.10 |
C8(34) | 23.34 | 12.09 | 0.82 | 0.27 | 0.10 | 0.42 | 0.11 |
C8(45) | 23.40 | 11.82 | 0.87 | 0.26 | 0.12 | 0.41 | 0.14 |
The NNPs are further evaluated on NMS data generated for each possible dissociations. The RMSE of the NNPs with respect to DFT energies of the training data generated from NMS is shown in Fig. 3(b) and Table S2.† Evaluations of NNPs over NMS training data is meant to justify the effectiveness of the training, as well as supporting that the NNPs are not over trained. The convergence of the NNPs trained using C–C bond dissociation up to butanes performed especially well over geometries that were never included in the training data as shown by RMSE evaluations over the 10000 NMS data per dissociation for pentanes-octanes being lower than 1 kcal mol−1.
As shown in Table 2, by combining transfer learning and active learning, the NNP was able to reach CASPT2 level of accuracy for C–C bond dissociation in alkanes with training data of small alkanes, specifically ethane, propane, and butane. The RMSE of the NNP evaluating on all dissociation patterns of 2–8 carbons were below 1 kcal mol−1, even though the NNP had never seen CASPT2 data of alkanes longer than 4 carbons during training. The NN predicted dissociation path are graphically indistinguishable with the reference CASPT2 energies as shown in Fig. 4.
C–C bond dissociation | RMSE | E D(CASPT2) | E D(NNP) |
---|---|---|---|
C2(12) | 0.11 | 93.93 | 93.56 |
C3(12) | 0.23 | 92.42 | 91.85 |
C4(12) | 0.13 | 93.00 | 92.62 |
C4(23) | 0.21 | 91.25 | 90.66 |
C5(12) | 0.22 | 92.80 | 92.34 |
C5(23) | 0.33 | 91.80 | 91.25 |
C6(12) | 0.40 | 92.81 | 92.28 |
C6(23) | 0.50 | 91.61 | 90.94 |
C6(34) | 0.61 | 92.33 | 91.82 |
C7(12) | 0.65 | 92.81 | 92.27 |
C7(23) | 0.70 | 91.63 | 90.87 |
C7(34) | 0.73 | 92.15 | 91.49 |
C8(12) | 0.92 | 92.80 | 92.27 |
C8(23) | 0.97 | 91.61 | 90.86 |
C8(34) | 0.97 | 92.16 | 91.41 |
C8(45) | 0.99 | 91.97 | 91.16 |
As shown in Table 2, the NNP prediction ED(NNP) has a less than 1 kcal mol−1 error for any of the dissociations. The dissociation energy in these alkanes, ED(CASPT2), is between 91–94 kcal mol−1, with the largest gap between the dissociation curves being about 3 kcal mol−1. The highest and lowest bond dissociation energies are C2 and C4(23), which suggests that one reason high accuracy is seen from training on C2–C4 and predicting up to C8 is due to the NNP only having to interpolate to energies within the CASPT2 data set.
The NNP predictions have even greater accuracy for relative energies. For example, between C8(34) and C8(45), the CASPT2 reference shows a gap of 0.19 kcal mol−1 with C8(34) being slightly higher, the NNP prediction shows a gap of 0.25 kcal mol−1 with C8(34) being slightly higher. By looking at the relative energies, one can still see that knowledge was transferred from the DFT trained NNP to the CASPT2 trained NNP. The only carbon–carbon bond dissociation between two secondary carbons in the CASPT2 training set is C4(23). The reference CASPT2 data shows a relative energy difference between the dissociation energies C4(23) and C6(34) of 1.08 kcal mol−1 compared to 1.16 kcal mol−1 for the CASPT2 trained NNP. Thus, despite the C6(34) bond dissociation only being included in the DFT data, the CASPT2 trained network correctly predicts this energy due to the transfer learning. Therefore, while here we are only demonstrating a modest transferability, performing a larger study on transferability of this network to non-alkanes is the subject of our future work.
We can conclude that once a NNP is sufficiently trained with DFT data for a specific system, you only need a very small amount of CASPT2 data to achieve a high level energy correction. What is demonstrated here shows that if only targeting a specific system, one would only need a few thousands of geometries at the higher level of theory to utilize transfer learning to retrain a DFT level NNP to the CASPT2 level of theory.
We performed a series of molecular dynamics simulations where each simulation constrained the bond length of the first and second carbon to be at a fixed distance between 1.0 to 5.0 Å in increments of 0.1 Å forming the NNMD data set as mentioned in Section 2.3.5. As shown in Fig. 5, the NNP (NMS + DFTMD) performed incredibly well with RMSE under 0.5 kcal mol−1 for the test set. Surprisingly, NNP (NMS), which was trained with no MD data, also performed quite well in terms of RMSE on these MD geometries generated with NNP (NMS + DFTMD) with an RMSE of around 1 kcal mol−1. The improvement in the performance of the NNPs with the inclusion of the DFTMD geometries is due to the NMS data including only displacements of single normal modes, whereas the DFTMD geometries contains the coupling of multiple normal modes. Both the NNP (NMS + DFTMD) and NNP (NMS) were only trained with data up to octane; therefore, the high accuracy for nonane dissociation demonstrates good transferability to larger systems.
In order to probe the performance of NNPs on MD geometries at different temperatures, additional MD trajectories were generated for propane with initial momenta of 1000 K, 1500 K, and 2000 K as described in Section 2.3.4. The performance of NNP (NMS) and NNP (NMS + DFTMD) evaluating these geometries is shown in Fig. 6. The NNPs trained with DFTMD data performed well at all temperatures. The NNP (NMS) performed well for low temperatures, but based on Fig. 6, the RMSE appears to increase exponentially as the temperature increased. These findings suggest that the NNP (NMS) could be used to potentially run MD simulations if the system is kept at low temperatures. However, if the goal is to observe bond dissociation during MD trajectories where higher temperatures are required, an NNP need to be trained on geometries that span the higher energy regions.
The performance of CASPT2 level NNPs on MD geometries at 300 K is also evaluated. Starting with two different previously trained DFT NNPs, one trained with NMS data (NNP NMS), the other trained with NMS and DFTMD data (NNP NMS + DFTMD), we explore transfer learning using the procedure described in Section 2.2.1 using the CASPT2 data set mentioned in Section 2.3.6 to generate the transfer-learned NNPs, referred to as NNP (CASPT2/NMS) and NNP (CASPT2/NMS + DFTMD). The CASPT2 data set is the same for both networks, the only difference between the networks is which DFT data the NNP was trained on before transfer learning. The RMSE performance of the two CASPT2 level NNPs evaluating the CASPT2 validation set of MD geometries are shown in Fig. 7.
The NNP (CASPT2/NMS) has an RMSE of around 2 kcal mol−1 for most carbon one and two dissociations in alkanes, while the NNP (CASPT2/NMS + DFTMD) gave about 1 kcal mol−1 for most of these dissociations. This shows that even when CASPT2 training data contains only geometries obtained from the NMS data set, if DFT MD geometries are used in the transfer learning, the accuracy of the NNP for molecular dynamics is significantly improved. Due to the computational time for CASPT2 calculations, we limited our study to mostly carbon one and two dissociations. However, in order to test the performance of the CASPT2 level NNP on other dissociation variations, C4(23) and C8(45) dissociation data were also generated in the CASPT2 test set. The RMSE of the CASPT2 NNP perviously trained with both NMS and DFTMD data gave 1.27 kcal mol−1 for butane carbon two and three dissociation, and 1.07 kcal mol−1 for octane carbon four and five dissociation. Therefore, the accuracy of NNP (CASPT2/NMS + DFTMD) is retained regardless of which alkane bond is being dissociated in MD.
In summary, the transfer learning from DFT to CASPT2 provided a great amount of transferability for both MEP geometries and in MD geometries. This suggests that a relatively small amount of CASPT2 is all that is required to obtain general and transferable NNPs for chemical reactions.
While we have shown good transferability between small alkanes to large alkanes, we have not shown transferability between alkanes to other compounds, which is the subject of our future research. However, this work showcases that NNPs have the ability to describe bond making and breaking processes, and what remains is to generate appropriate training data. We believe this work further shows the applicability of NNPs to the study of chemical systems and we expect further adoption of NNPs by the larger community as larger data sets are generated and further advancements in NNPs are developed.
Footnote |
† Electronic supplementary information (ESI) available. See DOI: https://doi.org/10.1039/d3dd00051f |
This journal is © The Royal Society of Chemistry 2023 |