MolecularGraph.jl is a graph-based molecule modeling and chemoinformatics analysis toolkit fully implemented in Julia.
draw3d_rotation.mp4
Documentation and API Reference
To run codes in your environment, see Edit or run this notebook
instruction shown in the top-right of the tutorial pages below.
- Getting started
- Molecular graph basics
- Scope of MolecularGraph.jl
- Considerations in molecular graph implementation
- Basic operations provided by Graphs.jl interface
- MolGraph type and atom/bond properties
- Properties and descriptors
- Built-in molecule properties and descriptors
- Lipinski's Rule of five (RO5)
- Molecular formula
- Atom and bond properties
- Graph topology (ring and fused ring)
- Auto-update mechanism of properties
- Built-in molecule properties and descriptors
- Preprocessing
- Remove hydrogen vertices
- Extract molecules of interest
- Standardize charges
- Dealing with resonance structure
- Customize property updater
- Mass and isotopes
- Molecular weight and exact mass
- Uncertainty
- Isotopic composition
- Simulate mass spectrum
- Substructure and query
- Substructure match
- InChI and InChIKey
- SMARTS query
- Structural alerts (e.g. PAINS)
- Functional group analysis
- Query containment
- Maximum common substructure (MCS)
- Maximum common induced substructure (MCIS)
- Maximum common edge-induced substructure (MCES)
- Connected or disconnected MCS
- Working with larger molecules
- Topological constraint (tdMCS)
- Drawing molecule
- 2D structure images
- Display and export in SVG format
- Display and export in PNG format
- Layout for Pluto notebook
- Regenerate coordinates
- 3D molecule rendering using Makie.jl
- 2D structure images
- Stereochemistry
- Stereochemistry as a molecular graph property
- Stereospecific implicit hydrogens
-
Chemical structure file I/O
- 2D structure image drawing and export to SVG
- 3D structure drawing (Makie.jl)
- SDFile reader/writer (.sdf, .mol)
- SMILES/SMARTS reader
- SMILES writer (RDKitMinimalLib.jl)
- Coordinates generation (coordgenlibs)
-
Properties and descriptors
- H-bond donor/acceptor
- rotatable bonds
- Aromaticity
- Wildman-Crippen logP
- Fingerprints (RDKitMinimalLib.jl)
-
Substructure and query
- InChI (InChI)
- Serialization (molecule object <-> loss-less format or CommonChem JSON)
- Subgraph isomorphism detection with VF2 algorithm
- SMARTS query match
- Monomorphism, node-induced and edge-induced match
- Constraints (mandatory/forbidden vertex mapping)
- Functional group query set
- Structural alerts detection with ChEMBL dataset
- SMARTS query containment
-
Atomic mass
- standard atomic/molecular weight
- relative atomic/molecular mass
- isotopic composition
-
Molecular graph topology
- Ring, scaffold, connected components
- Minimum cycle basis (de Pina algorithm)
- Smallest set of smallest rings (SSSR)
- Planarity (left-right planarity test)
- Maximum matching
- Kekulization
- Graph traversal
-
Maximum common substructure (MCS)
- By clique detection algorithm
- Node-induced (MCIS) and edge-induced (MCES)
- Connected and disconnected
- Topological constraint (known as tdMCS)
- Diameter restriction (MCS-DR) and graph-based local similarity (GLS)
MIT license
See Assets/README.md for details of external data sets and their licenses.
(C) 2018-2025 Seiji Matsuoka and contributors