GithubHelp home page GithubHelp logo

novayang1112 / treadmilling-speed-analysis Goto Github PK

View Code? Open in Web Editor NEW

This project forked from paulocaldas/treadmilling-speed-analysis

0.0 1.0 0.0 14.5 MB

Automated image analysis protocol to quantify the velocities of dynamic protein filaments

License: GNU General Public License v3.0

Python 13.61% Jupyter Notebook 86.39%

treadmilling-speed-analysis's Introduction

Treadmilling-Speed-Analysis

Automated image analysis protocol to quantify the velocities of dynamic protein filaments

The workflow of this protocol to analyze filament polymerization dynamics starts from time lapse movies of evenly labeled treadmilling protein filament networks, followed by three computational steps:

(i) Extraction: generation of dynamic fluorescent speckles by image subtraction;
(ii) Tracking: detection and tracking fluorescent speckles to build treadmilling trajectories
(iii) Tracking Analysis: analysis of trajectories to quantify velocity and directionality of filaments

All these algorithms use simple open-source tools (ImageJ plugins and python scripts) and can be applied for a single time-lapse movie or for multiple files at once in batch processing mode. This creates a highly time-efficient routine to identify and track hundreds of speckles at once.

(A) Extraction
Construction of differential image stacks to create fluorescent speckles (ImageJ macro)

To extract dynamic information from filament networks, this protocol uses a background subtraction method based on image subtraction intensity. By subtracting the intensity of two consecutive frames, motionless objects produce dark pixels while positive and negative intensity differences correspond to fluorescent material being added or removed at a given position, respectively. When applying this procedure to an image sequence, we create a new time-lapse movie containing moving fluorescent speckles, corresponding to growing and shrinking filament ends within the bundles. Accordingly, this process allows to visualize and quantify polymerization as well as depolymerization rates.

Since simple image subtraction is susceptible to noise and can generate stretched speckles when sample acquirement rates are not ideal, we incorporated a pre-processing step where a spatiotemporal low-pass filter is applied prior to image subtraction (3D Gaussian filter). The extent of the spatiotemporal smoothing is defined by σ_xy and σ_t and should be tuned through trial and error until speckles with a good signal-to-noise ratio are created: σ_xy is relative to the size of the object of interest (in pixels) and σ_t to the frame rate. This step not only removes acquisition noise, but also increases the temporal coherence of speckle trajectories, improving the quality of the detection and tracking procedure in the next step.

extract_growth_shrink.py computes growth and shrinkage speckles of a single time-lapse movie
extract_growth_shrink_batch.py computes growth and shrinkage speckles of mutiple files at once

(B) Tracking
Tracking the motion of the fluorescent speckles using TrackMate in Batch (ImageJ macro)

Here, we take advantage of TrackMate for particle detection and tracking of the fluorescent speckles. Reconstructed trajectories from the identified spatial positions in time can be further analyzed to retrieve quantitative information about the type of behavior (e.g. directed or diffusive motion), diffusion constant, velocity or lifetime of the particles, as well as the length of trajectories. On a first approach to this routine, TrackMate GUI should be used to identify the optimal parameters for detecting, tracking and linking the trajectories of the particles. Once the parameters for a given experimental setup are defined, the Trackmate protocol can be applied to multiple time-lapse movies simultaneously with our ImageJ macro.

track_growth_shrink.py opens an interactive window to run TracMate without GUI
track_growth_shrink_batch.py opens an interactive window to run TracMate for several files at once

(C) Tracking_Analysis
Analyze trajectories to quantify velocity and directionality of filaments (Python notebook)

Here, we use the spatiotemporal information of the trajectories obtained from TrackMate to quantify speed and directionality. We compute the mean square displacement (MSD) of the particles and fit all the curves to a quadratic equation containing both a diffusion (D) and a constant squared velocity (𝜈) term. The positive curvature our MSD curves is characteristic of particles moving directionally. To further corroborate the information regarding directed motion, we also compute the velocity autocorrelation function (φ (δt)), where the angle of the normalized displacement vectors are compared pairwise as a function of an increasing time interval (δt). Random motion particles typically show velocity vectors completely uncorrelated with φ = 0 for all δt, while particles with a directed migration display highly correlated velocity vectors (φ > 0) even for larger δt. Our routine to analyze speckle trajectories is implemented in a simple IPython notebook. All imported modules located in the adjacent folder can be edited and adapted according to the each user needs

analyze_tracks.ipynb computes velocity and directionality measurements for a single file or folder (batch)

Illustration of the Differential Image Protocol

alt text

Overall, this approach allowed us to surpass the limitations of using kymographs and only requires widely-used open-source software packages with no need to change the standard time-lapse imaging. Moreover, even though we used this approach to quantitatively characterize growth and shrinkage of in vitro treadmilling FtsZ filaments, we believe this approach is applicable to study the polymerization dynamics of other cytoskeletal systems.

for more details on this approach and reference to our work:
https://www.biorxiv.org/content/10.1101/839571v2

papers using this approach:
Cooperative ordering of treadmilling filaments in cytoskeletal networks of FtsZ and its crosslinker ZapA
https://www.nature.com/articles/s41467-019-13702-4
FtsZ assembles the bacterial cell division machinery by a diffusion-and-capture mechanism
https://www.biorxiv.org/content/10.1101/485656v1

treadmilling-speed-analysis's People

Contributors

paulocaldas avatar sommerc avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.