Gapr]Gapr 用于大规模协作单神经元重建
1]龚凌峰这些作者对这项工作做出了同等贡献。1,2] 王艳芝这些作者对这项工作做出了同等贡献。1] 高乐 1,2] 钟怡婷 1] 谢路程 1] 王海芳 1] 查曦 1] 邵银琦 1,3] 徐华泰 1,3] 徐晓红
严俊艳 yanjunyan@ion.ac.cn
*[1] 中国科学院神经科学研究所,中国科学院脑科学与智能技术卓越中心,上海,200031,中国
[2] 中国科学院大学,上海,200031,中国
[3] 上海大脑科学与脑启发智能技术中心,中国上海,201210
[4] 中国科学院大学未来技术学院,中国北京,101408
摘要
单神经元形态的全脑分析对于揭示大脑复杂结构至关重要。然而,从最先进的光学显微镜生成的哺乳动物大脑的千兆字节甚至拍它字节数据中进行大规模神经元重建是一项艰巨的任务。在这里,我们开发了“Gapr”,它简化了基于深度学习的自动重建,“自动校对”减少了高置信度站点上的人工工作量,并通过互联网实现了众包用户的高吞吐量协作校对。此外,Gapr 提供了无缝的用户界面,确保每个注释者的高校对速度,按需转换以处理大型数据集,针对不同数据集量身定制的灵活工作流程,以及严格的错误跟踪以进行质量控制。最后,我们通过在小鼠大脑中重建超过 4,000 个神经元,揭示了皮层间神经元和下丘脑神经元的形态多样性,展示了 Gapr 的有效性。在这里,我们将 Gapr 作为当今大规模单神经元重建项目急需的解决方案。
Gapr,大数据,深度学习,众包,神经元重建,单神经元项目
2024 年 5 月 1 日
1 简介
神经元形态重建为我们理解大脑神经元功能提供了基础。先进的成像技术,如荧光微光学切片断层摄影术(fMOST)、串行双光子断层摄影术(STP)和同步动态扫描和读取体积成像(VISoR)允许以亚微米分辨率连续成像整个哺乳动物大脑。单个小鼠大脑的成像数据超过了千兆字节,而单个灵长类动物大脑的数据接近于千亿字节。在如此庞大的数据集中有效地重建神经元在大规模上面临着神经科学上的挑战。
传统上,神经元需要在人类标注员的监督下手动重建,以确保准确性。许多计算机软件工具帮助这一过程。其中,TeraFly 和 SMART 支持超过千兆字节大小的数据集。我们之前开发了一款高效的手动重建软件,名为 Fast Neurite Tracer(FNT),使得在小鼠前额叶皮层中超过 6,000 个单个神经元的整个脑项目重建成为可能。尽管已经使用 FNT 重建了大量神经元,但手动重建仍然耗时,无法跟上全球大规模脑部映射项目中图像数据生成的步伐。
同时,许多完全自动的神经元重建方法已经被开发出来
。然而,仅凭自动重建,重建的准确性无法得到保证,特别是对于长距离轴突。例如,仅有一个重建错误,整个下游轴突分支可能会丢失。因此,将手动校对与自动重建相结合以确保准确性至关重要。到目前为止,手动校对被认为是神经元重建的瓶颈[0],需要多个注释者的同时参与才能克服这个瓶颈。现有的神经元重建工具对于互联网上的大规模协作支持有限,包括 TeraVR [0]和 Janelia Workstation [0]。
在这项研究中,我们介绍了 Gapr(Gapr 加速项目组重建),这是一个用于大型成像数据集中高效神经元重建的开源软件套件。Gapr 无缝集成了自动重建和协作手动校对,以实现效率和准确性。同时,Gapr 允许最多 100 名注释者同时在一个数据集上进行协作,显著提高了校对吞吐量。Gapr 中的按需数据转换模块为大型成像数据集提供了高效的数据处理。此外,Gapr 提供了针对不同类型数据集量身定制的灵活重建工作流程,并允许系统跟踪重建错误。我们通过在不同神经元稀疏水平和不同标记方法的整个大脑成像数据集中重建超过 4,000 个单个神经元的完整形态来展示了 Gapr 的能力。简而言之,我们将 Gapr 提出为一个迫切需要的平台,用于大规模协作重建整个大脑单个神经元形态。
2 结果
2.1 软件框架
Gapr 由五个核心功能模块组成:Gather、Convert、Trace、Proofread 和 Fix(图??a),通过互联网相互连接。具体来说,托管在网络服务器上的 Gather 模块协调协作重建,提供成像数据,并管理用户帐户和重建项目。Convert 模块 实现高效的数据转换,并将压缩的成像数据上传到 Gather 模块。Trace 模块执行自动重建和自动校对,生成初步的重建结果,稍后由人类注释者在 Proofread 和 Fix 模块的帮助下进行校对。
Convert 模块支持按需转换,仅处理客户模块请求的数据(图??b)。这一特性,结合视频压缩,大大减小了稀疏标记数据集的大小。此外,神经元重建可以在对原始成像数据进行快速预扫描后立即开始,避免了原始数据传输。
在 Gapr 中,一组离散节点及其连接称为链接,数字化表示连续的神经元结构(图??c)。每个节点都被分配属性,包括位置、半径和类型,与标准的 SWC 文件格式兼容[0]。此外,Gapr 引入了被检查属性,以跟踪已被注释者校对过的节点。稀疏属性注释了一些特定节点,例如树结构的根节点(通常是细胞体)和错误报告的错误。注释者主要在用户界面中编辑边缘和顶点(图??c),而不是单个节点和链接。
Gapr 中神经元重建的整体模式如图所示。最初,Trace 模块执行自动重建和自动校对以生成初步结果。自动校对预测的高置信度节点被标记为已检查,并跳过手动校对。在校对阶段,标注者在 Proofread 模块的帮助下校对未检查的节点。标注者的目标是识别和纠正与所呈现节点相关的重建错误,处理后标记为已检查。Proofread 模块旨在让许多业余标注者合作,因此需要专业知识的困难或不确定案例被报告为未解决的错误。在修复阶段,经验丰富的标注者解决报告的错误,并使用 Fix 模块进行额外的一致性检查以确保正确的重建。Fix 模块(文件:recon-fix.mp4 Supplementary Video 1)实现了扩展功能,供经验丰富的标注者解决复杂的重建问题。已正确修复的错误报告被标记为已修复,而没有正确解决的则被标记为无法解决。
为提高准确性,已检查的节点可以重置以进行额外的校对轮次。后续的校对轮次通常受到限制,只允许错误报告,以避免破坏已经正确的结构。两轮校对的标准流程如图??e 和文件:recon.mp4 补充视频 2 所示。除了标准流程外,Gapr 还支持其他重建模式,以适应不同的成像数据条件(图??e)。通过精确的重建,额外的受限制的校对轮次进一步减少了重建误差。另一方面,快速重建仅涉及一轮校对,适用于非常稀疏的高质量图像数据集(文件:recon-fix.mp4 补充视频 1)。在自动重建结果由于低图像质量而无法帮助的情况下,注释者可以直接进行手动重建。在包含更密集标记的神经元数据集中,选择重建允许通过引入种子来指导校对,重建感兴趣的神经元。
2.2 自动重建
作为预处理步骤,我们利用了深度 3D U-Net [0](图??a)来通过估计每个体素中神经元骨架存在的概率来分割成像数据。与原始图像相比,通过 U-Net 进行预处理可以提高重建的准确性(图??b 和扩展数据图 1)。实际每个数据集的自动重建速度和准确性如图??c 所示。具体来说,当前的自动重建速度超过了手动校对(图??c,左),因此不会成为整个重建过程中的瓶颈。重建准确性取决于成像数据的质量,但总体准确性通过 U-Net 得到了改善。对于大多数测试数据集,重建结果中的伪发现率(FDR),即伪造物的百分比,小于
(图??c,中)。另一方面,伪阴性率(FNR),即自动重建未检测到的神经元的百分比,在完整重建中在
和
之间变化(图??c,右),因为整个大脑图像数据通常包含许多弱信号。 我们使用 neuTube [0] 从预处理的图像中提取神经元的树突。为了适应任意大的成像数据集,每个重建步骤都在重叠的小立方体中进行,并将部分重建结果集成以产生整个重建结果(扩展数据图 2)。
Gapr 提供了自动校对选项,以便让人类注释者专注于低置信度节点。我们将节点分类为三种类型:自动重建伪影不受成像数据支持,可能涉及分支结构的复杂节点和具有线性结构的简单节点。我们训练了一个深度 3D 残差网络(ResNet)[0]来执行分类,并通过预测的概率定义节点的置信度。 节点为简单类型(图 ??d)。以节点为中心的局部成像数据被用作输入,如图 ??e 所示。高置信度节点,具有更大的
值(图 ??e),被标记为在手动校对过程中跳过。对于复杂节点,自动校对的错误率,即复杂节点被错误跳过的概率,低于 5%(图 ??g)。自动校对可以显著减轻手动校对的负担(图 ??g 和补充图 1)。随着成像质量的提高,预计这种节省将会增加。
2.3 协作手动校对
为了纠正自动重建结果中的错误,人类注释者的校对是必不可少的。在 Gapr 中,多个注释者可以通过编辑共享的重建模型(图??a)协作进行校对。Gather 模块为每个数据集维护这个共享模型,并通过 TCP/IP 连接接收参与注释者的编辑请求。每个编辑请求都会根据最新的重建模型进行验证,并检查与其他注释者最近编辑的空间冲突(扩展数据图 3)。不一致的编辑会被拒绝,并通知注释者更新他们的重建模型以避免未来的不一致(扩展数据图 4)。在所有注释者协作工作的情况下,可以避免诸如两次追踪神经突触或连接到已移除节点等不一致的情况。通过这些检查通过的编辑会应用到重建模型中,并立即保存到数据库中。保存的编辑在服务器重新启动时会被重放以恢复重建模型。部分重放允许恢复快照,即重建的历史状态。 尽管服务器按顺序处理相同数据集的请求,但每个请求都被迅速处理,以确保用户在同时参与时有流畅的体验。
在实践中,涉及 10 名人类标注者的协作校对如图所示。为了评估 Gapr 的并发上限,我们进行了一项模拟实验,其中许多模拟标注者定期提交编辑。在这个实验中,不考虑随着带宽增加而增加的成像数据下载,但 Gapr 提供了一个内存中的成像数据缓存来减少图像下载。由于每个标注者最终都会看到其他人的所有活动,因此估计总服务器端带宽使用量会增加。这种理论估计得到了我们的模拟实验的证实。随着更多用户的参与,服务器 CPU 使用率上升,性能逐渐下降。然而,拥有总带宽和服务器端的单个 Gapr 可以容纳超过一百名用户同时校对相同的数据集,并实现即时服务器响应。此外,如果用户分布在多个数据集上,具有多处理器服务器的 Gapr 适合让数千名标注者同时参与重建。
我们系统地比较了 Gapr 与其他现有的软件工具,如表中所列的 Vaa3D [0] 和 Janelia Workstation (JW) [0]。Gapr 相对于这些工具的主要改进如下所述。
首先,Gapr 可以在互联网上对光学显微成像数据进行高度协作的神经元重建。之前的工具,如 Vaa3D [0] 中的 TeraVR 和 JW,在其研究中展示了有限的用户协作能力,要么只有非常少量的用户(2-3),要么在本地网络环境中。TeraVR 中用于协作的服务器软件不是公开的。在 JW 中,有两个主要问题影响了校对效率:注释者需要明确地锁定一个神经元才能开始编辑,网络通信涉及传输整个神经元的数据。相比之下,Gapr 在不使用锁的情况下协调注释者,并且只传输必要的编辑请求。因此,Gapr 通过协作为大规模重建项目提供了高吞吐量的解决方案。
其次,Gapr 实现了按需数据转换,这是其他工具所没有的。这一功能避免了处理没有神经结构的成像数据部分,从而极大地节省了稀疏标记数据集的存储、网络带宽和 CPU 使用率。Gapr 有效处理大型稀疏标记数据集的能力特别适用于更大灵长类动物大脑中的神经元重建。
第三,Gapr 的工作流无缝集成了自动重建和手动校对。在 Vaa3D 中,没有提供校对的辅助,注释者只能查看和编辑重建结果。在 JW 的工作流中,只使用自动重建的简单线性段,丢弃了自动方法处理分支和交叉的容易出错的部分。在校对阶段,人类注释者被引导手动连接这些段。采用这种非常保守的方法,需要额外的工作量来连接这些段,因为自动方法正确处理分支和交叉的能力从未被利用。
Gapr,注释者同样被引导到分支和交叉点,但他们只编辑不正确的连接。因此,准确的自动方法可以被充分利用以加快手动校对的速度。
第四,Gapr 提供自动校对功能,这是其他工具所缺乏的功能。人类注释者被引导只处理低置信度节点,大大减少了校对的人力工作量。
最后,Gapr 实现了高每注释者校对速度。在使用相同的成像数据集和计算机硬件进行测试时,Gapr 中每个注释者的手动重建速度比 Vaa3D 快四倍以上。与 JW 报告的统计数据相比[0,0],Gapr 在手动重建时比 JW 快两倍,在常规校对期间略快于 JW,在受限校对期间快两倍。预计当非常精确的自动重建结果可用时,常规校对的速度可以进一步接近受限校对的速度。
Gapr 的其他优势包括高度流畅的用户界面(扩展数据图 5),支持移动设备(文件:recon-pr-and.mp4 补充视频 3),众包和专家标注者之间的工作分工,服务器软件的易部署性和低硬件要求,重建错误的系统跟踪,不同类型数据集的多功能重建程序,以及完整重建历史的可用性。
2.5 应用于 fMOST 数据集
使用 Gapr,我们重建了 15 个具有不同神经元稀疏水平的 fMOST 小鼠脑数据集(补充表 2 和扩展数据图 6)。图??a 展示了参考图谱中的 4,278 个经过校对的神经元,其中通过手动检查选择了 1,359 个具有高重建质量的神经元。神经元长度的分布如图??b 所示。
校对速度因数据集而异,并且在更密集的数据集中会降低(图??c)。在常规校对过程中,校对员通过修复连接和添加缺失的分支来纠正自动重建的错误。因此,常规校对的速度明显慢于受限校对
0.0035(单侧 Wilcoxon 秩和检验),在受限校对期间,校对员仅报告错误。为了进行比较,图??c 上部显示了使用其他软件工具进行校对和手动重建的速度。
在大多数可用的 fMOST 数据中,重建错误包括环结构是常见的。环结构和错误报告总结在图??d 和??e 中。为了解决环,我们定位了沿环的弱连接。一旦确定了唯一的弱点,就在该点切断环。如果发现多个弱点,则在距离细胞体最近的两个弱点处切断环,以避免假阳性错误。环结构和报告的错误示例在扩展数据图 7 中演示。
我们选择了三个 fMOST 数据集进行精确重建,通过最多六轮校对和修正来完善结果。将最终结果作为参考,对每一轮后的结果与参考进行比较,为 15 个随机抽样的神经元绘制图表(图 ??f)。对于一些神经元来说,精度在后几轮中显著提高,主要是由于在需要非常困难决策的地方发生了变化。然而,大多数神经元在两轮后已经以可接受的精度重建。因此,我们的标准程序,即两轮校对,是精度和效率之间的适当平衡。
3 讨论
总之,我们开发了 Gapr,通过整合基于深度学习的自动重建来加速神经元重建,避免耗时的手动重建,自动校对以减少手动校对工作量,流畅且用户友好的界面实现高每位标注者校对速度,并通过互联网合作提高整体校对吞吐量。在自动校对和众包用户的手动校对的帮助下,只需要少数专家标注者便能通过专注于最困难的部位来管理大量神经元的重建项目。
Gapr 是多功能的,可以容纳进一步的改进。它可以导入任何新的自动重建方法的结果,通过这些方法,增加的准确性可以进一步减少手动校对的工作量。在自动校对过程中,低图像质量、低标记稀疏性,或者 Gapr 中使用的特定分类方法的缺陷可能会阻碍对高度自信节点的连续段的识别。通过对 ResNet 进行更多种类数据的彻底训练可以改善这种情况。此外,更复杂的方法可以用于区分分支和交叉点,以扩展高置信节点的定义。对于图像质量有限的数据集,Gapr 中的修复阶段可能会耗费时间,这在很大程度上取决于数据质量和标记神经元的稀疏性。 依赖于数据质量和标记神经元的稀疏性。事实上,有经验的注释者大多数时间都花在了图像质量不完善的地方,努力通过整合全局信息来做出自信的决策。改善图像质量和标记稀疏性对解决这一困难至关重要。
为了实现高质量的重建,Gapr 利用连续的校对轮次来发现和修复重建错误,而不是多个注释者在以往的大规模神经元重建项目中连续工作。连续工作的方法要么需要在手动合并两个独立版本时增加额外的工作量,要么在使用自动计算的共识时引入额外的假阴性错误。相比之下,我们在 Gapr 中采用的多轮校对方法具有简单的重建历史、节点标识符的统一使用、更快的后期校对(受限校对)以及不需要合并的优点(附图 2)。
在未来,Gapr 的 Convert 模块可以进一步集成到成像流程中,使神经元重建可以在成像过程中进行。注释者甚至可以指导成像,即按需成像,从而大大加速成像过程。最后,虽然我们展示了 Gapr 在千兆字节级数据集上的能力,但通过按需数据转换,Gapr 可以轻松处理百万亿字节级别的数据规模,为猴脑单神经元项目组的映射铺平道路。
[0 郑,T. 等。使用双光子荧光微光学切片断层成像可视化脑回路。光学快报 21,9839(2013 年)。网址 https://www.osapublishing.org/abstract.cfm?URI=oe-21-8-9839。
[0 Economo,M. N. 等。一个用于大脑广泛成像和重建个体神经元的平台。eLife 5,e10566(2016 年)。网址 https://dx.doi.org/10.7554/eLife. 10566.
[0 王,胡等。超高速脑部映射的可扩展体积成像,达到突触分辨率。国家科学评论 6,982-992(2019)。
[0 彭,阮,龙,辛普森,迈尔斯。V3D 实现大规模生物图像数据集的实时 3D 可视化和定量分析。自然生物技术 28,348-353(2010)。网址 http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2857929/。
[0 Longair,贝克,阿姆斯特朗。Simple Neurite Tracer:用于神经过程重建、可视化和分析的开源软件。生物信息学 27,2453-2454(2011)。
[0 Feng,L.,Zhao,T.和 Kim,J. neuTube 1.0:基于 SWC 格式的高效神经元重建软件的新设计。eNeuro 2(2015)。网址 http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4586918/。
Bria,A.,Iannello,G.,Onofri,L.和 Peng,H. TeraFly:实时三维可视化和注释数千万维体积图像。Nat Meth 13,192-194(2016)。网址 http://dx.doi.org/10.1038/nmeth.3767。
等。在微米分辨率下高通量绘制整个恒河猴大脑。自然生物技术 39,1521-1528(2021)。地点:美国。
高磊等。小鼠前额叶皮层单神经元项目组。自然神经科学 25, 515-529 (2022)。网址 https://doi.org/10.1038/s41593-022-01041-5。
[0 杨杰,冈萨雷斯-贝利多,彭浩。基于距离场的自动神经元追踪方法。生物信息学 BMC 14, 93 (2013)。网址 http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3637550/。
[0 隋丹,王凯,蔡杰,张勇,张华。基于空间滑动体积滤波种子的神经元重建流程。计算与数学方法在医学中 2014, 386974 (2014)。
[0 肖,H. & 彭,H. APP2:基于灰度加权图像距离树的分层修剪的 3D 神经元形态自动跟踪。生物信息学(牛津,英格兰)29,1448-1454(2013)。
[0 刘,S. 等。Rivulet:通过迭代回溯进行 3D 神经元形态追踪。神经信息学 14,387-401(2016)。网址 https://doi.org/10.1007/s12021-016-9302-0。
[0 全,T. 等。NeuroGPS-Tree:自动重建具有密集神经元的大规模神经元群体。自然方法 13,51-4(2016)。
[0 周,Z.,郭,H.-C.,彭,H.和龙,F. DeepNeuron:一个用于神经元追踪的开放式深度学习工具箱。脑信息学 5,3(2018)。
[0 Callara,A. L.,Magliaro,C.,Ahluwalia,A.和 Vanello,N.一种智能区域生长算法,用于从共聚焦和 2-photon 数据集中分割单个神经元。神经信息学前沿 14(2020)。网址 https://www.frontiersin.org/article/10.3389/fninf.2020.00009。
[0 李,S.等。使用凸图像分割方法对追踪神经元的整个大脑形状进行重建。神经信息学 18,199-218(2020)。网址 https://doi.org/10.1007/s12021-019-09434-x。
[0 Friedmann,D.等。使用 3D 卷积网络在小鼠大脑中映射中等尺度轴突投射。美国国家科学院院刊 117,11068-11075(2020 年)。
[0 Peng,H.,Long,F.,Zhao,T.和 Myers,E.证明编辑是 3D 神经元重建的瓶颈:问题和解决方案。神经信息学 9,103-105(2011 年)。URL http://dx.doi.org/10.1007/s12021-010
。
[0 Wang,Y.等。TeraVR 赋予整个大脑中完整 3D 神经元形态的精确重建能力。自然通讯 10,3474(2019 年)。
[0 Winnubst, J. 等。重建 1,000 个投射神经元揭示小鼠大脑中新的细胞类型和长程连接的组织。Cell 179, 268-281.e13 (2019)。网址 https://doi.org/10.1016/j.cell.2019.07.042。出版商: Elsevier。
[0 Cannon, R. C., Turner, D. A., Pyapali, G. K. & Wheal, H. V. 重建海马神经元的在线存档。Journal of Neuroscience Methods 84, 49-54 (1998)。
[0 Ronneberger, O., Fischer, P. & Brox, T. Navab, N., Hornegger, J., Wells, W. M. & Frangi, A. F. (编) U-Net: 用于生物医学图像分割的卷积网络。 (编 Navab, N., Hornegger, J., Wells, W. M. & Frangi, A. F.) 医学图像计算与计算辅助干预 - MICCAI 2015, 234-241 (Springer International Publishing, Cham, 2015)。
[0 He,K.,张,X.,任,S.和孙,J.深度残差学习用于图像识别。2016 年 IEEE 计算机视觉和模式识别会议(CVPR),770-778(2016)。
4 种方法
4.1 软件实现
Gapr 是用 Qt GUI 工具包(https://www.qt.io/)编写的 C++,因此可以在所有主要桌面操作系统(GNU/Linux、Windows 和 macOS)上运行。Android 的 Proofread 模块是在 Android Studio 下开发的,使用 Java 代码进行 GUI 开发。对于所有平台,Gapr 利用 OpenGL(ES)来以高性能在 3D 中可视化成像数据和重建结果。所有 Gapr 的 GUI 模块都是异步编程的,因此在加载数据或计算时响应迅速。高性能和异步设计共同提供了在中等设备上流畅的用户体验。
Gapr 使用 Boost.Asio(https://www.boost.org/libs/asio)在客户端和服务器模块之间进行网络通信。OpenSSL(https://www.openssl.org/)用于安全连接以保护用户登录信息。为了通过多种协议加载远程成像数据,使用了 libcurl(https://curl.se/libcurl/)。
Gather 模块不使用像 MySQL 这样的单独数据库系统,需要额外的安装和配置。相反,使用 LMDB 库(https://www.symas.com/lmdb),提供数据安全保障和 IO 效率,而无需这种繁琐。因此,安装后 Gather 模块即可运行。
为了支持来自不同平台的 GUI 用户,Gapr 为每个支持的平台(Windows、GNU/Linux、macOS 和 Android)构建本机 GUI。本机 GUI 通常比基于 Web 的 UI 更高效,但需要更多的开发工作。
4.2 神经元重建的数字表示
在 Gapr 中,我们使用一个由相互连接的节点组成的模型来数字化表示重建的神经元(图??c)。节点代表神经元的结构元素,包括细胞体、神经末梢和内部神经节段。节点之间的连接,称为链接,代表这些神经元结构元素的连接性。在重建过程中,我们使用无向图而不是 SWC 文件中的有向树,以便进行灵活的编辑。每个节点都被分配了位置、半径和类型等节点属性。有了这些节点属性,我们的神经元重建模型与标准的 SWC 文件格式兼容[0]。
在其他软件程序中,循环结构是被禁止的。如果连接尝试会产生循环,标注者必须在另一个站点中断,以便在当前站点连接。当许多标注者合作时,这种方法既繁琐又不安全。例如,同一个暂定的循环可能会被不同站点的两个标注者中断。此外,找到适合长程循环中断的正确站点通常需要专业知识和更多信息。因此,在 Gapr 中,我们允许在校对阶段使用循环结构。在修复阶段,所有循环都将由经验丰富的标注者系统地解决。
在 Gapr 中,我们引入了额外的节点属性。其中,examined 属性表示校对状态。在校对过程中,注释者可以将一批节点标记为已校对,以便其他注释者跳过这些节点进行校对。root 属性分配给特定节点,表示 soma 或轴突分支的根,从而实现树形结构。error 属性分配给具有重建错误或不确定性的节点。通过 error 属性,我们的神经元模型可以生成具有高选择性的重建结果,其中已经校对的节点通过一条不含未更正错误的节点的路径与根节点相连。这种高选择性的结果类似于从多个连续重建中生成的共识。 与此类似,高选择性的结果类似于从多个连续重建中生成的共识。
为了最佳效率,我们经济地为 Gapr 重建模型设计了数据结构。节点标识符使用无符号 32 位整数。因此,一个项目中允许包含约 4,294 亿个节点,包括已删除的节点,因为节点标识符不会被回收。与我们最大的重建项目相比,这个上限相当充足,该项目有 26.4 亿个节点。
一个节点的所有密集属性都打包到四个 32 位整数中。这四个整数中的三个用于表示 3D 坐标,单位为 1/1024。因此,
中的任何点都可以被精确表示。
对于最后一个整数,5 位用于节点类型,允许 32 种类型;1 位用于校对状态;11 位作为无符号浮点数(带有机器 epsilon)用于节点半径。
4.3 按需成像数据转换
为了高效检索大尺寸成像数据,Gapr 将大型数据集的整个体积转换为许多较小尺寸的立方体。每个立方体可以进一步压缩以减少存储和传输需求。在重建过程中,只有感兴趣区域内的立方体一次加载,因此对于任意大的数据集只需要有限的内存使用。
在稀疏标记的数据集中,只有少量立方体实际包含神经元结构。Gapr 中的按需转换(图??b)利用数据的稀疏性,避免处理不含神经元结构的立方体。这一特性极大地节省了压缩时间和存储空间,极大地增强了 Gapr 处理大型数据集的可扩展性。例如,一个 6.4 TB 的成像数据集(LZW 压缩的 TIFF 文件,
体素)通过 Gapr 减少到不到
。通过按需转换,重建可以在整个数据集快速预扫描后立即开始,而无需等待转换过程完成。此外,在生成成像数据的地方运行 Convert 模块可以避免传输大尺寸原始数据。
转换模块首先探测原始成像数据并将数据规格上传至收集模块。在此步骤中,生成并上传了一个初步的降采样图像(来自整个体积中的一小部分体素),以便注释者进行导航。这一步足够快,可以在几小时内处理 TB 级别的数据集。然后,它定期检查新请求,并通过上传图像立方体进行回复。明确请求的立方体具有高优先级。任何与明确请求的立方体相邻的立方体也会自动生成,但优先级较低。这样可以减少注释者访问附近数据时的等待时间。同时,降采样图像逐渐完善和更新,直到整个体积被覆盖。转换模块记录完整的转换状态,以便在程序错误后恢复转换过程,这是一个长时间运行过程的重要特性。在内部,使用多进程来最大化转换吞吐量。
本文中呈现的所有成像数据集均已先前使用 FNT,Gapr 的前身进行转换。因此,我们直接使用先前转换的数据,而没有应用 Gapr 中提出的方法再次转换这些数据集。然而,已经对未发表的成像数据集进行了广泛测试。
4.4 转换 16 位图像
在 Gapr 中,图像立方体以损失压缩的方式使用高效视频压缩算法(VP9)进一步减小文件大小。视频压缩库通常支持高达 12 位强度范围,并且不直接支持 fMOST 生成的 16 位成像数据。我们提出了一种方法,用 12 位编码 16 位强度值以规避这个问题,并保持有界的相对误差。特别是,对于范围内的强度值
,不会发生编码错误,保留了弱信号(附图 3 和附表 3)。对于所有其他值,相对编码误差被限制在小于
。
我们的转换方法的代码可在补充说明 1 中获得。编码过程使用 3 位来存储指数和 9 位来存储有效数字,类似于浮点数。指数部分实际上记录了除以 2 的次数,而有效数字部分存储了除法后剩余的整数部分。这 12 位被打包成一个 12 位整数。
解码过程完全相反。在应用指数之前,添加 0.5 以补偿编码过程中截断的位。这可以减少一半的转换误差。
4.5 协作重建细节
通过多个重建项目,每个项目都是单独处理的。因此,只需用一个单一项目来解释,并假设当前应用了
个修改。定义
为第
个应用的修改,
为应用
后重建模型的快照。使用
表示应用
到
后的新重建模型。因此,
(起始空重建)和
。
在服务器端,每个
在接受后都会保存到 LMDB 数据库中,然后才向贡献客户端确认,以防止数据丢失。这比将
保存为
要快,因为
通常要大得多。在内存中,保留
(一个旧的快照,其中
取值使得
受限),
和
,其中
是用于碰撞检查的
的空间信息。对于每个客户端
,服务器还跟踪客户端已知的修改,即
已知于
。
现在,客户端
提交了一个候选修改
。首先,如果客户端没有权限,修改将被拒绝。然后,服务器检查
是否有效。例如,删除一个不存在的节点是无效的。无效的修改将被拒绝,客户端将收到一个更新到
。接下来,将对有效修改与
未知的修改进行碰撞检查。如果
,则无法进行碰撞检查,因为
不在内存中。在这种情况下,客户端将被拒绝,并将收到至少
的更新。如果这样的
不存在,则可以通过计算
,即两个修改之间的空间距离,来进行碰撞检查,对于
和
。对于两个预定义的阈值
和
,其中
,考虑这两组:
和
以及
。如果
,则修改将被拒绝,客户端将收到至少
的更新。否则,修改将被接受,客户端将收到至少
的更新,如果
。 例如,如果
试图重建另一个客户端已完成的段(但
不知道),则此重复操作(使用阈值
检测到)将失败。并且尽可能通知客户端附近的修改(使用阈值
检测到)。最后,新接受的修改,即
,将保存到数据库中。该过程在扩展数据图 3 中概述。
在客户端
的一侧,重建从下载
开始,通常比
的总大小要小。然后通过批量下载
来更新到
。如果修改被接受为
,没有特殊的更新通知,
(不一定是
)成为
的最新重建模型。请注意,
不会被下载,因为它已经可用。经过几次这样的操作,客户端达到
,
现在是
。
包括从 0 到
的连续区间和与
贡献的新修改对应的集合。Gapr 通过其更新机制特别强制执行此规则,以帮助跟踪
。当服务器决定客户端
需要
时,其中
,
会被批量下载并按照
的升序应用。更新后,客户端具有
和
。这种更新机制还使服务器摆脱了跟踪修改之间依赖关系的负担。
为了评估 Gather 模块的性能,我们启动操作在同一数据集上并发运行的客户端程序。每个客户端程序通过修改大约每个
节点的检查属性来模拟标注者的校对活动。在此模拟过程中,不考虑涉及纯网络 IO 的图像数据下载。客户端往返时间是从这样一个客户端程序的日志消息中收集的。在服务器端,我们使用系统工具 iftop 和 top 分别收集带宽和 CPU 使用数据。最后,重建历史使我们能够计算每分钟的总成功操作次数。
4.7 编辑请求的类型
所有来自标注者(或自动方法)的编辑操作都作为编辑请求发送到服务器。Gapr 目前支持以下类型的编辑请求:
添加一条边。这种类型的请求由一系列新节点、节点之间的隐含链接以及两个端点现有节点的绑定组成。扩展边、添加分支或连接两条边的操作发送这种类型的请求。
删除一批节点。这种类型的请求由一系列现有节点、隐含链接以及一组稀疏节点属性组成,以避免引用已删除的节点。通常会删除边的子区间,但具有更高权限的注释者可以选择矩形区域中的节点进行删除。
添加稀疏属性。这种类型的请求由一个新节点(或对现有节点的引用)和形式为键=值的文本字符串(值可以为空)组成。创建神经元和报告错误发送这种类型的请求。
更改稀疏属性。这种类型的请求由对节点的引用和形式为键=值的文本字符串组成。重命名神经元和解决错误会发送这种类型的请求。
添加一批节点。这种类型的请求由一组新节点、节点之间的链接、一组新的稀疏属性以及与现有节点的绑定组成。这种类型的请求被自动重建方法使用。
将一批节点标记为已校对。这种类型的请求只是由一组现有节点组成,通常是一个边的子区间,用于标记为已检查。
重置一批节点。此类请求由一组现有节点组成,用于重置已检查状态,并包含一组稀疏属性,记录要删除的终端状态。发送此类请求允许稍后重新审校某些节点。
4.8 错误跟踪
当标注者对数字化神经元和成像数据之间的一致性不太自信时,就会发现错误。错误可能是由自动方法和人类标注者的错误造成的。在常规审校过程中,标注者可以立即修复错误,以有效解决自动重建错误。在受限审校阶段,新发现的错误通常较少,更难修复。因此,这些错误仅报告给专家标注者稍后修复。
对于许多可用的成像数据集,通常会出现无法修复的错误。我们可以应用最佳可能的修复方法并标记错误的位置,而不是因为这些错误而丢弃整个重建。随后的分析可以在高度自信的结果或带有少量不确定性的结果上进行。
为了跟踪错误,我们在我们的模型中使用错误属性,该属性可以具有以下值
未解决的
延迟的
无效的
冗余的
固定的,
无法解决的。
常规注释员报告的错误最初是未解决的,会提示专家注释员解决。对于一些报告的错误,在后期解决会更容易。这些错误可以标记为推迟解决未解决的错误后再处理。
报告错误的解决方案包括评估错误报告,可能修复重建,并更新此属性以反映结论。不当的错误报告,无论是在正确的站点还是在不必要时,分别标记为无效或冗余。最终修复的报告错误标记为已修复,而没有可行解决方案的错误标记为不可解决。值得注意的是,不可解决的错误反映了内在数据的可溶性。
4.9 深度神经网络重建描述
U-Net 架构是基于以下考虑而选择的:
网络遵循标准的 U-Net 架构。
卷积层是完全三维的。
确保在每个级别的适当张量大小和网络深度下,保证可接受的计算复杂度和内存使用。
光学成像数据通常是各向异性的,与
和
轴相比,Z 轴(显微镜指向的方向)的分辨率要低得多。为了减少各向异性,第一个下采样层跳过了
方向的下采样,相应的上采样层在
方向上采样了 2 倍。实际上,输出图像比输入图像具有更高的 Z 方向分辨率。
已经手动校对过的数据集(#17391,#18133,#18708,#18709 和#192095)被用来训练 U-Net。此外,我们使用了 1,000 个模拟图像立方体,每个包含一个模拟神经元,神经突起长度约为 4,000 pm(附图 4)。我们逐渐添加了大约 60 个手动选择的负例立方体,其中包含纯噪音或非常密集的神经突起,无法重建,加入到训练集中。在训练过程中,我们随机从包含神经突起和负例立方体中进行采样。采样立方体的成像数据(输入张量)和一个类似大小(在
方向上大 2 倍)的自动生成的骨架图像(目标张量)作为一个训练示例。在骨架图像中,靠近神经元骨架的体素被设置为白色(值为 1.0),所有其他体素被设置为黑色(值为 0.0)。训练示例通过在空间轴上随机翻转和交换
和
轴来增强。U-Net 输出张量和目标张量之间的二元交叉熵作为损失函数,通过 RMSprop 优化器最小化。网络以学习率 0 进行训练。至少进行 70,000 次迭代,每批次大小为 4。
ResNet 的设计考虑与 U-Net 相同:参考标准架构,完全三维卷积,适当的张量大小和网络深度。以节点为中心的 3D 图像块被用作输入来预测节点类型。训练集包括从手动校对的数据集(#17391、#18133、#18708、#18709 和 #192095)中随机抽样的三种节点类型的图像块和节点类型的真实值。我们在与任何真实神经元轴突有明显分离的位置模拟伪节点(
)。在邻域区域内具有微不足道的线性结构的节点
被用作简单节点的示例。其他节点被用作复杂节点的示例,通常是靠近分支和交叉点的节点。复杂节点的数量自然比简单节点少几个数量级,因此我们平衡了三种类型的样本数量。对于每个数据集,我们收集了超过 136,000 个简单节点的示例,超过 136,000 个伪节点的示例,以及超过 27,000 个复杂节点的示例。训练示例通过在空间轴上随机翻转和交换
和
轴来增强。 输出概率分布与实际值之间的负对数似然损失通过 RMSprop 优化器最小化。网络以学习率 0.001 和批量大小 64 进行训练,至少进行 100,000 次迭代。
两个网络中的“调整对比度”步骤将单通道灰度输入图像映射到四个通道,这些通道具有不同水平的对比度,使得暗和亮体素的输出强度值处于更适中的数值范围。具体来说,后三个通道中的强度值分别乘以 8、64 和 512。为避免数据泄漏,在使用 U-Net 和 ResNet 进行数据集的自动重建和校对时,它们并未使用该数据集进行训练。Gapr 使用 PyTorch 提供的 C++ API 来实现神经网络。
4.10 时间使用估计
我们使用重建历史中的时间记录来估计实际时间使用情况。注释者的时间使用情况,或者在自动重建情况下计算机程序的时间使用情况,被计算为每两个连续操作之间持续时间的总和。为了排除用户空闲时的时间,持续时间被夹紧到某些阈值:
用于自动重建操作,
用于校对阶段的操作,
用于其他情况。这一估算通过两个会话的实际时间验证,分别是
和
,在这两个会话中,我们的估计时间使用情况分别为
和
。
4.11 计数循环和错误
Gapr 突出显示循环,循环计数是通过修复前后循环数量的差异来估计的(修复后为 0 个循环)。循环意味着过度连接,因此两个神经元连接的过度连接情况,就像普通循环一样,也会被突出显示和计数,作为广义循环。由于循环突出显示是实时发生的,为了优化用户体验,只计算与神经元相关的循环。在重建过程中报告和解决的错误将被计数。 提取重建历史。为了比较目的,对 #18925、#192095 和 #192096 中的错误计数是在排除额外校对阶段的情况下进行的。
4.12 自动重建的准确性评估
为了评估自动重建,计算假阳率(FDR)和假阴率(FNR)。对于自动方法得到的重建结果,使用手动校对后数据集的最终结果作为参考。设
表示自动结果中的链接集,
表示参考结果。对于链接
,我们将其与
的距离定义为
这里,
表示
是链接
上的一个点。同样地,
可以被定义为链接
上的一个点。通过阈值
,我们定义 FDR 和 FNR。
阈值
需要容忍正确重建之间的坐标变化,并且最好小于以高灵敏度检测重建错误。基于超过阈值的链接的可视化,我们选择
进行本研究。
10
[0 Paszke, A. 等。Pytorch:一种命令式风格、高性能的深度学习库。第 33 届神经信息处理系统国际会议论文集(Curran Associates Inc.,Red Hook,NY,USA,2019)。
[0 王琪等。Allen Mouse Brain Common Coordinate Framework: 3D 参考图谱。Cell 181, 936-953.e20 (2020)。网址 https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8152789/。
[0 Rohlfing, T. & Maurer, C. 非刚性图像配准在共享内存多处理器环境中的应用于大脑、乳房和蜜蜂。IEEE 信息技术生物医学交易: IEEE 工程医学与生物学学会出版物 7, 16-25 (2003)。
[0 Avants, B. B.等。对 ANts 相似度度量在脑图像配准中的可重复评估。Neuroimage 54, 2033-2044 (2011)。出版商: Elsevier。
贝茨,A. S.等。Natverse,一个用于组合和分析神经解剖数据的多功能工具箱。eLife 9,e53350(2020 年)。网址 https://doi.org/10.7554/eLife.53350。出版商:eLife Sciences Publications,Ltd。
Z.,Eils,R.&Schlesner,M.复杂的热图揭示了多维基因组数据中的模式和相关性。生物信息学 32,2847-2849(2016 年)。网址 https://academic.oup.com/bioinformatics/article/32/18/2847/1743594。
[0 Gou,L.,王,Y.&严,J.用于大规模协作单神经元重建的 Gapr:测试数据(2024 年)。网址 https://zenodo.org/records/10988281。
[0 Gou, L., Wang, Y. & Yan, J. 用于大规模协作单神经元重建的 Gapr:重建结果(2024)。网址 https://zenodo.org/records/10988416.
[0 Gou, L., Wang, Y. & Yan, J. 用于大规模协作单神经元重建的 Gapr:神经网络参数文件(2024)。网址 https://zenodo.org/records/10988756. 出版商:Zenodo.
[0 Gou, L., Wang, Y. & Yan, J. 用于大规模协作单神经元重建的 Gapr:源代码和用户指南(2024)。网址 https://zenodo.org/records/10988621.