Blog
How to Do Protein-Protein Docking Online (ClusPro, HDOCK and HADDOCK): A Step-by-Step Guide for Beginners
- August 12, 2026
- Posted by: Stemskills Lab
- Category: Molecular Modeling

Protein-protein docking predicts how two proteins assemble into a complex, not how tightly they bind. Free web servers such as ClusPro, HDOCK and HADDOCK do the whole job in a browser: you upload two cleaned PDB files, run the search, then rank the returned models by cluster size and inspect whether the top solutions agree on one interface.
Almost every docking tutorial on this site so far puts a small molecule into a pocket. The moment your partner is another protein, a receptor, an antibody or a designed vaccine construct, that workflow stops applying: AutoDock Vina, PyRx and the grid box were built for a ligand of a few dozen atoms, not for a second protein with its own surface. This guide covers the three free web servers that do the protein-protein job, written by the StemSkills Lab team from 10+ years of structural bioinformatics, docking and molecular modeling work.
What is protein-protein docking, and what does it actually predict?
Protein-protein docking searches for the relative orientation of two protein structures that best satisfies a shape and energy criterion, then returns a set of candidate complexes. The output is a geometry: which face of protein A sits against which face of protein B, and which residues end up at the interface.
What it does not give you is an affinity. None of the three servers below reports a Kd or a binding energy in kcal/mol that you can compare against an experiment. HDOCK’s own documentation is explicit about this, saying of its docking score that “the score should not be treated as the true binding affinity of two molecules because it has not been calibrated to the experimental data” (HDOCK help). Treat every number these servers print as a ranking device inside one job, and nothing more.
It also helps to know how the search works, because the ranking rule follows from it. ClusPro documents its procedure step by step: the ligand is rotated through 70,000 rotations, translated on a grid against the receptor for each rotation, the 1,000 lowest-scoring rotation and translation combinations are retained, and those 1,000 positions are then clustered greedily with a 9 Angstrom C-alpha RMSD radius. The position with the most neighbours within 9 Angstroms becomes a cluster center, its neighbours become the cluster members, and the process repeats.
When is protein-protein docking the right tool, and when is it not?
Use it when you have two structures, you believe they interact, and no experimental structure of the complex exists. Typical cases in a student project: a receptor and its predicted partner, an antibody and an antigen, a designed multi-epitope construct against TLR4 or TLR2, or a protein and a partner you built with AlphaFold.
Do not use it in three situations:
- The complex is already in the PDB. Search the RCSB first. A predicted interface is never a better source than a solved one, and reviewers will ask why you predicted something that was already determined. Our guide on how to download a protein structure from the RCSB PDB covers searching by both partners.
- You want an affinity, not a geometry. Docking will not rank mutants by strength of binding. For an energetic estimate you need a separate calculation such as MM-PBSA on an MD trajectory, and even that has known limitations.
- One partner is a disordered peptide or a long flexible tail. Rigid-body servers sample the two inputs as near-rigid objects. A 12-residue linker will be placed somewhere arbitrary. ClusPro provides a dedicated peptide mode for short peptides rather than treating them as ordinary partners.
How do you prepare the two structures before docking?
File preparation causes more failed submissions than anything else. Work through this in order.
1. Get both structures
Download experimental structures from the RCSB where they exist. Where they do not, predict them: our tutorials on predicting a structure with AlphaFold and ColabFold and on homology modelling with SWISS-MODEL both produce files you can dock. If you are unsure which route your project needs, the comparison in AlphaFold vs homology modelling vs experimental structures settles it.
2. Check that the model is good enough at the interface
A predicted structure with a poorly modelled loop in the region you expect to be the interface will produce a confident-looking complex built on a wrong surface. Before docking, look at the per-residue confidence of an AlphaFold model, or run the checks in our guide to validating a protein structure with Ramachandran and MolProbity statistics. Docking cannot repair a bad input.
3. Clean each file
- Split out the single chain you want. A PDB entry often contains several copies or several different proteins. Keep only the chain that is your protein. HDOCK accepts a shortcut here: you can type an entry and chain directly as
1CGI:Erather than uploading a file at all. - Remove waters and unrelated heteroatoms. Crystallisation additives, buffer molecules and glycerol have no business in a docking run.
- Decide about cofactors and ions deliberately. A structural zinc or a heme that is part of the fold should usually stay if the server accepts it. A ligand sitting in the pocket you expect to become the interface should go.
- Keep one conformation. Alternate location indicators and NMR multi-model files both cause trouble. Submit one model, one conformer.
- Make sure a chain identifier is present. Some modelling tools write files with a blank chain column, and servers reject them or misread them.
Our post on preparing a protein from the PDB covers missing residues and protonation in more detail; the same cleaning logic applies here.
4. Decide which protein is the receptor
All three servers ask for a receptor and a ligand. In protein-protein docking the “ligand” is simply the second protein, and by convention the larger protein is the receptor. HDOCK’s help states the reason plainly: “For docking efficiency, it is recommended that the larger one of two molecules is input as receptor if one molecule is much larger than the other one.”
Want the guided, hands-on version?
Our live Molecular Modeling & MD Simulations cohort bootcamp takes you from zero to running real docking and MD workflows, with a portfolio project for your grad-school applications.
How do you run the docking on ClusPro, HDOCK and HADDOCK?
ClusPro: rigid-body sampling plus clustering
ClusPro is run by the Vajda Lab and the ABC Group at Boston University and Stony Brook University, and its home page offers two routes: log in, or “Use the server without the benefits of your own account”. An account is optional, which makes it the fastest of the three to try. The server states that it should only be used for noncommercial purposes.
- Upload the receptor and the ligand as PDB files, or give PDB entry codes.
- Select the chains you want if your file has more than one.
- Choose a mode. Ordinary protein-protein jobs use the standard run; antibody-antigen jobs should use antibody mode, which the documentation recommends directly. Peptide, multimer, SAXS and restraints modes exist for their specific cases.
- Submit and wait. The ClusPro protocol paper reports that runs are generally completed in under 4 hours (Kozakov et al., The ClusPro web server for protein-protein docking, Nature Protocols, 2017).
Your results arrive as several sets of models, one per coefficient set. The FAQ addresses which to read: “If you don’t have any prior knowledge of what forces dominate in your complex, we recommend using the balanced coefficients.” Use balanced unless you have a specific reason, from the literature or from experiment, to believe electrostatics or hydrophobic contacts dominate the interaction.
HDOCK: template-based and free docking combined
HDOCK, from the Huang Lab at Huazhong University of Science and Technology, takes a hybrid approach: it looks for a homologous complex to use as a template and also runs a free global docking search. It is the most forgiving of the three about inputs. Each molecule can be supplied in any one of four ways: a PDB file upload, an entry and chain such as 1CGI:E, a pasted FASTA sequence, or a FASTA file. If you give a sequence, the server builds a model for you with its own pipeline before docking. No account is needed; an email address and a job name are optional fields.
Binding-site information is optional on HDOCK, which is what separates it from HADDOCK. If you happen to know the interface residues you can supply them as 195:A, 203-206:A, or give distance restraints between specific residue pairs, and the predicted models will be more accurate. If you know nothing, leave those boxes empty and the global search runs unaided.
HADDOCK: information-driven docking
HADDOCK, from the Bonvin lab at Utrecht University, is different in kind. It is designed to use what you already know about the interface. That knowledge is encoded as ambiguous interaction restraints, built from two categories of residue that the documentation defines precisely: active residues are “those experimentally identified to be involved in the interaction between the two molecules AND solvent accessible”, and passive residues are “all solvent accessible surface neighbors of active residues” (Bonvin lab, HADDOCK 2.4 manual on AIRs). The manual notes a typical relative accessibility guideline above 40% for active residues, while the server itself applies a 15% cutoff by default.
The HADDOCK2.4 web server requires a free account for non-profit use before you can submit. Register first, then prepare your restraint list; without any interface information HADDOCK has less to work with than the other two, so use it when mutagenesis data, cross-linking data, a conserved interface from the literature, or a solid interface prediction is available. The protocol is published as The HADDOCK2.4 web server for integrative modeling of biomolecular complexes, Nature Protocols, 2024.
Which server should you use for an MSc project?
| Feature | ClusPro | HDOCK | HADDOCK 2.4 |
|---|---|---|---|
| Search approach | FFT rigid-body sampling with PIPER, then greedy clustering | Hybrid: template-based modelling plus free global docking | Information-driven docking with ambiguous interaction restraints |
| What you must supply | Two structures | Two structures, or sequences, or entry and chain codes | Two structures plus interface knowledge |
| Interface information | Optional (restraints mode) | Optional (binding-site residues or distance restraints) | Central to the method |
| Ranking is based on | Cluster size (the order results are returned in) | Docking score, with an empirical confidence score | HADDOCK score of clustered models |
| Account needed | No, guest use is offered; noncommercial use only | No | Yes, free registration for non-profit users |
| Best use case | First pass on any pair of structures, and antibody-antigen via antibody mode | You only have sequences, or you want a fast broad search | You already know or can predict which residues are at the interface |
A practical route for a thesis: run ClusPro and HDOCK on the same pair, then check whether they agree. Two independent methods converging on one interface is a far stronger result than one server’s top model.
How do you read the results and pick a model?
This is where most student projects go wrong, and it is the part worth reading twice.
Rank by cluster size, not by score
ClusPro’s documentation could not be clearer. On its model scores it says: “Our experience shows that the best way to rank models is by cluster size, which is how the models are ranked coming out of Cluspro.” The scores are provided only because users asked for them, and the FAQ adds: “we strongly encourage you to not judge models based on these scores because that is not what the scoring was designed for.” The reason given is that the 1,000 retained positions are already in the top millionth of the roughly 109 positions sampled, and at that level the scoring function is too coarse to separate them meaningfully.
Reporting the lowest energy number from a ClusPro run as though it were an affinity is a common thesis mistake. The server has told you not to.
Cluster center is not the same as lowest-energy member
Every cluster has a center, which is the representative position that had the most neighbours within the 9 Angstrom radius, and it has members, one of which happens to have the lowest score. These are different structures. The center represents the shape of the cluster, which is what the size-based ranking is about. Say which one you used in your methods and stay consistent.
Reading HDOCK’s two numbers
HDOCK reports a docking score from its ITScorePP or ITScorePR scoring function, where a more negative value means a more plausible model, and a confidence score derived from it. The confidence score is defined in the help page by the formula Confidence_score = 1.0/[1.0+e^(0.02*(Docking_Score+150))], calibrated on the observation that complexes in the PDB normally have a docking score around -200 or better. The documented interpretation: above 0.7 the two molecules are very likely to bind, between 0.5 and 0.7 binding is possible, and below 0.5 binding is unlikely. The help page adds its own caution that the confidence score “should be used carefully due to its empirical nature”. Quote those thresholds with the source attached, and do not convert them into an affinity.
Compare the top models against each other
Download the top few models from your chosen run and superimpose them on the receptor. Our guide to superimposing two proteins in PyMOL covers the alignment commands. Then ask one question: do the top clusters place the partner on the same surface, or on different surfaces?
If they agree, you have a consensus interface worth carrying forward. If they scatter across the receptor, that is a result too, and an honest thesis reports it rather than silently keeping model 1. Disagreement usually means the interface is genuinely ambiguous to a rigid-body search, and that you need external information, which is exactly the case HADDOCK was built for.
How do you validate the complex and take it forward?
Once you have a candidate complex, do three things.
- Check the interface against what is known. List the residues at the interface, which HDOCK reports as all residue pairs within 5.0 Angstroms, and compare that list against mutagenesis data, conserved residues or published interface studies for your proteins. Agreement with an independent experiment is the strongest validation available without a crystal structure.
- Analyse the contacts properly. The tools in our protein interaction diagram tutorial with LigPlot+ and PLIP handle protein-protein interfaces as well as protein-ligand ones, and give you hydrogen bonds, salt bridges and hydrophobic contacts to describe.
- Run MD if the project needs it. A docked complex is a static guess. Simulating it tells you whether the interface holds together. The site’s GROMACS chain starts at generating a topology with pdb2gmx, continues through defining the box and NVT and NPT equilibration, and ends with RMSD and RMSF analysis. A complex whose partners drift apart during the simulation was not a real interface.
For writing it up, our post on the methods section of a docking study shows the level of detail examiners expect: server name, version, inputs, mode, ranking rule, and which model you selected.
What can you conclude, and what can you not?
You can say that the servers predict a specific interface, that a given set of residues is involved, that independent methods agree or disagree, and that the complex was or was not stable over a simulation. You cannot say that protein A binds protein B with a particular strength, that one variant binds better than another because its score was lower, or that a predicted complex is confirmed without any experimental support. Keeping that line clear is what separates a defensible thesis chapter from an overclaimed one.
Troubleshooting: real errors and their fixes
- “Unknown residues” on upload. ClusPro’s FAQ identifies the cause: a record in your PDB file is marked ATOM but is not one of the 20 standard amino acids or an RNA base, because some programs write HETATMs into ATOM records. Remove those residues or change them to HETATM records.
- The server rejects the file because there is no chain identifier. Open the PDB in a text editor and check column 22. If it is blank, assign a chain letter (PyMOL’s
altercommand does this) and save again. - You submitted the wrong chain or a whole biological assembly. Symptoms: the job runs but the returned “receptor” is a dimer you never intended, or the interface you care about is already occupied by a second copy of the same protein. Split the file down to one chain and resubmit.
- Waters, ligands or alternate conformations break the submission. Strip HOH records, remove unrelated HETATM lines, and keep a single altloc. Ambiguous atoms are the usual cause of a parse failure that reports a line number rather than a reason.
- An NMR or multi-model file was submitted. Files with MODEL and ENDMDL blocks contain many conformers. Extract one model and dock that, or the server will either use the first silently or fail.
- The predicted structure is low confidence exactly where the interface forms. Check the model’s confidence before spending compute. If the region is unreliable, remodel it, use a different template, or trim the disordered segment and say so in your methods.
- The top clusters land on completely different surfaces. There is no consensus interface. Cross-check with a second server, look for interface information you can supply, and consider moving to HADDOCK’s restraint-driven mode rather than picking a model arbitrarily.
- The job is queued for a long time or appears to time out. Submit once, keep the job link, and give it time before resubmitting. Duplicate submissions of a large complex slow the queue for everyone. Supply an email address where the server offers one so the result reaches you.
- Only the receptor appears when you open the result. ClusPro documents this: some viewers do not support multiple PDB entries in one file. Open the model in PyMOL, or split the model file into receptor and ligand and load them separately.
Frequently asked questions
Is protein-protein docking free?
Yes for all three servers discussed here. ClusPro can be used without an account and is restricted to noncommercial use, HDOCK requires no registration, and the HADDOCK2.4 web server is free for non-profit users after registration. All three run in a browser, so no local install or licence is needed.
Can I dock two AlphaFold models?
Yes, and it is common practice when no experimental structures exist. Check the per-residue confidence in the region you expect to be the interface first, because a low-confidence loop there makes the docking result unreliable no matter how good the scores look.
Which server is most accurate?
There is no single answer that holds for every complex, which is why blind assessments such as CAPRI exist. The practical approach for a student project is to run more than one server and treat agreement between them as your confidence measure, rather than trusting any single ranking.
How many models should I inspect?
Look at the top clusters rather than only the first model. Inspect enough to answer the consensus question: whether the leading solutions place the partner on one surface or several. Report how many you examined.
Can I use AutoDock Vina for protein-protein docking?
No. Vina and the grid-box workflow are built for a small molecule in a defined pocket, and both the sampling and the scoring assume that. Use a dedicated protein-protein server instead. If your project involves a small molecule, our AutoDock Vina tutorial and the molecular docking learning path are the right starting points.
What comes after docking in a thesis?
Interface analysis, then molecular dynamics of the complex, then a written methods section. The staged route through both is set out in our computational biology skills roadmap.
Want the guided, hands-on version?
Our live Molecular Modeling & MD Simulations cohort bootcamp takes you from zero to running real docking and MD workflows, with a portfolio project for your grad-school applications.
Written by the StemSkills Lab team, who work in sequence and structural bioinformatics, drug discovery and design, and multiscale molecular modeling. Server behaviour, menu labels and documentation quotations were verified against the ClusPro, HDOCK and HADDOCK documentation at the time of writing.