液相芯片分析仪软件技术报告

编制日期:2015年7月15日 | 单位:中科院苏州医工所 / 中生苏州医疗 软件名称:FCS(Flow Cytometry System)液相芯片分析仪配套软件 文档类型:技术报告 / 研发文档

一、基本信息

1.1 简介

本软件为”***液相芯片分析仪”的配套软件,主要功能包括:

  • 仪器控制 — 采集参数设置、采样控制、状态监控
  • 数据采集 — 通过 USB 从 FPGA 采集卡获取细胞检测数据
  • 数据分析与统计 — 设门、统计、荧光补偿、报告输出
  • 文件浏览器 — 实验文件的新建/打开/保存/管理

1.2 物理架构

三层物理结构:

序号设备名称功能
01控制台计算机系统控制、采集、数据处理与统计、存储
02FPGA 采集控制卡与上位机通信和数据交互,控制流式细胞仪
03流式细胞仪设备硬件设备主体

物理工作流程(6步):

  1. 软件通过 USB 向 FPGA 发送配置参数 → FPGA 回复配置成功
  2. 软件发送示波器开始指令 → FPGA 返回波形数据 → 软件显示波形图
  3. 软件调整参数 → 重新配置 FPGA → 实时更新波形图
  4. 参数调整完毕 → 发送开始采集命令 → FPGA 返回细胞检测数据
  5. 软件存储并显示接收到的细胞数据
  6. 软件对数据进行设门、统计,实现细胞数据分析

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
03USB 驱动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 荧光补偿调节

底层支撑模块

  1. USB 通信模块 — 负责与上位机通信
  2. 数据中心模块 — 负责接收、缓冲、存储数据

2.4 软件异常处理

序号异常情况处理方法
1USB 驱动异常打开失败/下发命令失败 → 对话框提示”USB通信失败”
2载入数据文件失败提示用户读入文件失败
3保存数据文件失败提示用户保存文件失败
4初始化参数文件失败提示用户初始化参数失败
5保存系统参数失败提示用户保存参数失败
6开始采集没有细胞情况1:触发值设置不合理;情况2:下位机工作不正常;情况3:检查 USB 通信
7画布坐标轴混乱建议重新选择散点图/直方图,重置画布参数
8设门几何形状仍在画布上重新点击任何一个设门工具,自动关闭
9统计窗口数据不对点击刷新按钮,重新统计

三、核心算法

3.1 荧光补偿算法

3.2 设门算法:多边形设门的快速细胞筛选

算法本质

对细胞的设门筛选 = 判断点是否在几何体内。多边形设门的数学问题:计算画布上所有代表细胞的点,哪些在多边形内部。

常用算法对比

算法适用范围复杂度
叉乘判别法只适用于凸多边形低
面积判别法只适用于凸多边形低
角度和判别法适用于任意多边形,但需要三角函数运算高
水平/垂直交叉点数判别法(射线法/扫描线法)适用于任意多边形,被广泛应用中

多边形边数 < 44 时,角度和判别法可采用近似公式计算夹角和,避免三角函数运算。

射线法(扫描线法)基本原理

从点 P 发出一条水平射线,统计射线与多边形的交点个数:

  • 奇数 → 点在多边形内部
  • 偶数 → 点在多边形外部
  • 点在多边形边上 → 视为在内部

五种特殊情况(非正常交点)

  1. (a) 正常情况 — 射线穿过边的内部
  2. (b) 射线刚好经过多边形顶点 — 会被误认为和两条边都有交点
  3. (c)(d) 射线与某条边共线 — 有无穷多交点,判断规则失效
  4. (e) 凹多边形 — 需正确处理凹凸

四条特殊处理原则

假设当前处理的边是 P1P2,则:

  1. 顶点穿越处理:如果射线正好穿过 P1 或 P2,交点会被算作 2 次。 → 处理办法:如果 P 的纵坐标与 P1、P2 中较小的纵坐标相同,直接忽略。

  2. 共线处理:如果从 P 发出的射线与 P1P2 平行(水平),则直接忽略。 → 简化判断:只需比较线段两端点的 y 坐标是否相等。

  3. 竖直边处理:如果 P1P2 是竖直线,且 P 的横坐标小于 P1、P2 的横坐标,则必然相交。

  4. 点在边上的处理:判断相交之前,先判断 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 变换相关)
  • 处理荧光信号中的负值数据,保证对数坐标下的可视化

五、技术展望

系统完成了基本核心功能,但仍有大量功能需后期完善:

  1. 实时采集速率优化 — 提高数据采集和绘图之间的并行效率
  2. 绘图设门动态管理 — 设门调整、设门运算交互、设门存储与管理、设门模板
  3. 统计报告智能化 — 报告编辑、转存
  4. 实验管理 — 单个操作者实验的操作记录、设置参数、数据文件管理

总之,在硬件产品不断完善基础上,软件功能也将持续开发和优化,既能提高软件的稳定性、可靠性,又能方便用户使用。


关联笔记

标签

液相芯片 流式细胞仪 软件架构 五层架构 设门算法 射线法 荧光补偿 qt fpga usb通信 技术报告 苏州医工所 中生医疗