Filament walking

Hi,

I have a dataset of filaments that I traced using the filament tracer. Since they are very flexible and have low symmetry, I’m trying to reconstruct multiple individual segments rather than “solve” the structure in one go. I have a subset of specific positions (let’s call them A) along those filaments, and I used them to refine the structure of position A. I would now like to extract positions along the filaments that are adjacent to A and use them to create a separate dataset, with the hope that it will contain a different point (B) along the filament.

In theory, I guess I could:

  1. Trace the filaments with the appropriate spacing between points.
  2. Identify the closest point to each “A” that is on the same filament using filament/filament_uid and location/center_x/y_frac.
  3. Assume this gives me mostly B and classify the junk out.
    But this feels like a bit of a workaround.

Is there any kind of parameter that is generated by Cryosparc that can make this more straightforward? For example, are picks along a specific filament numbered somehow?

Thanks!
Itai

You can try to use the volume alignment tool, shift the center of particles and re-extract the new particles.

Hi @Itai!

Could you give a bit more detail about what exactly you’re hoping to do? Are A and B simply different positions on the filaments? Or binding partners? Will B always be a certain distance away from A?

I have a few ideas how you might be able to do this (all involving CryoSPARC tools), but some more detail will guide me toward the on i think is most likely to work!

1 Like

Hi!
A and B are just specific (but arbitrarily chosen) points along the filament. Assuming the filaments are straight enough, A and B should always be the same distance from each other.
Itai

I see @Itai, thanks for that additional information! If you have particle positions which correspond to A points, you may be able to use cryosparc-tools to find B positions. Here’s the general process I’d use, applying the below steps to each micrograph:

  1. Load in all particle positions
  2. Filter out just the A subset.
  3. For each A particle:
    a. Add and subtract the A/B offset distance from filament/position_A. This is the position of the particle along the filament contour, in Å. For example, if the filament is 50 Å long and the particle was halfway along the filament, this value would be 25. Note that this does take into account filament curvature.
    b. Find particles which are within some small distance from the offset filament/position_A along the filament, if any. These would be your candidate B particles.

An explanation of all of the filament parameters is available here.

I hope that is helpful! Please let me know if there’s anything else I can clear up for you!