Warp pre-rotate function and relion reconstruction

122 views
Skip to first unread message

Paris Watson

unread,
Jun 21, 2024, 11:27:45 AM6/21/24
to Warp
 Hi,I have an inquiry about the prerotate particle function. My current pipeline is to use Warp for preprocessing -> filament picking in Dynamo -> Warp for subtomogram extraction -> Relion 3.1.4.Using filament picking in Dynamo there is information on the orientation of the subtomogram. When I use Warp to extract the subtomograms without using the pre-rotate feature the reconstruction in Relion is not good. But when using the pre-rotate function I get a nice reconstruction. However I believe due to other posts on this forum you shouldn’t use the pre-rotate function because you will lose the particle information when re extracting and you cannot use M.I am unsure where in the pipeline between Warp and Relion the information is being lost so that the reconstruction is bad and was wondering if anyone has any ideas on how to fix this issue.Thank you!

Alister Burt

unread,
Jun 21, 2024, 6:43:23 PM6/21/24
to Paris Watson, Warp
Hi Paris,

The fact that you see a correct reconstruction when using pre-rotated particles tells us that the orientation info is not lost and that the orientations Warp has when it reconstructs particles are good.

I suspect that you aren't passing --3d_rot option to relion_reconstruct so you aren't applying any rotations to the particles.

As you've seen - using pre-rotate is a bad idea :)

Cheers,

Alister



On Fri, 21 Jun 2024 at 08:27, Paris Watson <paris....@be-labs.org> wrote:
 Hi,I have an inquiry about the prerotate particle function. My current pipeline is to use Warp for preprocessing -> filament picking in Dynamo -> Warp for subtomogram extraction -> Relion 3.1.4.Using filament picking in Dynamo there is information on the orientation of the subtomogram. When I use Warp to extract the subtomograms without using the pre-rotate feature the reconstruction in Relion is not good. But when using the pre-rotate function I get a nice reconstruction. However I believe due to other posts on this forum you shouldn’t use the pre-rotate function because you will lose the particle information when re extracting and you cannot use M.I am unsure where in the pipeline between Warp and Relion the information is being lost so that the reconstruction is bad and was wondering if anyone has any ideas on how to fix this issue.Thank you!

--
You received this message because you are subscribed to the Google Groups "Warp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to warp-em+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/warp-em/71404227-75fe-4296-a1c8-16740e451e79n%40googlegroups.com.

Paris Watson

unread,
Jun 24, 2024, 9:58:59 AM6/24/24
to Warp
Hi Alister - thanks for responding. Sorry, I think there was a misunderstanding: I did use --3d_rot with relion_reconstruct. Furthermore, it is when I do use “pre-rotation” that the reconstruction is consistent, and when I do not use it that it is worse. That’s why it’s confusing that in my hands, using pre-rotate does lead to better results than not using it.

Hi Alister - thanks for responding. 

 

Sorry, I think there was a misunderstanding: I did use --3d_rot with relion_reconstruct. Furthermore, it is when I do use “pre-rotate” that the reconstruction is consistent, and when I do not use it that it is worse. That’s why it’s confusing that in my hands, using pre-rotate does lead to better results than not using it.

Alister Burt

unread,
Jun 24, 2024, 10:19:49 AM6/24/24
to Paris Watson, Warp
Can you paste
- the contents of your input and output star files (when not using pre-rotate)
- the command used for reconstruction

Cheers,

Alister

Sent from mobile - apologies for brevity

On Jun 24, 2024, at 06:59, Paris Watson <paris....@be-labs.org> wrote:



Paris Watson

unread,
Jun 24, 2024, 11:17:31 AM6/24/24
to Warp
Hi Alister, 

Attached is the following: 
Dynamo converted to Warp using dyanamo2warp: MCCET_subset_7.89_dynamoaxis.star
Warp output of all tomograms: MCCET_warpsubtomo_254px_7.86.star 
Warp cut to only one tomogram: warp_edited_tomo_31_ts_28.star 

Command used: 
relion_reconstruct --i warp_edited_tomo_31_ts_028.star --o relion_reconstruct_30_ts_28_initialmodel_tomo.star --3d_rot --sym C1 --ctf

Thank you! 
MCCET_subset_7.89_dynamoaxis.star
MCCET_warpsubtomo_254px_7.86.star
warp_edited_tomo_31_ts_028.star

Alister Burt

unread,
Jun 24, 2024, 1:30:16 PM6/24/24
to Paris Watson, Warp
Hi Paris,

I took a quick look at your data and the particles are consistently oriented in the RELION metadata you supplied (red arrows in image below)
image.png
python script used to visualize:
import starfile
import numpy as np
from scipy.spatial.transform import Rotation as R
import napari

df = starfile.read('MCCET_warpsubtomo_254px_7.86.star')

tomogram_ids = df['rlnMicrographName'].unique()
df = df[df['rlnMicrographName'] == tomogram_ids[0]]

xyz = df[['rlnCoordinateX', 'rlnCoordinateY', 'rlnCoordinateZ']].to_numpy()
eulers = df[['rlnAngleRot', 'rlnAngleTilt', 'rlnAnglePsi']].to_numpy()

rotation_matrices = R.from_euler(angles=eulers, seq='ZYZ', degrees=True).inv().as_matrix()
z_vectors = rotation_matrices[:, :, 2]

viewer = napari.Viewer(ndisplay=3)
viewer.add_points(xyz, size=1, face_color='cornflowerblue')
viewer.add_vectors(np.stack([xyz, z_vectors], axis=-2), length=3, edge_width=0.2)
napari.run()

I suspect that you might have missed the 3d_rot option when running relion_reconstruct the first time or overwritten the particle files with pre-rotated subtomograms and reconstructed those with the euler angles from the non-pre-rotated particles

In any case, regenerating your particles without pre-rotating and running relion_reconstruct as you described should give you your coarsely aligned average

Cheers,

Alister

Reply all
Reply to author
Forward
0 new messages