提供流式细胞术中使用的标准显示转换的实现。这种实现的设计目标,除了基本的计算目标外,首先是使最终用户(即科学家)能够理解这些转换,其次是减轻实现者的负担。为了实现后者,实现了所有转换,以便{@link edu.stanford.facs.transform.Transform#scale(double) scale}方法将适当的数据值范围映射到标准单元显示间隔[0,1],并且始终实现{@link edu.stanford.facs.transform.Transform#inverse(double) inverse}映射。请注意,范围检查是调用程序的责任,该实现将映射范围之外的数据值,并且以合理的方式映射,但结果落在单位间隔之外,可能会降低精度。

为了使转换易于理解,它们都是根据与用户体验密切相关的一致参数化来定义的。所有的变换都是由最顶端的值参数化的T,它总是映射到比例位置1.此外,对数变换和类对数变换参数化为,由{@link edu.stanford.facs.transform映射到单位显示间隔上的数据范围的几十年数。对数变换。类似对数的刻度也通过参数化W而且一个,虽然它们并不代表数据价值的十倍变化,但在规模上与几十年相称。W控制{@link edu.stanford.facs.transform的线性化程度。Logicle}和{@link edu.stanford.facs.transform。Hyperlog}变换。的参数一个指定要按比例引入的负数据值的附加范围。对于{@link edu.stanford.facs.transform。Logicle} and {@link edu.stanford.facs.transform.Hyperlog} transforms this is in addition to what is already brought on scale byW通常不需要。{@link edu.stanford.facs.transform。Logicle}, {@link edu.stanford.facs.transform.Hyperlog} and {@link edu.stanford.facs.transform.Arcsinh} transforms withA = 0都将表现为{@link edu.stanford.facs.transform.对数对数(T,M)}变换具有相同的值T而且对于大数据值。

当软件没有实现特定的转换时,参数的选择也会导致合理的后退策略。例如,如果逻辑转换不可用,具有相同参数的超日志转换应该是一个合理的替代方案,反之亦然。在两者都不可用的情况下{@link edu.stanford.facs.transform。Arcsinh#Arcsinh(double, double, double) Arcsinh(T, M, W + A)} although almost never really satisfactory, will at least map roughly the same data range onto the unit display interval. Finally it should be noted that {@link edu.stanford.facs.transform.Arcsinh#Arcsinh(double, double, double) Arcsinh(T, M, A)} is completely equivalent to {@link edu.stanford.facs.transform.Logicle#Logicle(double, double, double, double) Logicle(T, 0, M, A)} so it is not strictly necessary to implement the arcsinh transform as a separate class. One is provided here primarily to fix the relevant formulas.

使用类似日志的函数的一个实际缺点是标准图形包不包含合适的轴绘图例程。完全解决这个问题超出了本实现的范围,但它确实在选择轴上合适的点进行标记方面提供了一些帮助。每个转换都有一个{@link edu.standford .facs.transform #axisLabels()}方法,该方法返回一个数据值数组,这样位于每个值的缩放位置的数据值的图形表示将产生一个合适的默认显示。

由于逻辑函数和超对数函数不能用分析的标准函数以封闭形式表示,它们实际上是用它们各自的逆函数来定义的。给出了对数和arcsinh的反函数作比较。

变换 逆函数
对数 f-1(x) = a eb x
Logicle f-1(x) = a eb x- c e- d x+ f
Hyperlog f-1(x) = a eb xc x - f
Arcsinh f-1(x) = a sinh (bx - c)
通过使这些逆函数服从形式参数所施加的约束,可以从这些逆函数定义实际参数。有关详细信息,请参阅每个方法中的注释。

这是一个参考实现,一般精确到标准显示间隔的两倍精度。它是相当快的,但高度优化的低精度的程序,仍然完全足以用于流式细胞仪,可能快几倍。

相关的文档

Logicle方法最初在出版物中描述:

一种新的“Logicle”显示方法避免了对数缩放对低信号和补偿数据的欺骗效应
David R. Parks, Mario Roederer, Wayne A. Moore,
细胞术Part A, Volume 69A, Issue 6, page 541-551
可于以下网址查询PDF超文本标记语言.在出版物中提出了进一步的改进和这个标准参数化
更新逻辑数据规模,包括操作代码实现
韦恩·a·摩尔,大卫·r·帕克斯
细胞术Part A卷81A,第4期,273-277页,2012年4月
可于以下网址查询PDF超文本标记语言

Hyperlog方法最初在出版物中描述:

超对数(hyperlog)—用于负、零和正数据的灵活的类对数变换
C.布鲁斯·巴格韦尔
细胞术A部分,64A卷,第1期,34-42页
可于以下网址查询PDF超文本标记语言

该方法被包括在国际细胞检测先进学会的gate - ml建议标准中。gate - ml的规格是可用的在这里

版权、许可和专利

版权所有(c) 2009, 2011, 2012,利兰斯坦福大学董事会。版权所有。

在满足以下条件的前提下,允许以源代码和二进制形式重新分发和使用,无论是否修改:

本软件由版权所有者和贡献者“按原样”提供,任何明示或默示保证,包括但不限于对适销性和适合特定目的的默示保证。在任何情况下,版权所有者或贡献者都不对任何直接、间接、附带、特殊、惩戒性或后果性损害负责(包括但不限于采购替代商品或服务;丧失使用、数据或利润;或业务中断),无论造成何种原因,并在任何责任理论,无论是在合同,严格责任,或侵权行为(包括疏忽或其他),以任何方式使用本软件,即使被告知这种损害的可能性。

Logicle方法是美国专利6,954,722的专利。然而,斯坦福大学在流式细胞术领域不执行非营利性学术目的或商业用途的专利。

@作者Wayne A. Moore @ 1.0版本