# 钙处理工具箱 **Repository Path**: ShanghaiTech-GuanLab/Ca-Processing-Toolbox ## Basic Information - **Project Name**: 钙处理工具箱 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-05 - **Last Updated**: 2022-04-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 钙处理工具包,依赖[OME Bio-Formats 5D 扩展 Extension](https://ww2.mathworks.cn/matlabcentral/fileexchange/104300-ome-bio-formats-5d-extension)、[OME Big TIFF 5D](https://ww2.mathworks.cn/matlabcentral/fileexchange/104050-ome-big-tiff-5d)和[数据格式规范](https://gitee.com/ShanghaiTech-GuanLab/Data-format-specification) # 目录 本包中所有函数均在CaProcessing命名空间下,使用前需import。使用命名空间是一个好习惯,可以有效防止命名冲突,避免编码时不必要的代码提示干扰。 ```MATLAB import CaProcessingToolbox.*; ``` [BatchOir2OmeTiff](#BatchOir2OmeTiff) 批量转换 Olympus OIR 文件到 OME TIFF 文件 [BatchTiffMeasure](#BatchTiffMeasure) Tiff批量测量 [BatchTiffRegister](#BatchTiffRegister) 批量配准 OME BigTiff 5D 文件,输出到同目录下 [ImageJRoiDiff](#ImageJRoiDiff):从一群ImageJ ROI中减去另一群ImageJ ROI [ImageJRoiSetReadout](#ImageJRoiSetReadout):将ImageJ的RoiSet文件读入为椭圆ROI的圆心坐标和横纵半径(以左上角为零点) # BatchOir2OmeTiff 批量转换 Olympus OIR 文件到 OME TIFF 文件 ```MATLAB import CaProcessing.BatchOir2OmeTiff BatchOir2OmeTiff %打开文件选择对话框让用户手动选择要转换的OIR文件,并输出到同目录下 BatchOir2OmeTiff(Flag1,Flag2,…) %重复指定多个特殊功能旗帜 BatchOir2OmeTiff(___,Name=Value) %在上述任意语法基础上,额外指定名称值参数 MetaTable=BatchOir2OmeTiff(___) %在上述任意语法基础上,返回元数据表 ``` ## 示例 ```MATLAB %选择文件 OirPaths=MATLAB.UITools.OpenFileDialog(Filter="Olympus OIR|*.oir",Title="选择OIR",Multiselect=true); OutputDirectory=uigetdir([],"选择要保存到目录位置"); %执行转码 import CaProcessing.* MetaTable=BatchOir2OmeTiff(CaFlags.CdsAsTag,OirPaths=OirPaths,OutputDirectory=OutputDirectory); ``` ## 输入参数 Flag1, Flag2, …(1,1)CaProcessing.CaFlags,指定特殊功能旗帜 Name=Value,可选指定如下名称值参数: - OirPaths(:,1)string,要转码的OIR文件路径,默认打开文件选择对话框要求用户手动选择 - OutputDirectory(1,1)string,输出目录 ## 返回值 MetaTable(:,3)table,返回每个文件的元数据和标通道(如果指定了CdsAsTag旗帜) # BatchTiffMeasure Tiff批量测量 本函数将Tiff批量测量,并支持根据ImageJ RoiSet同时测量多个细胞亚群、多个Z层。 本函数的输出是测量文件(测量.mat),可以为每个Tiff文件输出一个测量文件,也可以将所有测量值输出到同一个文件内,取决于是否设置OneFile旗帜。若输出到多文件,则每个文件内是一个Measurements表格,每行是一个细胞亚群,每列是一个Z层。若输出到单文件,则该文件符合CaDF2.0格式。 ```MATLAB import MATLAB.UITools.OpenFileDialog; %选择文件和参数 CellGroups="所有细胞"; ZLayers=["Z2" "Z5"]; SizeG=numel(CellGroups); ImageJRoiPaths=cell(SizeG,1); for G=1:SizeG ImageJRoiPaths{G}=OpenFileDialog(Filter="ImageJ RoiSet|*.roi;*.zip",Multiselect=true,Title=sprintf("选择%s的所有Z层的ROI文件",CellGroups(G))); end ImageJRoiPaths=vertcat(ImageJRoiPaths{:}); TiffPaths=OpenFileDialog("Filter","配准Tiff|*.已配准.ob5.tif","Multiselect",true,"Title","选择已配准的Tif文件"); MeanTiff=OpenFileDialog(Filter="平均Tiff|*.平均值.ob5.tif",Title="如果需要散射光矫正,选择每个Z层的平均Tiff",Multiselect=false); ScatterRadius=20; %执行测量 import CaProcessing.* BatchTiffMeasure(CaFlags.Parallel,CaFlags.OneFile,TiffPaths=TiffPaths,ImageJRoiPaths=ImageJRoiPaths,ScatterRadius=ScatterRadius,MeanTiff=MeanTiff,CellGroups=CellGroups,ZLayers=ZLayers); ``` ## 重复参数 Flags(1,1)CaProcessing.CaFlags,指定特殊功能旗帜 ## 名称值参数 TiffPaths(:,1)string,要测量的Tiff文件路径,默认打开文件选择对话框要求用户手动选择 ImageJRoiPaths(:,:)string,ImageJ RoiSet文件路径。第1维排列不同的细胞群体,第2维排列不同的Z层。默认打开文件选择对话框要求用户手动选择 ScatterRadius(1,1)double,散射光半径,半径内的平均像素值将被视为散射光而扣除 MeanTiff(1,1)string,平均值Tiff参照文件路径,仅当指定了ScatterRadius时有效。如果指定该参数,则散射光半径内,平均值Tiff的像素值低于范围内中位数的像素的平均值才会被视为散射光。文件必须按照OmeTiff规范排列所有Z层。 CellGroups(:,1)string,每个细胞群体的名称,必须与ImageJRoiPaths第1维长度一致 ZLayers(1,:)string,每个Z层的名称,必须与ImageJRoiPaths第2维长度一致 GaussianDeback(1,1)single,高斯去背景标准差。如果指定该参数,将在散射光矫正之前先对每帧作高斯模糊作为背景,然后将原图减掉背景 ## 已知问题 仅支持输入OmeBigTiff5D格式,维度顺序XYTZC的图像 # BatchTiffRegister 批量配准 OME BigTiff 5D 文件,输出到同目录下 ```MATLAB import CaProcessing.BatchTiffRegister BatchTiffRegister %打开文件选择对话框要求用户手动指定要配准的文件和模板文件 BatchTiffRegister(Flag1,Flag2,…) %重复指定多个特殊功能旗帜 BatchTiffRegister(___,Name=Value) %在上述任意语法基础上,额外指定名称值参数 ``` ## 示例 ```MATLAB %选择文件 import MATLAB.UITools.OpenFileDialog FilesToRegister=OpenFileDialog("Filter","TIFF图像|*.ob5.tif","Multiselect",true,"Title","选择要配准的TIFF文件"); FixedImage=OpenFileDialog("Filter","Tiff图像|*.ob5.tif","Title","选择基准Tif文件,如果取消则以第1个文件的第1帧为基准"); %执行配准 CaProcessing.BatchTiffRegister(MovingPaths=FilesToRegister,FixedImage=FixedImage); ``` ## 输入参数 Flag1,Flag2,…(1,1)CaProcessing.CaFlags,指定特殊功能旗帜 Name=Value,可选指定如下名称值参数 MovingPaths(:,1)string,运动图像路径,默认打开文件选择对话框要求用户手动选择 FixedImage(1,1)string,固定图像路径,默认打开文件选择对话框要求用户手动选择 MaxTranslationStep(1,1),最大平移距离,指可能的最大平移晃动 ## 已知问题 仅支持输入OmeBigTiff5D格式,维度顺序XYTZC的图像 # ImageJRoiDiff 从一群ImageJ ROI中减去另一群ImageJ ROI,即作差集。仅比较每个ROI的文件名,文件名相同即认为ROI相同。 ## 名称-值对组参数 RoiAPath(1,1)string,被减的ImageJ RoiSet。如不指定,将打开文件选择对话框。 RoiBPath(1,1)string,要减去的ImageJ RoiSet。如不指定,将打开文件选择对话框。 RoiCPath(1,1)string,输出文件路径。这个路径要求不一定能完全实现: - 如果集合A被减光了,将不输出任何文件 - 如果只剩1个,则将在此处指定的目录下放置那个剩下的.roi文件,文件名保留那个原本的文件名 - 如果剩余多个,则按照此文件名放置一个.zip文件 ## 返回值 RoiCPath(1,1)string,实际输出的文件路径,不一定与输入的该参数相同。如果没有输出任何文件,返回""。 # ImageJRoiSetReadout 将ImageJ的RoiSet文件读入为椭圆ROI的圆心坐标和横纵半径(以左上角为零点) ImageJ的RoiSet可以是单个.roi文件,也可以是多个ROI打包成.zip文件。每个ROI文件的第7个字节记录了ROI形状(目前仅支持2,圆形),第9~16字节是4个Big-endian的uint16,依次记录了该ROI上、左、下、右边界位置。本函数一次性将所有ROI的四个边界位置读出,并转化为椭圆ROI的圆心坐标和横纵半径 ## 输入参数 RoiSetPath(1,1)string,ImageJ的RoiSet文件路径 ## 返回值 Cx(:,1)double,每个ROI的圆心横坐标 Cy(:,1)double,每个ROI的圆心纵坐标 Rx(:,1)double,每个ROI的横半轴长 Ry(:,1)double,每个ROI的纵半轴长