Cheminformatics¶
SMILES Input¶
Parse a SMILES string and output a Molecule object.
| Direction | Port | Type |
|---|---|---|
| Output | molecule |
molecule |
SMILES Viewer¶
Display a 2-D molecule structure diagram.
Details
Type a SMILES string (e.g. c1ccc2ccccc2c1 for naphthalene) directly
into the node. The structure renders in the image viewer panel and is also
available on the image output port for downstream processing.
| Direction | Port | Type |
|---|---|---|
| Output | image |
image |
Properties: Dark Mode
Molecule to Image¶
Render a molecule structure as a 2-D diagram image.
Details
Accepts a Molecule object from SMILES Input and outputs an ImageData.
| Direction | Port | Type |
|---|---|---|
| Input | molecule |
molecule |
| Output | image |
image |
Properties: Dark Mode, Size (px)
Molecular Descriptors¶
Compute a table of physicochemical descriptors for a molecule.
Details
Outputs a DataFrame with one row containing: smiles, mol_weight, logp, hbd, hba, tpsa, rotatable_bonds, rings, aromatic_rings.
| Direction | Port | Type |
|---|---|---|
| Input | molecule |
molecule |
| Output | table |
table |
Substructure Filter¶
Filter rows of a SMILES table by a SMARTS substructure pattern.
Details
Outputs two tables: matches (has the substructure) and rejects (does not).
| Direction | Port | Type |
|---|---|---|
| Input | table |
table |
| Output | matches |
table |
| Output | rejects |
table |
Mol 3D Embed¶
Embed a molecule in 3D using ETKDGv3 and optionally optimize.
Details
Generates one or more 3D conformers, optionally runs force-field minimisation (MMFF or UFF). All conformers are kept on the output molecule.
| Direction | Port | Type |
|---|---|---|
| Input | molecule |
molecule |
| Output | molecule |
molecule |
Properties: Keep Hydrogens, Optimize, Force Field, Num Conformers, Max Iterations (0=default), Prune RMSD (-1=off), Random Seed (-1=random), Timeout sec (0=none), Random Coords Fallback
Mol File Writer¶
Write a molecule to a 3D file format.
Details
Accepts a Molecule with a 3D conformer (e.g. from Mol 3D Embed) and writes it to disk. MOL2 uses sdfrust; SDF/PDB/XYZ use RDKit; PDBQT uses Meeko (optional).
| Direction | Port | Type |
|---|---|---|
| Input | molecule |
molecule |
Properties: Format
Mol Reader¶
Read molecules from a file or all files in a directory.
Details
Supported formats: SDF, SMI, CSV/TSV, MOL, MOL2, PDB, XYZ. Uses RDKit's threaded suppliers (MultithreadedSDMolSupplier, MultithreadedSmilesMolSupplier) for SDF and SMILES files. For directories, reads all matching files with ThreadPoolExecutor.
| Direction | Port | Type |
|---|---|---|
| Output | mol_table |
mol_table |
Properties: Source
Batch Descriptors¶
Compute physicochemical descriptors for every molecule in a MolTable.
Details
Toggle common descriptors via checkboxes. For any RDKit descriptor not
listed, type comma-separated names in the Custom field (e.g.
BalabanJ, FractionCSP3, ExactMolWt).
Uses ThreadPoolExecutor for parallelism (RDKit releases the GIL).
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | mol_table |
mol_table |
Properties: ``
Batch 3D Embed¶
Embed all molecules in a MolTable in 3D using ETKDGv3.
Details
Failed embeddings are dropped from the output table. Uses ThreadPoolExecutor for parallelism (RDKit releases the GIL during embedding/optimisation).
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | mol_table |
mol_table |
Properties: Keep Hydrogens, Optimize, Force Field, Timeout sec (0=none), Random Coords Fallback
Batch File Writer¶
Write all molecules in a MolTable to disk.
Details
Can write a single multi-record file (SDF, SMI) or individual files per molecule (MOL2, SDF, PDB, XYZ) into a chosen directory.
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
Properties: Mode, Format
Batch Substructure Filter¶
Filter a MolTable by SMARTS substructure pattern.
Details
Splits into two outputs: matches (has substructure) and rejects. Operates directly on the Mol objects — no SMILES re-parsing.
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | matches |
mol_table |
| Output | rejects |
mol_table |
MolTable to Molecule¶
Pick a single molecule from a MolTable by row index.
Details
Bridges batch (mol_table) to single-molecule nodes (molecule port).
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | molecule |
molecule |
Properties: Row Index
MolTable to Table¶
Convert a MolTable to a plain Table by dropping the Mol column.
Details
Useful for connecting to existing table nodes (Sort, Filter, Plot, etc.).
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | table |
table |
Property Filter¶
Filter a MolTable by a single molecular property.
Details
Pick a common property from the dropdown or select Custom and type
any RDKit descriptor name (e.g. BalabanJ, ExactMolWt).
Choose a comparison operator (<, >, ≤, ≥, =) and a threshold value.
Combine multiple PropertyFilterNodes with a MolTable Merge node to build complex AND / OR filter chains.
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | matches |
mol_table |
| Output | rejects |
mol_table |
Properties: Property, Operator, Value
Drug-likeness Filter¶
Apply a classic drug-likeness rule set to a MolTable.
Details
All rules within the chosen preset are AND'd. Outputs matches (pass all rules) and rejects (fail at least one).
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | matches |
mol_table |
| Output | rejects |
mol_table |
Properties: Preset
MolTable Merge¶
Combine two MolTables with AND or OR logic.
Details
-
AND — keep only molecules whose name appears in both inputs (intersection). Rows are taken from input A.
-
OR — keep molecules from either input (union, duplicates by name removed, first occurrence kept).
Pair with PropertyFilterNode / DrugLikenessFilterNode to build complex filter chains.
| Direction | Port | Type |
|---|---|---|
| Input | mol_table_a |
mol_table |
| Input | mol_table_b |
mol_table |
| Output | mol_table |
mol_table |
Properties: Logic
Batch Catalog Filter¶
Filter a MolTable using RDKit's built-in structural-alert catalogs.
Details
Enable one or more catalogs (PAINS, BRENK, NIH, ZINC, CHEMBL variants). A molecule is flagged if it matches any enabled catalog.
Include mode keeps clean molecules (no alerts); Exclude mode keeps only flagged molecules.
Outputs two MolTables: matches (kept) and rejects (removed).
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | matches |
mol_table |
| Output | rejects |
mol_table |
Properties: Mode, ``
Pairwise Similarity¶
Compute an NxN pairwise similarity matrix for all molecules in a MolTable.
Details
Fingerprints are computed with RDKit; the NxN pairwise calculation runs in Rust (sdfrust) with rayon parallelism and hardware popcount.
Output is a Table whose first column is the molecule name and remaining columns are named after each molecule (suitable for Heatmap).
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | table |
table |
Properties: Fingerprint, Metric, Bits, Radius
Similarity Search¶
Rank all molecules in a MolTable by similarity to a query molecule.
Details
Adds a similarity column and sorts descending. Optionally filters
by a minimum similarity threshold.
| Direction | Port | Type |
|---|---|---|
| Input | molecule |
molecule |
| Input | mol_table |
mol_table |
| Output | mol_table |
mol_table |
Properties: Fingerprint, Metric, Bits, Radius, Min Similarity
Butina Cluster¶
Cluster molecules using Taylor–Butina algorithm.
Details
Computes fingerprints, pairwise similarity (Rust), then clusters.
Adds cluster_id and is_centroid columns to the output.
| Direction | Port | Type |
|---|---|---|
| Input | mol_table |
mol_table |
| Output | mol_table |
mol_table |
Properties: Fingerprint, Metric, Cluster Method, Bits, Radius, Similarity Threshold
PDB Loader¶
Load a PDB or CIF file and output cleaned protein data.
Details
Removes non-protein atoms (water, ligands), handles multi-model files. Optionally returns HETATM ligand bounding-box info for auto-boxing.
| Direction | Port | Type |
|---|---|---|
| Output | protein |
protein |
Properties: Clean
PDB Downloader¶
Download a protein structure from RCSB PDB or AlphaFold Database.
Details
Enter a PDB ID (e.g. 1AKE) or UniProt ID (for AlphaFold) and the
structure is fetched, cleaned, and output as ProteinData. Automatically
falls back to CIF format when the PDB file is not available.
HETATM ligands are extracted with bounding-box info (useful for auto-centering a docking box on a co-crystallised ligand).
| Direction | Port | Type |
|---|---|---|
| Output | ligands |
table |
Properties: Database
Protein Editor¶
Filter a protein structure by chain and residue range.
Details
Useful for trimming multi-chain complexes, keeping only the chain(s) of interest, or restricting to a residue range for focused docking.
Leave a field empty to keep everything (no filter on that axis).
| Direction | Port | Type |
|---|---|---|
| Input | protein |
protein |
| Output | protein |
protein |
Properties: Remove Water, Remove HETATM
Protein Prep¶
Prepare a protein for docking: fix structure, add H, generate PDBQT.
Details
Pipeline: PDBFixer (fix + add H) → protonation checks → PDBQT typing. Requires OpenMM for hydrogen addition.
| Direction | Port | Type |
|---|---|---|
| Input | protein |
protein |
| Output | receptor |
receptor |
Properties: pH, Fix Missing Atoms, Fill Gaps
Docking Box¶
Define the docking search box with an integrated 3D viewer.
Details
Click on the protein structure to set the docking center. The docking box is drawn in the viewer in real-time as you adjust center/size values. Flexible residues can be selected by clicking in "Add Flexible" mode.
Accepts either raw ProteinData or prepared ReceptorData (PDBQT) for display. The receptor is passed through for downstream docking nodes.
Modes:
- Manual — enter center/size directly in spinboxes
- Auto from Ligand — compute box from a connected molecule's coordinates
| Direction | Port | Type |
|---|---|---|
| Input | protein |
protein |
| Input | receptor |
receptor |
| Input | molecule |
molecule |
| Output | receptor |
receptor |
| Output | box_config |
box_config |
Properties: Mode, Click Mode, Padding
Vina Dock¶
Dock a single ligand against a prepared receptor.
Details
Supports Vina CLI and QVina2 (Rust) backends.
| Direction | Port | Type |
|---|---|---|
| Input | receptor |
receptor |
| Input | molecule |
molecule |
| Input | box_config |
box_config |
| Output | energies |
table |
Properties: Backend, Scoring
Batch Dock¶
Dock every molecule in a MolTable against a prepared receptor.
Details
Docked poses are converted back to RDKit Mol objects and stored in the output mol_table (as conformers on the original molecule). A real-time progress table shows each molecule's docking status.
| Direction | Port | Type |
|---|---|---|
| Input | receptor |
receptor |
| Input | mol_table |
mol_table |
| Input | box_config |
box_config |
| Output | results |
table |
Properties: Backend, Scoring
GNINA Rescore¶
Rescore docking poses with GNINA CNN models.
Details
Accepts:
- MoleculeData (single docked molecule from VinaDockNode, conformers = poses)
- MolTableData (batch results from BatchDockNode, uses dock_mol conformers)
- DockingResultData (legacy PDBQT poses)
Outputs a scores table and (for batch mode) an updated mol_table with CNN scores added as columns.
| Direction | Port | Type |
|---|---|---|
| Input | result |
molecule |
| Output | scores |
table |
Properties: CNN Ensemble, Score Mode, Scoring Workers
Structure Writer¶
Write a protein (PDB) or prepared receptor (PDBQT) to a file.
Details
Accepts ProteinData or ReceptorData on the structure input.
When connected to a ReceptorData with flexible residues, the flex PDBQT
is written to a separate *_flex.pdbqt file alongside the rigid one.
| Direction | Port | Type |
|---|---|---|
| Input | structure |
receptor |
Properties: Auto Extension
DrugCLIP Screen¶
Screen molecules against a protein pocket using DrugCLIP embeddings.
Details
Computes contrastive similarity between a protein binding pocket and molecules via the DrugCLIP dual-encoder model (ONNX Runtime).
Inputs:
- receptor (ProteinData or ReceptorData)
- box_config (TableData from DockingBoxNode — defines pocket center)
- mol_table (MolTableData — batch of molecules)
Outputs:
- mol_table (MolTableData with
drugclip_scorecolumn, sorted desc) - table (TableData — summary scores)
| Direction | Port | Type |
|---|---|---|
| Input | receptor |
receptor |
| Input | box_config |
box_config |
| Input | mol_table |
mol_table |
| Output | mol_table |
mol_table |
| Output | scores |
scores |
Properties: Box Padding (A), Max Pocket Atoms, Conformers (if no 3D), Workers
3D Structure Viewer¶
Interactive 3D molecular structure viewer.
Details
Displays proteins as cartoon and ligands as ball-and-stick using 3Dmol.js. Connect any combination of protein, receptor, molecule, or docking result inputs to visualize the structure.
| Direction | Port | Type |
|---|---|---|
| Input | protein |
protein |
| Input | receptor |
receptor |
| Input | molecule |
molecule |
| Input | docking_result |
docking_result |