partycls

license badge python version badge pyPI version badge coverage badge joss badge github badge

partycls is a Python package for cluster analysis of systems of interacting particles. By grouping particles that share similar structural or dynamical properties, partycls enables rapid and unsupervised exploration of the system’s relevant features. It provides descriptors suitable for applications in condensed matter physics, such as structural analysis of disordered or partially ordered materials, and integrates the necessary tools of unsupervised learning into a streamlined workflow.

You can find a more detailed presentation in our open-access article: “partycls: A Python package for structural clustering” .

Main features

Trajectory formats

partycls accepts several trajectory formats (including custom ones) either through its built-in trajectory reader or via third-party packages, such as MDTraj and atooms. The code is currently optimized for small and medium system sizes (of order \(10^4\) particles). Multiple trajectory frames can be analyzed to extend the structural dataset.

Structural descriptors

partycls implements various structural descriptors:

On top of these native descriptors, partycls supports additional structural descriptors via DScribe.

Unsupervised machine-learning

partycls performs feature scaling, dimensionality reduction and cluster analysis using the scikit-learn package and additional built-in algorithms.

Documentation

Check the tutorials to see various examples and detailed instructions on how to run the code, as well as an in-depth presentation of the built-in structural descriptors.

For a more detailed documentation, you can check the API.