Skip to main content

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 (see figure below), allowing for efficient and comprehensive conformational searches of polycyclic molecules.

Try it 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

pipeline status

Available here

Test sets

This 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

Gitlab home page

PyPi page

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

ringo_ik-1.0.4.tar.gz (5.3 MB view details)

Uploaded Source

File details

Details for the file ringo_ik-1.0.4.tar.gz.

File metadata

  • Download URL: ringo_ik-1.0.4.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

Hashes for ringo_ik-1.0.4.tar.gz
Algorithm Hash digest
SHA256 c8c04f9a200645035f517c46a37b8c2fc09a3fc3eecea18fc7613d3a4d25725b
MD5 3f9d811310b60fa10f6cb9b4332a242e
BLAKE2b-256 bd3c568bf76e726b1e28bd1ff9d9439396257b25014974b565ec1fffde751ac7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page