Microtubule
Example 2: HeLa microtubule
In this example we used Warp, AreTomo3, easymode, Relion5, and M to reconstruct, denoise, segment, pick, and average microtubules in HeLa cells
Dataset and computational resources
For this test we used 621 tilt series of FIB-milled HeLa cells which we collected ourselves. They are not yet available online but hopefully will be soon.
We used 4 NVIDIA RTX 4090 GPUs for most processing steps.
At the onset the data in this example consisted of just tilt series and mdocs (we did not use the gain references). Pixel size was 1.56 Å/px, dose 4.6 e-/Ų per tilt (150 e-/A² total), dose-symmetric tilt series of ±45° with 3° increments.
project_root/
├── frames/ # 621 x 31 = 19282 .tif files
│ ├── 250531_l1p1_001_-10.0_20250531_093402.tif
│ ├── 250531_l1p1_001_-7.0_20250531_093438.tif
│ └── ...
└── mdocs/ # 621 .mdoc files
├── 250531_l1p1.mdoc
├── 250531_l1p1_2.mdoc
└── ...
Step 1: tomogram reconstruction
easymode reconstruct --frames frames --mdocs mdocs --apix 1.56 --dose 4.6 --no_halfmaps
warp_tiltseries/reconstruction/.
Step 2: tomogram denoising
easymode denoise --data warp_tiltseries/reconstruction --output warp_tiltseries/reconstruction/denoised --mode direct --method n2n --gpu 0,1,2,3
warp_tiltseries/reconstruction/denoised/.
Step 3: microtubule segmentation
easymode segment microtubule --data warp_tiltseries/reconstruction/denoised --output segmented --gpu 0,1,2,3
Step 4: vectorizing microtubule instances & generating coordinates
easymode pick microtubule --data segmented --output vectors/microtubule --length 1000 --spacing 200 --per_filament
We then pooled all particles found in filaments that clearly had 13 protofilaments and a consistent polarity (rotating the angles by 180 degrees for those particles that were inverted relative to the reference). This yielded ~3800 particles, which were roughly aligned. We exported these at 5 Å/px using WarpTools ts_export_particles, ran a Relion5 Refine3D job which quickly reached ~10 Å resolution.
Finally, we used ChimeraX and the 10 Å average to position 13 cropped alpha beta tubulin monomers in the map, sampled the translation and orientation of each monomer relative to the center of the full map, applied the resulting transformation matrices to the .star file (generating 13 new particles for each original 1 particle), and ran refinement in M. This reached 4.6 Å.

Note
It should be possible, even relatively straightforward, to average all particles at once rather than doing per-filament subtomogram averaging first. For instance, running a single Relion5 Refine3D job with 30° of freedom around the prior gives a well aligned mixed-polarity average. Next, a 3D classification with 2 classes works well to separate the two polarities (especially when enforcing a C13 symmetry - which is not good for final averaging, but does help to accentuate the polarity in the microtubule cross-sections). Finally, correcting for the opposing polarities and pooling both classes should allow for averaging to decent resolution; we got to 8 Å this way in M but then got stuck. Perhaps another round of classification, using 12-, 13-, and 14-protofilament references, would have helped to sort out the particles at that point; but by then we had already had more success with the somewhat awkward per-filament averaging approach.