Skip to content

croningp/molnca

Repository files navigation

Exploring the Applications of NCA in Molecular Sciences

PyPI - Python Version Conference Conference Stargazers Unlicense License


Logo

Molecular NCA

Neural Cellular Automata for molecular tasks
Read Paper · Report Bug



Table of Contents

Expand
  1. About the project
  2. Project Organization
  3. Installation
  4. Experiments
  5. Usage
  6. Contributors
  7. License
  8. Citing
  9. Acknowledgments

About The Project

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.

(back to top)

Project Organization

│
├── 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

(back to top)

Installation

The easiest way to install the dependencies is using uv. Once you have done so follow the steps below.

  1. Clone the repo
git clone https://github.com/croningp/molnca.git
cd molnca
  1. 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
  1. Install dependencies
uv venv --python 3.11
uv pip sync requirements.txt

(back to top)

Experiments

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 

(back to top)

Usage

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.

(back to top)

Contributors:

contrib.rocks image

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Citing

@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}
}

Acknowledgments

README was adapted from this template

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published