smina molecular docking CLI. AutoDock Vina fork with customizable scoring functions, native SDF/MOL2/PDB ligand input, autoboxing, local energy minimization, and per-atom score breakdowns. Pipeline: receptor PDBQT prep -> ligand prep (RDKit/OpenBabel) -> dock via autobox or explicit grid -> rescore/minimize with custom scoring -> rank poses by affinity. Choose smina over Vina when you need custom scoring terms (--custom_scoring), local optimization of an existing pose (--local_only), per-atom co
SkillScore91Maintained
Automatic
◆Research pack
Last verified 8/24/2026
What it changes
Passed 20 of 22 test cases with the skill, and 12 of 22 without it.
Without skill55%
With skill91%
Checks it passed that the model alone missed
The command specifies --no_lig.
The smina command specifies --minimize_iters 1000.
The response specifies the property minimizedRMSD.
and 6 more in the full report
8 fixed12 passed either way2 still failing0 broke
Pass-rate lift
+36 pp
Tokens
+193%
Agent turns
0%
Response time
-50%
Model gemini-3.6-flashMeasured 8/24/2026v120 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 8
Prompt
What SDF property key does smina write to record a docked pose's heavy-atom RMSD relative to the top pose?
What was checked, without and with the skill
Checked
Without skill
With skill
The response specifies the property minimizedRMSD.
Missed
Passed
case-19 · gemini-3.6-flash · 8/24/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md370 linessingle file
smina Molecular Docking
Overview
smina is an AutoDock Vina 1.1.2 fork focused on flexible scoring and minimization. Accepts SDF/MOL2/PDB ligands directly (no manual PDBQT), autoboxes from a reference ligand, ships six built-in scoring functions plus arbitrary --custom_scoring terms, and prints per-atom score contributions. CLI-only — drive from Python via subprocess.
When to Use
Re-scoring or locally minimizing an existing pose (--local_only, --minimize) without a full search
Single-pose binding energy without docking (--score_only)
Docking with a custom or empirical scoring function tuned to a target class
SDF/MOL2/multi-ligand input without per-ligand PDBQT conversion
Autoboxing the grid around a co-crystallized reference ligand
Per-atom energy decomposition (--atom_term_data) for medchem analog design
Batch virtual screening that parallelizes well across nodes (one CLI process per ligand)
Use autodock-vina-docking instead when you need Vina Python bindings, Vinardo scoring, or Vina 1.2's expanded force field; use diffdock when the binding site is unknown
Prerequisites
smina binary — conda-forge or SourceForge build
Python: rdkit, openbabel-wheel (or system openbabel), prody, pandas, py3Dmol
ADFR Suite for prepare_receptor (receptor PDBQT only — ligands handled by smina)
Data: protein (PDB / PDB ID), ligand(s) as SMILES / SDF / MOL2
Check before installing — inside a pixi/conda env smina is usually already on PATH. If command -v smina succeeds, skip install; inside a pixi project invoke as pixi run smina ....