首页 > 其他分享 >流式细胞文件(.fcs)结构简介

流式细胞文件(.fcs)结构简介

时间:2023-07-05 18:04:41浏览次数:40  
标签:流式细胞 fcs 字节 简介 FCS3.2 Key 文本 数据 起止

FCS一个完整的数据集主要有以下几部分:

  1. 头段(必须)

    • 从数据集的第一个字节开始,文件的第一个数据集是从文件的第一个字节开始,最小长度为58个字节。
    • 以ASCII码解析。
    • 记录内容包括文件版本号(0~5共6字节)、文本段开始字节位(10~17共8字节)、文本段结束字节位(18~25共8字节)、数据段开始字节位(26~33共8字节)、数据段借宿字节位(34~41共8字节)、分析段开始字节位(42~49共8字节)、分析段借宿字节位(50~57共8字节)、其它段起止字节位(非必须,长度可自定义,但推荐8字节)。
    • 文件版本号表示该文件是以哪个版本的FCS协议进行保存的,比如FCS2.0、FCS3.0、FCS3.1、FCS3.2,各个版本的版本号均还是6个字符,ASCII编码后是6字节。
    • 6~9字节是空白预留字节,目前直到FCS3.2版本也未使用到。
    • 各段起止字节位均是8字节,以ASCII解码后是一个数字字符串,数字字符串长度不足8位的会以空白字符(0x00)补齐。
    • 各段起止字节位是相对版本号第一个字节的位置,并不一定是相对文件第一个字节的位置,在一个文件保存多数据集的情况下(虽然不推荐,但可能存在),前一个数据集文本段会有下一个数据集起始位($NEXTDATA)。
    • 除了文本段,其它段的起止位的数字字符串长度超过8位,则在文本段中写入实际的起止位,头段则写入0。
    • 文本段的起止位的数字字符串长度超过8位的,需要将文本段拆分为文本段和补充文本段,必须在头段中记录文本段的完整起止位。
  2. 文本段(必须)、补充文本段(非必须)

    • Key-Value形式存储数据。
    • 段的第一个字节是分隔符,分隔Key和Value以及下一个KeyValue,分隔符通常以KeyValue中不会出现的字符作为分隔符,FCS3.2版本推荐分隔符为0x0A,早期较多厂商使用垂线(0x7C)作为分隔符。
    • 如果KeyValue中出现分隔符,则需要写入两个连续的分隔符表示,类似于\\和\的意思。
    • Key值以ASCII解码,Value在FCS3.1、FCS3.2以UTF8解码,早期版本的FCS可以自定义解码格式($UNICODE)。
    • 预定义的Key以$符号开头,自定义的Key无此限制。
    • 预定义的Key除了各段的起止位置外,还包含实验、数据、样本等重要信息,其中部分是必须写入的,比如通道数($PAR)、总事件数($TOT)、通道名称($PnN)等。
  3. 数据段(必须)

    • 数据段存储着各个通道的事件数据。
    • 存储模式分两种:直方图模式(C)、列表模式(L),其中直方图模式在FCS3.1版本不推荐,FCS3.2版本不支持。各大厂商通常使用列表模式。
    • 列表模式解析是从第一个通道的第一个事件开始,先循环通道,再循环事件,依次读取字节,即同一个事件的各个通道的数据按照通道顺序连续写在一起。
    • 数据段的数据有4种:I(整型)、F(单精度浮点)、D(双精度浮点)、A(ASCII,较难见到)。
    • 不同类型的数据使用不同的字节数或位数存储,在文本段中会记录各个通道使用的位数($PnB),其中单精度浮点固定为32位,双精度浮点固定为64位,ASCII模式下$PnB表示字节数,整型模式下$PnB表示位数。
    • 整型模式下$PnB通常为8的倍数,否则解析算法比较复杂,解析速度较慢。目前各大厂商也是这么做,通常为16位或32位。
    • 注意标准协议中整型模式下,数据存储是没有符号的,即整型模式下的数据均为正数,这也很好理解,采集信号要么有(正数),要么没有(0)。但部分厂商并未遵循此规则,原因是采集到的信号被计算处理过后变成负数。
  4. 分析段(非必须)、其它段(非必须)

    • 分析段通常存储着分析过程或结果,但大部分情况下此段并不会出现,因为采集数据的机器软件并不特别擅长分析或者分析的结果并不会存入文件,通常交给专业的分析软件,比如FlowJo等。分析软件通常也不会修改原始文件。
    • FCS3.1及以前版本,分析段与文本段一样是Key-Value形式,FCS3.2版不再限制为此形式,可以是任何形式,可能是几张图片,可能是一个Json字符串。
    • 其它段属于自定义段,各个厂商可以根据自己需要创建只有自己软件能解析的段,通常情况下也不会出现。
  5. CRC16校验(必须)

    • 两个字节,CRC16校验码,跟随FCS3.2的发布,CRC16的计算方式也以代码的形式一起发布了。
  6. 传送门:

    • FCS标准协议PDF文件下载地址:https://download.csdn.net/download/lwlcctv/86440144
    • 流式图表开源地址:https://gitee.com/Lvwl-CN/FCSChart

 

标签:流式细胞,fcs,字节,简介,FCS3.2,Key,文本,数据,起止
From: https://www.cnblogs.com/Lvwl-CN/p/17528825.html

相关文章

  • GraphicEditor简介
    GraphicEditor是Unity引擎的一个图形编辑器,用于创建和编辑游戏中的图形资源。它提供了一个直观的界面,可以用来绘制2D和3D图形,编辑材质和纹理,以及创建和管理粒子效果等。通过UnityGraphicEditor,开发者可以轻松地创建游戏中所需的各种图形资源。例如,可以使用绘图工具绘制2D图形,包......
  • 分布式医疗云平台(项目功能简介截图)【
    目录3、看病就诊 3.1、门诊挂号3.2、挂号列表 3.4.我的排班 3.5.医生排班  3.6.患者库 4.收费管理4.1.处方收费  4.2.收费查询 4.3.处方退费4.4.退费查询  4.5.处方发药3、看病就诊 3.1、门诊挂号3.1.1、已存在的患者挂号3.1.2、不存在的患者挂号 直接输入患者信息 ......
  • 分布式医疗云平台(项目功能简介截图)【手机端
    目录7.手机端7.1.首页7.2.医院信息  7.3.人个中心7.手机端7.1.首页7.1.1.绑定完善个人信息 7.1.2.预约挂号 7.1.3.挂号记录 7.1.4.就诊病例7.1.5.病历详情 7.1.6.检查结果 7.1.7.检查结果详情 7.2.医院信息  7.3.人个中心7.3.1.我的档案信息 7.3.2.完善档案......
  • 最优化问题简介及优秀教材《凸优化》介绍
    前言最优化广泛应用于科学与工程计算、数据科学、机器学习、人工智能、图像和信号处理、金融和经济、管理科学等众多领域。最优化问题可以归纳为如下定义: 最优化问题一般很难求解,除了一些特例。目前已经发展成熟的,能够有效求解的最优化问题可以归为以下三类:最小二乘问题l......
  • Mixins机制、元类简介、产生类的两种方式、元类的进阶操作
    Mixins机制Mixins机制:子类混合不同类的功能,本质仍是多继承,不依赖于子类的实现。使用:1.主类:就是大部分都是主要的功能2.辅类:就是一些辅助的功能3.辅类的类名也有讲究:一般以mixin、able、ible等结尾4.继承的位置也有讲究eg:classVehicle: #交通工具......
  • Linux 图形栈从入门到放弃 --- Linux 图形相关概念简介
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。环境说明  无前言  在日常生活中,像我们常用的ubuntu(Linux),windows,android,mac等等系统,我们都能够看到丰富的图形界面。此外,如果大家了解过以前的嵌入式系统,很多......
  • spring 监听器 IntrospectorCleanupListener简介
     spring中的提供了一个名为org.springframework.web.util.IntrospectorCleanupListener的监听器。它主要负责处理由JavaBeans Introspector的使用而引起的缓冲泄露。spring中对它的描述如下: 它是一个在web应用关闭的时候,清除JavaBeansIntrospector的监听器.在web.xml中......
  • VCF(Variant Call Format)文件简介
    VCF(VariantCallFormat)文件是一种常用的存储基因组变异信息的文件格式。它是基于文本的格式,用于描述个体或种群的基因组中的单核苷酸变异(SNV)、插入/缺失(Indel)等变异类型。以下是VCF文件的一般结构和主要字段:1.文件元数据(Metadata):以`##`开头的行,用于描述VCF文件的元数据信息,如......
  • 光脚丫学LINQ(014):LINQ to SQL简介
    视频演示:http://u.115.com/file/f29f7838f6 LINQtoSQL是.NETFramework3.5版的一个组件,提供了用于将关系数据作为对象管理的运行时基础结构。说明关系数据显示为由二维表(关系或平面文件)组成的集合,其中公共列将表互相关联起来。若要有效地使用LINQtoSQL,您必须略为熟悉关......
  • Faiss 简介
    Faiss简介1.Faiss是什么Faiss是FacebookAiResearch开发的一款稠密向量检索工具。引用FaissWiki上面的一段简介Faissisalibraryforefficientsimilaritysearchandclusteringofdensevectors.Itcontainsalgorithmsthatsearchinsetsofvectorsofanysize......