Convolutional nets which can take molecular graphs of arbitrary size as input.
TeX Python PostScript HTML Shell
Latest commit 2e8ef09 Sep 5, 2016 @duvenaud duvenaud committed on GitHub Update

Neural Graph Fingerprints

This software package implements convolutional nets which can take molecular graphs of arbitrary size as input. These are useful for predicting the properties of novel molecules, and are designed to be a drop-in replacement for Morgan or ECFP fingerprints.

The paper describing the algorithm used is:

Convolutional Networks on Graphs for Learning Molecular Fingerprints


David Duvenaud, Dougal Maclaurin, Jorge Aguilera-Iparraguirre, Rafael Gómez-Bombarelli, Timothy Hirzel, Alán Aspuru-Guzik, and Ryan P. Adams.

How to install

This package requires:

  • Scipy version >= 0.15.0
  • RDkit
  • Autograd (Just run pip install autograd)


This package includes a regression example and a visualization example in the examples directory.


This software was primarily written by David Duvenaud, Dougal Maclaurin, and Ryan P. Adams. Please feel free to submit any bugs or feature requests. We'd also love to hear about your experiences with this package in general. Drop us an email!

We want to thank Jennifer Wei for helpful contributions and advice, and Analog Devices International and Samsung Advanced Institute of Technology for their generous support.

TensorFlow and Theano implementations

A Tensorflow implementation of a closely-related algorithm can be found at

and a Theano implementation can be found at