Litcius/Paper detail

X-Entropy: A Parallelized Kernel Density Estimator with Automated Bandwidth Selection to Calculate Entropy

Johannes Kraml, Florian Hofer, Patrick K. Quoika, Anna S. Kamenik, Klaus R. Liedl

2021Journal of Chemical Information and Modeling24 citationsDOIOpen Access PDF

Abstract

X-Entropy is a Python package used to calculate the entropy of a given distribution, in this case, based on the distribution of dihedral angles. The dihedral entropy facilitates an alignment-independent measure of local protein flexibility. The key feature of our approach is a Gaussian kernel density estimation (KDE) using a plug-in bandwidth selection, which is fully implemented in a C++ backend and parallelized with OpenMP. We further provide a Python frontend, with predefined wrapper functions for classical coordinate-based dihedral entropy calculations, using a 1D approximation. This makes the package very straightforward to include in any Python-based analysis workflow. Furthermore, the frontend allows full access to the C++ backend, so that the KDE can be used on any binnable one-dimensional input data. In this application note, we discuss implementation and usage details and illustrate potential applications. In particular, we benchmark the performance of our module in calculating the entropy of samples drawn from a Gaussian distribution and the analytical solution thereof. Further, we analyze the computational performance of this module compared to well-established python libraries that perform KDE analyses. X-Entropy is available free of charge on GitHub (https://github.com/liedllab/X-Entropy).

Topics & Concepts

Python (programming language)Computer scienceEntropy (arrow of time)Dihedral angleKernel density estimationGaussianEstimatorAlgorithmComputational scienceMathematicsStatisticsPhysicsQuantum mechanicsHydrogen bondOperating systemMoleculeProtein Structure and DynamicsMachine Learning in Materials ScienceMass Spectrometry Techniques and Applications