---
title: DiffDock inputs and parameters
description: 'Protein by PDB ID, UniProt ID or upload; ligands as SMILES, SDF or CSV; samples_per_complex and inference_steps up to 40; no binding-site parameter at all.'
---

You provide a protein target and one or more ligands. This tool runs blind docking only — there's no parameter to supply a binding-site box, a residue list, or a reference ligand; DiffDock's confidence model ranks poses across the full protein surface.

## Webapp input methods

The .bloom* webapp provides comprehensive protein and ligand input options for DiffDock molecular docking.

## Protein target section

### Protein source selection

| Source | Description |
|--------|-------------|
| **Manual Entry** | Enter PDB ID, UniProt ID, or upload PDB file |
| **From Previous Job** | Import protein structure from ESMFold or other jobs |

### Protein input methods

| Method | Description | Example |
|--------|-------------|---------|
| **PDB ID** | Autocomplete with common structures | `6LU7`, `1ATP` |
| **UniProt ID** | Sequence lookup and structure prediction | `P00533` |
| **Upload PDB File** | Direct PDB file upload | `.pdb` files |

### From previous job (protein)

- **Job Output Selector**: Browse completed jobs with protein structure outputs
- **ZIP archive support**: Automatic extraction of PDB files from ZIP outputs
- **File selection**: Choose specific PDB file when multiple are available
- **Loading indicator**: Shows extraction progress for ZIP files

## Ligand(s) section

### Ligand source selection

| Source | Description |
|--------|-------------|
| **Manual Entry** | Enter SMILES or upload SDF/CSV file |
| **From Previous Job** | Import compounds from chemistry tools |

### Ligand input methods

| Method | Description | Formats |
|--------|-------------|---------|
| **SMILES String** | Direct SMILES entry | Single SMILES |
| **Upload SDF File** | Multi-molecule SDF | `.sdf` |
| **Upload SMILES/CSV File** | SMILES list in CSV format | `.smi`, `.csv`, `.txt` |

### From previous job (ligand)

- **Compatible tools**: AiZynthFinder, REINVENT, ZINC, PubChem
- **ZIP extraction**: Automatic SDF extraction from compressed outputs
- **File browser**: Select specific SDF files from multi-compound archives
- **Suggestions**: Shows recommended outputs based on compatibility

## Manual protein entry

### PDB ID input

- **Autocomplete suggestions**: Type to see common PDB structures
- **Validation**: Automatic checking for valid PDB identifiers
- **Preview**: 3D structure loads automatically for verification
- **Metadata**: Resolution, method, and organism info displayed

### UniProt ID input

- **Sequence lookup**: Automatic fetching from UniProt database
- **Structure prediction**: Option to run ESMFold if no experimental structure
  exists
- **Isoform selection**: Choose specific protein isoforms when available
- **Annotation display**: Display functional domains and features

### File upload

- **Supported formats**: PDB, mmCIF, compressed (.gz)
- **File size limits**: Up to 50MB for individual files
- **Validation**: Automatic format checking and basic structure validation
- **Preview**: Interactive 3D viewer loads immediately after upload
- **Metadata extraction**: Automatic parsing of headers and metadata

## Protein from previous jobs

### Job output integration

- **Compatible tools**: ESMFold, previous DiffDock runs, structural analysis
  tools
- **ZIP archive support**: Automatic extraction from compressed outputs
- **File browser**: Select specific PDB files from multi-structure archives
- **Provenance tracking**: Maintains connection to original job for
  reproducibility

### Structure validation

- **Format checking**: Ensures PDB/mmCIF validity
- **Chain selection**: Option to include/exclude specific protein chains
- **Cleaning options**: Remove waters, ligands, or alternate conformations
- **Preview loading**: Real-time 3D visualization during selection

## Ligand input methods

## Manual ligand entry

### SMILES string input

- **Single compound**: Direct SMILES entry with validation
- **Batch input**: Multiple SMILES separated by newlines
- **Validation**: Real-time SMILES syntax checking
- **Preview**: 2D structure rendering (when available)
- **Properties**: Automatic molecular weight and formula calculation

DiffDock converts SMILES to 3D conformers internally using RDKit. The model then applies diffusion over translational, rotational, and torsional degrees of freedom to generate diverse binding poses.

### File upload

- **SDF format**: Single or multi-molecule SDF files
- **SMILES/CSV format**: CSV files with SMILES in first column
- **Validation**: Format checking and molecular validation
- **Preview**: 3D structure loading for SDF files
- **Batch processing**: Automatic handling of multiple compounds

## Ligands from previous jobs

### Chemistry tool integration

- **AiZynthFinder**: Direct import of retrosynthetic products
- **DeepPurpose**: Generated molecules from property optimization
- **Fragment libraries**: Compounds from virtual screening results
- **PubChem/ZINC**: Database compounds from search results

### File extraction

- **ZIP handling**: Automatic extraction from compressed outputs
- **Format detection**: Automatic SDF vs. SMILES recognition
- **Compound selection**: Choose specific compounds from multi-molecule files
- **Metadata preservation**: Maintains compound names and properties

## No binding-site input

DiffDock, as run on this platform, always docks against the whole protein surface — there is no box, residue-range, or reference-ligand parameter to narrow the search. [P2Rank](/docs/p2rank) can still tell you *where* the ligand is likely to land, for interpreting the returned pose, but it doesn't get passed into this tool's search space. If you need docking constrained to a defined site, use the pocket you identify with P2Rank to judge the returned poses rather than to steer the run.

## Advanced parameters

**Poses per complex (`samples_per_complex`):**

- **Range**: 1-40 poses per ligand
- **Default**: 10 poses
- **Guidance**: Higher numbers for virtual screening, lower for focused
  optimization

**Diffusion steps (`inference_steps`):**

- **Range**: 1-40 steps
- **Default**: 20 steps
- **Trade-off**: Quality vs. runtime (more steps = better but slower)

There's no seed parameter — diffusion sampling is stochastic, and re-running the same inputs is not guaranteed to reproduce the exact same poses. Request more poses (`samples_per_complex`) to cover more of that variability in one run instead.

## Job configuration

### Webapp configuration panel

- **Job Name (Optional)**: Custom identifier for tracking (default: `DiffDock_Job_{timestamp}`)
- **Advanced settings…**: Opens settings panel for additional parameters

### Advanced settings (via settings panel)

Accessible via the **"Advanced settings…"** button:

- **Samples Per Complex**: Number of poses to generate per protein-ligand pair
- **Inference Steps**: Diffusion sampling quality (more steps = better quality, slower)
- **Use Personalized Settings**: Toggle for project-specific configuration

### Submit button

- **Label**: "Run Molecular Docking"
- **Disabled when**: Missing protein input OR missing ligand input
- **Validation**: Real-time error display for input issues

### Job status display

- **Progress indicator**: Phase-based progress tracking
- **Live ETA**: Real-time completion estimate
- **Status alerts**: Success/error notifications
- **Info tooltip**: "Progress may briefly pause; this is normal."

### Provenance tracking

DiffDock automatically tracks data lineage:
- Records which previous jobs provided inputs
- Stores transformation type (direct, zip_extract)
- Preserves filename for ZIP extractions

## Batch processing strategies

### Single protein, multiple ligands

- **Optimal batching**: Keep protein constant, vary ligands
- **Efficiency**: Maximum reuse of protein processing
- **Use case**: Virtual screening campaigns

### Multiple proteins, single ligand

- **Separate jobs**: Submit individual jobs per protein
- **Reasoning**: Avoid cross-contamination of results
- **Use case**: Selectivity profiling across targets

### Matrix screening

- **Job splitting**: Break large matrices into manageable batches
- **Monitoring**: Track completion rates and success patterns
- **Optimization**: Adjust batch sizes based on runtime patterns

## Validation and error handling

### Input validation

- **Real-time feedback**: Immediate error highlighting
- **Format checking**: Automatic detection of common issues
- **Suggestions**: Actionable error messages with fixes

### Common issues and solutions

**Invalid SMILES:**

- Check syntax using external validators
- Ensure proper atom specifications
- Remove query atoms and unusual elements

**Protein structure issues:**

- Verify PDB format compliance
- Check for missing atoms in critical regions
- Consider structure refinement if needed

**Performance issues:**

- Reduce pose count for faster results
- Split large batches into smaller jobs
- Consider protein size optimization

## Read next
