jnormcorre¶
jnormcorre is a jax-accelerated implementation of the normcorre motion correction algorithm. The motivation for designing this tool is to allow users to process big neuroimaging data – large FOV, high frame rate – as efficiently as possible on a variety of platforms (CPUs/GPUs/TPUs). By leveraging just-in-time compilation and vectorization, jnormcorre allows for much faster processing of neuroimaging data on any platform, but is especially fast on GPUs/TPUs.
This software accompanies the following paper: maskNMF
Use Cases¶
Here are some of the common use cases/features supported by jnormcorre.
- End-to-end offline analysis:
You’ve collected a dataset and want to motion correct and save out the results as a new file.
- Custom template alignment:
You have a good template already and want to align data to this template. Maybe you computed this template using existing functional imaging data (i.e. data from early in the imaging session) or using different info altogether (i.e. structural imaging data).
#Construct registration object with your template
import jnormcorre as jnc
frame_corrector_object = jnc.FrameCorrector(template, max_shifts,
strides, overlaps,
max_deviation_rigid, min_mov=0)
#Run registration on your_data
frame_corrector_object.register_frames(your_data, pw_rigid=pw_rigid)
- Real-time alignment:
You have a good template and want to align data to this template in real time. The above code block also supports this case.