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.
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.
On Jun 24, 2024, at 06:59, Paris Watson <paris....@be-labs.org> wrote:
To view this discussion on the web visit https://groups.google.com/d/msgid/warp-em/c96c5f8e-0981-4526-82eb-561cb73fcd7en%40googlegroups.com.

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()
To view this discussion on the web visit https://groups.google.com/d/msgid/warp-em/1c13a24e-1580-4b60-a65a-8cd5e63bff0en%40googlegroups.com.