Ringo – The Python Library for Kinematics-Driven Conformer Generation
Project description
Ringo – The Python Library for Kinematics-Driven Conformer Generation
Ringo
is a Python library that uses inverse kinematics to analyze the conformational flexibility of (poly)cyclic molecules by identifying independently rotatable dihedral angles of the molecule, and generate conformers when these values are chosen. It provides a back-end for identification and manipulation of degrees of freedom of cyclic molecules, i.e. setting their values to generate corresponding conformations. Ringo
's algorithm processes one set of dihedral angle values in fractions of a millisecond and scales well with number of rings in the molecule, allowing for efficient and comprehensive conformational searches of polycyclic molecules.
Try it out by installing (Linux x86_64 only, Python >= 3.8):
pip install --upgrade ringo-ik
Usage example:
import ringo
import random
import math
import numpy as np
NUM_TRIES = 10000
# Load and analyze molecular topology
mol = ringo.Molecule(sdf='my_molecule.sdf')
p = ringo.Confpool() # Initialize conformer storage
# Simple Monte-Carlo conformational sampling
dofs_list, dofs_values = mol.get_ps()
for i in range(NUM_TRIES):
for i, cur_param in enumerate(dofs_list):
newvalue = random.uniform(-math.pi, math.pi)
dofs_values[i] = newvalue
result = mol.prepare_solution_iterator()
if result != 0:
# If not successfull, then try another set of dihedral values
continue
# Request the list of all inverse kinematics solutions
# that passed overlap checks
sol_list: list[np.ndarray] = mol.get_solutions_list()
for i, matr in enumerate(sol_list):
p.include_from_xyz(matr, f"Conformation #{len(p) + 1}")
p.atom_symbols = mol.get_symbols()
assert len(p) > 0, f'No conformers generated in {NUM_TRIES} trials'
p.save_xyz('result.xyz')
Documentation
Available here
Test sets
The Gitlab repository also contains the following test sets:
./ | |
---|---|
test_sets/macromodel/* |
MacroModel test set of macrocyclic molecules |
test_sets/bird/* |
Bird test set (only macrocycles of reasonable size) |
test_sets/*/start_structures/*.sdf |
Randomized conformers to initiate conformational sampling |
test_sets/*/experimental_geometries/*.sdf |
Experimental geometries from either CSD or PDB |
Links and references
Papers on inverse kinematics conformer generation using Ringo:
Krivoshchapov, N. V.; Medvedev, M. G. Ring Kinematics-Informed Conformation Space Exploration. WIREs Computational Molecular Science 2024, 14 (1), e1690. https://doi.org/10.1002/wcms.1690
Krivoshchapov, N. V.; Medvedev, M. G. Accurate and Efficient Conformer Sampling of Cyclic Drug-Like Molecules with Inverse Kinematics. J. Chem. Inf. Model. 2024, 64 (11), 4542–4552. https://doi.org/10.1021/acs.jcim.3c02040
Ringo is based on inverse kinematics solver called TLC:
Coutsias EA, Seok C, Jacobson MP, Dill KA. A kinematic view of loop closure. J Comput Chem. 2004 Mar;25(4):510-28. doi: https://doi.org/10.1002/jcc.10416
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ringo_ik-1.0.5.tar.gz
.
File metadata
- Download URL: ringo_ik-1.0.5.tar.gz
- Upload date:
- Size: 5.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8f454267d6002a5ce21bddcad07fc75102c6186a2c1aa29638d0d07650c3699 |
|
MD5 | 38d4d17f9bc0552558ead4369f301b2a |
|
BLAKE2b-256 | 16590cf61cdae33976fd5f49367b04b22c1e997e56beb04a6bcd02bb5a9cce4b |