Home » HI3D


Site 1 (click me) 

HI3D is a Web app that allows a user to index the helical parameters (twist, rise, csym) of a 3D density map (asymmetric reconstructions, sub-tomogram averages, and helical reconstructions). It generates a cylindrical projection of the 3D map, computes the autocorrelation function of the cylindrical projection, and then uses two distinct lattice identification methods to obtain a consistent solution of the helical parameters.

No software installation is needed. Just click one of the above servers to index your structure!





If you have found HI3D useful for your project, please cite:

Chen Sun, Brenda Gonzalez, Wen Jiang. Helical indexing in real space. Scientific Reports, 12(1), 1–11. https://doi.org/10.1038/s41598-022-11382-7


Open Source/Development

The source code and all revisions are available on GitHub


How to run HI3D on your own computer (Linux or Mac)

  • Make sure that you have python 3.8+ installed
  • Install the dependent libraries by running the command below in a terminal
    pip install streamlit numpy scipy pandas bokeh scikit_image mrcfile trackpy xmltodict uptime psutil
  • run the following command in a terminal
    streamlit run https://raw.githubusercontent.com/jianglab/HI3D/main/hi3d.pyserver.maxUploadSize 1600


  • The HI3D Web app might take some time to wake up from hibernation after an extended period of inactivity
  • If the text size appears too large, you can change the Zoom level of your browser setting ( and on Mac, Ctrl and on Windows/Linux)
  • The HI3D Web app might crash if the 3D map size is too large (>400x400x400 voxels) but it should be able to automatically restart in a few minutes. The following message shown on the HI3D app page means that the Web app server process has crashed:

    Connection error

    Connection failed with status 503, and response “<!DOCTYPE html> <html> <head> <meta name=”viewport” content=”width=device-width, initial-scale=1″> <meta charset=”utf-8″> <title>Application Error</title> <style media=”screen”> html,body,iframe { margin: 0; padding: 0; } html,body { height: 100%; overflow: hidden; } iframe { width: 100%; height: 100%; border: 0; } </style> </head> <body> <iframe src=”//www.herokucdn.com/error-pages/application-error.html”></iframe> </body> </html>”.

    The crashing is due to the resource limit (1GB memory cap for Server 1 and 512MB or Server 2) of the free hosting services, not the HI3D method itself. HI3D will automatically bin/crop large maps to reduce memory usage and avoid crashes, for example, for the 1.9Å resolution TMV map of 4863 voxels (EMD-10129). However, if you still encounter crashes, please reduce the map size before uploading it to HI3D by binning the map (for example, e2proc3d.py –meanshrink option) or removing (for example, e2proc3d.py –clip option) the empty padding space around the structure, and then try again. The HI3D method is not very sensitive to pixel size, so you should not worry much about binning.

    If the crashing persists for your large maps, you can also run HI3D on your own computer to avoid the resource limit imposed by the free hosting service. Almost all computers nowadays have >10x more memory and should not have memory limit issues. For example, HI3D on my Macbook Pro has never encountered map size-related issues and it works well for the currently largest helical map in EMDB (EMD-10229, 720x720x720 voxels, and 1.493 GB). Please follow the simple steps below to run HI3D on your own computer.