Formatting Particles.star file for helical 3Drefine

75 views
Skip to first unread message

Martin Fernandez

unread,
Dec 19, 2024, 10:21:22 PM12/19/24
to Warp
Hello,

I want to run a filament 3D auto-refine job in relion-5 using 2D particles of filaments extracted using WarpTool's ts_export_particles function. The extraction seems to have ran successfully and generated the required optimization.star and particles.star files. However, the particle.star file doesnt seem to contain all of the column information required to run a helical 3D auto-refine job in relion-5. I say this because when I import a process a tomogram within relion-5 up to the point extracting 2D particle stacks, the particles.star file generated have the following differences from the WarpTools (ts_export_particles) generated particles.star file:

I'll state their main differences by stating (1) the columns present in the WarpTools generated particle.star file that are not present in the Relion5 --tomo generated particle .star, (2) the columns present in the Relion5 --tomo generated particle.star file that are not present in the WarpTools generated particle .star, and (3) the columns shared by both : 

(1) unique to WarpTools generated particle.star: 

_rlnTomoParticleId #2 

This is likely a result of WarpTools exporting these particles as if they are for SPA and not helical analysis. (uncertain)

(2) unique to Relion5 --tomo generated particle.star: 

_rlnHelicalTubeID #2 

this is a unique ID for all particles belonging to a filament. each filament has a unique ID and thus there are subset of particles assigned their respective IDs to link it back to the filament. Alister shared a script on how to incorporate this into a star file, so this is easy to address. 

_rlnHelicalTrackLengthAngst #3

The column seems to stand for "helical track length in angstroms" (i am assuming). so for each particle in a filament in any given tomogram, it tracks the position along the length of the filament that the particle occupies. 

_rlnCenteredCoordinateXAngst #4, _rlnCenteredCoordinateYAngst #5, and _rlnCenteredCoordinateZAngst #6 

the coordinates of any given particle, but its using relion's coordinate system. I think this is completely analogous to the _rlnCoordinateX #3, _rlnCoordinateY #4, and _rlnCoordinateZ #5 columns generated by WarpTools.

 _rlnTomoSubtomogramRot #7 

I have a feeling that the values that are supposed to be in this column are actually the ones in WarpTools's particle.star _rlnAngleRot #6 column. I have no idea why relion5 --tomo would populate this with 90.00. 

_rlnTomoSubtomogramTilt #8 

It seems to follow a similar patter on WarpTool's particle.star _rlnAngleTilt #7 column, though I am uncertain if they are the same thing. 

_rlnTomoSubtomogramPsi #9 

like the previous column, I have a suspicion that this is just the same value from WarpTools's particle.star _rlnAnglePsi #8 column. 

_rlnAngleTiltPrior #13

 _rlnAnglePsiPrior #14 

(3) the columns shared by both: 

_rlnTomoName #1 although both generate this column, the column values generated Relion5 --tomo (example value: TS_007) slightly different from WarpTools (example value: TS_007.tomostar). 

_rlnAngleRot, _rlnAngleTilt, _rlnAnglePsi, _rlnOpticsGroup, _rlnTomoParticleName, _rlnTomoVisibleFrames, _rlnImageName, _rlnOriginXAngst, _rlnOriginYAngst, and _rlnOriginZAngst. 

I've uploaded the full .star files for each so that you can take a look at the data in its entirety. I am aware that some of my assumptions could be incorrect and feel free to correct me if thats the case. 

Anyways, I assume the path forward if I want to successfully run filament 3D auto refine with my 2D particle stack is to modify the particles.star file generated by WarpTools to look like the partciles.star file generated by relion5. This is achievable by writing shell scripts, and I am in the process of writing it. but while I am scripting away, I wanted to ask if there is already existing tools to achieve this kind of .star file restructuring specifically for relion5. I state relion5 because I remember reading a previous post where Alister said the ts_export_output is optimized for relion5, but if anyone recommends using a previous version of relion instead, please guide me on how to do so.

I apologize for the long post and thank you,
Martin.
Relion_particles.star
WarpTools_particles.star

HUGO MUÑOZ HERNÁNDEZ

unread,
Feb 19, 2026, 10:06:33 AM (2 days ago) Feb 19
to Warp

Hi,


I am experiencing a similar issue. Since I have been manually picking filaments by path from Napari-tomslice and converting it to Relion I have lost the Tube ID (information). 


Could someone give guidance on how Alister or you resolved this issue to recover the _rlnHelicalTubeID/_rlnTomoManifoldIndex?


Below the approach that I am following to convert the filament picking from Napary-tomoslide/Warp/Relion:


uvx --python 3.11 --from git+https://github.com/napari-tomoslice/napari-tomoslice.git napari-tomoslice generate-poses paths backbone \
--annotation-directory particles \
--output-star-file poses.star \
--distance_between_particles 8


# Created by the starfile Python package (version 0.5.13) at 13:15:28 on 19/02/2026



data_particles


loop_

_x #1

_y #2

_z #3

_rot #4

_tilt #5

_psi #6

_manifold_id #7

_tilt_series_id #8

39.030396       1159.639526     72.363434       119.656274      90.015616       166.036279      0       stacktilt_007_10.00Apx


uvx --python 3.11 --from git+https://github.com/napari-tomoslice/napari-tomoslice.git napari-tomoslice convert-poses \
--input_file poses.star \
--output_type relion5 \
--output_file relion_poses.star


# Created by the starfile Python package (version 0.5.13) at 13:18:27 on 19/02/2026



data_particles


loop_

_rlnCoordinateX #1

_rlnCoordinateY #2

_rlnCoordinateZ #3

_rlnAngleRot #4

_rlnAngleTilt #5

_rlnAnglePsi #6

_rlnTomoManifoldIndex #7

_rlnTomoName #8

39.030396       1159.639526     72.363434       119.656274      90.015616       166.036279      0       stacktilt_007.tomostar


WarpTools ts_export_particles \

--settings warp_tiltseries.settings \
--input_star relion5_poses.star \
--coords_angpix 2.678 \
--output_star relion/initialparticles.star \
--output_angpix 5. \
--box 104 \
--diameter 400 \
--2d \
--relative_output_paths


data_particles


loop_

_rlnTomoName #1

_rlnTomoParticleId #2

_rlnCoordinateX #3

_rlnCoordinateY #4

_rlnCoordinateZ #5

_rlnAngleRot #6

_rlnAngleTilt #7

_rlnAnglePsi #8

_rlnTomoParticleName #9

_rlnOpticsGroup #10

_rlnImageName #11

_rlnOriginXAngst #12

_rlnOriginYAngst #13

_rlnOriginZAngst #14

_rlnTomoVisibleFrames #15

  stacktilt_007.tomostar    42  178.091  638.874   36.167   119.693   89.359   160.075    stacktilt_007/42   1  ../warp_tiltseries/particleseries/stacktilt_007/stacktilt_007_5.36A_000042.mrcs  0.0  0.0  0.0    [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]

Mart Last

unread,
Feb 20, 2026, 9:27:59 AM (yesterday) Feb 20
to Warp
Hi,

Have a look at this pull request: https://github.com/warpem/warp/pull/433

It introduces a fix to retain all headers in the original star file in the output of WarpTools ts_export_particles. You'll have to download and compile it yourself but chatgpt will help you there :) 
Op donderdag 19 februari 2026 om 15:06:33 UTC schreef h.mu...@gmail.com:
Reply all
Reply to author
Forward
0 new messages