KraChem is a beta-version Python library designed for working with chemical molecules, fragmentation, based on chemical files input and mathematical tools from graph theory. Therefore, this package has two main functionalities, and they are
- Intermolecular Fragmentation: given a chemical compound, where we may have a collection of disconnected molecules we want to find
- Intramolecular Fragmentation: given a molecule defined by its atoms and connections, we want to brake this molecule into smaller parts, so we have a collection of subsets of atoms.
There are two main packages where we develop our framework for fragmenting molecules, based on our approach of analysing chemical molecules as graphs and certain arrays. In this way, we use the following packages
-
numpy: a library for the python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays
-
networkx : a python library for studying graphs and networks, where we encode our molecules as graphs and perform several routines and algorithms in our graphs
Moreover, we implement some routines for plotting graphs and certain analysis, as well as packages for creating subsets and manipulating paths and directories, and they are
-
matplotlib: a plotting library for the python programming language and its numerical mathematics extension numpy, where we have some features for plotting figures
-
itertools: this module implements a number of iterator building blocks inspired by constructs from APL, Haskell, and SML. We use this package for combining parts of a chemical compound or atoms in a molecule into a collection of subsets
-
pathlib: this module offers classes representing filesystem paths with semantics appropriate for different operating systems, where we can access and manipulate files in folders
We have a quickstart tutorial if you want to know the basic features in this package.
For documentation click here