DiffModeler Tutorial

Last updated on June 11, 2026

Video Tutorial

Overview

DiffModeler is a computational tool using a diffusion model to automatically build full protein complex structure from cryo-EM maps at up to 20 Å resolution.

Two modes are available. Use DiffModeler if you already have template structures (e.g., AlphaFold predictions, homology models, or experimental PDB files). Use DiffModeler(seq) if you only have protein sequences. DiffModeler(seq) will search for template structures from PDB and AlphaFold Database automatically.

Overall Pipeline

flowchart

  1. Backbone detection. A diffusion model enhances the cryo-EM map and detects main-chain backbone positions.
  2. Template structure preparation. Obtain single-chain template structures for each subunit.
    • DiffModeler: Users provide their own template structures (e.g., AlphaFold predictions, homology models, or experimental PDB structures).
    • DiffModeler(seq): Input sequences are searched by BLASTP against the PDB95 and AlphaFold Database. For the PDB95 search, only hits with an E-value of 0 are considered, and the first hit whose chain length falls within 90–110% of the expected length is selected as the template. If no hit satisfies these criteria, the search falls back to the combined PDB + AlphaFold Database, where the best (by E-value) length-compatible hit is selected from the top 500 results.
  3. Structure fitting. VESPER fits each template structure into the diffusion-enhanced backbone map, generating multiple candidate poses per subunit.
  4. Complex assembly. The best-fitting poses are selected and combined to build the complete protein complex structure.

Input Files

DiffModeler:
  1. 3D cryo-EM map in MRC format (.mrc or .map)
  2. single chain pdb files in .pdb format
DiffModeler(seq):
  1. 3D cryo-EM map in MRC format (.mrc or .map)
  2. Protein sequences: paste them directly into the text fields or upload a FASTA file

Output Files

DiffModeler:

Full protein complex structure in .cif file

DiffModeler(seq):

A ZIP file containing:

  1. DiffModeler.cif: the modeled complex structure in mmCIF format
  2. template_info.txt: a text file listing the template IDs used for each chain
  3. BLASTP raw output files from the input protein sequences against PDB95 and AlphaFold Database

Job Submission

  1. Prepare Input Map
  2. Obtain a 3D cryo-EM map in MRC format (extension .mrc or .map).
    Example map
    Publicly available maps can be downloaded from EMDataResource.

  3. Prepare Input PDB files (for standard DiffModeler only)
  4. Prepare each subunit as a separate PDB file. If you need multiple copies of the same subunit, specify the copy count when uploading.
    Both partial subunits (a portion of a protein chain) and predicted structures (e.g., from AlphaFold) can be used.
    To find suitable structures, search the PDB, the AlphaFold Database, or use the EBI Search Tool to find similar structures by sequence.

  5. Prepare Input sequence (for DiffModeler(seq) only)
  6. DiffModeler(seq) automates the template search process. Instead of providing template structures, you only need to provide the protein sequences.
    Sequences can be pasted directly into the text fields on the submission page (you can specify the number of copies for each entry), or uploaded as a file in FASTA format. If you use a FASTA file, include the chain ID in the > header line. If multiple chains share the same sequence, use a comma "," to separate chain IDs.
    Example:

    >A,B,C,D
    MATPAGRRASETERLLTPNPGYGTQVGTSPAPTTPTEEEDLRR
    >E,F
    VVTFREENTIAFRHLFLLGYSDGSDDTFAAYTQEQLYQ
    This indicates 6 chains where A,B,C,D share one identical sequence and E,F share another.

  7. Determine your contour level
  8. Determine an appropriate contour level for fitting your protein structure. You can also find it interactively on the submission page after uploading your map.
    This is an absolute density threshold, not standard deviation.
    The tool will not work properly without an appropriate contour level.

  9. Determine the resolution
  10. The map resolution is required as input. If the resolution is 2 Å or better (high resolution), the diffusion step will be skipped.

  11. Submit your job
  12. Once your input is ready, please visit DiffModeler or DiffModeler(seq) and fill in the form.

    Step 3 Screenshot

    Once you have finished, click the upload button to submit your job. After submission, you will be redirected to the View Job page. If you are not registered, please bookmark this page after the redirection. You will lose access to your results otherwise. If you are registered, you will receive an email notification when the job completes and can also check its status from the My Jobs list under Job Manager.

  13. View your job results
  14. Once the job is complete, you can check the modeled structure from the link bookmarked earlier. DiffModeler(seq) results are provided as a ZIP file, which you can download by clicking the "Download Outputs" button. The ZIP contains the modeled complex structure (DiffModeler.cif), a template_info.txt file listing the template IDs used, and BLASTP raw output files from the input protein sequences against PDB95 and AlphaFold Database. DiffModeler results can be downloaded directly as a .cif file. You can also visualize the 3D cryo-EM map online to check its consistency with the modeled structure. For more detailed instructions, please see the Instructions on the same page.

    results

  15. Submit for backend review (optional)
  16. If you encounter unexpected results or a failed job, please submit a backend review using the form at the bottom of the View Job page. We will investigate the issue and get back to you as soon as possible.

    DiffModeler backend review form

Availability

  1. GitHub

    Full code is available here.

Reference

Wang, X., Zhu, H., Terashi, G., Taluja, M., & Kihara, D. (2024). DiffModeler: Large macromolecular structure modeling for cryo-EM maps using a diffusion model. Nature Methods. https://doi.org/10.1038/s41592-024-02479-0