ChemML is a machine learning Python package for the analysis and modeling of chemical and materials data. We have been pursuing initial steps to integrate the ChemML package into the OpenChemistry platform. In addition to adding ML functionality to OpenChemistry, we aim to make these techniques more accessible and advance their broader dissemination in the chemistry community. The focus of the current work has been to compile a collection of trained ML prediction models for certain materials properties that can be used as alternatives to corresponding physics-based modeling or simulation approaches. As proof of principle, we designed and implemented a deep learning model for the prediction of the refractive index values of organic compounds.
The model takes as input the SMILES string of an organic molecule, and returns as output a few quantities of interest that the model has been trained on. The predictions are available almost instantaneously (very much unlike for a physics-based model via the Lorentz-Lorenz equation parametrized by inputs from quantum chemistry and molecular dynamics calculations). The results of this ML model are comparable with those of other data-derived prediction models in terms of diversity of molecular candidates and the accuracy of predictions. The current implementation also enables the user to retrain each model for a better or more generalizable prediction power. Moreover, a trained model can leverage other relevant ML models through the concept of transfer learning design methodologies.
Our near-term plans for future development include the addition of models trained on other data sets and for other material properties. Subsequently, we will tackle the full integration of ChemML beyond the use of trained models.   

Open Chemistry Web Widgets (Alessandro)

We have created a set of reusable widgets that can be embedded in any web environment, from a React/Vue/Angular single page app, to a JupyterLab extension, to a static HTML page. These widgets are written in TypeScript using Stencil, and upon compilation, they become standard web components (Custom Elements V1) that can be used just like any other HTML tag such as a <div/> or a <img/>.
The core widgets are the <oc-molecule-moljs/> and <oc-molecule-vtkjs/>. These two widgets have a common interface and can be used interchangeably. They take as input a cjson object and a set of parameters to tweak the visualization (such as the isosurface value, the active normal mode, or the ball/stick sizes) and draw on the screen a three dimensional representation of the molecule that the user can interact with. The difference between them is that <oc-molecule-moljs/> uses 3Dmol.js to render the 3D scene, while <oc-molecule-vtkjs/> usesvtk.js.
Features:
Another important widget we developed is the high level <oc-molecule/>. This widget wraps the core  <oc-molecule-moljs/> and <oc-molecule-vtkjs/> and adds a menu so that the user can easily change the visualization parameters interactively: