# CNMFE¶

Perform CNMFE using the implementation provided by the CaImAn library.

I highly recommend going through the following before using this module

Parameters

Please see the CaImAn demo notebook mentioned above to understand the parameters.

Ain: Seed spatial components from another CNMFE item by entering its UUID here.

## Usage¶

This module creates two types of batch items, one where you can inspect the Correlation & PNR images and another that performs CNMFE and extracts components. Here is an outline of typical usage:

• Enter a gSig parameter value and a name for “Inspect Correlation and PNR”, the text entry for “Stop here”. Click “Add to batch”. Run the batch item.
• Double-click the batch item, you will be presented with a GUI to help optimize min_corr and min_pnr. For the correlation image use the vmin slider to optimize the seperation of cells and set the min_corr parameter to this value. Likewise, optimize the value for the PNR until the PNR image mostly contains regions that show real signal and no or few regions that are likely to be just noise and set this vmin value as the min_pnr parameter. You may need to try slightly different variations to optimize the parameters.
• Enter the rest of the parameters and give a name under “Perform CNMF-E”, click “Add to batch” and run the item.
• Double-click the batch item and you will be presented with 3 options. The first option will display the correlation-pnr images and the second option is currently non-functional (matplotlib Qt issue). The last option will import the components extracted by CNMFE into an open Viewer. The components are managed by the ROI Manager.

ROI Manager

This modules uses the Batch Manager.

Note

The parameters used for CNMFE are stored in the work environment of the viewer and this log is carried over and saved in Project Samples as well. To see the parameters that were used for CNMFE in the viewer, execute get_workEnv().history_trace in the viewer console and look for the ‘cnmfe’ entry.

## Script Usage¶

A script can be used to add CNMFE batch items. This is much faster than using the GUI.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 # Get the batch manager bm = get_batch_manager() # Get the CNMFE module cnmfe_mod = get_module('cnmfe', hide=True) # Start index to start processing the new items after they have been added start_ix = bm.df.index.size + 1 for ix, r in bm.df.iterrows(): if ix == start_ix: break # Get the name of the mot cor item name = r['name'] # Load the output of the motion corrected batch item # The output will load into the viewer that this script # is running in. bm.load_item_output(module='caiman_motion_correction', viewers=viewer, UUID=r['uuid']) # Get the currently set params # You just need the dict with all the correct keys # You will just modify the "gSig" and "name_corr_pnr" keys params = cnmfe_mod.get_params() # Set the gSig and name params params['gSig'] = 8 params['name_corr_pnr'] = name # Set the params and add to batch cnmfe_mod.set_params(params) cnmfe_mod.add_to_batch_corr_pnr() # Another variant of params # Set the gSig and name params params['gSig'] = 10 params['name_corr_pnr'] = name # Set the params and add to batch cnmfe_mod.set_params(params) cnmfe_mod.add_to_batch_corr_pnr() # Cleanup the work environment vi._clear_workEnv() # Start the batch from the start_ix bm.process_batch(start_ix, clear_viewers=True)