FCS 3.0.2

.NET Standard 2.0 .NET Framework 4.5.2
Install-Package FCS -Version 3.0.2
dotnet add package FCS --version 3.0.2
<PackageReference Include="FCS" Version="3.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FCS --version 3.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FCS, 3.0.2"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install FCS as a Cake Addin
#addin nuget:?package=FCS&version=3.0.2

// Install FCS as a Cake Tool
#tool nuget:?package=FCS&version=3.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

开源不易,感谢支持

支付宝微信

FCS GithubGitee

FCS文件解析帮助类,目前支持DataType为I、F、D 的3.2版本,Mode为L的3.1、3.0版本的FCS文件。3.2版本没有Mode关键字,默认是List存储。详细信息请查看文档

使用代码:

IEnumerable<FCS> fcslist = FCS.Factory.ReadFile(@"C:\test.fcs");//读取文件中全部数据集
FCS firstDataset = FCS.Factory.ReadFileOneDataset(@"C:\test.fcs");//读取文件中第一个数据集
firstDataset.CalculationCompensation();//计算补偿后的刻度值数据
firstDataset.ClearMeasurementCompensationScaleValues();//清除补偿后得刻度值数据
FCS.Factory.SaveToFCS(@"C:\test1.fcs",fcslist.ToArray());//保存数据集到文件

Factory读写文件类

方法 含义 参数 返回
ReadFile 读取fcs文件 filePath:文件路径,readDataSegment:是否读取数据段 IList< IFCS >
Read 读取 stream:文件流,readDataSegment:是否读取数据段 IList< IFCS >
ReadFileOneDataset 读取文件中的一个数据集 filePath:文件路径,dataSetOffset:数据集在文件中的起始位置,readDataSegment:是否读取数据段 IFCS
ReadOneDataset 读取一个数据集 stream:文件流,dataSetOffset:数据集在文件中的起始位置,readDataSegment:是否读取数据段 IFCS
ReadDataSegment 读取数据段 filePath:文件路径/stream:文件流,fcs:IFCS对象,dataSetOffset:数据集在文件中的起始位置 void
SaveToFCS 保存IFCS对象 filePath:文件路径/stream:文件流,list:IFCS对象集合 void
SaveToFCS30 保存IFCS对象到3.0版本 filePath:文件路径/stream:文件流,list:IFCS对象集合 void
SaveToFCS31 保存IFCS对象到3.1版本 filePath:文件路径/stream:文件流,list:IFCS对象集合 void
SaveToFCS32 保存IFCS对象到3.2版本 filePath:文件路径/stream:文件流,list:IFCS对象集合 void

IFCS:主要输出对象

属性 含义 类型 说明
TextSegment 文本段和补充文本段 Dictionary< string, string > 文本段和补充文本段混合在一起,不受FCS文件的文本段长度限制
Measurements 通道参数集合 IList< Measurement > Measurement是通道类,记录着通道的数据、参数等
ByteOrder 字节序 ByteOrder $BYTEORD
CellsType 测量对象类型 string 血液、唾液 $CELLS
Comment 说明注释 string $COM
FlowCytometerType 仪器名称 string $CYT
FlowCytometerSerialNumber 流式细胞仪的序列号 string $CYTSN
DataType 数据类型 DataType $DATATYPE
InvestigatorName 实验发起人姓名 string $EXP
DataFileName 包含数据集的数据文件的名称 string 不包含路径。$FIL
Institution 机构或实验室名称 string $INST
Lost 由于计算机忙于其他任务⽽丢失的事件数 uing $LOST
NextData 下一个数据集偏移位置 long $NEXTDATA
Operator 仪器操作人员名称 string $OP
MeasurementCount 通道数量 int $PAR
ProjectName 实验项目名称 string $PROJ
SpecimenLabel 样本标识 string $SMNO
SpecimenSource 样本来源 string $SRC
System 系统名称 string $SYS
TimeStep 时间步伐,Time参数使用 float? $TIMESTEP
TotalNumber 事件总数 int $TOT
Threshold 阈值 Threshold $TR
CreateNewMeasurement() 创建新的Measurement通道参数对象 IMeasurement
CalculationCompensation() 计算补偿后数据 void
ClearMeasurementCompensationScaleValues() 清除通道参数的补偿刻度值数据 void

FCS30:继承自IFCS

属性 含义 类型 说明
AnalysisSegment 分析段数据 Dictionary< string, string >
BeginTime 采集开始时间 string $BTIM
EndTime 采集结束时间 string $ETIM
Date 采集日期 string $DATE
Compensation 补偿 Compensation $COMP

FCS31:继承自IFCS

属性 含义 类型 说明
AnalysisSegment 分析段数据 Dictionary< string, string >
BeginTime 采集开始时间 string $BTIM
EndTime 采集结束时间 string $ETIM
Date 采集日期 string $DATE
LastModificationDateTime 最后修改时间戳 string $LAST_MODIFIED
LastModificationUserName 最后修改人姓名 string $LAST_MODIFIER
Originality 文件原创性 Originality $ORIGINALITY
PlateID 孔板的唯⼀标识符 string $PLATEID
PlateName 孔板的名称 string $PLATENAME
Spillover 溢出 Spillover $SPILLOVER
SampleVolume 使用的样本体积/nL float $VOL
WellID 孔盘上的位置 string $WELLID

FCS32:继承自IFCS

属性 含义 类型 说明
AnalysisData 分析端数据字节数组 byte[] 可能是xml,键值对,json,二进制文件等
BeginDateTime 采集开始时间 DateTime $BEGINDATETIME
EndDateTime 采集结束时间 DateTime $ENDDATETIME
CarrierID 载体ID标识,孔盘标识 string $CARRIERID
CarrierType 载体类型,孔盘类型 string $CARRIERTYPE
FlowRate 液流速度 string $FLOWRATE
LastModificationDateTime 最后修改时间戳 string $LAST_MODIFIED
LastModificationUserName 最后修改人姓名 string $LAST_MODIFIER
LocationID 载体上的位置,孔盘上的位置 string $LOCATIONID
Originality 文件原创性 Originality $ORIGINALITY
Spillover 溢出 Spillover $SPILLOVER
UnstainedCenters 未染⾊细胞或粒⼦群的平均背景和⾃发荧光 UnstainedCenters $UNSTAINEDCENTERS
UnstainedInfo 描述细胞或粒⼦源、⻔控、类型⽤于获取 $UNSTAINEDCENTERS 向量的统计量 string $UNSTAINEDINFO
SampleVolume 使用的样本体积/nL float $VOL

IMeasurement:通道参数

属性 含义 类型 说明
Name 名称 string 通道名称
BitNumber 数据位数 uint 只支持能被8整除的数,DataType=F时为固定32,DataType=D时为固定64
ByteNumber BitNumber/8 int 位数转字节数
Amplification 放大类型 Amplification DataType为D/F时,Amplification固定为 0,0
Range 最大值 ulong 参数值的区间。只用于DataType=I,因为F和D情况下,会超出这个范围
OpticalFilter 光学滤波器名称 string
Gain 增益 double 3.2版本只能应用于DataType=I,DataType为F、D时,该值固定为1。3.1、3.0版本不受限制
Wavelength 激发波长 string
Power 激发功率 uint
LongName 全称 string
Detector 探测器类型 string
Voltage 探测器电压 double
ChannelValues 该通道的通道值数据集合 IList 内部值可能是double、float、ulong、uint、ushort、byte
CompensationScaleValues 补偿后的刻度值-需要计算PnE对数放大,PnG线性放大,COMP补偿或Spillover溢出 List< double >
AddOneValue(byte[] bytes, DataType dataType, ByteOrder byteOrd) 向数据集中添加一个数据 void 第一个参数为要添加的数据(字节数组形式),DataType=I时,执行范围(PnR)过滤(v%PnR)
BitMask(T v) 范围过滤(v%PnR) T DataType=F、D时不过滤
AmplificationCalculation(double value) PnE对数放大计算 double 3.1、3.2只用于DataType=I
GainCalculation(double value) PnG线性放大计算(value / PnG) double 3.2版本只用于DataType=I
GetScaleValue(int index, DataType dataType) 获取刻度值,PnE,PnG计算后的值 double

Measurement30:继承自IMeasurement

属性 含义 类型 说明
LightCollectedPercent 检测器为 FCS 测量编号 n 收集的光量,表⽰为荧光物体发出的光的百分⽐ int? $PnP

Measurement31:继承自IMeasurement

属性 含义 类型 说明
Calibration 校准 Calibration $PnCALIBRATION
SuggestedVisualizationScale 建议可视化比例 SuggestedVisualizationScale $PnD
LightCollectedPercent 检测器为 FCS 测量编号 n 收集的光量,表⽰为荧光物体发出的光的百分⽐ int? $PnP
CalibrationCalculation(double value) 计算校准 $PnCALIBRATION double value*Slope+Intercept 乘以斜率加上偏移

Measurement32:继承自IMeasurement

属性 含义 类型 说明
Analyte 目标分子或过程 string $PnANALYTE
Calibration 校准 Calibration $PnCALIBRATION
SuggestedVisualizationScale 建议可视化比例 SuggestedVisualizationScale $PnD
DataType 该通道数据类型 DataType 3.2版本新增,区别默认数据类型。$PnDataType
DetectorName 探测器名称 string $PnDET
Feature 特征 Feature $PnFEATURE
Dye 染料(荧光色素)或同位素 string $PnTAG
Type 测量类型 MeasurementType $PnTYPE
CalibrationCalculation(double value) 计算校准 $PnCALIBRATION double value*Slope+Intercept 乘以斜率加上偏移

Amplification:放大类型参数 PnE

公式:v=10^(PowerNumber * xc /(PnR)) ZeroValue | 属性 | 含义 | 类型 | 说明 | | --- | --- | --- | --- | | PowerNumber | 10的次方数 | double | | | ZeroValue | 0对应的转换值 | double | |

ByteOrder 数据字节排序方式 $BYTEORD

属性 含义
Unknown 未知
LittleEndian 低位在前
BigEndian 高位在前

Calibration 校准 $PnCALIBRATION

属性 含义 类型 说明
Slope 斜率 float
Intercept 校准偏移 float
Name 单位的名称 string

Compensation 补偿 3.0:$COMP

属性 含义 类型 说明
Coefficients 补偿值集合 float[][]

DataType 数据格式 $DATATYPE

属性 含义
Unknown 未知
I 整数
F 单精度浮点
D 双精度浮点

Feature 参数特征枚举 $PnFEATURE

属性 含义
Unknown 未知
Area 面积
Width 宽度
Height 高度

MeasurementType 参数类型枚举 $PnTYPE

属性 含义
Unknown 未知
ForwardScatter 前向散射
SideScatter 侧散射
RawFluorescence 原始荧光
UnmixedFluorescence 非混合荧光
Mass 质量
Time 时间
ElectronicVolume 电量
Classification 分类
Index 索引

Mode 存储模式 $MODE

属性 含义
Unknown 未知
L 列表模式

Originality 数据文件的原始性 $ORIGINALITY

属性 含义
Unknown 未知
Original 原始数据,仪器生成
NonDataModified 数据段未修改
Appended 只向数据段追加数据
DataModified 修改过的

Spillover 溢出 3.1,3.2:$SPILLOVER

属性 含义 类型 说明
MeasurementNames 参数名称集合,需要与PnN相同 string[]
Coefficients 补偿值集合 float[][]

SuggestedVisualizationScale:推荐的可视化范围 $PnD

属性 含义 类型 说明
Type 类型 SuggestedVisualizationScaleType Linear/Logarithmic
Min 最小值 double
Max 最大值 double

Threshold:阈值 $TR

属性 含义 类型 说明
MeasurementName 阈值通道名称 string
ThresholdValue 阈值 float

UnstainedCenters:未染⾊中⼼ $UNSTAINEDCENTERS

属性 含义 类型 说明
Values Dictionary< string, float >

其它

FCS文件格式说明文档可在此下载 GithubGitee
FCS文件可在此下载 flowrepository

更新日志

3.0.2

1、添加单独读取数据段方法

3.0.1

1、修复$TIMESTEP参数计算bug

3.0.0

1、更好的支持FCS3.2版本
2、标准协议中定义的内容以属性形式呈现和设置
3、重构优化部分代码
4、修复一些BUG
5、完善补偿和刻度计算功能

2.0.3

1、修复数据段过大时无法保存bug
2、文件覆盖保存前,先清空文件流
3、FCS3.0的补偿值关键字和格式调整

2.0.2

1、规范属性名称
2、Measurement类实现INotifyPropertyChanged接口

2.0.1

1、添加通道值转刻度值方法
2、数据解析时,实例化数组时设置数组的Capacity属性
3、TOT属性类型更改为int

2.0.0

1、更改输出对象FCS,输出对象无关文件信息(版本、段起止位置等)
2、添加3.2版本的支持
3、添加保存功能
4、修复一些bug

1.0.0

1、添加读取和解析文件功能

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net452 net46 net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.2 133 4/6/2022
3.0.1 83 4/2/2022
3.0.0 78 3/23/2022