Expand
This project adapts Neural Cellular Automata (NCA) for 3D molecular task from simply growing a molecule from a seed, to in protein-pocket interactor growth, partial protein-backbone reconstruction, and conditioned switching between molecular conformation. The NCAs are either trained on a voxel representation of the atoms in a given molecule, or their electron density decorated with the electrostatic potentail calcuated with xtb and orbkit.
│
├── ncamol - Contains of code required to run the experiments
├── notebooks - Notebook for each experiment
├── models - checkpoints and logs for the experiments
└── external_packpages - Contains a copy of Orbkit (https://github.com/orbkit/orbkit) with minor changes in the imports
The easiest way to install the dependencies is using uv. Once you have done so follow the steps below.
- Clone the repo
git clone https://github.com/croningp/molnca.git
cd molnca
- Install xtb and set the XTB_PATH variable in the .env file to PATH_TO_XTB/bin/xtb
e.g.
XTB_PATH="/home/sebastian/pkgs/xtb-6.6.0/bin/xtb/"
optionally:
CPU_COUNT=... # for XTB
- Install dependencies
uv venv --python 3.11
uv pip sync requirements.txt
Each experiment can be recreated in a jupyter notebook:
│
└── notebooks
├── grow_molecule.ipynb - grow molecule from sinlge seed (atom_channel representation & ed/esp)
├── grow_inhibitor_in_pocket.ipynb - grow a molecule inside of a protein pocket/ protein surface
├── backbone_reconstruction.ipynb - regrow missing regions from a protein backbone
└── cistrans_switching.ipynb - 'light-state' conditioned conformation switching
If you want to train a NCA on your own inputs the respective notebook should provide you with everything you need to do so. In case you encounter any problems, feel free to reach out.
Distributed under the MIT License. See LICENSE
for more information.
@inproceedings{
pagel2023exploring,
title={Exploring the applications of Neural Cellular Automata in molecular sciences},
author={Sebastian Pagel and Leroy Cronin},
booktitle={NeurIPS 2023 AI for Science Workshop},
year={2023},
url={https://openreview.net/forum?id=Il8mRcEiRq}
}
README was adapted from this template