How to Prepare Ligands for AutoDock Vina with Meeko: From SDF to PDBQT Without Losing Chemical Identity

Prepare single ligands or SDF libraries for AutoDock Vina with Meeko while preserving chemical identity, state, atom mapping, validation decisions, and provenance.

The command that writes a PDBQT file is short. The scientific decision chain behind that command is not. Two records with the same compound name can encode different protonation states, tautomers, stereoisomers, salts, bond orders, or conformers. Once one of those records is converted for docking, a valid-looking PDBQT file may conceal that the wrong chemical entity entered the calculation.

This guide separates three tasks that are often collapsed into one: defining the ligand that should be modeled, preparing that defined molecule for AutoDock Vina, and validating that identity and provenance survived the transition from SDF to PDBQT.

Protect chemical identity before conversion

Decisions to lock before Meeko

Identity layerQuestion to answerRecord to preserve
Parent structureIs this the intended covalent graph rather than a salt, mixture, metabolite, or similarly named compound?Stable source identifier, original record, canonical or isomeric SMILES, and source version.
Bond orders and formal chargeDoes the structure encode chemically plausible valence and the intended charge?Identity-preserving SDF or MOL2 plus any standardization rule applied.
StereochemistryAre all relevant stereocenters and double-bond configurations specified?Isomeric representation and a flag for undefined or intentionally enumerated centers.
Protonation and tautomerWhich state is being modeled at the relevant assay or physiological condition?State-generation method, target pH or rule, variant identifier, and retained alternatives.
Three-dimensional conformerDoes the input have finite 3D coordinates without severe geometry problems?Conformer-generation and minimization method, seed when applicable, and source coordinates.
HydrogensAre hydrogens explicit before Meeko reads the molecule?Hydrogen-addition method and the exact prepared input file.

The SDF preflight checklist provides a broader accept, review, or reject gate for ligand sources. Use it before the format-specific steps below.

What Meeko does and what it expects from the input

The preparation boundary

LayerHandled by MeekoMust already be defined or reviewed
Input representationReads an RDKit molecule from supported inputs; SDF is strongly preferred and MOL2 is supported [1,2].Correct molecular graph, bond orders, formal charges, stereochemistry, explicit hydrogens, and 3D coordinates.
Docking parametersCreates a molecule setup with AutoDock atom types, partial charges, and rotatable-bond information [2,4].Whether the selected charge model and flexibility assumptions fit the protocol.
OutputWrites one or more PDBQT files for AutoDock Vina or AutoDock-GPU [1].Stable naming, one-to-one mapping to source records, and validation of each output.
Chemical-state choiceParameterizes the state supplied to it.Which protonation state, tautomer, stereoisomer, covalent form, or macrocycle treatment should be modeled.

Meeko's current documentation explicitly states that adding hydrogens and generating 3D positions are not performed by Meeko [2]. The official AutoDock Vina tutorial likewise recommends SDF, warns against small-molecule PDB input because it lacks bond connectivity, and tells users to check protonation before docking [6].

Prepare one ligand from SDF to PDBQT

Minimal Meeko command
mk_prepare_ligand.py -i molecule.sdf -o molecule.pdbqt

This is the documented single-molecule pattern [1,6]. Before running it, open the SDF in a chemistry-aware viewer and confirm the intended heavy-atom graph, stereochemistry, formal charge, hydrogens, and 3D geometry. After running it, capture the Meeko and RDKit versions, command, input checksum, output checksum, standard output, and standard error.

Do not judge success from file existence alone. Confirm that the PDBQT contains the expected ligand, atom count after the documented hydrogen-merging policy, finite coordinates, plausible partial charges, expected rotatable bonds, and no preparation warning that was ignored merely to complete the batch.

Prepare a multi-molecule SDF without losing record identity

Documented batch-output pattern
mk_prepare_ligand.py -i multi_mol.sdf --multimol_outdir prepared_pdbqt

Identity-safe controls for a ligand batch

ControlWhy it mattersPractical implementation
Unique source IDNames can collide or change after standardization.Store one immutable ligand ID in an SDF property and the manifest.
Explicit output namingFilesystem-safe names can sever the link to the source record.Use --name_from_prop when appropriate or maintain an explicit source-to-output map [3].
One row per attempted moleculeFailed records can disappear from a folder of successful PDBQTs.Record Ready, Review, or Rejected plus the exact reason; never renumber survivors as if no record failed.
Variant relationshipEnumerated states are hypotheses from one parent compound, not independent source identities.Keep parent ID, state ID, formal charge, stereochemical state, and enumeration rule together.
Index mappingAtom order may change between representations.Retain Meeko's SMILES and mapping remarks and consider --add_index_map for an auditable atom correspondence [3,5].
Versioned configurationDefaults and available charge models can change.Save the tool versions, full command or JSON configuration, and date with the batch.

Meeko documents --multimol_outdir, --name_from_prop, --multimol_prefix, compressed multi-molecule output, charge-model selection, and index-map controls [1,3]. Use only options justified by the protocol; a longer command is not automatically a better one.

Validate the PDBQT before docking

Post-preparation validation checklist

CheckAccept whenReview or reject when
Source mappingEvery PDBQT maps to exactly one source record and, if enumerated, one declared state.The filename or title is the only remaining identity link.
Atom correspondenceHeavy atoms and expected polar hydrogens can be reconciled with the input and preparation policy.Atoms vanish, appear, or change element without an explained rule.
ChargeFormal state is retained and partial charges are finite under the chosen model.The total or local charge pattern contradicts the intended state, or NaN/Inf values were tolerated.
Torsion treeRotatable and rigid bonds match the protocol and ring or macrocycle treatment.An amide, ring bond, or chemically rigid group rotates unexpectedly.
GeometryCoordinates remain finite, bonded geometry is plausible, and the ligand is not collapsed or fragmented.Severe clashes, disconnected fragments, extreme bonds, or a 2D input entered the workflow.
Round-trip identityA chemistry-aware export using preserved Meeko remarks reconstructs the intended graph.A generic PDBQT reader must guess bond orders or formal charges.

The PDBQT format guide explains the atom, charge, type, and torsion layers in more detail.

Build a reproducible ligand-preparation package

Minimum preparation manifest

Manifest fieldExample content
IdentitySource database and version, source ID, parent ID, state ID, isomeric SMILES, formal charge.
Input artifactSDF filename, record index, SHA-256 checksum, hydrogen status, coordinate dimension.
Upstream chemistrySalt and fragment policy, protonation or tautomer method, pH assumption, stereochemistry policy, conformer and minimization method.
Preparation environmentMeeko, RDKit, and Python versions; operating system or container; configuration file.
ExecutionFull command, timestamp, exit status, warnings, and standard error.
OutputPDBQT filename and checksum, atom count, formal state, partial-charge check, torsion count, validation status.
DecisionReady, Review, or Rejected; reason; reviewer; downstream batch ID.

This package allows a docking result to be traced back to the chemical representation that produced it. It also prevents a preparation failure from being misreported as a docking result of zero or silently removed from the denominator.

Where MolNexus fits

MolNexus supports the reviewable local workflow around ligand preparation and docking. The current MolNexus 0.1.1 Windows desktop application accepts SDF, MOL, MOL2, and PDBQT ligand inputs, exposes ligand preflight and preparation review, runs AutoDock Vina 1.2.7 with Vina or Vinardo scoring, preserves local job history, and exports scientific results.

MolNexus does not determine the biologically correct protonation state, tautomer, stereoisomer, or covalent identity; it does not turn an uncertain structure into verified chemistry; and it does not prove binding or activity. Its value in this stage is operational: keep source files, preparation outcomes, docking settings, poses, and exports connected and visible.

A free Windows trial limited to two ligand docking runs and the US$499 one-time perpetual license are available now. No institutional deployment terms are currently advertised.

Explore MolNexus

A practical decision flow

  1. Identify: obtain the authoritative ligand record and retain its source metadata.
  2. Standardize deliberately: resolve salts, covalent graph, formal charge, stereochemistry, and state enumeration with written rules.
  3. Build the 3D input: add explicit hydrogens and generate or validate three-dimensional coordinates before Meeko.
  4. Parameterize: run a versioned mk_prepare_ligand.py command with stable naming.
  5. Validate: reconcile identity, atoms, charge, geometry, torsions, warnings, and source-to-output mapping.
  6. Preserve: retain SDF, PDBQT, command, configuration, logs, checksums, and manifest.
  7. Dock only accepted records: carry rejected and review states into the batch report instead of silently dropping them.

For the next stage, use the batch-docking traceability guide and validate the complete protocol before screening a library.

Frequently asked questions

References

  1. The Meeko authors. Basic ligand preparation Meeko documentation (2026) Official commands and input requirements for single- and multi-molecule ligand preparation.
  2. The Meeko authors. Overview of ligand preparation Meeko documentation (2026) Official description of RDKit input, parameterization, atom types, partial charges, rotatable bonds, and the explicit hydrogen and 3D-coordinate boundary.
  3. The Meeko authors. Options of mk_prepare_ligand.py Meeko documentation (2026) Official command-line option reference for naming, batch output, configuration, charge models, and index mapping.
  4. Diogo Santos-Martins, Yiran He, Jerome Eberhardt, Parnika Sharma, Niccolo Bruciaferri, et al.. Meeko: Molecule Parametrization and Software Interoperability for Docking and Beyond Journal of Chemical Information and Modeling (2025) DOI: 10.1021/acs.jcim.5c02271 Peer-reviewed description of Meeko chemical perception, parameterization, RDKit integration, and high-throughput use.
  5. The Meeko authors. Exporting docking results Meeko documentation (2026) Official explanation of information absent from PDBQT and SMILES- and atom-map-aware reconstruction of docking outputs.
  6. AutoDock Vina developers. Basic docking AutoDock Vina documentation (2026) Official ligand-preparation command, SDF preference, protonation warning, and chemistry-aware result export.