Skip to content

cTopo

cTopo is a Python package for analyzing the chemical space of multidentate ligands (and optionally coordination complexes).

It introduces coordination-chemistry-oriented abstractions:

  • Donor atoms — atoms that coordinate to the metal.
  • Skeleton — donors + the atoms that connect donors to each other.
  • Topology — a reduced, contracted representation of the skeleton.

These abstractions let you summarize a ligand dataset in an interpretable hierarchy:

denticity → topology → skeleton → ligand.

Dataset hierarchy diagram

What you can do

  • Browse a dataset as a tree (HTML): What denticities/topologies dominate? What rare motifs exist?
  • Visualize ligands, skeletons, and topologies as SVG.
  • Compute role-aware fingerprints that focus on donors/skeleton/substituents (useful for ML or clustering).
  • Extract unique multidentate ligands from complex datasets.

Minimal example

from ctopo import ligand_from_smiles

lig = ligand_from_smiles("[NH2:1]CC[NH2:2]")  # donor atoms are marked using atom-map numbers
v = lig.visualize_topology()

print(lig.denticity)
print(v.smiles)

Next: - Read Concepts for definitions (skeleton vs topology, atom roles, complex encoding). - Use Tutorials for end-to-end workflows. - See Reference for docstring-generated API docs.