大家好,我是Marco Kunzelmann,在勃林格殷格翰担任首席统计师。我们与JMP的Chris Gotwalt在结合DOE数据和色谱数据方面开展了卓有成效的合作。虽然这项工作仍在进行中,但我们认为该项目已经发展到可以向大家展示当前成果的阶段。请注意,演示中的许多步骤目前仍需手动完成,但这些步骤将在未来的JMP版本中实现自动化。
该项目的动机在于,提高效率和降低成本当然是工业界的基本目标。此外,近年来,监管机构和相关指南也越来越重视多元设计空间表征和研究。例如,ICH Q8 和最近发布的 ICH Q14 就是很好的例子。实现这些监管机构要求的一种成熟方法是实验设计,简称 DOE。
随着ICH Q14(于2024年6月发布)的生效,通过实验设计(DOE)进行统计建模已成为分析方法开发的一种途径。然而,色谱图通常非常复杂,因此,希望结合分析方法开发的人员通常会从色谱图中提取特征,并将其建模为UE输入参数的函数。
这是什么意思呢?特征提取是指从色谱图中提取信息,例如峰高、峰保留时间,甚至是分析分辨率(它描述了两个或三个峰彼此分离的程度)。特征提取的问题在于它是一项繁琐的工作,因为首先需要软件进行峰检测。然后通常需要进行峰积分,最后还需要将所有这些信息从分析软件导出到 JMP,才能在 JMP 中使用常规的 DOE 方法进行建模。
此外,对于提取的每个特征,都需要建立一个模型。在我之前的例子中,我们看到了九个不同的峰,仅仅描述峰的保留时间就需要九个模型。然后,描述分辨率、峰高等等也需要九个模型。你可以想象,当你想要优化所有这些单独的模型时,最终结果的可解释性会非常差,因为你只能获得保留时间、峰高、分辨率等信息,而无法获得完整的色谱图。你永远看不到完整的色谱图。
这基本上就是我们在这个项目中想要实现的目标。我们的想法是,在JMP的功能数据浏览器中立即进行峰检测。然后,我们希望在JMP中对整个色谱图进行数值参数化。对包含所有峰的完整色谱图应用直接建模。最后,当然,我们还想利用JMP的交互式功能。这意味着我们希望在分析器中立即获得一个交互式色谱图,用户可以真正地进行操作,并观察不同的DOE因子设置如何影响色谱图本身。
我和克里斯认为,通过展示过去一年我们处理过的两个不同的数据集示例,可以更好地说明我们的工作流程。我们先来看第一个例子,气相色谱数据。气相色谱(简称GC)是一种广泛应用的分析方法。简单来说,就是将样品蒸发,然后在气相中,流动相与位于毛细管上的固定相发生相互作用。对于分析样品中的每种组分,这种相互作用的影响都不同。基于此,我们可以将这些不同的组分彼此分离,并最终通过检测器进行检测。
在这个例子中,我们使用了一种不同的气相色谱仪,称为超快速气相色谱仪(hyperfast GC),其分离原理与普通气相色谱仪相同。然而,主要区别在于其升温速率大幅提高,因此我们可以在1分钟甚至更短的时间内完成色谱分析。这对于本项目来说当然非常有利,因为我们可以轻松运行多种不同的实验设置而不会浪费太多时间。
我们这次的DOE实验基于四个不同的DOE因素。这意味着我们有起始温度、终止温度、保温时间和温度变化时间。我想,除了数据表格之外,我还以温度曲线图的形式在右侧展示这些信息。这是我们设定的初始温度。我们改变了初始温度,并设置了不同的保温时间。
通过改变Δt值,我们可以采用不同的加热速率,并结合不同的终止温度(即T₂)。由于我们可以轻松地在这台超高速气相色谱仪上进行大量实验,因此我们决定采用全因子设计,进行81次实验和7次中心点运行,以便充分获取该系统的所有信息。
因此,我们能源部(DOE)正在研究四个能源部因素对色谱图中九个不同峰的影响。下图展示了一个气相色谱图示例,其中以原始数据的形式呈现了九个不同的峰。您可以想象,最终我们得到了所有88个能源部实验的色谱图。
接下来基本上要交给克里斯了,他会更详细地向你们展示他是如何从色谱图中提取信息,最终生成合成色谱图的。请克里斯开始吧。
谢谢,Marco。这是分析器中合成或预测色谱图的最终可视化呈现,以及四个DOE因子。合成色谱图位于左侧,背景为黄色。我们需要建模的共有九个特定目标峰。
我将要展示的方法能够创建一个易于理解的可视化界面,并带有分析器控制功能,因此操作人员可以调整 DOE 因子设置,从而获得最佳色谱图。在本例中,最佳色谱图指的是峰分离度最高或分辨率最高的色谱图。用户可以从设计空间中心的设置(其中几个峰聚集在一起)逐步调整到本研究中我们所能找到的最佳分离度设置。
为此,我们克服了诸多挑战。首先,我们需要去除无关的溶剂峰和盲测基线。然后,我们利用 JMP Pro 18 功能数据浏览器中的峰建模功能来识别和标记峰。我们提取所有色谱图中每个峰的峰高、半峰宽和洗脱时间。接着,我们使用 Genreg 对这些数据进行建模,并将得到的预测公式组合成一个整体的合成色谱图公式。
去年我们刚开始做这件事的时候,需要大量的人工操作。Ryan Parker 和 Clay Barker 在 JMP Pro 18 中做了大量工作来简化流程。正如您将在我的演示中看到的那样,虽然步骤仍然很多,但整个流程已经从需要几天的人工操作缩短到大约一个小时,我们致力于在未来的 JMP Pro 版本中进一步简化流程。
我们首先按常规方式进入FDE。之前需要用到的一个步骤是使用tabulate函数计算每个批次的原始起始时间和终止时间。这是为了对数据进行去对齐,并缩放盲测模型,以便将其从每个色谱图中减去。这里我们看到的是原始色谱图。我们需要去除图中占主导地位的溶剂峰。为此,我们使用Align Maximum函数。
现在我们可以找到溶剂峰之后、目标峰之前的对齐时间点。我们使用十字线工具进行定位,发现所有溶剂峰与目标峰之间的时间间隔为 0.26 秒。我们过滤掉 0.26 秒之前的所有观测值。现在数据中只剩下目标峰,我们将把这些峰保存为一个新的数据集,以便我们清楚地知道正在处理哪些数据。
现在,我们进行了一次不含任何产品的基线盲测。我们需要从数据中去除这个信号,因为它会污染我们的模型并导致结果偏差。这里,我用p样条拟合了盲测数据并保存了汇总结果。然后,我将该公式复制到去除溶剂峰的数据中。接着,我手动将色谱图与盲测公式对齐,并在创建强度到盲测公式的列时,减去了盲测的偏差,使其恢复到绝对时间尺度。
现在我们已经得到了所需格式的色谱图数据,可以返回到 FDE 模块。我们将使用 JMP Pro 18 中新增的峰值查找功能。首先,我们运行自动峰值检测。该功能会在数据中找到大量峰值,并给出每个候选峰值的范围和中心位置。我们可以点击“摘要”选项卡查看最重要的峰值指标。
这里可以看到AUC值、分辨率、峰高和其他衍生峰的汇总指标。我们注意到一个问题,因为许多色谱图的汇总数据中峰的数量超过九个,但我们知道实际上每个光谱只有九个峰。
因此,我们回到峰值查找用户界面,检查峰值超过九个的光谱。经过一番搜索,我们发现所有高度小于 500 的所谓峰值都只是数据中的一些偶然误差。这里突出显示了一个这样的虚假峰值示例。我们可以使用“自动峰值去除”工具来去除这些峰值,只需点击该工具并将有效峰值高度的下限设置为 500 即可。
去除低于 500 的峰值后,我们现在可以提取出干净且正确的峰值汇总统计信息,用于创建合成色度 RAM 模型。我们将这些汇总信息保存到一个新表中,然后使用广义回归对所有提取的指标拟合对数正态二次响应曲面模型。之所以使用对数正态分布,是因为所有指标均为严格正值。
实际上,我们需要像其他建模练习一样,评估模型以确保其拟合良好。这里我将略过这一步,但一旦我们满意,就可以按住 Ctrl 键并保存预测公式,一次性保存所有响应的预测公式。现在我们有了使用 DOE 因子预测色谱图每个特征的模型,我使用公式列构建了一个预测公式,该公式结合了每个峰的位置、半峰高、峰宽和峰高的各个 DOE 模型,从而计算合成色谱图。
为了验证我们的模型,我们查看了合成色谱图(红色)和实际色谱图(蓝色)的叠加图。总体而言,我们发现该模型并不完美,但它似乎能够较好地捕捉实际光谱中的主要特征。接下来,我们只需使用分析器来寻找能够提高峰整体分辨率的因子设置,从设计中心开始,逐步优化设置,最终找到一种能够尽可能完美地分离所有峰的生产过程组分的分析方法。
现在我们有了一个简单易懂的可视化图表,它展示了如何设置流程,并且便于与从事分析方法开发的人员沟通。接下来我将把图表交还给马可。
非常感谢Chris。Chris向我们展示了如何将硅胶色谱图与GC数据结合使用。我们已经将这种方法应用到了另一个例子中,即毛细管凝胶电泳(CGE)。简而言之,CGE只是另一种分析仪器。然而,它的分离技术略有不同,这也导致了不同的峰形,我们稍后会详细讨论。开发CGE方法的主要动机是我们需要将两个不同的峰分离开来。坦白地说,这里指的是峰1和峰2。
您可以看到,这相当具有挑战性,因为峰 1 与峰 2 相比非常小,而且这两个峰的重叠程度也很大。我们再次尝试找到最佳设置,以将这两个成分彼此分离。这次我们有五个不同的 UE 因子,主要分为三个不同的水平,而最终浓度则分为四个不同的水平进行研究。
通常情况下,如果要研究所有组合,全因子设计需要进行 324 次实验。当然,这正是我们最终采用 I 最优设计的主要原因。通过这种方式,我们仅用 64 次实验就节省了约 80% 的实验次数。该设计不仅能够解析主效应、双因子交互作用和二次效应,还能解析 3、4 和 5 个因子的交互作用,以及二次效应与主效应的组合。
我们为什么要这样做呢?嗯,在 GC 的例子中,我们实际上已经研究出许多分析 DOE 因素是相互作用的,我们想更仔细地研究这一点,并更好地了解最终模型必须有多复杂才能获得良好的精度和准确度。
通常情况下,正如我们之前所述,您可以对整个色谱图进行建模,从而首先提取出各个特征。然而,在这种情况下,这种方法完全行不通,因为两个峰重叠得非常严重,分析软件无法计算这两个组分的分析分辨率。这也是我们需要找到另一种方法来用数学方式描述色谱图的另一个原因。
我们在这里做了什么?正如克里斯已经概述的那样,我们当然可以用数学函数来描述峰。峰高、保留时间、峰宽等等。对称峰可以用左侧的这个公式来描述。
不幸的是,在CGE中,情况要复杂得多,因为CGE总是导致不对称峰。您也可以在这里看到,第二个组分,也就是第二个峰,实际上根本不对称。我们需要找到另一个公式来描述这个峰的不对称性。
我们在文献中找到了这个简洁的公式。参数 a 用于描述峰的不对称性。您可以清楚地看到,在左侧和右侧,即使 a 值为 0,峰仍然是不对称的。a 值越大,峰的不对称性就越强。其他参数基本上就是峰的保留时间、峰高等等。这与之前的基本原理相同,只是看起来稍微复杂一些。
现在我们如何将这个公式导入到 JMP 中呢?我们所做的就是在 JMP 中创建了一个新的公式列。要创建公式列,只需依次点击“列”、“公式”,即可进入公式编辑器。在公式编辑器左下角找到“参数”,点击“新建参数”,然后添加所有需要的参数即可。
这样做之后,你就可以像我们在绿色矩形框内那样创建两个峰值公式了。第一个公式用于描述峰1的对称性,第二个公式则更为复杂,因为它描述了峰的非对称部分。你还可以看到我们在这里输入的所有参数:第二个峰的 h1、w1、t1、m2、d2、a2 和 H2。接下来,我们需要找到所有这些参数的正确值。
首先,将分析仪器的所有原始数据导入JMP软件。这里,我们有一列用于记录迁移时间,另一列用于记录强度。我们用第三列(称为“运行”)分隔所有单独的电泳图,该列即为DOE运行编号。
之后,您可以进入“分析”>“非线性”平台中的“专用建模”。在这里,我们只需输入 Y 响应值、强度值,以及预测公式(当然,我们使用新建的公式列),然后按列对所有内容进行分类,即我这里显示的“运行”列,其中包含了所有单独的 DOE 实验。
之后,点击“确定”,就会看到类似我们这里看到的视图。这里展示的是第二个DOE实验,我稍微放大了一下,只显示26到28分钟的数据。这些点实际上是真实的原始数据。实线是参数化函数,参数估计值如下所示。可以看到,初始值当然不是最优值。
下一步我们需要运行 JMP 来找到所有这些参数的正确估计值,以便尽可能地拟合原始数据。这是一个迭代过程。每次迭代,我们都会更接近最优结果。我尝试用这张小图和四五次迭代来说明这一点。当然,实际上我们需要进行 250 次迭代,并且需要对所有 64 个实验重复这个过程。
对优化器是否真正找到了所有参数的良好估计值进行目视检查至关重要。而这之所以可行,是因为我们需要找到合适的初始值。否则,我们会陷入局部最优解,或者算法优化器根本无法收敛,这当然是个问题。为了找到合适的初始值,最好事先给算法设定一些上下限,并且首先分析色谱图,以便对峰高、保留时间等参数进行大致的估计。目前,这确实是一个繁琐且耗时的步骤,但 JMP 19 将实现自动化。
虽然这项工作已经相当繁重,但我们面临的挑战更大,因为这64个实验中有9个实验达到了临界失效点。这意味着对于某些实验设计因素组合,我们两个峰的迁移时间异常长。由于该方法会在记录60分钟后自动停止,因此我们未能获得这9个实验中关于这些峰的任何数据。现在我们有两个选择:要么直接将这些实验视为数据丢失,要么使用JMP中已实现的技术,至少利用这些峰的部分信息。
这种方法称为数据删失。例如,我们知道峰值的迁移时间至少在 60 分钟后出现,而相关领域的专家至少可以确定峰值应该在 60 到 62 分钟之间,因此我们可以利用这些信息。同样的方法也适用于其他峰值参数,例如峰高、峰宽等等。
我们如何在 JMP 中使用这些信息呢?只需创建一个新列,分别命名为 lower 和 upper,用于存放所有参数。在本例中,我使用了最简单的参数 M2,即第二个峰的保留时间或迁移时间。这里我们有 M2_lower 和 M2_upper。
对于所有获得数据的实验,我们可以直接将上下组分的保留时间设为相同值。第二次、第三次等实验均如此。但对于所有未获得迁移时间的峰(即那些接近失效的实验),我们使用该峰的预期迁移时间的下限(例如实验 1 的 60 分钟)和上限(例如 62 分钟)。其他峰参数(例如 a2、d2 等)的处理方法相同。
下一步非常简单。进入“拟合模型”平台,选择“广义回归”。输入 M2_lower 和 M2_upper,当然,还要输入所有 DOE 因子、因子组合、交互效应等等。点击“运行”,JMP 会自动识别您使用了区间删失数据,并询问您是否同意。点击“是”即可。这样,您就可以利用所有数据的上限和下限信息。这实际上比直接删除数据要好得多,因为我们掌握了一些关于缺失数据的信息,并将其用于建模。
我们对所有其他参数(例如峰高 a2、非对称参数 a2)都采用相同的方法,对第一个峰也采用相同的方法。接下来,在模型拟合和模型选择之后(这里我使用了广义最小二乘法平台中的剪枝前向选择方法),使用“保存预测公式”按钮保存每个参数对应的列。
下一步其实很简单。对每个参数(h1、t1、w1 等)重复这个过程。现在,我们只需将参数替换为相应的预测公式,即可重新构建色谱图公式。
如果你还记得,我们一开始用的是针对峰值 1 和峰值 2 的复杂公式,现在我们要用预测公式替换掉这些参数。现在 h1 不再出现在预测公式中,而是出现在公式列中。取而代之的是 h1_upper 预测公式,这个过程会针对所有其他参数重复进行。由于这样做会得到一个非常非常长的公式,所以在我的屏幕上显示不全,但你可以想象一下最终的完整公式会是什么样子。
这就是结果。现在我们希望在 JMP Profiler 中以交互方式查看结果。下一步,您只需转到“图形分析器”,找到强度公式(也就是我们之前看到的重组公式)。点击“展开中间公式”,输入强度公式和 Y 轴预测公式,然后点击“确定”。
我想在 JMP 中简要演示一下结果的样子。这里是 JMP 分析平台,您现在可以看到左侧的缓冲液 pH 值、DOE 因子、缓冲液 SDS 浓度、DOE 因子,以及我们实际研究的所有 DOE 因子。
有趣的部分在右侧,也就是电泳图,横坐标是迁移时间,纵坐标是强度。我已经稍微放大了一些,所以这里只显示了35-47分钟的图。但这样也能更好地观察这两个峰现在分离得多么好。现在我可以直接调整分析器和DOE因子,观察色谱图上的变化。当然,改变最终浓度会导致峰高变化。
但是,通过改变分离电压,这两个峰的迁移时间也会发生变化。我可以改变毛细管温度和SDS缓冲液来重复这个过程。有时仔细观察,会发现两个峰之间的分离度有所提高;而有时,就像这里一样,分离度却大大降低,因为此时实际上已经无法分离了。但是,降低缓冲液的pH值可以显著改善这两个组分的分离度。
这是其中一部分。现在我们已经将 JMP 中的交互功能与合成色谱图结合起来了。但我还想更进一步。让我放大一下这里选定设置下的电泳图,并调整一下预测和置信区间公式。我所做的就是用峰 1 和峰 2 的公式替换了置信区间和预测区间公式。现在,置信区间公式只显示峰 1 的成分。
我们把范围稍微扩大一些。预测区间公式现在只显示了第二个峰值分量。现在的情况很有意思。我们看到这两个峰值甚至相互重叠。我们仍然可以看到各个峰值的位置,以及它们彼此之间的分离程度。
现在我可以更准确地定位到位于第二个峰值下方的第一个峰值分量。这当然有助于我了解分离效果如何,以及最终哪些设置是最佳的。
建模之后,务必将真实原始数据与模型预测结果进行对比,我在这里用预测值与实测值对比图的形式展示了这一点。红色曲线代表真实数据,蓝色曲线代表模型预测结果。我在这里选取了几个实验,旨在向您展示模型的性能表现。
请不要感到困惑。我将从 Run 2 开始讲解,因为 Run 1 是我们遇到的一个实验临界点,导致我们实际上没有任何包含峰成分的数据,也无法与模型预测进行比较。这在这里意义不大。但是,从 Run 2 到 Run 11 的所有其他实验中,我们可以看到模型的表现相当不错。有时保留时间会略有变化,但峰高通常拟合得很好。此外,峰宽也相当不错。
这里,我们的基线模型存在一些小问题,但克里斯和他的团队正在努力解决这个问题,并尝试通过改进基线建模技术来提升模型性能。总的来说,如果我们观察一下模型的表现,我认为它在真实数据和模型预测之间取得了非常好的吻合度。
在CGE示例中,我们最后要做的当然是找到最佳的DOE因子设置,以便尽可能地分离峰。通常的做法是,您可以简单地计算两个峰组分的分析分辨率。只需将第二个峰的保留时间(在本例中为迁移时间)减去第一个峰的保留时间,然后除以第一个峰和第二个峰的半峰宽(即半峰高)。
我们已经建立了所有参数的模型,这些模型都是基于我们的DOE因子构建的。我们只需要将这些信息整合起来,就能创建一个所谓的辅助模型,其中分辨率是我们所研究的DOE因子的函数。现在,我们可以看到色谱图旁边右上角的内容。在其上方第二行,我们可以看到分辨率是DOE因子的函数。
现在我们只需利用 JMP 的功能,它允许我们优化设置。这意味着我只需告诉他将分辨率优化到最大值,并设定一个边界条件:领域专家不希望迁移时间超过 50 分钟。因此,我们将 M2 预测公式(我们本来就有)的上限设置为 50 分钟。然后我们运行算法来优化所有参数,并得到结果。这就是我们在这里看到的。通过这些 DOE 因子设置,我们可以很好地分离这两个峰值分量,从而解决 CGE 方法开发的问题。
这是一项了不起的成就。总而言之,所有重要的事实是,我们现在在 JMP 中实现了峰值检测,并且未来我们还将直接在 JMP 中自动完成色谱图的数值参数化优化。目前这仍然需要手动操作,如果您愿意,可以自行完成,但目前来说这项工作仍然很繁琐,不过这种情况将在 JMP 19 中得到改变。
我们现在拥有一个很棒的功能,可以直接对包含所有峰的完整色谱图进行建模,并将结果直接可视化到 JMP 中。根据我的经验,这对领域专家理解 DOE 的工作原理、如何优化方法非常有帮助。这项前沿技术真正弥合了统计学家与实验室人员和分析化学家之间的鸿沟。
好了,我的演讲就到此结束了,很高兴各位聆听了我的演讲。非常感谢。