-
|
Hello! I have come back with some more questions. I have been trying to use the measure_distances_orientations.py program, but I am not sure of what are some of the output values, so I would appreciate your help with clarification. For instance is the self_dist_min and self_dist_far values measured both along the normal vector and its inverse, like you explain in your paper? Then what do the self_id_min/far mean here? I assume the xyz_x etc is the coordinate of a given triangle vertex, and n_v_x are the direction of the voted normal vectors? What are t_v, t_1 and t_2? I am sorry if these are very basic questions! Another question has more to do with the specifics of my data that your software, but since I have a lot of not connected thylakoid membranes the normals are not consistently oriented - ie, for one thylakoid membrane the normals will point into the lumen and for another outwardly. I was wondering if you had any advice on how I could potentially selectively re-orient the normals? I have been trying to use paraview to extract individual membranes and flip the normals using filters, but with no success so far. My current idea was to extract the surfaces with wrong normals into a separate vtp file and then use them as a mask to flip the normals by multiplying them by -1 using pyvista, but I wonder if there is an easier way to do it. Do you have any experience with having to re-orient normals for your data? Best wishes, Sabina |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 3 replies
-
|
Hi Sabina, For the first question: self_dist_min and self_dist_far refer to the two distances in either normal direction, and are ordered by whichever is closer, rather than by any true direction, since we don't have canonical inside and outside for our surfaces (we have some ideas about this but so far nothing working perfectly). self_id_min and self_id_far refer to the triangle id of the nearest triangle in each direction. xyz_x is the x axis location of the triangle, and n_v_x is the x component of the tensor-voted normal vector, as you assumed. t_v, t_1, t_2 are tangent vectors. t_1 and t_2 are the tangent directions of the two principal component of curvature, while t_v is the "estimated tangent vector" corresponding to the normal vectors. Where normal vectors are at 90º to the surface, the t_v is the voted tangent directly along the surface. Your question touches on one of canonical inside/outside, which in non-water-tight surfaces (like anything with a missing wedge!) cannot be perfectly determined. So far, the most consistent strategy we have found is to particle pick a protein that is know to have preference for one side vs the other - maybe PSII for thylakoids? We use atp synthase in mitochondria. You can then assert the orientation to be the one that points the normals at the most nearby particles. That is (more or less) what we did for Figure 5 of our recent manuscript where we measure linescans corresponding to proteins. You could also try filtering by direction to the nearest other surface - for mitochondria where you have a consistent inner boundary membrane, this works quite well. It is not as consistent in highly multi-layer thylakoids, I imagine. You also can break down into individual components in meshlab or using the label_components property in the triangle graph in our software, then flip individual surfaces manually - but it brings up the question of how you as an expert can tell which direction is which? Thanks, |
Beta Was this translation helpful? Give feedback.
-
|
@hemanthkapa It would be great to assemble a documentation describing the meaning of every feature in the graph and VTP/CSV files - summer project! |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for such a quick response and clarification. Re-orienting the normals - fortunately it is quite clear in my sample where is the inside and outside. Thank you for the advice, I might try a few of these approaches to see what works best. I just wanted to ask for further clarification - what do you mean by label_components property? I tried to search for it in this repository, do you mean a different software? |
Beta Was this translation helpful? Give feedback.
Hi Sabina,
For the first question: self_dist_min and self_dist_far refer to the two distances in either normal direction, and are ordered by whichever is closer, rather than by any true direction, since we don't have canonical inside and outside for our surfaces (we have some ideas about this but so far nothing working perfectly). self_id_min and self_id_far refer to the triangle id of the nearest triangle in each direction.
xyz_x is the x axis location of the triangle, and n_v_x is the x component of the tensor-voted normal vector, as you assumed.
t_v, t_1, t_2 are tangent vectors. t_1 and t_2 are the tangent directions of the two principal component of curvature, while t_v is the "estim…