加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[原创]全球多种数字化病理切片扫描仪原始图像文件批量转换为imaris的ims格式的程序

(2019-02-10 14:06:31)
标签:

历史

分类: 生物学图像处理
[原创]全球多种数字化病理切片扫描仪原始图像文件批量转换为imaris的ims格式的程序

 编写了将<-数字化病理切片扫描仪原始扫描图像文件-> 静默批量自动转换为 <-imaris的ims格式->的程序:
[原创]全球多种数字化病理切片扫描仪原始图像文件批量转换为imaris的ims格式的程序

支持如下格式输入:
  • Aperio (.svs, .tif)--支持.svs,尚无样品文件测试(.tif)
  • Hamamatsu (.vms, .vmu, .ndpi) --支持.vms,.ndpi,尚无样品文件测试(.vmu)
  • Leica (.scn) --支持(2019.3.16)
  • MIRAX (.mrxs) --支持
  • Philips (.tiff)--尚无样品文件测试(.tiff)
  • Sakura (.svslide) --(仅支持2017+,仅支持导出html网页功能)
  • Trestle (.tif) --支持
  • Ventana (.bif, .tif) --支持.bif,尚无样品文件测试(.tif)
  • Generic tiled TIFF (.tif) --支持
  • Olympus (.vsi) --支持 (2019.3.16)
  • Zeiss (.zvi) --支持 (2020.8.1)
  • 江丰(.kfb) --支持 (2020.8.1)
  • 麦克奥迪(.tif) --支持 (2020.8.1)
特色:
支持无级任意尺度调整采样率: 包括降低或者增加采样率为任意浮点数(0,+∞).
支持自定义无损压缩级数(-1,0~9)

另外,还专门增加了支持MIRAX 01.03版本.mrxs的3D Z-stack转换为3D的ims格式. 
此情况下仅支持受限的降低采样率选项.

基于Bitplane Imaris/ImageJ/Fiji/Excel/GraphPad Prism/Word/PowerPoint/Adobe illustrator/Acrobat/VectorNTI上述常用软件的的生物学图像全自动喂入,分析及汇报的解决方案,诸如:* Imaris插件ImarisXT的编写,用于三维confocal图像自动化处理及分析及图表生成. (Imaris7.4.2+, Imaris 8,以及Imaris 9+).* 面向imaris编程,Imaris人机交互优化/全自动/高通量/分布式/并行架构/功能扩展开发/私人高端定制服务.生物科研文献中围绕Imaris的图像分析方法编程实现.* 全球各大病理/荧光全玻片扫描仪厂商的原始格式的病理/荧光图片批量转换为Imaris的.ims格式文件,并可自动对齐,得到三维图像.* ImageJ / Fiji的人机交互优化/高通量/分布式/全自动化/半自动化操作及数据分析.*全球独家GraphPad无人值守全自动文件生成及全自动差异标注的扩展定制解决方案,全自动操纵GraphPad,将日常枯燥的的数字文本等原始实验数据全自动生成GraphPad文件,并且全自动精准标注p线和显著*,拥有完善的线程调度,尤其适合大批量多数据文件,无人值守自动调度执行. 尤其适合高通量生物医药实验数据在GraphPad中分析.* (脑等)活体通过药物灌流,冷热,光照刺激等神经激活成像实验的拍摄过程的硬件自动化伺服化:.拍摄过程中外围设备(LED光(开关频率光强等)/激光器(开关频率光强等)/冷热仪(动态控温)/液阀(药物动态灌流)...)的全天候伺服级全智能自动化控制,将实验方案中的多种仪器控制完全自动化伺服化,只需开启一次,就可以无期限自动感知和伺服实验者的每一次样品上机操作,从而节省实验者坐在显微镜前的大部分停留时间.======面向Imaris开发的核心项目=====SuperColoc:基于Imaris的无人干预式海量生物学图像分布式多线程并行全自动处理的任务递交及部署可扩展框架.历时近两年完成,改版百余次.这是全球目前面向Imaris个人开发的最庞大的包裝函式(Wrapper),可以实现从个人\实验室\院所\城市\国际合作等规模的图像处理的全自动部署及分析,通过五种模式的无级调整负载,可以自适应低端上网本\个人办公电脑\图像处理工作站\高性能计算设备\分布式计算机集群\多国合作实验室联机电脑集群等规模,实现基于Imaris的高通量图像处理和后分析,直接生成成图表和报告并且发送到指定邮箱.SuperColoc在单机上可以实现最大512级并发,远超现有的Imaris Arena模块提供的2,4,16,32级并发.在分布式集群上则不再有并发数上限.SuperColoc具有稳健的硬件超载及频繁异常检测\自我拯救\断点续接机制,在无人状态下自主解决图像处理中硬件超载产生的各种不可预知异常或定制异常,依次稳健处理多人递交的不同任务.SuperColoc的架构和具体图像分析功能上是高度解耦的,因而具有极强的功能可扩展性,仅需直接面向单个图像,插入定制代码段甚至引入外源框架,就可实现不同使用者特定的功能及流程需求,而无需考虑上层的任务部署,大大加快了功能扩展速度.这远远超越了现有的仅能执行少数单步动作的Imaris Arena模块.SuperColoc也有面向全球现有的及未来新生的ImarisXT插件的接口,可以将原本只能在一个单机电脑上一次运行一个文件的ImarisXT整合到SuperColoc的框架中,实现同样的无人干预自由部署和并行.SuperColoc也支持运行python开发的面向Imaris的pythonXT插件,甚至使早期还未引入python接口的老版本Imaris支持pythonXT.  

======2019.4.11更新=====
更新1: 增加了对Z-stack全玻片扫描的支持(.mrxs格式的3D数据集为特例,有另外的单独支持).
更新2: 增加了最终ims文件压缩,尤其适合体积庞大的全玻片扫描,可以将1G的全玻片ims文件无损压缩为<250MB的ims文件,大大节省了硬盘体积. 结合已有的无级采样率调整,可以更为自由地安排目标文件的大小.
更新3: 增加了对多系列图片的玻片扫描文件的全覆盖支持.

======2019.4.17更新=====
增加了对time-lapse的支持. 虽然病理切片都是静态的图形,只涉及到XYZC四轴,但是也有物理系的用全玻片扫描仪进行动态粒子追踪的. 目前已增加对"全玻片" "多通道" "时间序列" "多层" "荧光/白光"全方位支持.

=======2019.7.27更新====

%{ 本软件用于全自动无人干预静默转换海量的全玻片白光 / 全玻片荧光扫描原始文件到 .tif/.ims 格式文件 , 本软件还支持生物组织连续切片后批量扫描获得的切片文件的全程全自动无人干预三维对准 , 对于扫描人员每张随手框选 区域尺寸不做规定 , 具有很强的鲁棒性,能将数天的生物学切片扫描图片或者普通生物学图片输入,压缩,转换,校准等繁琐的工作量压缩到全程人仅干预1秒(就是双击一下).

特色 : 支持全球诸多商业化扫描仪的文件格式 : tiled tif Hamamatsu[.ndpi,.vms] Aperio[.svs] Trestle[.tif] MIRAX[.mrxs] Ventana[.bif] Leica[.scn] Olympus[.vsi] 对于常规生物学白光或者荧光显微镜的图像格式也支持 . %} % 根目录 rtFolder='D:\QMDownload\4'; % 模式 A 还是模式 B? aMode='A'; 一个玻片的扫描图像通常有 1 个主入口文件 , 也许包含一些辅助文件 . 这些辅助文件通常在附近的同名文 件夹下 , 或者和辅助文件混在在一起 . % 任何时候 , 严禁改变这种相对位置关系 % 按照如下方式准备待转换的玻片扫描文件 :% 模式 A: 根目录 (rtFolder) 下直接就是所有玻片的主入口文件 . 注意要保持每个玻片的附属文件 与其主入口文件的相对位置关系 .% 模式 B: 根目录 (rtFolder) 下只含有若干文件夹 , 这些文件夹内分别含有一些玻片的主入口文件 . 注意要保持每个玻片的附属文件与其主入口文件的相对位置关系 .如果某些格式 ( 比如 [Hamamatsu]:.vms) 的主入口文件和附属文件混在一起 , 建议 ( 但不强 ) 采用模式 B. 因为模式 A 下一大堆附属文件混乱 .% 如果你有几个肿瘤组织 , 每个组织有几十个切片文件 , 那么采用模式 B, 将不同肿瘤文件分 , 这样才能后期分别全自动部署自动对准 ( 如果需要对准的话 ). % 总之 , 默认模式 A, 如果根据各自的需求 , 模式 A 不合适 , 就模式 B.% 一个玻片的主入口文件的格式后缀 ,.ndpi/.vms/.svs/.tif/.mrxs/.bif/.scn/.vsi/.mrxs(Projection)/.mr xs(ZStack) % 注意 ,.mrxs 为特例 , 这款匈牙利扫描仪有单层 / 景深 /zStack 模式 : % 单层模式下 , 文件只有一层图 , 因此选 .mrxs(Projection)( 实话是 , 其实是 slice, 不是 projection. 是拍摄过程有区别 , 但是文件没区别 ) % 景深模式下 , 文件也只有一层图 , 因此选 .mrxs(Projection) % zStack 模式下 , 文件内包含两种组分 , 可以在读片软件上切换浏览 : % (1)zStack 本身 , 为多层 : % 如果你想要这个 , .mrxs(ZStack) % (2)zStack 的单层景深 projection: % 如果你想要这个 , .mrxs(Projection) aFmt='.mrxs(Projection)'; % 是否转换玻片为 tif 文件 ? InitialConvertToTifAsk=1; % 降低采样的 xy 边长压缩浮点数 n. n=1: 不压缩 .n>1: 压缩边长到原 1/n. n<1: 膨胀边长到原 1/n(, 无意义 , 绝对禁止 !). 注意 , 如果目的是 .mrsx 多层切片 stack, .mrxs(ZStack), 则仅限输入正整数 n, 表示 2^(n-1) xy 边长压 缩倍数 . aCompression=10; % 如果切片打开后是多个裁切区图片列表 , 其中有些图片你不想转换 , % 比如某张独特的全局缩略大图 , 或者可能的手写玻片标签照 , 或玻片二维码贴纸等 , % 这些文件名通常具有规律 , 可以总结出若干逃逸词汇 . % 比如 ,.vsi,.scn 等格式的玻片文件用 OlyVIA 专用程序打开后可看到 Overview 总图和若干裁切图 . % 如果不需要总图 , 建议输入 Overview; 多个以分号隔开 .escapeWords ={'overview';'Series 0 (macro)';'Series 1';};如果不用逃逸 , 可以 escapeWords = = {};% 选择转换切片为 tif 文件的模式 : % h: , "XYC 碎片 " 导出到每个 " 同名 _tif(_subtag)" 文件夹下 , 根据 tile 文件名中的平面 xy 位置及 Z,T 信息 , 进行 XYZCT 拼接为 ims. % ic: imaris转换途径 . "XYC 全片 " 导出到每个 " 同名 _tif(_subtag)" 文件夹下 , 每个文件夹内只用 转换第一个 tif 文件为 ims. % 注意 , 如果是 ic 模式 , 而且不降低采样 (aCompression = 1), 那么单张切片像素数目不得超过 2147483648( 正方形而言 , 不得过 46340 x 46340) conversionViaAskAss={'h';'ic';}; conversionViaAsk=conversionViaAskAss{2}; % 导出 tif 时是否对颜色通道分隔 (split channel)? splitChAsk=1; % 是否将 tif 转换为 ims 格式 ? convertToImsAsk=0; % 如果为 h 模式 , 输入 tif 转换为 ims 文件时的 chunk deflate 设置 :-1,0,1,2,...9. -1 表示不压缩 . 0,1,2 表示逐渐加深的压缩 . deflate=1; % ( 如果 ) 转换为 ims 格式后 , 是否删除 tif? deleteMediatorFileAsk=0; % 是否此刻 ( 中期 ) tif 图像进行边框背景扣除填充 ? 通常没必要开启 , 除非 : % 如果是 .mrxs 格式 , 而且扫描人员对你的每张组织切片扫描前随手大致自由框选了一个范围圈 % 由于匈牙利扫描仪的专利格式 , 圈外的背景色会被强制设为诡异的灰色 128, % 此时必须开启边框背景扣除填充 ! fillBoundaryPatchsAsk=1; % 定义背景色 . 矩阵尺寸决定于是 "splitChAsk=0 多通道合体图 ", 还是 "splitChAsk=1 灰度图 " aBgrd=[128,0,0,0]';%[128,128,128,0]'; %RGB 模式下 4x1:RGBA. 多通道则尺寸为 Nx1, 灰度则为单个数字 , 下同 . % 用什么颜色来替代背景色 aBgrdNew=[0,0,0,0]'; %[0,0,0,0]';% 通常荧光用 0 来替代背景斑块 .HE 染色等白场情形尚未接触过 , 碰到另说 . % 针对背景色块的城墙跑马划界 , 跑马界需要肿胀多宽 , 用来尽量扩充囊括边界的微量瑕 , 一并铲除 . roiEnlarge=5; % 但是一个像素是否为背景 , 还取决于 isInBkgrd(inquiry,bgrd_ref) 的实现逻辑 . % 输入单行真假表达式字符串 ,inquiry,aBgrd 分别为当前像素和参考背景像素 . % 参考 : % 'isequal(inquiry,aBgrd)' % 'all(inquiry(1:3) == inquiry(1))' % 'all(inquiry(1:3) > 0.5*aBgrd)' isInBkgrdScript='isequal(inquiry,aBgrd)'; % 是否对图像进行亮度增强 . 有些商业扫片公司为了延长荧光源寿命节省成本 , 降低亮度 , 导致切片整体特别暗 . 可以开启这个来纠正 , 对于对准需求 (register) 更是必要 ! saturatedAsk=1; % 调节到百分之多少像为超越比特深度阈值 ? saturated=10; % 是否将模式 A rtFolder 内的全部 tif 按照 C 通道进行旁系迁移合并 ? tifParaCmixAsk=1; % , 并且紧随着对其进行对准 (register)? tifVirtualRegisterAsk=1; % 对准的最佳参考通道是 ? 第一通道为 0, 第二通道为 1, 以此类推 ... primeC=0; % 是否将对准后的多通道 merge 1 ims 文件 ? mergeParaCmix2ImsAsk=1; 

=======2019.8.20:更新==========
针对高分辨率的单张超大体积一系列病理切片扫描tif图(比如,单张tif原始未压缩体积可为300mb~3GB),其三维对准对齐对会消耗大量内存及时间,不现实. 

目前增加了小图对准后投射到原始大图的方案,该方案将占据大部分时间的对准过程时间大大减少,而且最终在原始大图上执行对准效果. 最终的对准切片Stack就可以根据感兴趣的区域,裁切出一块四四方方,对准好的,高清无损的局部图,用来进一步在图像处理软件中进行后处理及分析.

=======2020.4.更新==========
1.支持断点续传,最大程度避免中途异常后,再次运行时的二次重复无用功,自动分析最邻近的崩溃点,断点续传接着运行.
2.支持切片入口文件之间无对准需求,或者扫片公司已经将其对准好的海量上百G的单张文件,跳过对准环节,其余步骤不变,融合为一个总ims文件的常见情况,

=======2020.7月更新==========
2020.07.01新加独占性功能:
将每个病理切片分别生成一个本地html网页(以及文件夹),
可以用浏览器对该切片进行缩放,拖拽及全屏浏览.
可以任意定制网页视窗大小及最大分辨率.
也可以生成带大量可任意叠加及调整参数的滤波器网页.

=======2020.8月1日更新==========
1.增加了对国内最主流的两款国产病理切片扫描仪的支持:
(1)江丰kbf扫描仪.
(2)麦克奥迪的tif格式本来就支持,现在更新了海报说明.
2.修正了非RGB模式图像的单/多通道图像导出为jpg,png等非tif格式的瓦片时亮度不一致的bug.

=======2020.8月4日更新==========
1.新增支持 Sakura (.svslide) 格式: (仅支持2017+,仅支持导出html网页功能)

=======2020.8月21日更新==========
1.针对有些人用匈牙利3DHistech扫描仪[或者其他扫描仪]拍摄时,没有充分利用丰富的选择与反选区工具,而是直接听从机器自动评估的扫描区域,结果导致一张片子上除了中间区域的细胞组织被识别外,片子周边甚至远处的若干瑕疵比如老毛,手指印,油污,灰尘,玻璃瑕疵,暗影,宽式载玻片棱角阴影...等被误认为细小的ROI也被拍摄,由于mrxs的格式缺陷导致大量的空白tile被写入文件内.导致本来80MB的核心区域,扫描出2GB的文件,96%都是空白垃圾.

此次更新专门针对这种行为,自动提取整张玻片上的最核心最大的一块连续区域进行正常处理.
以上述为例,拍摄了2GB的文件,转换为45GB的无损tif碎片.经过本次更新,2GB中拿到最核心的80MB,转换为1.8GB的无损tif碎片,既可以加载到云服务器上用于病理机器学习,也可以作为懒加载网页(jpg碎片),实现在线浏览器阅片交流.

=======2020.8月23日更新==========
对tif图像碎片输出进行了专门优化(主要针对服务器病理切片机器学习)
1. 可以选择跳过白色的背景碎片
2. 可以选择跳过右边界和底部的尺寸不同于目标尺寸的边角料
3. 针对大量文件可能会塞满硬盘的问题,可以指定任何数量的输出文件夹(在不同磁盘上).每次输出前会检测输出目录所在磁盘空间是否足够当前所需.如果不够,会切换到下一个目录检测....
4. 对于不同扫描仪或者不同镜头拍摄的切片文件,其原始像素的物理尺寸并不一致,而机器学习需要像素尺寸完全一致的规格,因此增加了反向动态采样率选项,即并不主动规定采样率多少,而是根据需要指定目标图像每个像素的真实微米尺寸,执行时每个图像以该目标为导向,动态调节采样率(浮点数,精确到小数点后数十位,最终的图像尺寸分毫不差).

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有