All Projects → qcscine → molassembler

qcscine / molassembler

Licence: BSD-3-Clause license
Chemoinformatics toolkit with support for inorganic molecules

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
TeX
3793 projects
r
7636 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to molassembler

organic-chemistry-reaction-prediction-using-NMT
organic chemistry reaction prediction using NMT with Attention
Stars: ✭ 30 (+66.67%)
Mutual labels:  chemistry, chemoinformatics
xyz2graph
Convert an xyz file into a molecular graph and create a 3D visualisation of the graph.
Stars: ✭ 36 (+100%)
Mutual labels:  chemistry, chemoinformatics
GLaDOS
Web Interface for ChEMBL @ EMBL-EBI
Stars: ✭ 28 (+55.56%)
Mutual labels:  chemistry, chemoinformatics
chembience
A Docker-based, cloudable platform for the development of chemoinformatics-centric web applications and microservices.
Stars: ✭ 41 (+127.78%)
Mutual labels:  chemistry, chemoinformatics
py4chemoinformatics
Python for chemoinformatics
Stars: ✭ 78 (+333.33%)
Mutual labels:  chemistry, chemoinformatics
CATmistry
Chemistry, Gamified
Stars: ✭ 15 (-16.67%)
Mutual labels:  chemistry
bioclipse.core
Bioclipse2 Core.
Stars: ✭ 21 (+16.67%)
Mutual labels:  chemistry
qcmaquis
Release-only repository for SCINE QCMaquis, the DMRG software from the Reiher group.
Stars: ✭ 18 (+0%)
Mutual labels:  chemistry
AlgebraicPetri.jl
Build Petri net models compositionally
Stars: ✭ 49 (+172.22%)
Mutual labels:  chemistry
qp2
Quantum Package : a programming environment for wave function methods
Stars: ✭ 37 (+105.56%)
Mutual labels:  chemistry
isotope
Haskell library containing isotopic masses and relative abundances for elements from Hydrogen to Bismuth and Thorium and Uranium (excluding Technetium and promethium), i.e., all elements with naturally-occurring isotopes.
Stars: ✭ 17 (-5.56%)
Mutual labels:  chemistry
periodic-table.io
periodic-table.io
Stars: ✭ 37 (+105.56%)
Mutual labels:  chemistry
KinBot
Automated reaction pathway search for gas-phase molecules
Stars: ✭ 20 (+11.11%)
Mutual labels:  chemistry
ball
The Biochemical Algorithms Library
Stars: ✭ 64 (+255.56%)
Mutual labels:  chemoinformatics
molenc
MolEnc: a molecular encoder using rdkit and OCaml.
Stars: ✭ 14 (-22.22%)
Mutual labels:  chemoinformatics
global-chem
A Chemical Knowledge Graph of What is Common in the World.
Stars: ✭ 77 (+327.78%)
Mutual labels:  chemoinformatics
MolecularGraph.jl
Graph-based molecule modeling toolkit for cheminformatics
Stars: ✭ 144 (+700%)
Mutual labels:  chemistry
lightdock
Protein-protein, protein-peptide and protein-DNA docking framework based on the GSO algorithm
Stars: ✭ 110 (+511.11%)
Mutual labels:  chemistry
pylj
Teaching Utility for Classical Atomistic Simulation.
Stars: ✭ 23 (+27.78%)
Mutual labels:  chemistry
catplot
A Python Library for Energy Profile and Abstract Grid(2D/3D) plotting
Stars: ✭ 31 (+72.22%)
Mutual labels:  chemistry

SCINE - Molassembler

Overview

Molassembler is a C++ library that aims to facilitate conversions between Cartesian and graph representations of molecules. It provides the necessary functionality to represent a molecule as a graph, modify it in graph space, and generate new coordinates from graphs. It can capture the absolute configuration of inorganic molecules with multidentate and haptic ligands from Cartesian coordinates and enumerate non-superposable stereopermutations at non-terminal atoms and non-isotropic bonds at arbitrary local shapes ranging up to the icosahedron and cuboctahedron.

Features

  • Molecules can be constructed from many types of information.
  • Stereocenters are treated in shapes ranging from monovacant tetrahedron all the way up to the icosahedron and cuboctahedron.
  • A high-temperature approximation is invoked by default to avoid considering inverting nitrogen centers as stereocenters, but this is optional. Even in the high-temperature approximation, nitrogen centers whose substituents form a strained cycle and hence do not invert rapidly are considered a stereocenter.
  • All stereocenter permutations are generated with relative statistical occurrence weights. Linking of ligands (denticity) is properly considered. Several classes of haptic ligands are supported.
  • Editing of molecules preserves chiral information by default, and is highly configurable.
  • Molecules can be canonicalized for fast isomorphism tests. Canonicalization can be customized to use subsets of the available information for vertex coloring if desired.
  • Ranking algorithms are nearly fully IUPAC Blue Book 2013 compliant, generalized to larger coordination polyhedra.
  • Stochastic conformer generation with Distance Geometry
  • Directed conformer generation through enumeration of rotamers

License

Molassembler is licensed under the BSD 3-clause "New" or "Revised" license. See also the LICENSE.txt file.

Integrating

This library requires the C++14 standard.

Dependencies:

  • SCINE Utilities (BSD-3 license) >= 3.0.0
  • Boost (Boost license) >= 1.65 (lowest tested, prefer newest)
  • Eigen (MPL 2.0 license) >= 3.3.2
  • RingDecomposerLib [1] (BSD-3 license): Unique Ring Family [2] cycle detection
  • Outcome single-header (Boost license): Enforce error handling requirement in type system
  • JSON For Modern C++ (MIT license): JSON serialization
  • nauty [3] (Apache 2.0 license): Graph automorphism determination and canonical labeling
  • (MKL/LAPACK/BLAS libraries, added if detected during compilation)

Can currently be compiled with:

  • GCC >= 7
  • Clang >= 4
  • MinGW-w64 (latest)

MSVC is currently untested. Last attempts failed because of compiler standard compliance issues with constexpr code.

How to Cite

When publishing results obtained with Molassembler, please cite the corresponding release as archived on Zenodo.

In addition, we kindly request you cite the following article when using Molassembler:

J.-G. Sobez, M. Reiher, "Molassembler: Molecular Graph Construction, Modification, and Conformer Generation for Inorganic and Organic Molecules", J. Chem. Inf. Model, 2020, 60, 3884.

Installation

CMake

When building with CMake, Boost and Eigen must be installed and available via CMake's find_package (e.g. via CMAKE_PREFIX_PATH). Any of the other libraries can be available, but are downloaded dynamically if missing.

Clone the repository, then enter the following commands:

git submodule update --init
mkdir build-release
cd build-release
cmake -DCMAKE_BUILD_TYPE=Release ..
make

You may want to peruse the CMake options to disable building the tests or activating the Python binding builds. Run cmake -L .. to list options affecting the build. Look for options with the SCINE_ prefix.

Conan

No dependencies must be preinstalled, and you do not need to download the sources. To install/build with Conan:

conan remote add scine https://scine-artifactory.ethz.ch/artifactory/api/conan/public
conan install -r scine --build=missing scine_molassembler/1.2.0@

Should you want Python bindings, add -o scine_molassembler:python=True before the last argument.

PyPI

manylinux packages of thie Python bindings are available from PyPI and can be installed with:

python3 -m pip install scine_molassembler

Documentation

Built documentation for releases is available for the C++ library and Python bindings.

If doxygen is found, the C++ library documentation is built. If the Python bindings are built and the sphinx Python module is available, the Python binding documentation is generated too.

References

[1]Flachsenberg, F.; Andresen, N.; Rarey, M. RingDecomposerLib: An Open-Source implementation of Unique Ring Families and Other Cycle Bases. J. Chem. Inf. Model., 2017, 57 (2), pp 122–126
[2]Kolodzik, A.; Urbaczek, S.; Rarey, M. Unique Ring Families: A Chemically Meaningful Description of Molecular Ring Topologies. J. Chem. Inf. Model., 2012, 52 (8), pp 2013–2021
[3]McKay, Brendan D.; Adolfo Piperno. Practical graph isomorphism, II. J. Symb. Comput., 2014, 60, pp 94-112.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].