pycasa:用于计算机辅助精液分析的Python工具包

《SoftwareX》:pycasa: A Python toolkit for computer-assisted semen analysis

【字体: 大 中 小 】 时间:2026年11月06日 来源:SoftwareX 1.9

编辑推荐:

  计算机辅助精液分析(CASA)系统可测量精子活力,但此类系统通常为专有、昂贵且非透明,导致其技术难以获取、复现或比较。研究人员推出pycasa,一个开源Python工具包,可从光学显微镜记录的精液样本延时视频中提取类CASA精子活力参数。该工具包采用先进的检测

  
计算机辅助精液分析(CASA)系统可测量精子活力,但此类系统通常为专有、昂贵且非透明,导致其技术难以获取、复现或比较。研究人员推出pycasa,一个开源Python工具包,可从光学显微镜记录的精液样本延时视频中提取类CASA精子活力参数。该工具包采用先进的检测与跟踪技术,计算每条轨迹的运动学参数、世界卫生组织(WHO)活力分级、活动精子百分比、精子浓度及精子总数。其核心处理阶段采用模块化设计,用户可评估单个方法并添加可无缝集成至pycasa的新方法。研究人员以两种方式对pycasa进行基准测试。第一,默认pycasa流程计算的基于WHO的活力参数与商业CASA平台对来自14名受试者同一样本的报告显示出良好一致性。第二,研究人员将从标准光学显微镜记录视频中提取的活力参数与实验室技术员的人工测量结果进行比较,评估普通显微镜能否增强为类CASA系统。研究人员将pycasa作为构建、基准测试和扩展CASA方法的开放平台发布,而非临床仪器。
计算机辅助精液分析(CASA)系统是成熟的实验室仪器,可以客观、可重复的运动学参数替代主观人工评估来实现精子活力测量的自动化。然而此类系统的应用仍然有限,主要因其依赖昂贵的专用专有仪器,限制了在许多临床和研究环境中的可用性。由于这些系统专有且非透明,其方法无法被便捷地检查、复现或比较,目前尚无开放且可编程的替代方案。大量研究针对CASA的各个独立挑战开发了计算方法,包括基于经典图像处理和深度学习的精子检测、用于重建轨迹的多目标跟踪、活力参数计算以及用于基准测试的标注数据集。然而这些方法通常以孤立实现的形式发布,绑定于单项研究,结构、依赖和文档各不相同,难以复用、复现和比较。少数开源工具已开始将精液分析方法集成到模块化系统中:OpenCASA提供精子质量分析,但其检测方法限于经典图像处理技术,未利用YOLO系列等现代深度学习检测器,且其Java实现虽功能完整,但Java在科学计算领域的用户基础较Python小,限制了复用和扩展;SpermQ针对单细胞鞭毛搏动分析而非样本级活力评估;其他代码库通常每个仅解决一个挑战,无法连接为连贯的工作流。目前仍缺少一个将核心CASA功能集成到单一系统中的开放、可访问的工具箱。研究人员推出pycasa,一个开源Python工具包,以精液延时视频为输入,输出精子检测与轨迹、每条轨迹的运动学参数以及WHO实验室手册定义的活力分级(快速前向运动、慢速前向运动、非前向运动和不动),并可可视化检测结果、叠加在延时帧上的轨迹和每条轨迹的运动学曲线,利用雷达图和密度散点图汇总运动学参数。pycasa采用模块化方法,用户可在核心功能之间切换:将任意可用的精子检测方法(如YOLO26、YOLOv5和Digital Washing)与任意可用的跟踪方法(如SORT、DeepSORT和JPDAF)配对,以计算和可视化活力参数。通过这种模块化架构,用户可以贡献新方法,使pycasa能够随关注低成本、开放CASA系统的社区共同成长。研究人员在人类精子显微镜视频(HSMV)数据集上以两种方式对pycasa进行基准测试。HSMV数据集包含在两种系统上采集的人类精液延时记录:商业CASA系统和标准光学显微镜,并附有真实精子细胞和游动轨迹标注。首先,研究人员评估默认pycasa流程计算的WHO衍生活力参数与商业CASA平台生成的活力报告之间的一致性,两者均来自14名受试者的同一样本(由商业CASA平台本身记录)。其次,研究人员从20段使用标准光学显微镜采集的记录中计算相同的WHO衍生活力参数,并与实验室技术员的人工活力测量结果进行比较,以评估普通光学显微镜能否作为类CASA系统的关键构建模块。最后,研究人员演示pycasa在单个视频片段上生成的视觉输出。商业CASA记录使用Sperm Class Analyzer(SCA;Microptic S.L.)在200×和30 fps下采集(下称sys-casa记录);光学显微镜记录使用Swift M10DB-MP显微镜配合Fujifilm X-T30相机在200×和59.94 fps下采集(下称sys-opt记录)。pycasa v0.0.1通过围绕单个Casa类实例(文中称为casa)构建的方法提供功能,相关方法按模块分组:io、preprocessing、detection、tracking、motility、assessment和visualization,每个模块对应CASA系统执行的一个工作阶段。工具包采用流畅编码风格,每个阶段方法返回更新后的casa对象,因此调用可写成独立语句或链式调用(如casa.detection.yolo().tracking.sort())。所有输入和输出存储在casa对象的六个键下:meta、video、detections、tracks、motility和assessment,这种安排允许任何模块重新运行或替换而不影响其他模块中保存的结果。各模块功能如下:输入/输出(io)模块将延时视频(.avi、.mp4、.mov、.mkv、.flv、.wmv)加载到casa对象中,可从用户提供的文件加载(load_video),或零配置启动,自动下载HSMV sys-casa子集的示例片段(load_default_data,受试者HC004,run-005,200×和30 fps下采集的未洗涤样本,校准为0.24 μm/px);预处理(preprocessing)模块变换加载的帧,提供灰度转换以及多种归一化(重缩放像素强度)和二值化方法;检测(detection)模块提供多种精子检测方法,一次仅一种检测方法处于活动状态,运行另一种会覆盖先前结果,检测性能(精确率、召回率和Fβ分数)可在有真实标注时通过评估模块评分;跟踪(tracking)模块利用检测结果通过所提供的任一跟踪方法生成连续轨迹,与检测类似,运行另一种跟踪方法会覆盖先前的轨迹,跟踪性能(MOTA、IDF1和MOTP)可在有真实轨迹时通过评估模块评分;活力(motility)模块按照标准CASA定义从轨迹计算八个运动学参数(VCL、VSL、VAP、LIN、ALH、WOB、STR、MAD),然后汇总为基于WHO的结果:四种活力分级和活动精子百分比,给定像素校准和计数腔深度,还报告精子浓度,并在提供精液量时报告精子总数;可视化(visualization)模块提供视觉检查检测、轨迹和活力分布的工具,均基于matplotlib构建。评估模块针对导入的真实标注(如有)对检测和跟踪进行评分。示例代码展示了典型用例:使用Casa接口检测、跟踪并可视化精液样本每条轨迹运动学参数的分布,包括从HuggingFace上的HSMV数据集加载带真实标注的前100帧精液延时视频、检测后跟踪精子细胞、针对真实检测评估检测方法、计算八个每条轨迹的运动学参数、汇总为群体级CASA参数(分级、活动百分比、浓度、总数)以及可视化活力参数的密度散点图。研究人员以两种独立的同一样本活力测量对pycasa的输出进行基准测试:首先在sys-casa子集上,将pycasa计算的基于WHO的活力参数与商业SCA系统对同一样本报告的结果进行比较;其次在sys-opt子集上,测试能否从标准光学显微镜获得可靠的基于WHO的活力参数,将pycasa的输出与实验室技术员的人工活力测量结果进行比较。研究人员使用两种互补分析量化pycasa输出与相应参考测量的接近程度:第一,Bland-Altman图将每名受试者的活力数据表示为一个点,x轴显示pycasa值与相应SCA或技术员值的均值,y轴显示其差值(pycasa减去SCA或技术员值),使偏差(平均差值)和95%一致性限(LoA)一目了然;第二,报告额外性能指标,即用于线性相关性的Pearson r、用于典型误差幅度的RMSE和平均绝对误差(MAE),以及用于接近y=x线程度的Lin一致性相关系数(CCC),同时捕捉离散度和系统偏移。研究人员报告默认pycasa流程,即YOLO26检测配合SORT跟踪,并在补充表中给出所有检测与跟踪方法组合的完整比较。在针对商业CASA系统的基准测试中,研究人员首先确认pycasa计算的结果与成熟CASA系统计算的结果相匹配。sys-casa子集提供了使用Sperm Class Analyzer(SCA;Microptic S.L.)采集的原始视频以及SCA系统对同样14名受试者的活力报告。在该实验中,研究人员对每名受试者运行默认pycasa流程(YOLO26检测后接SORT跟踪),并将衍生的基于WHO的活力参数与商业SCA系统提供的报告进行比较。Bland-Altman图显示pycasa(YOLO26+SORT)计算的基于WHO的活力参数与商业SCA系统在14名sys-casa受试者中的一致性水平,每个点代表一名受试者,按精子浓度水平着色,实线表示平均差值(偏差),虚线表示95%一致性限。结果显示,pycasa在体积测量指标上与SCA系统高度一致(浓度CCC 0.933,总数CCC 0.894),在活力分级上一致性中等(前向运动比例CCC 0.610,快速运动比例CCC 0.694)。每个活力分级的偏差均接近于零(在1.6个百分点以内),而浓度和总数的偏差、MAE和RMSE较大。在Bland-Altman图中,活力分级(面板A至F)围绕接近零的偏差散布,而浓度和总数(面板G和H)位于零以下并呈负偏差。排除面板G和H中可见的单个高浓度离群值可减小但无法消除该偏移,证实负偏差是系统性的。这是系统级比较,将pycasa和SCA系统均视为黑箱仪器,因为SCA的内部参数未知,目标是表明流程的输出可信。pycasa与SCA系统之间的强一致性使研究人员相信pycasa产生的结果与商业SCA系统相当。在从标准光学显微镜计算基于WHO的活力参数部分,研究人员在确立与商业CASA系统的系统级一致性后,进一步探究pycasa能否直接从标准光学显微镜记录的视频中计算可靠的活力参数,方法是将pycasa计算的某些基于WHO的活力参数与实验室技术员提供的人工测量结果进行比较。sys-opt子集使用Swift M10DB-MP显微镜配合消费级Fujifilm X-T30相机采集,涵盖20名受试者,跨越一定范围的活力和浓度。除系统级比较外,研究人员还利用可用的真实标注报告检测和跟踪的子系统级性能。针对真实标注,默认检测器(YOLO26;在sys-opt子集上以80/20受试者级训练/测试划分训练,保留HC003、HC012、HC019和HC021)达到平均精确率76%、召回率91%、F1分数81%,默认流程(YOLO26+SORT)平均MOTA为62%、IDF1为48%,两者均随精子浓度增加而轻度下降。研究人员使用Bland-Altman图和一致性指标比较默认pycasa流程(YOLO26+SORT)与技术员人工测量之间的三个基于WHO的参数:活动精子百分比、精子浓度和精子总数。所有三个活力参数均显示负偏差,pycasa活力参数值低于技术员计算的值:活动百分比?12.45,浓度?21.79 M/mL,总数?53.04 M。研究人员还分别计算了低、中、高浓度组的活力参数偏差,发现所有三个活力参数的偏差均随精子细胞浓度增加而恶化,例如在低、中、高浓度组中,偏差分别从约0到?17到?22(活动百分比)、?6到?20到?42 M/mL(浓度)、?12到?47到?107 M(总数)。此外,pycasa计算的活力参数与技术员人工测量相关(活动百分比r=0.782,浓度r=0.879,总数r=0.931)。除这种浓度依赖性变化外,部分偏差可能反映技术员人工测量的主观性。为确定偏差来源于pycasa的检测和跟踪模块还是自动化与人工测量之间的差异,研究人员使用人工标记的真实轨迹(不携带算法检测或跟踪误差)重建了第一行图。结果显示相同的负偏差仍然存在,并且对所有三个参数再次随浓度增加而增大。由于从真实轨迹计算活力参数时偏差并未减小,大部分偏差可能归因于"自动化"pycasa方法与"人工"测量之间的差异,而非算法错误。在单个受试者的示例部分,研究人员在HSMV sys-opt子集的单个延时视频上演示完整的检测-跟踪-活力工作流:受试者HC013的run 045,在Swift M10DB-MP显微镜上以200×放大率和59.94 fps记录(0.24 μm/px)。图中比较了四种精子检测方法(均配合SORT跟踪)应用于HSMV sys-opt子集的HC013片段:第1至4行显示第30、60、90和120帧的真实标注(GT)、Digital Washing、YOLOv5和YOLO26检测的边界框叠加,所有行共享以红色轨迹叠加的SORT跟踪,检测边界框按图例中指示的每种方法进行颜色编码。YOLOv5和YOLO26推理使用HSMV发布的sys-opt权重:yolov5n权重和在sys-opt子集上训练的yolo26s模型。四列按时间顺序显示该片段的第30、60、90和120帧,允许在每个时间点对同一帧比较四种方法。边界框按方法进行颜色编码,红色轨迹是从每行检测计算出的SORT轨迹。总体而言,YOLOv5和YOLO26给出相当的检测质量(YOLO26与YOLOv5在精确率、召回率或F1上均无统计学显著差异;所有情况下p>0.1),且两者均优于其他可用方法。此外,与所有可用跟踪方法相比,SORT在MOTA和IDF1方面达到最高性能。因此研究人员采用YOLO26(用于检测)后接SORT(用于跟踪)作为默认pycasa流程,因为YOLO26报告比YOLOv5更高的性能和更快的CPU推理速度,且SORT给出最高的跟踪性能。在影响部分,pycasa将广泛的CASA相关方法集合于一个公开可访问的工具包中,各专业水平的用户均可采用和扩展。通过将已有的检测、跟踪、活力和评估方法汇集在一个一致的接口下,pycasa降低了自动精液分析的门槛,使用户能够根据需要配置和修改每个模块。这种可访问性拓宽了能够参与CASA相关方法的人群,并支持原本需要大量实现工作才能开展的新研究方向。第一,pycasa支持CASA算法的受控头对头比较。以往比较同一份样本上的SORT和JPDAF跟踪意味着重新实现两者、构建单独的活力模块并协调数据格式。pycasa消除了这些障碍;任何检测方法可与任何跟踪器配对,并通过同一评估模块针对真实标注进行评估,给出直接可比较的结果。这一通用接口使研究检测选择如何传播到活力估计、跟踪方法如何影响碎片化以及深度检测器能否找回经典方法遗漏的细胞变得简单直接。第二,pycasa为生物学和生殖研究提供实用分析工具。没有强大软件背景的用户可以分析记录的样本并研究群体或实验条件之间的差异,包括与药物或其他干预相关的变化,使用一致且可重复的程序。尽管如此,pycasa仅供研究使用,尚未作为医疗器械经过验证;其输出不应用于临床诊断或治疗决策。第三,pycasa可作为缺乏商业CASA系统的实验室的可访问选择。实验室可使用标准光学显微镜记录精液样本并用pycasa分析视频,无需专有仪器即可获得定量活力测量。然而研究人员将此用途定位于研究和资源有限环境,而非经过验证的临床替代;第3节的结果量化了pycasa输出与实验室技术员人工活力测量的一致程度。第四,pycasa可作为培训和质量控制工具。技术员可将人工细胞计数直接与工具包的自动检测和活力输出进行比较,支持人工评估的培训和验证。使用pycasa进行培训和质量控制的读者还可能发现Choi等人的CASA算法评估工具有用,该工具生成具有受控精子特征的合成精液延时图像以评估检测和跟踪。第五,pycasa提高可重复性。CASA研究一直难以复现或扩展,因为研究发表孤立、文档不完整的实现。pycasa在一个版本化接口下提供已有方法的参考实现(SORT、DeepSORT、JPDAF和基于YOLO的检测),因此开发新方法的研究组可针对这些基线进行基准测试而无需重新实现,并报告他人可复现的结果。从加载视频到检测、跟踪、活力及结果图形汇总的完整工作流不到十行代码,且load_default_data可立即访问真实的HSMV记录。最后,pycasa v0.0.1在GitHub上以Apache 2.0许可证公开可用并在线文档化。除HSMV外,其他公共数据集如VISEM-Tracking也可直接处理,支持社区基准测试。在结论部分,研究人员呈现了pycasa v0.0.1,一个实现计算机辅助精液分析(CASA)核心计算阶段的开源Python工具包。该工具包涵盖从视频加载到精子检测和跟踪、精子活力参数计算、性能评估及结果图形汇总的流程,在每个模块中集成已有方法于一个一致接口下。pycasa不强制固定流程,而是让用户自由组合和配置方法,使得比较方法、复现已发表结果以及在无专有仪器的情况下处理样本成为可能。作为开源且用Python编写,它可被广泛专业水平的人群访问并向社区开放扩展。pycasa还计算WHO定义的活力分级、活动精子百分比、精子浓度和精子总数。对于sys-casa子集,研究人员针对同一商业CASA系统生成的报告验证了pycasa的活力参数输出。对于sys-opt子集,研究人员针对实验室技术员的人工测量验证了相同输出,并额外针对真实标注评估了pycasa的检测和跟踪子模块。研究人员将pycasa定位为开放的研究与开发平台而非临床诊断设备。当前版本的局限性,即相对于人工测量的系统性偏差、运动学参数对帧率的依赖性以及仅限研究的活力分析范围,在补充部分中讨论。本研究仅使用公开可用的HSMV数据集中先前收集的记录;未从人类参与者收集新数据。作者贡献:Atilla Sivri负责写作初稿、可视化、验证、软件、形式分析、数据管理;Moshe Kam负责写作审阅与编辑、可视化、监督、资源、项目管理、调查、资金获取;Ludvik Alkhoury负责写作审阅与编辑、写作初稿、可视化、验证、监督、软件、项目管理、方法学、调查、数据管理、概念化。作者单位:美国新泽西理工学院纽瓦克工程学院电气与计算机工程系,纽瓦克,NJ,07102。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号