Skip to content

Teoroo-CMC/PiNN

Repository files navigation

PiNN: Pair-wise interaction Neural Network

GitHub Workflow Status (branch)

PiNN1,2 is a pair-wise interaction neural network Python library built on top of TensorFlow. The PiNN library provides elemental layers and abstractions to implement various atomic neural networks. It can be used together with plugins PiNNAcLe for the adaptive learn-on-the-fly workflow and PiNNwall for molecular simulation of electrode/electrolyte interfaces.

This project was initiated by Yunqi Shao. The code is currently maintained by the TeC group at Uppsala University.

Requirements

Installation

Install from source code::

git clone https://github.com/Teoroo-CMC/PiNN.git 
cd PiNN && pip install -e .

Or use the docker image. If you use singularity, you can build a singularity image directly from the docker image:

singularity build pinn.sif docker://tecatuu/pinn:master-gpu (or master-cpu)
singularity exec pinn.sif jupyter notebook # this starts a jupyter notebook server
./pinn.sif --help # this invokes the pinn CLI

Documentation

Since PiNN 1.0 the documentation is hosted on Github pages

Models and datasets

Dataset loaders

  • CP2K format
  • RuNNer format
  • ANI-1 format
  • QM9 format
  • DeePMD-kit format

Implemented Networks

  • Behler-Parrinello Neural Network
  • PiNet
  • PiNet2

Implemented models

  • Potential model
  • Dipole model
  • Polarizability model

Community

As an open-source project, the following contributions are highly welcome:

  • Reporting bugs
  • Proposing new features
  • Discussing the current version of the code
  • Submitting fixes

We use Github to host code, to track issues and feature requests, as well as to accept pull requests.

Please follow the procedure below before you open a new issue.

  • Check for duplicate issues first.
  • If you are reporting a bug, include the system information (platform, Python and TensorFlow version etc.).

If you would like to add some new features via pull request, please discuss with us first to see whether it fits the scope and aims of this project.

References and notes

[1] Li, J.; Knijff, L.; Zhang, Z.-Y.; Andersson, L.; Zhang, C. PiNN: Equivariant Neural Network Suite for Modelling Electrochemical Systems. J. Chem. Theory Comput., 2025, 21: 1382.

[2] Shao, Y.; Hellström, M.; Mitev, P. D.; Knijff, L.; Zhang, C. PiNN: A Python Library for Building Atomic Neural Networks of Molecules and Materials. J. Chem. Inf. Model., 2020, 60: 1184.

[3] TensorFlow is not installed automatically by default. Since TF 2.0 the GPU support is included in the stable release, pip install tensorflow>=2.4 should be suitable for most user.

[4] Currently the code is not compatible with TF 2.10 and above, see Issue #7 for details or updates.