Skip to main content

Package for loading and processing fiber photometry data

Project description

fiberphotopy

Code for analyzing fiber photometry data collected on the Doric Fiber Photometery acquisition system.

Import the package as follows:

import fiberphotopy as fp

Installation

The easiest way to install fiberphotopy is with pip.

pip install fiberphotopy

If you are using poetry, you can use the most up-to-date version by cloning the repo and running

make install

Features

Loading data

Whole session data should be stored in a directory and can be loaded like this:

fp.load_session_data(...)
  • Args can be used to modify the name of the signal and reference wavelengths as well as to specify the input channel on the photoreceiver and the output channel for the two excitation LEDs.
  • By default, this function calls trim_ttl_data which looks for a TTL pulse that indicates the start and end of a behavioral session. This is optional and be turned off by setting TTL_trim=False.
  • By default, this function also downsamples the data to 10 Hz. This is controlled by the downsample=True argument and the associated freq argument.
  • By default, this function uses the standard method of motion correction for photometry data. It fits a linear model to the reference channel (e.g., 405nm) to predict the fluoresence in the signal channel (e.g., 465nm). Next, it calculates a dFF as: 100*(Y-Y_pred)/Y_pred
  • By default, the 'Animal' column will be populated with the name of the associated data file. This column can be renamed by creating a dict of {'filename': 'subject_id'} mappings and passed into load_session_data with the subject_dict argument.

Visualizing session data

The entire session can be visualized by running:

fp.plot_fp_session(...)

This generates a two-panel plot. The top panel plot the raw reference and signal fluorescene values on the same plot, and the bottom panel plots the dFF calculated from those reference and signal values.

Trial-level data

These functions have only been tested on auditory fear conditioning experiments (trace or delay FC). Please check the function documentation for more information.

For trace fear condtioning (TFC) experiments, you can get trial-level data by calling

fp.tfc_trials_df(...)
  • This function takes a DataFrame as input (e.g., from load_session_data) and creates a trial-level DataFrame with a new column 'Trial' containing the trial number and 'time_trial' containing a standardized time array for extracting identical events across trials.
  • By default, this function provides two methods of trial-normalized data:
    1. 'dFF_znorm': z-score values computed across the entire trial period.
    2. 'dFF_baseline_norm': baseline-normalized values. Computed as (x - mean(baseline))/std(baseline)

Visualizing trial data

There are 3 main functions to visualize trial-level data:

fp.plot_trial_avg(...)

This will plot the trial-average for the specified yvar. Data is averaged across trials for each subject, and these subject trial-averages are used to calculate the trial-level error for plotting.

fp.plot_trial_indiv(...)

This will generate a figure with m x n subplots. The shape of the figure is controlled with the subplot_params argument to indicate how many rows and columns to use for the figure.

fp.plot_trial_heatmap(...)

This will generate a heatmap of the data across trials. If the input DataFrame contains multiple subjects it will calculate the average values for each time bin before generating the heatmap.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fiberphotopy-0.2.3.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fiberphotopy-0.2.3-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file fiberphotopy-0.2.3.tar.gz.

File metadata

  • Download URL: fiberphotopy-0.2.3.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.10.6 Darwin/22.2.0

File hashes

Hashes for fiberphotopy-0.2.3.tar.gz
Algorithm Hash digest
SHA256 a8f612cf2d71c61389dbcd0460226d35e1889feedbb6cadc14bc7d1b963274f8
MD5 c97d2e894b198524960f0ebef4c0366a
BLAKE2b-256 c0eb1c04fb466c3777699cd3325953c81b481f7aad3eb1dfc722516bcb5a791b

See more details on using hashes here.

File details

Details for the file fiberphotopy-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: fiberphotopy-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.10.6 Darwin/22.2.0

File hashes

Hashes for fiberphotopy-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 deec05f635514782b71570a3e4e77a3638148f332807d4e6c52df0d1be5b92ae
MD5 8e42f5263b0d98316c3f1feb7eaacbb6
BLAKE2b-256 9c348b1ddda55d1e70a74cb170cdc65acaaeacebeab202736a36774df1650d71

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page