SMINA
latestEnhanced molecular docking with custom scoring functions and fast minimization
SMINA online on ProteinIQ runs smina, David Koes's fork of AutoDock Vina built for scoring function development and fast energy minimization, on an uploaded receptor and ligand without a local install. The job runs the official smina.static binary built on October 15, 2019, the build SMINA distributes on SourceForge, which is based on Vina 1.1.2. It returns ranked poses with affinity scores in kcal/mol, PDBQT or SDF pose files, SMINA's own log, and optional per-atom interaction terms.
SMINA keeps Vina's search and adds builtin scoring functions (Vinardo, the dkoes functions and ad4_scoring), user-defined scoring files, minimization of an existing pose, scoring without moving the ligand, per-atom term output, and box definition from a reference ligand. Koes, Baumgartner and Camacho (2013) described it as a version of Vina optimized for high-throughput scoring and custom scoring functions, and used it to build a custom function that sampled low-RMSD poses better than Vina's default when cross-docking in the CSAR 2011 exercise.
Four docking modes cover the common uses. Full docking searches the box for new poses, Minimize only relaxes a pose that is already in the site, Local search only optimizes from the submitted coordinates, and Score only scores the pose exactly as submitted.
SMINA has no official web server. Its home is the SourceForge project, where Koes distributes the source code and the static Linux binary smina.static, and the project page lists no GitHub repository. The smina repository on GitHub, mwojcikowski/smina, is a personal fork whose README sends support questions to SourceForge. GNINA, from the same group, is a later fork of smina that adds CNN scoring.
Running smina locally means downloading the Linux binary, preparing a receptor file it can read, embedding SMILES ligands in 3D yourself, and writing the command with its box, scoring and output options. Here the receptor can be fetched by RCSB PDB ID, and a SMILES string or PubChem compound is embedded in 3D with RDKit before SMINA sees it. Settings are checked before submission, the binary is pinned by checksum and runs on 4 CPU cores, and results open in a 3D viewer with a score table and downloadable files.
The hosted limits are narrower than the command line. Exhaustiveness stops at 32, a manual box is 10 to 50 Å per axis, ligands containing metals are refused before submission, and each job may run for up to two hours. The same run is available through the API.
SMINA jobs start at 20 credits, and an ordinary single-ligand run costs exactly that. Every single drug-sized ligand we priced, from aspirin (13 heavy atoms) to atorvastatin (41 heavy atoms, 12 rotatable bonds), costs 20 credits at Exhaustiveness 8, 16 or 32, in a focused box or across a whole receptor. The quote grows when one ligand file holds many records, because SMINA docks them one after another in the same job.
| Ligand records | Exhaustiveness 8 | Exhaustiveness 16 | Exhaustiveness 32 |
|---|---|---|---|
| 1 | 20 credits | 20 credits | 20 credits |
| 5 | 20 credits | 21 credits | 35 credits |
| 10 | 24 credits | 40 credits | 67 credits |
| 25 | 57 credits | 96 credits | 162 credits |
| 50 | 112 credits | 189 credits | 322 credits |
| 100 | 221 credits | 375 credits | 628 credits |
| Ligand records | Exhaustiveness 8 | Exhaustiveness 16 | Exhaustiveness 32 |
|---|---|---|---|
| 1 | 20 credits | 20 credits | 20 credits |
| 5 | 20 credits | 33 credits | 56 credits |
| 10 | 38 credits | 64 credits | 109 credits |
| 25 | 92 credits | 157 credits | 269 credits |
| 50 | 182 credits | 311 credits | 535 credits |
| 100 | 362 credits | 619 credits | 628 credits |
Both tables use an SDF file of imatinib-sized records (37 heavy atoms, 7 rotatable bonds), Full docking, and 9 poses. The focused box is a Manual coordinates cube of 25 Å; the whole-receptor box is SMINA's default autobox around the c-Abl kinase domain from PDB 1IEP with the 4 Å buffer. The quote stops rising at 628 credits, the estimate for the two-hour run limit.
A larger box, more poses, flexible side chains, more minimization iterations and Accurate line search can raise the quote. Score only costs 20 credits even for 100 records; Minimize only and Local search only cost 27 credits for 50 records and 51 credits for 100. The scoring function, output format, per-atom energies and random seed do not change the estimate. ProteinIQ calculates the exact price from the submitted files and settings before submission.
| Input | Accepted forms | Notes |
|---|---|---|
Receptor | PDB, ENT, PDBQT, mmCIF, or MOL2 file, or RCSB PDB ID | Up to 50 MB. SMINA reads the file with its built-in Open Babel. Waters, ions, and ligands left in the file are part of the receptor. |
Ligand | SMILES, or SDF, MOL, MOL2, PDB, or PDBQT file, or PubChem lookup | Up to 10 MB. Multi-record files are docked record by record, and each pose keeps its ligand's name. Ligands containing metals are refused before submission. |
Autobox ligand | Positioned PDB, SDF, MOL, MOL2, or PDBQT | Up to 10 MB. Needed when Box definition is Autobox from reference ligand. |
Custom scoring | Text file or pasted text of weighted terms | Up to 1 MB. Needed when Scoring function is Custom scoring file. |
Flexdist ligand | Positioned PDB, SDF, MOL, MOL2, or PDBQT | Up to 10 MB. Needed with Flexible within distance (Å). |
Flexible side chains | Flexible residue PDBQT | Up to 10 MB. Used with a rigid receptor PDBQT, as prepared by tools like Meeko. |
SMINA cannot read SMILES as 3D structures, so ProteinIQ embeds a SMILES ligand with RDKit (ETKDGv3, fixed seed, then MMFF optimization) and passes the resulting SDF to SMINA. Structure files are passed unchanged, except that ProteinIQ repairs nonstandard V2000 column spacing in MOL and SDF files, which some programs write and SMINA cannot read.
Remove ligands you do not want in the receptor before docking. If the receptor still contains a copy of the ligand at the same position, for example a co-crystallized ligand extracted from the same PDB entry, SMINA stops minimize and local search runs with "Ligand atom exactly overlaps receptor atom". Use Trim structure on the receptor to remove it. PDB Fixer can repair missing atoms before docking.
SMINA reads mmCIF receptors through Open Babel's mmCIF reader, which does not keep residue identities. The same structure can therefore score differently from mmCIF and PDB input, and flexible residues cannot be selected in an mmCIF receptor. Convert to PDB when you need flexible side chains or results comparable with PDB runs.
The hosted ranges below are limits of the ProteinIQ service. Within them, every value is passed to SMINA unchanged.
| Parameter | Type | Default | Description |
|---|---|---|---|
Scoring function | enum | Default (Vina) | Default (Vina), Vinardo, dkoes_scoring, dkoes_scoring_old, dkoes_fast, ad4_scoring, or Custom scoring file. |
Docking mode | enum | Full docking | Full docking (global + local search), Minimize only, Score only (no optimization), or Local search only. |
Pose output format | enum | PDBQT | PDBQT (recommended) or SDF. SMINA writes the selected format directly. |
Minimization iterations | integer | 0 | Steepest descent iterations in Minimize only, 0 to 10000. 0 uses SMINA's default, which scales with the rotatable bonds. |
Accurate line search | boolean | false | Slower, more accurate line search in Minimize only. |
Exhaustiveness | integer | 8 | Global search effort, 1 to 32, roughly proportional to run time. |
Number of poses | integer | 9 | Maximum poses returned, 1 to 50. |
Energy range (kcal/mol) | number | 3 | Maximum gap between the best and worst returned pose, 1 to 10 in 0.1 steps. |
RMSD filter (Å) | number | 1 | Removes final poses closer than this to a better pose, 0 to 5 in 0.1 steps. |
Random seed | integer | optional | Fixes the search. Left empty, SMINA picks a seed and reports it in the log. |
Add ligand hydrogens | boolean | true | SMINA adds hydrogens to ligands (--addH). Turn off to keep the ligand's hydrogens as submitted. |
Per-atom interaction energies | boolean | false | Writes SMINA's per-atom term values (--atom_terms) as atom_terms.txt. |
Exhaustiveness sets search effort, not scoring accuracy. The default 8 suits a focused box and a ligand with a few rotatable bonds; 16 or 32 fits flexible ligands, large boxes, flexible side chains, or runs whose top pose changes between seeds. Minimization iterations, Accurate line search and the box only matter in the modes that use them.
These settings appear when Configure search space is on. Without it, SMINA autoboxes the whole receptor with a 4 Å buffer.
| Parameter | Type | Default | Description |
|---|---|---|---|
Box definition | enum | Whole receptor (autobox) | Whole receptor (autobox), Autobox from reference ligand, or Manual coordinates. |
Autobox buffer (Å) | number | 4 | Space added on every side of the autobox, 0 to 20. Minimize and local search also use it around the ligand. |
Center X (Å) | number | 0 | Manual box center on the X axis. |
Center Y (Å) | number | 0 | Manual box center on the Y axis. |
Center Z (Å) | number | 0 | Manual box center on the Z axis. |
Size X (Å) | number | 25 | Manual box size on the X axis, 10 to 50. |
Size Y (Å) | number | 25 | Manual box size on the Y axis, 10 to 50. |
Size Z (Å) | number | 25 | Manual box size on the Z axis, 10 to 50. |
A whole-receptor box on a large protein spreads the same search over the entire surface, so raise Exhaustiveness or define the site. Autobox from reference ligand builds the box around a positioned ligand, usually a co-crystallized one, plus the buffer, and Manual coordinates reproduces a published box. Minimize only and Local search only ignore the box and use the ligand's own extent plus the buffer; Score only uses no box.
These settings appear when Flexible side chains is on.
| Parameter | Type | Default | Description |
|---|---|---|---|
Flexible residues | string | optional | Side chains as chain:resid or chain:resid:icode, comma separated, for example A:82,A:86. |
Flexible within distance (Å) | number | optional | Makes every side chain within this distance of Flexdist ligand flexible. Minimum 0. |
No ligand (flexible residues only) | boolean | false | Samples or minimizes the flexible side chains without a ligand (--no_lig). |
A rigid receptor PDBQT can be combined with a Flexible side chains file instead of naming residues. SMINA reports which residues it made flexible in the log.
The results open on a Viewer tab with the receptor and every pose, a Data tab with one row per pose, and a Files tab.
| Output | What it contains |
|---|---|
pose_modeNN.pdbqt or pose_modeNN.sdf | One file per pose, cut unchanged from SMINA's native output, in the selected Pose output format. |
smina_out.pdbqt or smina_out.sdf | Every pose in one file, as SMINA wrote it. |
smina.log | SMINA's own log with the random seed, the score table and any warnings. |
protein.* | The submitted receptor, used by the viewer. |
flex_modeNN.pdbqt, flex_out.pdbqt | Side-chain conformations for each pose and for all poses together, when Flexible side chains is on. |
atom_terms.txt | Per-atom interaction term values, when Per-atom interaction energies is on. |
The viewer shows the rigid receptor with the docked ligand; download the flex files to inspect moved side chains. Use standard element symbols in structure files: this SMINA build reads a nonstandard uppercase CL as a wildcard atom, while valid Cl is preserved, and SDF runs warn when a pose contains unassigned atoms. Prefer SDF, MOL, or MOL2 ligand inputs when bond information matters, since exporting SDF cannot recover chemistry absent from a PDBQT or PDB input.
The Data table lists each pose's ligand, SMINA mode number and Affinity (kcal/mol), followed by the other values SMINA reported for that pose. SMINA ranks poses within each ligand record, so a multi-record run returns one ranked set per ligand.
Affinity is SMINA's score in kcal/mol under the selected scoring function. More negative values rank as more favorable within one setup: the same receptor, box, ligand preparation and scoring function. With Default (Vina) it is the Vina score, which the Vina score explains in detail, including how it grows with ligand size. It is not a measured binding free energy, and a score converted to a dissociation constant is not a predicted Kd.
Scores from different scoring functions sit on different scales. A Vinardo run and a Default (Vina) run on the same complex give different numbers, and a custom scoring file can use any scale its weights produce. Compare ligands only within one scoring function and one receptor.
In Full docking, SMINA prints the same table as Vina. Mode 1 is the best-scoring pose, and the lower and upper RMSD bounds give each pose's distance from mode 1: the lower bound matches each atom to the nearest atom of the same element, the upper bound matches each atom to itself. Both bounds under about 2 Å mean a near-copy of mode 1; a small lower bound with a much larger upper bound means a flipped pose filling the same space.
These bounds compare poses with each other, never with a crystal structure; RMSD against an experimental pose has to be calculated separately. Poses within 1 to 2 kcal/mol of the best can be equally plausible, so read the top few as hypotheses and check their contacts. A run can return fewer poses than Number of poses when Energy range or RMSD filter removes them.
These modes start from the submitted coordinates, so they need a ligand already placed in the site and a receptor without a copy of that ligand. Minimize only and Local search only report the affinity, the ligand's intramolecular energy and the heavy-atom RMSD between the final and submitted pose. Score only reports the affinity and intramolecular energy of the pose as submitted.
A small RMSD says the pose was already near a local minimum of the scoring function. A shift of several ångströms says the submitted pose had clashes or strain that the minimizer relieved, and the new pose deserves a look before its score is trusted. Score only is the way to rescore a crystal pose, or a pose from another program, under a SMINA scoring function.
Vinardo, from Quiroga and Villarreal (2016), simplifies the Vina function: it drops the second, long-range Gaussian steric term, fixes the hydrophobic term's onset at zero, and changes the atomic radii, larger for aliphatic carbon and smaller for nitrogen and oxygen. Its authors reported better scoring, docking and virtual screening results than Vina on all their benchmark sets. Results on a new target can differ, so redock a known ligand under both functions before choosing one.
All three engines share Vina's search, and they differ in scoring, modes and inputs.
| Feature | SMINA | AutoDock Vina | GNINA |
|---|---|---|---|
| Version | smina.static Oct 15 2019 (Vina 1.1.2 base) | 1.2.7 | 1.3.3 |
| Scoring | Vina, Vinardo, dkoes, AD4, or custom | Vina, Vinardo, or AutoDock4 | Vina, Vinardo, dkoes, or AD4, plus CNN |
| Custom scoring | Any weighted sum of SMINA's terms | New weights for the built-in terms | No |
| Modes | Dock, minimize, local search, score only | Dock, local only, score only, randomize only | Dock |
| Receptor handling | Read directly by SMINA | Prepared with Meeko, PDB2PQR repair when atoms are missing | Read directly by GNINA |
| Several ligands | Records of one file, docked in turn | Batch of 10 or co-docking of 5 | One ligand per job |
| Max poses | 50 | 50 | 20 |
| Flexible side chains | Yes | Yes | No |
| Per-atom energies | Yes | No | No |
SMINA suits custom scoring, minimization of existing poses, per-atom term analysis, and quick rescoring of many poses. AutoDock Vina is the better start when the receptor needs preparation, when ligands should dock together in one pocket, or when hydrated or zinc workflows apply, since those came with Vina 1.2 after SMINA's fork. GNINA adds CNN scoring that reranks poses with a trained network. For protein-ligand docking with affinity-oriented pose ranking, compare PandaDock.
A custom scoring file lists one weight and one term per line. This file reproduces the default Vina function:
-0.035579 gauss(o=0,_w=0.5,_c=8)
-0.005156 gauss(o=3,_w=2,_c=8)
0.840245 repulsion(o=0,_c=8)
-0.035069 hydrophobic(g=0.5,_b=1.5,_c=8)
-0.587439 non_dir_h_bond(g=-0.7,_b=0,_c=8)
1.923 num_tors_divTerm parameters include:
o: offset from the optimal distance_w: Gaussian width_c: distance cutoffg: good distance threshold_b: bad distance thresholdSMINA also provides electrostatic, AutoDock 4 desolvation, Lennard-Jones, atom type pair, and count terms. The full list is printed by smina --print_terms; see the SMINA project for details.
SMINA treats the receptor as rigid apart from the side chains you mark flexible, handles water implicitly, and scores with fast empirical functions, so it does not predict Kd or IC50 and cannot compare scores across receptors. The pinned 2019 build predates Vina 1.2, so it has no simultaneous co-docking, hydrated docking or zinc parameters.
Define the binding site when you know it; a reference-ligand autobox focuses the search and runs faster than the whole receptor. Before minimizing a crystal pose, remove the original ligand from the receptor. Set a random seed when a run must be reproduced exactly, and repeat with two or three seeds to see whether the top pose holds. PoseBusters checks the geometry of a shortlisted SDF pose, and ProLIF maps its contacts with the receptor.
Physics-based molecular docking with CPU-optimized hierarchical algorithms
Dock ligands with AutoDock4 scoring, CUDA acceleration, and flexible receptor sidechains.
Dock ligands into protein structures and estimate binding modes, poses, and affinity scores.
Geometric flow matching for generative protein-ligand docking and affinity prediction.
Dock small molecules into proteins using CNN scoring and physics-based pose optimization.
Predict protein-ligand binding poses and confidence scores without a predefined binding site.
Predict protein-ligand binding poses while modeling ligand-induced conformational changes.
Fragment-based SE(3) equivariant diffusion docking for protein-ligand binding pose prediction
Surface-informed diffusion generative model for reliable and accurate protein-ligand complex prediction
Template-based protein-ligand pose prediction with MCS-guided conformer generation.