行为神经科学研究利器 | FiPhA:光纤光度分析开源平台

摘要

意义:光纤光度法(FP)是现代行为神经科学中广泛使用的技术,利用基因编码荧光传感器监测清醒行为动物的神经活动和神经递质。然而,分析光度数据既费力又耗时。

目的:本研究提出了一种通用的FP分析应用——光纤光度分析(FiPhA)。目标是开发一种适用于各种光度测量方法的管道,包括光谱分辨、基于相机和锁相解调等。

方法:FiPhA使用R Shiny框架开发,并提供交互式可视化、质量控制和批处理功能的用户友好界面。

结果:该应用程序简化和优化了分析流程,从而减少了人力和时间需求。它提供了交互式可视化、事件触发平均处理、事件过滤以及质量控制功能。

结论:FiPhA对于处理离散、基于事件的FP数据的行为神经科学家来说是一个有价值的工具。该工具解决了分析此类数据相关的挑战,并提供了一个稳健且用户友好的解决方案,无需手动设计定制分析管道。因此,该应用程序有助于标准化FP分析方法。

引言

监测自由移动动物大脑中的神经传递对于了解实时神经元活动和特定行为事件的相关性至关重要。确定这种关系有助于阐明不同脑区的潜在回路,以及这些回路如何受到各种毒素、疾病等的影响。光纤光度法(FP)是一种监测神经传递的方法,即通过检测细胞群或脑区内的大量荧光信号来记录细胞活动的光学技术。利用病毒载体或转基因方法在细胞体或轴突末梢处对细胞进行荧光标记。虽然FP最初是作为一种测量细胞钙成像的工具而开发,但最近已将其用于检测特定神经递质与荧光标记的突触后受体的结合。由于植入式光学探针和轻质光纤相对较小,FP也可以同时记录多个脑区。

近年来,光纤光度法(FP)在神经科学中的应用越来越广泛,研究人员主要依赖锁相解调系统(例如Tucker David Technology(TDT)光纤测量系统)或其他定制设置。这些系统产生了大量的数据,通常使用自定义的MATLAB或Python脚本进行分析。此后,开发了一些开源测量工具和分析软件包,适用于所有主要操作系统和常用编程语言。这些软件包有助于标准化FP分析,但存在以下问题:(1)这些软件包针对锁相解调系统进行了优化,对其他系统的支持有限或根本不支持;(2)它们可以通过晶体管-晶体管逻辑(TTL)脉冲轻松分析刺激触发事件(例如声音、光线、电击和饮水),但需要额外的数据预处理来分析那些不容易通过TTL脉冲触发的事件(例如冻结、跑轮、梳理、旋转、直立等)。

本研究提出了光纤光度分析(FiPhA)应用程序,使研究人员能够在同一用户界面中分析行为数据和FP数据。FiPhA允许用户导入多种数据格式。本研究已经验证了FiPhA可以分析来自锁相解调系统(TDT光纤测量系统)、相机系统(Plexon多波长光纤测量系统)和光谱分辨系统的数据,允许用户灵活定义事件和感兴趣间隔期间的荧光活动。FiPhA还可以轻松整合使用商业系统收集的行为数据,其优势在于所有这些数据集在导入应用程序之前几乎不需要预处理。此外,FiPhA不仅可以快速对齐行为和FP数据,还可以提供美观的视觉效果。因此,FiPhA的出现有助于标准化FP分析方法。

FiPhA概述

FiPhA是使用RStudio(v2022.x)和R(v4.2.x)开发的。它使用Shiny框架来提供用户界面功能,并使用Plotly包来实现交互式数据可视化。

使用FiPhA应用程序联合分析行为和光度数据的管道如图1所示。该管道包含用于同时分析行为和光度数据的常见步骤,如数据预处理、创建事件触发均值、过滤行为事件以及执行各种数据分析任务。分析功能包括计算事件触发均值、事件间隔的汇总统计及其在箱形图中的可视化,以及以热图的形式描绘事件随时间变化的荧光活动。这些数据可以保存为“.rds”文件以备将来分析,事件触发均值的分析结果则可以导出为“.xlsx”文件。

图片

图1.使用FiPhA进行分析的典型工作流。

数据集

导入记录数据

在FP实验中,实验人员通常使用不同的软件包收集光度测量信号和行为追踪数据。但FiPhA应用程序允许从各种格式(.xlsx、.csv、.txt、.tsq等)导入数据。

光谱分辨光度导入

在分析之前,使用光谱分辨光度系统收集的光度信号必须应用线性解混算法或基于“summary statistic”选项进行分解,以便对感兴趣的信号进行识别。当使用具有重叠发射光谱的荧光团时,可以使用用户定义的波长范围进行最佳信号识别(图2)。FiPhA简化了线性解混步骤,允许导入原始光谱仪文件,设置所选波长行、数据行和采集频率,以及在单个界面中导入特定的光谱仪参考文件。该光谱仪参考文件包含了与实验中收集的荧光信号波长对应的标准荧光光谱。

图片

图2.使用光谱分辨光度系统收集的数据的导入选项。

“summary statistic”选项允许通过应用汇总函数(即曲线下面积、平均值和中位数)创建用户指定波长范围的两个荧光信号的比率,然后自动进行信号去趋势处理。接下来,可以在“datasets”视图的“preview”选项中绘制光谱和行为数据。

锁相解调和相机光度导入

从锁相解调系统(例如TDT光纤测量系统)收集的数据通常以“.tsq”或“.tev”格式保存,可以使用“import”选项卡下拉菜单中的“fiber photometry Gizmo”将其导入FiPhA应用程序。用户可通过“available streams”下拉菜单选择目标目录和所需的荧光通道来指定“.tsq”或“.tev”文件。

一些光纤光度采集系统会将原始数据保存为“xlsx”或“csv”格式的表格数据集。可以使用“import”选项卡下拉菜单中的“tabular dataset”功能将其导入FiPhA应用程序。若使用此功能,需要指定标题行号、数据行号、采集频率和工作簿编号。然后使用“datasets”视图中的“preview”选项卡可视化数据。

使用FiPhA应用程序的先前分析会话可以保存为“.rds”文件,并使用下拉菜单中的“previous session”导入选项重新导入。

预览

将数据导入FiPhA应用程序后,可以在“preview”选项卡中观察记录。然后,添加其他记录只需选择另一个要导入的记录即可,并且这些记录作为列表显示在顶部下拉菜单下。在“preview”选项卡中,记录时间通常呈现在X轴上,但可以在左侧下拉菜单中进行更改。在右侧下拉菜单中可以进行Y轴的操作。使用左右Y轴可以同时查看两个数据集。

信号分析

可以使用“signal analysis”选项卡对给定记录的连续变量进行信号分析和周期成分研究。选择数据集后将生成滞后自相关图、功率谱和频谱图,并提供自定义结果图形的选项(见图3)。滞后-N自相关是信号与其延迟(N个时间点)之间的相关性度量,而功率谱和频谱图能够可视化构成信号的整体单个频率以及这些频率随时间的变化。尽管FP数据是一个慢信号,通常以25-30Hz的频率进行采集,但频谱分析可以揭示在Nyquist频率(大约12-15Hz)或以下的振荡信息。这包括一些重要的频率,如表示慢波睡眠的δ波。

图片

图3.信号分析选项:滞后自相关、功率谱和频谱图。

转换

在导入数据集后,可以将记录与来自外部硬件的其他数据集(例如从视频录像中提取的行为信息)相结合。此功能可在“transform”菜单下找到。对于起始时间不同或以不同采集频率记录的数据集,可以通过最近邻采样行为数据集并将生成的数据连接为新列来进行对齐。

在“transform”菜单下,还可以进行其他操作,包括添加两个数据集(逐行)、重命名数据集或其任何组成变量,以及计算两个数据集变量的比率。在处理大型数据集时,可以同时应用低通滤波器和降采样操作。此外,还可以应用线性缩放转换以调整变量大小,这是重新创建“稳健z比分数”转换的必要步骤。

光漂白/光交换是FP实验中常见的现象,即荧光活性随时间减弱(图4a)。为了解释这种效应,可以使用“detrending”转换选项下的线性或指数模型将活性建模为时间的递减函数。模型参数可以手动指定,也可以使用最小二乘拟合和模型残差估计。然后可以使用去趋势荧光活性(通过从原始值中减去模型的预测值来计算)进行后续分析。使用“create ratio”转换选项可以创建去趋势变量的比率,并在“dataset preview”选项卡中可视化信号(图4)。

图片

图4.等吸收点导入和光漂白/光交换校正。

自定义脚本

熟悉R编程语言的用户可以选择在事件检测之前对导入的数据集进行自定义转换。对话框提供了一个文本字段,供用户在已经设置好的环境中执行代码片段,该环境将数据集作为“data.table”对象进行管理,这是R中标准“data.frame”类的扩展。所做的任何转换都将应用于导入的数据集中。此功能允许在FiPhA工作流中执行其他复杂操作。

事件

二值化、分箱和峰值事件

二值化事件。可以利用数据集中的二进制(类似TTL)指示变量来定义一个事件序列。这类事件对应于从每个上升沿(0到1)过渡到下一个下降沿(1到0)的连续周期。还可以使用反向类型,它执行相同的识别策略,但使用指定变量的逻辑补码。

分箱事件。在某些实验设置中,可能需要将时间序列划分为大小相等的箱,用于峰值计数等任务。该类型由起始时间t和区间长度L参数化。从t开始,每个长度为L的连续区间对应一个新事件。

峰值事件。可以使用峰值检测方法来识别事件,该方法使用长度为L的移动窗口来识别连续变量中超过用户定义阈值的时段。

时间戳事件。对于某些实验设置,使用相同数据集中的变量可能无法恰当地描述事件。在这种情况下,FiPhA允许用户手动输入一组与所需事件相对应的开始/结束时间戳(图5a)。

图片

图5.老鼠听到五种不同音调的事件触发均值。

标准化

FiPhA应用程序根据信号的分布特性提供了三种标准化方法的选择(图5b)。

Z分数。Z分数是用观测值减去感兴趣区间的均值,然后将所得结果除以标准差来计算。这种标准化方法最适用于符合正态分布且不相关的观测值。

ΔF/F。该标准化方法常用于处理FP数据,它表示强度相对于基线期的变化百分比。由于平均值可能对较大值敏感,所以ΔF/F标准化可能不适用于有噪声的信号。

稳健z比分数。通过从观测值中减去感兴趣区间强度变化的中值百分比,并除以中值绝对偏差,可以计算出更稳健的z分数。这种方法对异常观测值不太敏感,但由于其参考期不再以零为中心,因而可能难以解释。

自定义过滤器

通过指定返回逻辑值的有效R表达式(例如,‘(time)’ < 360 & cond == T),可以对数据集中的潜在事件进行条件约束。此外,事件序列定义还可以包括其他过滤器,它们根据信号类型依次修改潜在事件列表。

自定义间隔时间

感兴趣的时间间隔可以在表格中手动指定,其中每个条目指定了名称、参考点以及相对于参考点的起始/结束时间。可用的选项包括事件信号的开始、事件信号的结束、原始事件信号本身,或者通过调整时间间隔的起始时间来确保不会与先前事件或其间隔发生重叠的“起始”时间。

分析

FiPhA中的“analysis”选项使用户能够创建已处理事件序列的几种不同可视化。每个图都突出显示了数据的不同特征,使用户能够在多种不同背景下分析事件(图6)。

图片

图6.用于查看事件触发均值的数据分析选项。

事件热图

在“analysis”选项卡下生成已处理事件的热图。事件被对齐,使得它们的事件信号都从时间零开始,并可根据顺序、总长度或在完整事件或两个指定点之间的曲线下面积对事件进行排序(图6b)。

数据集跟踪(Dataset traces)

同样,可以使用“analysis”选项卡可视化平均事件响应。对于给定的数据集,可以同时绘制多个事件序列。

间隔汇总

在“analysis”选项卡下可以找到包含多个数据集和事件序列中事件间隔汇总值的箱线图。除了平均区间值,还可以绘制中值区间值,以及每个事件的两个时间点之间的曲线下面积值(图6c)。

导出

FiPhA中的“export”选项允许生成包含所有处理过的事件数据的Excel表。包含对应于每个数据集和每个事件列的单独选项卡。还可以包含响应变量名、间隔标签和大量时间戳。可以按时间或间隔类型跨事件对结果列进行对齐,以便于在Excel中比较事件。也可以将活动会话保存为R对象,然后可以在R中重新导入或操作该对象,而无需使用FiPhA(图7)。

图片

图7.FiPhA应用程序中的各种导出选项。

结论

总体而言,FiPhA是一个开源、灵活且多用途的FP分析工具。它与各种光度测量系统数据类型兼容,并且具备强大的可视化工具,支持自定义事件和过滤。虽然最初开发FiPhA是为了提供一种集成的光谱分辨FP方法,但为使其广泛适用于各种光度测定方法和数据格式,研究者付出了大量努力。未来的发展方向包括计划开发一个独立的R包,允许将FiPhA的功能集成到用户脚本中,而不需要Shiny应用程序的交互性。同时,还计划发布可执行格式的FiPhA版本,这对那些不熟悉R和RStudio的人来说将更加友好。此外,研究者将根据社区的需求扩展功能,并提供相应教程和培训,以帮助研究人员更好地利用FiPhA进行光度测量分析。

参考文献:Matthew F. Bridge, Leslie R. Wilson, Sambit Panda, Korey D. Stevanovic, Ayland C. Letsinger, Sandra McBride, and Jesse D. Cushman “FiPhA: an open-source platform for fiber photometry analysis,” Neurophotonics 11(1), 014305, 2024. DOI: 10.1117/1.NPh.11.1.014305

小伙伴们关注茗创科技,将第一时间收到精彩内容推送哦~

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/648530.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

n7. 图

1.定义 图的每个结构之间有着某种关系。 六度空间理论等&#xff1b; 1.1引子&#xff1a; 最短路径问题 1.2什么是图 表示一种多对多的关系 线性关系表示的是一对一的关系&#xff0c;树表示的是一对多的关系。其实线性表和树其实都可以认为是图的一种特殊的情况。包含&am…

一种改进的形态学滤波算法-以心电信号的基线校正和噪声抑制为例(MATLAB环境)

信号在釆集和传输过程中难免受到噪声源的干扰&#xff0c;反映非线性动力学行为的特征信息有可能被噪声所掩盖。尤其是在混沌振动信号噪声抑制方面&#xff0c;因为混沌信号的高度非线性及宽频特性&#xff0c;噪声和混沌信号往往具有重叠的带宽。传统的时域及频域降噪方法效果…

【设计模式】JAVA Design Patterns——Data Access Object(数据访问对象模式)

&#x1f50d;目的 对象为某种类型的数据库或其他持久性机制提供了抽象接口。 &#x1f50d;解释 真实世界例子 有一组客户数据需要持久化到数据库中。 我们需要整个额外的增删改查操作以便操作客户数据。 通俗描述 DAO是我们通过基本持久性机制提供的接口。 维基百科 在计算机…

第七届数字峰会即将举行!正宇软件助力数字赋能社会发展!

据人民日报消息&#xff0c;由国家发展改革委、国家数据局、国家网信办、科技部、国务院国资委、福建省人民政府共同主办&#xff0c;福州市人民政府和相关单位承办的“第七届数字中国建设峰会”&#xff0c;将于5月24日至25日在福建省福州市举行&#xff0c;主题是“释放数据要…

事务报错没有显示回滚导致DDL阻塞引发的问题

在业务开发过程中&#xff0c;显示的开启事务并且在事务处理过程中对不同的情况进行显示的COMMIT或ROLLBACK&#xff0c;这是一个完整数据库事务处理的闭环过程。 这种在应用开发逻辑层面去handle的事务执行的结果&#xff0c;既确保了事务操作的数据完整性&#xff0c;又遵循了…

C++:单例模型、强制类型转换

目录 特殊类的设计不能被拷贝的类实现一个类&#xff0c;只能在堆上实例化的对象实现一个类&#xff0c;只能在栈上实例化的对象不能被继承的类 单例模式饿汉模式懒汉模式饿汉模式与懒汉模式的对比饿汉优缺点懒汉优缺点懒汉模式简化版本&#xff08;C11&#xff09; 单例释放问…

速看!打造专属数字化能力模型的七大关键!

在数字化浪潮中&#xff0c;企业如何打造适应自身发展的数字化能力模型&#xff1f;这是许多企业面临的重要课题。今天&#xff0c;通过众多企业使用蚓链数字化生态解决方案实践总结&#xff0c;为大家分享至关重要的七大经验&#xff0c;助你开启数字化转型之旅&#xff01; 1…

栈和队列OJ题详解

一.有效的括号&#xff1a; 20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 首先拿到这个题目&#xff0c;我的第一个思路是利用双指针来走&#xff0c;看看是不是匹配的 但是这种情况就把双指针的这个思路直接pass了&#xff0c;明明是匹配的括号&#xff0c;用双指…

protobuf学习

学习了下protobuf这个工具&#xff0c;可以用来序列化数据结构&#xff0c;而且效率很高&#xff0c;数据可以压缩的更小。 记录下&#xff0c;我这里主要在C#里使用&#xff0c;从NuGet程序包安装以下两个 安装好后可以在该程序目录找到 packages\Google.Protobuf.Tools.3.26.…

【计算机毕业设计】安卓054基于Android校园助手

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

离线强化学习基础知识之offline MBRL和MFRL

1 离线强化学习介绍 离线强化学习&#xff08;也称为批量强化学习或完全脱策略强化学习&#xff09;仅依赖于先前收集的数据集&#xff0c;无需进一步交互。它提供了一种利用先前收集的数据集的方法以自动学习决策策略。 离线强化学习可以被定义为 data-driven 形式的强化学习…

一篇文章讲透排序算法之堆排序

1.前言 在学习这篇文章之前&#xff0c;请大家先学习堆这一数据结构中堆的概念&#xff0c;向下调整算法&#xff0c;向下调整建堆。 有关堆的实现方式请参考&#xff1a;堆的实现 堆排序就是利用堆里面学习过的知识点进行排序&#xff0c;如何进行排序呢&#xff1f; 2.堆…

拓扑排序(概念 + 模板 + 例题)

概念 : 拓扑排序只有有向图有 &#xff0c; 可以判断图中是否有环 ; Kahn(卡恩)算法 过程 : 模板 : vector<int> a[N] , res ; int d[N] ; // 存放每个结点的入度 int n , x ;bool toposort() {queue<int> q;for(int i 1; i < n; i) if(d[i] 0) q.push…

python中GUI之tkinter 模块

目录 1.tkinter 模块使用 tkinter 介绍 创建一个简单的 GUI 给窗口添加小构件 小构件种类 小构件参数说明 查看某个小构件的所有方法和属性 常用小构件用法 Button&#xff1a;按钮用法 Label&#xff1a;标签用法 Radiobutton&#xff1a;单选按钮用法 Checkbutto…

月薪5万是怎样谈的?

知识星球&#xff08;星球名&#xff1a;芯片制造与封测技术社区&#xff0c;星球号&#xff1a;63559049&#xff09;里的学员问&#xff1a;目前是晶圆厂的PE&#xff0c;但是想跳槽谈了几次薪水&#xff0c;都没法有大幅度的增长&#xff0c;该怎么办&#xff1f;“学得文武…

JavaWeb 请求响应路径调试

在使用mvc时&#xff0c;或许会遇到请求的页面响应不了&#xff0c;这种情况要对站下径。 站点根目录 启动服务器时&#xff0c;通常要知道哪个是站点根目录。相应在网页端的url的跟站点通常为http://localhost:8080/ &#xff0c;前端解析时用的是站点根目录。 <form act…

RT-Thread更改msh串口波特率

修改rt-thread文件下components下dirvers下serial.h文件里 #define RT_SERIAL_CONFIG_DEFAULT 里的默认波特率即可

这方法真牛B!论文降重从81%直降1.9%

目录 一、万字论文&#xff0c;从0到1&#xff0c;只需1小时二、获取途径三、论文从81&#xff05;降到1.9&#xff05;四、内容是别人的&#xff0c;话是自己的五、AI工具 --> 中文论文降重六、论文降重小技巧 一、万字论文&#xff0c;从0到1&#xff0c;只需1小时 通过O…

ROS2入门21讲__第20讲__RQT:模块化可视化工具

目录 前言 rqt介绍 日志显示 图像显示 发布话题数据/调用服务请求 绘制数据曲线 数据包管理 节点可视化 前言 ROS中的Rviz功能已经很强大了&#xff0c;不过有些场景下&#xff0c;我们可能更需要一些简单的模块化的可视化工具&#xff0c;比如只显示一个摄像头的图像…

INTERCONNECT模块中的 Circuit Layout Editor

INTERCONNECT模块中的 Circuit Layout Editor 正文 正文 打开 INTERCONNECT 模块后的工作界面如下&#xff1a; 我们可以通过 View->Windows 选取我们需要的工具窗口。 当然&#xff0c;用户也可以自己手动重新规划各个窗口的位置&#xff0c;但是此处&#xff0c;我们保…