跳到内容

cortex-lab/套房2P

存储库文件导航

Suite2p:快速、准确、完整的双光子管道

注册、细胞检测、尖峰提取和可视化GUI。

中的算法详细信息http://biorxiv.org/content/early/2016/06/30/061507.

IMG公司

该代码由马吕斯·帕奇塔里奥(Marius Pachitariu)、卡森·斯特林格(Carsen Stringer)和cortexlab的成员(肯尼思·哈里斯(Kenneth Harris)和马泰奥·卡兰迪尼(Matteo Carandini))编写。此处提供,无担保。要获得支持,请直接在github上打开问题。

对于代码的python版本,请转到在这里。我们建议使用python代码-文档更好(请参阅维基),图形界面具有更多功能。我们还将停止更新matlab版本。

示例

提供了一个示例数据集(带有master_file和make_db)在这里.

一、引言

这是一条完整的、自动化的管道,用于处理双光子钙成像记录。它简单、快速,并产生大量有效ROI。GUI还提供了点击功能,可以在几分钟内优化结果。该管道包括以下步骤

  1. X-Y亚像素注册:在FFT域中使用改进的相位相关算法和亚像素平移。如果GPU可用,则每1小时以30Hz和512x512分辨率录制20分钟即可完成。

  2. SVD分解:这为细胞检测提供了输入并加速了算法。

  3. 细胞检测:在低维空间中使用聚类方法。聚类算法为识别的每个ROI提供了一个正掩码,并允许掩码之间的重叠。还可以选择执行自动红细胞检测。

  4. 信号提取:默认情况下,在计算每个ROI内的信号时,会丢弃所有重叠像素,以避免使用可能有偏差的“分层”方法。神经膜信号也针对每个ROI独立计算,作为加权像素平均值,从每个ROI周围的大区域汇集,但不包括细胞检测期间分配给ROI的所有像素。

  5. 尖峰反褶积:进一步处理细胞和神经膜痕迹,以获得棘波时间和棘波“振幅”的估计值。振幅与突发/箱中的峰值数量成正比。即使在低信噪比条件下,瞬变可能很难识别,反褶积仍有助于暂时缩小响应。使用(过度)平滑跟踪的最小值对单元格跟踪进行基线化。

  6. Neuropil减法:系数与尖峰反褶积一起迭代估计,以最小化尖峰反卷积的残差。鼓励用户也尝试改变这个系数,以确保任何科学结果都不依赖于它。

  7. 自动和手动管理:可以使用包含的GUI可视化并进一步细化细胞检测算法的输出。GUI旨在使单元格排序成为一种有趣而愉快的体验。它还包括一个自动分类器,该分类器根据用户提供的手动标签逐步完善自身。这使得自动分类器能够适应在不同条件下采集的不同类型的数据。(GUI自述文件https://github.com/cortex-lab/Suite2P/blob/master/gui2P/README.md)

二、。入门

工具箱在Matlab中运行,目前仅支持tiff文件输入。要开始使用工具箱,您需要制作两个包含文件的本地副本(在单独的文件夹中):master_file和make_db。制作这些文件的本地副本很重要,否则更新存储库会覆盖它们(并且您可能会丢失文件)。make_db文件组装了一个实验数据库,您希望对其进行批处理。它还添加了算法所需的特定于每个会话的信息,例如成像平面和通道的数量。master_file设置应用于make_db中包含的所有会话的常规处理选项,除非该选项在make_dbfile中被覆盖。

示例数据库条目

有关更详细的示例,请查看make_db_example。

以下是本地make_db文件中的典型数据库条目,可以在make_db_example之后对其建模。对于expts(k)中的所有条目,假定文件夹结构为RootStorage/mouse_name/date/expts(k)。

i=i+1;db(i).mouse_name=“M150329_MP009”;db(i).date='2015-04-27';db(i).expts=[56];%一起进行哪些实验

其他(隐藏的)选项在make_db_example.m和run_pipeline.m的顶部进行了描述(设置为合理的默认值)。

运行管道

将master_file中的路径更改为指向本地工具箱和数据的路径。然后运行此函数。master_file创建ops0变量和db0变量,并运行主管道:

运行管道(db,ops);

尖峰反褶积

对于峰值反褶积,您需要下载OASIS github(https://github.com/zhoupc/OASIS_matlab)并将计算机上此文件夹的路径添加到master_file的顶部

addpath(genpath(“路径OASIS”))

要运行峰值反褶积(运行管道后),请运行

添加卷积(ops0,db);

对于L0峰值反卷积,您需要运行mex-largeArrayDims SpikeDetection/decovL0.c(或Linux/Mac下的.cpp)。如果您使用的是Windows,则需要安装Visual Studio社区,以便在matlab中使用mex文件。要选择此反褶积方法,请设置

ops0.deconvType=“L0”;

有关选择反褶积方法/参数的更多信息,请参阅本文比较尖峰反褶积法:http://www.biorxiv.org/content/early/2017/06/27/156786

通过调用wrapperDECONV(ops,F,N),您也可以在不运行整个管道的情况下运行峰值反褶积,其中F和N分别是荧光和神经丝轨迹,而ops指定一些反褶聚参数,如采样率和感官衰退时间刻度。有关详细信息,请参阅函数帮助。


下面我们首先描述管道的输出,然后描述设置和自定义管道的选项。重要的是,几乎所有选项都有预先指定的默认值。中指定的任何选项主文件(_F)在ops0中覆盖这些默认值。此外品牌_数据库文件(特定于实验)覆盖masterfile中设置的默认值和选项。这样可以灵活地使用不同的选项处理不同的实验。您需要设置的唯一关键选项是ops0.diameter或db(N).diameter。这为算法提供了记录的规模以及您试图提取的ROI的大小。我们建议在设置直径选项后首次运行管道。根据结果,您可以回来尝试更改其他一些选项。

注意:示例中没有指定某些选项主文件(_F)或示例makedb文件。这些通常是更专业的功能。

三、 输出。

输出是一个名为dat的结构,该结构使用相同的子文件夹结构保存到ResultsSavePath中的mat文件中,其名称格式如下F_M150329_MP009_2015-04-29_平面1它包含整个处理过程中收集的所有信息,并包含Fcell和FcellNeu中的ROI和神经丝轨迹,以及每个ROI j是否为stat(j).iscell中的细胞。stat(j)包含关于每个ROI j的信息,并且可以用于恢复stat.ipix中每个ROI的对应像素。ROI的质心也在stat中指定。以下是重要结果的总结:

单元格轨迹在F单元
神经丝痕迹在FcellNeu公司

未卷积记录道位于服务提供商

上述结构的每个单元都是与db.expts不同的实验。手动,GUI覆盖的“iscell”标签位于stat.iscell(统计信息)

stat(icell)包含所有其他信息:

  • iscell公司:基于解剖的自动标签
  • 神经膜系数:神经膜信号的乘法系数
  • xpix、ypix:属于此最大值的像素的x和y索引。这些索引进入图像的有效部分(由ops.yrange、ops.xrange定义)。
  • ipix公司:属于此掩码的像素的线性化索引((ypix,xpix)-->ypix+(xpix-1)x Ly)。
  • 等覆层:像素是否与其他遮罩重叠。
  • 兰姆,兰姆达:对应像素的遮罩系数。lambda与lam相同,但归一化为1。
  • 医学:ROI中y和x像素的中位数(图像有效部分的索引,由ops.yrange和ops.xrange定义)。
  • 阻止启动:每个块的累积帧数。Clould对正确连接实验很有用(某些平面的帧/块更少)。
  • 足迹,mrs,mrs0,cmpct,aspec_ratio,椭圆,mimgProj,斜交,标准,最大减中,top5pcMinusMed:自动分类器使用这些标记将ROI标记为单元格或非单元格。详见第九节。

也有红细胞检测字段(请参阅识别红细胞)

配准和平均图像的设置也输出到操作结构:

  • 最小分子量:在所有帧对齐的注册开始时计算的目标平均图像
  • mimg1型:从所有实验的所有帧计算的平均图像
  • DS公司:以XY计算的偏移

四、 输入输出文件路径

  • 根存储---存储原始tiff文件的根位置。
  • 注册文件根---本地磁盘上保存二进制格式注册电影的位置。这将被多次加载,因此理想情况下应该是SSD驱动器。(要查看已注册的电影,请使用主文件夹中的脚本“view_registeredbinaries.m”)
  • 结果保存路径---保存最终结果的位置。
  • 删除Bin---删除为存储注册电影而创建的二进制文件
  • 注册文件Tiff位置---保存注册tiff的位置(如果为空,则不保存)如果要保存redtiff,请指定ops。RegFileTiffLocation和设置操作。红色二进制=1

结果保存路径使用makedb文件中指定的每个动物和实验的单独子文件夹完成。您的数据应该存储在表单的文件树下

\RootStorage\mouse_name\session\block*.tif(f)

如果您不想使用此文件夹结构,请参阅make_db_example文件以获取其他选项。make_db_example文件还显示了如何将来自不同实验的tiff组合在一起(即此文件夹结构中的不同子文件夹)。

输出是一个名为dat的结构,它使用相同的子文件夹结构保存到ResultsSavePath中的一个mat文件中,名称格式类似F_M150329_MP009_2015-04-29_plane1。它包含整个处理过程中收集的所有信息,并包含数据中的荧光痕迹。Fcell和给定ROI是否为dat.stat(N).iscell中的单元格。dat.stat包含有关每个ROI的信息,并可用于恢复dat.tat(N).ipix中每个ROI N的相应像素。ROI N的质心也在dat.stat(N)中指定。

五、选项

登记处

  • showTargetRegistration(显示目标注册)---是否在计算后立即显示目标帧的图像。
  • 相位相关性---是否使用相位相关(默认为相位相关,如果为0,则使用互相关)。
  • 子像素---亚像素配准的精度级别(默认为10=0.1像素精度)
  • 克里金---使用宽度为1的高斯核的核回归计算偏移到1/SubPixel的网格上(默认为kriging=1)
  • 最大移位---FOV中允许的最大移动量(默认为最大值的10%(y像素,x像素))
  • 遮罩坡度---应用于图像的锥形遮罩上的斜率(默认为2像素指数衰减)
  • 尼姆首次注册---用于计算目标图像的随机采样图像数
  • NiterPrealign公司---目标计算的迭代次数(帧子集的迭代重新对齐)
  • 平滑时间空间---用指定尺寸的高斯函数卷积原始电影;[t] :与高斯卷积时间。标准t,[ts]:在时间和空间上卷积,[t x y]:在时间上卷积,在空间上卷积为椭圆而不是圆
  • 尼格伯恩---在实验开始和结束时平均的帧数(如果担心偏移)(默认为0帧)

块注册(用于高缩放/np像素)

  • 非刚性的---将非刚性注册设置为1(或将numBlocks设置为>1)
  • num块---1x2数组,表示用y和x划分图像的块数(默认值为[8 1])
  • 区块压裂---每个块要使用的图像百分比(默认值为1/(numBlocks-1))
  • 四边形块---通过拟合二次函数(默认值为1)将块移位插值为单线移位(6块->512行)
  • 平滑块---如果quadBlocks=0,则smoothBlocks是高斯平滑核的标准偏差

双向扫描问题(褶边单元格-默认为更正)

  • 多比迪---计算图像的双向相位偏移(默认值为1)
  • 双二相---用于计算的双向相位偏移值(不会计算双向相位偏移)

红色通道录制

  • 对齐到红色通道---对红色通道(非功能通道)而不是绿色通道进行注册(这假设db.expts中的所有录制都有一个红色通道)
  • 红色平均值---从红色和绿色通道的实验中计算红色通道的平均图像(您不需要为所有的db.expt都设置一个红色通道,只需要从db.expred进行计算——所以请确保它不是空的!!)
  • 红色二进制---从db.expred计算红色通道的二进制文件(类似于绿色通道的二进制文件)

输出ops.mimgRED将包含平均图像(如果AlignToRedChannel、redMeanImg或REDbinary=1)

如果内存不足(例如2048 x 2048像素图像),请拆分较大的tiff以进行注册目前只适用于刚性注册,即FOV的每个部分都是单独注册的

  • splitFOV---1x2数组,以y和x为单位指定块大小(默认值为[11])

细胞检测

  • 信号发生器---空间平滑常数:在空间上平滑SVD。间接地迫使ROI更圆。
  • nSVD用于ROI---要保留多少SVD组件用于聚类。通常为预期的单元格数。
  • 显示单元格映射---是否每隔10次聚类迭代将聚类结果显示为图像
  • 获取ROI---注册后是否运行ROI检测算法
  • 停止Sourcery---如果提取的ROI数量<(迭代1提取的ROIs)x(stopSourcery)(默认值为1/10),则停止集群
  • maxIterRoi检测---集群迭代的最大次数(默认值为100)
  • 精炼---无论是否细化ROI,suite2p都会平滑PC以找到掩码,细化使用未平滑PC从平滑估计值重新计算掩码

SVD分解

  • 导航框架SVD---对于SVD,数据必须临时装箱。该数字指定了装箱后要获得的最终点数。换句话说,具有多个时间点的数据集在较高的窗口中装箱,而较小的数据集装箱较少。
  • 获取SVDcomps---是否获取已注册电影的SVD组件并将其保存到磁盘。用于像素级分析和检查注册质量(残留运动将显示为SVD组件)。这是一个独立于单元聚类的SVD分解(不删除每个像素的运行基线)。
  • nSVD用于ROI---要保留多少SVD组件。
  • 获取SVDcomps---是否获取已注册电影的SVD组件并将其保存到磁盘。用于像素级分析和检查注册质量(残留运动将显示为SVD组件)。这是一个独立于细胞聚类的SVD分解(不删除每个像素的运行基线)。
  • nSVD公司---如果获取SVD组件=1,则nSVD公司指定要保存的组件数量

信号提取

  • 信号提取---如何提取荧光?“原始”选项限制单元格不重叠,“回归”选项允许单元格重叠。神经膜模型是一组空间基函数,用于平铺视野。“环绕”选项意味着单元格的活动是检测到的像素的加权和(按λ加权)。神经膜被计算为周围像素活动的总和(计算中不包括其他细胞)。

Neuropil选项

  • 神经磷脂比率---用于空间基函数和周围神经膜-神经膜的空间范围乘以细胞半径(ops.ratioNeuropil*细胞半径=神经膜半径)

如果使用环绕神经膜(信号提取=“环绕”)

  • 内神经细胞---在细胞周围填充像素以从神经膜中排除
  • 外神经磷脂---神经膜周围半径(设置为Inf以使用ops.ratioNeuropil)
  • 最小神经像素---神经膜周围的最小像素数(半径将扩大,直到达到这个数字)

尖峰反褶积

  • 图像速率---每个平面的成像速率。
  • 传感器Tau---衰减时间刻度(秒)。
  • 最大神经元---神经膜污染系数必须小于此值(有时最好将上限设置为1,即中间神经元)
  • 反病毒类型---使用哪种类型的反褶积(“L0”或“OASIS”)

识别红细胞

使用函数标识红色单元格源(数据库,ops0)识别带有红色的细胞

输出附加到F.mat文件中的stat

  • redratio=内部红色像素/外部红色像素
  • redcell=redratio>平均值(redratio)+红色的x标准(重画)
  • notred=redratio<平均值(redratio)+红色最大值x标准(重画)

选项包括

  • 红色---thres越高表示红色单元格越少(默认值为1.35)
  • 红色最大值---最大值越高,非红色单元格越多(默认值为1)

分类器使用的度量

Suite2p分类器使用每个ROI的许多功能为ROI分配单元格标签。该分类器对每个特征使用朴素贝叶斯方法,并使用非参数、自适应装箱的经验分布对每个特征的分布进行建模。分类器是用这些特性的一些标准分布初始化的,但随着用户在GUI中手动细化输出,它会不断用新的数据样本进行更新。

使用的功能如下(可以通过在GUI中选择每个ROI来查看其值)。

  • std=细胞轨迹的标准偏差,标准化为神经膜轨迹的大小
  • skew=神经白介素消减细胞轨迹的偏斜
  • pct=从ROI中心到像素的平均距离,标准化为完美磁盘的相同被测对象
  • footprint=ROI轨迹和附近像素之间相关性的空间范围
  • mimgProjAbs=此ROI形状是否与平均图像上的形状相关
  • aspect_ratio=与ROI拟合的椭圆

关于

处理2P录制的工具

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包

语言文字