液相芯片分析仪软件技术报告
编制日期:2015年7月15日 | 单位:中科院苏州医工所 / 中生苏州医疗 软件名称:FCS(Flow Cytometry System)液相芯片分析仪配套软件 文档类型:技术报告 / 研发文档
一、基本信息
1.1 简介
本软件为”***液相芯片分析仪”的配套软件,主要功能包括:
- 仪器控制 — 采集参数设置、采样控制、状态监控
- 数据采集 — 通过 USB 从 FPGA 采集卡获取细胞检测数据
- 数据分析与统计 — 设门、统计、荧光补偿、报告输出
- 文件浏览器 — 实验文件的新建/打开/保存/管理
1.2 物理架构
三层物理结构:
| 序号 | 设备名称 | 功能 |
|---|---|---|
| 01 | 控制台计算机 | 系统控制、采集、数据处理与统计、存储 |
| 02 | FPGA 采集控制卡 | 与上位机通信和数据交互,控制流式细胞仪 |
| 03 | 流式细胞仪设备 | 硬件设备主体 |
物理工作流程(6步):
- 软件通过 USB 向 FPGA 发送配置参数 → FPGA 回复配置成功
- 软件发送示波器开始指令 → FPGA 返回波形数据 → 软件显示波形图
- 软件调整参数 → 重新配置 FPGA → 实时更新波形图
- 参数调整完毕 → 发送开始采集命令 → FPGA 返回细胞检测数据
- 软件存储并显示接收到的细胞数据
- 软件对数据进行设门、统计,实现细胞数据分析
1.3 软件五层架构
系统采用经典五层架构设计:
┌─────────────────────────────────┐
│ 应用层 │ 采集参数设置 / 采样控制 / 状态监控
│ (Application Layer) │ 绘图 / 图像输出 / 统计报告
│ │ 荧光补偿 / 文件浏览器
├─────────────────────────────────┤
│ 业务层 │ 示波器环形缓冲区
│ (Business Layer) │ 细胞数据缓冲区
│ │ 数据表管理
├─────────────────────────────────┤
│ 接口层 │ 命令接口 / 监听接口 / 文件接口
│ (Interface Layer) │
├─────────────────────────────────┤
│ 数据通信层 │ USB 驱动模块(硬件供应商提供)
│ (Communication Layer) │
├─────────────────────────────────┤
│ 物理层 │ FPGA 采集控制卡
│ (Physical Layer) │
└─────────────────────────────────┘
1.4 模块划分
根据功能需求划分开发模块,核心模块:
- 文件浏览器 (FileBrowser)
- 控制 (Control)
- 状态监控 (StatusMonitor)
- 数据分析与统计 (DAS, Data Analysis and Statistics)
- 底层支撑:USB 通信模块 + 数据中心模块(接收/缓冲/存储)
1.5 数据流程设计
实时采集与数据显示处理是系统核心数据处理流程,保证并行运行:
- 采集存储与快速统计/绘图显示并行
- 示波器环形缓冲区 + 细胞数据缓冲区双缓冲架构
1.6 适用范围
本软件是中科院苏州医工所研发的***液相芯片分析仪设备的专用配套软件,不适应其他设备。
二、研制说明
2.1 开发模型
增量开发模型 — 由于产品在研发阶段,需求根据硬件研发进度不断提出,采用增量模型逐步迭代。
2.2 开发平台
| 序号 | 名称 | 具体要求 |
|---|---|---|
| 01 | 开发工具 | VS2013、Qt 5.3、QWT 6.1 |
| 02 | 控制台计算机 | Windows 7 32bit |
| 03 | USB 驱动 | CyAPI 4.7.4 |
2.3 功能需求
功能模块总览(4大类 14 项细化功能)
101 - 文件浏览器 FileBrowser
- 10101 新建、删除、重命名文件
- 10102 文件目录显示
- 10103 打开实验文件
- 10104 保存实验文件(数据文件)
102 - 控制 Control
- 10201 采集参数设置
- 采集样本数控制
- 电压增益调节
- 采集通道设置
- 样本流速控制
- 鞘液设置
- 排气功能
- 清洗功能
- 10202 采样控制
- 试采样(不保存)
- 开始实验(自动存储)
- 停止实验
103 - 状态监控 StatusMonitor
- 10301 自检:运行自检,USB 启动 FPGA 连接是否正常,软件初始化
- 10302 其他报警:系统操作出错提示
104 - 数据分析与统计 DAS
- 10401 统计报告 → PDF 输出
- 10402 绘图
- 直方图、散点图
- X、Y 可选线性/对数坐标
- 10402 设门(百分比、CV)
- 散点图支持:矩形、椭圆、四象限、多边形
- 直方图支持:竖线设门
- 10403 统计
- 参数:总个数、个数比、CV值、平均值、中间值等
- 参数用户可自行选择显示/隐藏
- 10404 荧光补偿调节
底层支撑模块
- USB 通信模块 — 负责与上位机通信
- 数据中心模块 — 负责接收、缓冲、存储数据
2.4 软件异常处理
| 序号 | 异常情况 | 处理方法 |
|---|---|---|
| 1 | USB 驱动异常 | 打开失败/下发命令失败 → 对话框提示”USB通信失败” |
| 2 | 载入数据文件失败 | 提示用户读入文件失败 |
| 3 | 保存数据文件失败 | 提示用户保存文件失败 |
| 4 | 初始化参数文件失败 | 提示用户初始化参数失败 |
| 5 | 保存系统参数失败 | 提示用户保存参数失败 |
| 6 | 开始采集没有细胞 | 情况1:触发值设置不合理;情况2:下位机工作不正常;情况3:检查 USB 通信 |
| 7 | 画布坐标轴混乱 | 建议重新选择散点图/直方图,重置画布参数 |
| 8 | 设门几何形状仍在画布上 | 重新点击任何一个设门工具,自动关闭 |
| 9 | 统计窗口数据不对 | 点击刷新按钮,重新统计 |
三、核心算法
3.1 荧光补偿算法
- 用途:对细胞荧光数据进行串扰补偿调整
- 原理:通过补偿矩阵算法修正多通道荧光串扰
- 详见:荧光补偿算法-液相芯片多色荧光检测
3.2 设门算法:多边形设门的快速细胞筛选
算法本质
对细胞的设门筛选 = 判断点是否在几何体内。多边形设门的数学问题:计算画布上所有代表细胞的点,哪些在多边形内部。
常用算法对比
| 算法 | 适用范围 | 复杂度 |
|---|---|---|
| 叉乘判别法 | 只适用于凸多边形 | 低 |
| 面积判别法 | 只适用于凸多边形 | 低 |
| 角度和判别法 | 适用于任意多边形,但需要三角函数运算 | 高 |
| 水平/垂直交叉点数判别法(射线法/扫描线法) | 适用于任意多边形,被广泛应用 | 中 |
多边形边数 < 44 时,角度和判别法可采用近似公式计算夹角和,避免三角函数运算。
射线法(扫描线法)基本原理
从点 P 发出一条水平射线,统计射线与多边形的交点个数:
- 奇数 → 点在多边形内部
- 偶数 → 点在多边形外部
- 点在多边形边上 → 视为在内部
五种特殊情况(非正常交点)
- (a) 正常情况 — 射线穿过边的内部
- (b) 射线刚好经过多边形顶点 — 会被误认为和两条边都有交点
- (c)(d) 射线与某条边共线 — 有无穷多交点,判断规则失效
- (e) 凹多边形 — 需正确处理凹凸
四条特殊处理原则
假设当前处理的边是 P1P2,则:
-
顶点穿越处理:如果射线正好穿过 P1 或 P2,交点会被算作 2 次。 → 处理办法:如果 P 的纵坐标与 P1、P2 中较小的纵坐标相同,直接忽略。
-
共线处理:如果从 P 发出的射线与 P1P2 平行(水平),则直接忽略。 → 简化判断:只需比较线段两端点的 y 坐标是否相等。
-
竖直边处理:如果 P1P2 是竖直线,且 P 的横坐标小于 P1、P2 的横坐标,则必然相交。
-
点在边上的处理:判断相交之前,先判断 P 是否在边 (P1, P2) 上,如果在则直接返回”点在多边形内部”。
算法伪代码
输入:点 p(x, y),多边形 Polygon (x1,y1; x2,y2; ... xn,yn)
输出:0 = 在内部,1 = 在边上,2 = 在外部
1. 以 p 为起点,作平行于 X 轴的射线 line(x,y; -∞, y)
2. count = 0
3. for i = 0 to n-1:
side = (xi, yi) → (xi+1, yi+1)
a. 如果 side 平行于 X轴 → continue
b. 如果 p 在 side 边上 → return 1(在边上=内部)
c. 如果射线 line 与 side 有交点 → count++
4. if count 为奇数 → return 0(内部)
else → return 2(外部)
四、关键技术要点
本软件三大核心关键技术:
1. 设门技术
- 通过多种几何形状进行细胞数据筛选
- 重点:Log 坐标和线性坐标下的不规则几何形状的设门和绘图
- 包括椭圆、多边形快速筛选方法
- 设门关系管理、数据存储、点的着色
2. 荧光补偿技术
- 通过补偿算法对细胞数据进行补偿调整
- 多通道荧光串扰校正
3. 细胞数据负数处理方法
- 双指数数据处理(Biexponential / Logicle 变换相关)
- 处理荧光信号中的负值数据,保证对数坐标下的可视化
五、技术展望
系统完成了基本核心功能,但仍有大量功能需后期完善:
- 实时采集速率优化 — 提高数据采集和绘图之间的并行效率
- 绘图设门动态管理 — 设门调整、设门运算交互、设门存储与管理、设门模板
- 统计报告智能化 — 报告编辑、转存
- 实验管理 — 单个操作者实验的操作记录、设置参数、数据文件管理
总之,在硬件产品不断完善基础上,软件功能也将持续开发和优化,既能提高软件的稳定性、可靠性,又能方便用户使用。
关联笔记
- CyteCluster流式细胞仪软件产品说明书 — 同系列产品说明书(中生苏州医疗 CyteCluster V1.3,2014年版),功能模块高度重叠,可对比阅读
- 荧光补偿算法-液相芯片多色荧光检测 — 荧光补偿算法的独立文档,更详细的推导
- 液相芯片测试软件需求分析及界面设计方案 — 液相芯片调试软件的需求文档,另一角度的架构描述
- 共聚焦软件采集部分架构导图 — 另一款仪器软件的架构设计,可对比五层架构差异
- 流式细胞仪详细设计说明书-CLFCS-V1.0 — C-Light 流式细胞仪详细设计,架构对比
标签
液相芯片 流式细胞仪 软件架构 五层架构 设门算法 射线法 荧光补偿 qt fpga usb通信 技术报告 苏州医工所 中生医疗