| 扬声器 |
抄本 |
| Andrea Coombs,JMP |
大家好,我叫 Andrea Coombs,是 JMP 的系统工程师。今天我想分享一下我多年来在行业,特别是制药行业工作的经历。 |
| |
这就是我今天要简单讲述的内容。 |
| |
合理的应对策略 |
| |
疫苗生产过程中实时生产数据的处理。在那次演讲中,我讨论了处理曲线数据的方法 |
| |
这些信息都是我们从生产车间的传感器实时获取的。 |
| |
今天,我想谈谈 JMP 中的一些新工具,特别是函数数据探索器,以及它如何使所有这些工作变得轻而易举。 |
| |
我将介绍如何使用功能数据浏览器来理解流程、优化流程和监控流程。 |
| |
那么,我们先来谈谈我们处理的流程和曲线。左边是一个假设的疫苗生产流程的例子。它从材料准备开始。 |
| |
在这种情况下,我们分两个阶段进行细菌发酵,然后对产品进行过滤、吸收和收获, |
| |
随后对产品进行离心,最后将多个子批次的材料配制成一批材料。 |
| |
今天我将重点关注这个过程的发酵阶段。 |
| |
细菌在发酵过程中会经历生长,生长曲线就像右边这样。生长过程中,会经历滞后期、指数增长期、稳定期,最后是对数死亡期。 |
| |
当我在这家公司工作时,我们正在经历流程理解的演变,特别是围绕这些增长曲线。 |
| |
所以我们很早就开始了,只从这两个发酵阶段取了五个样本,然后送到……质控实验室,等待结果。我们得到了 |
| |
光密度,所以我们可以知道这些样本中的细胞密度,我们得到的结果看起来就像你在右边看到的一样。 |
| |
我们有这些特定时间点的结果分布,但我们真的不知道增长曲线是什么样子的。它们可能看起来像我在下面这些分布上绘制的任何曲线。我们真的一点头绪都没有。 |
| |
但后来我们安装了在线探头,所以我们安装了浊度探头,这样我们就能真正看到那些生长曲线是什么样的。然而,我们必须穿上防护服,进入生产车间。 |
| |
手动下载数据,将其带回我们的办公桌,然后尝试弄清楚我们要用这些数据做什么。 |
| |
最后,我们升级了 PLC,现在可以在办公桌上获取所有传感器的数据,无需穿上防护服返回……然后返回制造车间;我们拥有所有数据 |
| |
触手可及,这很棒。但通过仔细分析,我们发现数据太多了,需要处理的数据量很大。 |
| |
所以这就是为什么... |
| |
这就是我做这个关于理解实时数据的应对策略的演讲的原因。 |
| |
我们投入了大量精力来理解我们的数据,我想分享一些您可以采取的策略来理解您的实时数据。 |
| |
我首先谈到的是参数化这些增长曲线。我们有这些曲线,但我们希望能够观察增长情况, |
| |
为了理解发生了什么,我们对其进行了参数化。换句话说,我们取了生长斜率和死亡率的斜率,并观察了细菌在每个阶段的持续时间。我们观察的是 |
| |
特定时间点的浊度,现在我们收集了大量这些增长数据......我们称之为增长变量。 |
| |
这些增长变量对我们非常有用。我们利用它们来理解流程、优化流程和监控流程。 |
| |
现在我谈到的第二组应对策略就是处理所有这些实时数据 |
| |
我们有这些数据。所以,当然,一旦我们发现这些数据有用,我们就想立即访问它们。 |
| |
因此,我们必须弄清楚的第一件事就是我们所有的数据源,并确保我们可以访问我们拥有的一切,不仅是来自我们的历史学家的数据,还有来自我们的 |
| |
ERP系统,在我们的实验室信息管理系统中。我们必须把所有数据都集中到一起。我们使用了一个超级日志,它就像一个指挥中心,可以访问我们所有的数据并运行所有脚本。 |
| |
我们确实做了不少工作。我们对自己非常自豪,但事后看来, |
| |
了解 JMP 中有哪些工具,特别是现在的 JMP 16,有几件事可以让这项工作变得容易得多。 |
| |
有了生长曲线,我们就可以用函数式数据探索器来分析曲线了。我们不需要参数化它们, |
| |
我们遗留了很多数据。我们可以在功能性数据探索器中使用所有数据。当然,还可以在增强日志中记录操作。 |
| |
这会让脚本编写工作变得容易得多。但今天我只想专注于如何使用函数式数据探索器。 |
| |
当然,我现在已经无法访问这些数据了,所以我模拟了一些生长曲线。这里有20条不同的曲线,它们代表了细菌发酵过程中可能出现的一些变化。 |
| |
使用函数式数据探索器,它实际上可以归结为以下四个步骤。第一步是,你需要收集曲线 |
| |
你需要平滑所有单独的曲线。第二步是确定平均形状和形状分量,它们描述了你在这些曲线中看到的所有变化。 |
| |
下一步是提取每条曲线的形状分量的大小。 |
| |
有了这两个形状成分,它们实际上就被称为功能主成分, |
| |
然后您可以使用它们来分析数据,无论您的曲线是模型的输入,还是模型的输出,如果您想进行聚类分析。 |
| |
真的,现在你可以用这些函数主成分做任何类型的分析。在今天的例子中,我所有的曲线都是模型的输出,所以我将使用函数式实验设计 |
| |
仔细观察这些曲线。让我们进入 JMP。 |
| |
这里有我的数据表,其中有批号,有浊度时间,它们构成了曲线。 |
| |
我还有很多工艺参数。我要做的第一件事是,了解一下工艺流程,看看这些工艺参数是否 |
| |
会影响我在曲线中看到的变异性。让我们进入函数数据探索器。我们将时间作为X,浊度作为Y。我们将输入ID函数,然后我们将所有这些过程参数作为补充变量输入。 |
| |
现在,我们需要做的第一步是,我们需要将灵活的模型拟合到我们所有的曲线,我将使用定向...直接功能 PCA 来做到这一点。 |
| |
这些是灵活的模型。第二步,JMP 已经帮我完成了,就是确定均值曲线。 |
| |
以及我们的形状组件。JMP 帮我识别了六种不同的形状组件。在左边,我可以看到这六种不同的形状组件。 |
| |
这是这些形状成分在我的资料中解释的累积变化量。 |
| |
您可以看到,仅使用前两个形状成分,我已经描述了曲线中 92% 的变化,这非常棒。 |
| |
剩下的形状成分,我将排除,因为它们可能只是解释了我数据中的随机变异性。所以我们继续,将 FPC 的数量自定义为两个,这样就只剩下这两个形状成分了。 |
| |
现在,下一步是确定每条曲线的每个形状分量的大小,并将它们放在我的分数图中。 |
| |
在 X 轴上,我有形状组件 1,在 Y 轴上,我有形状组件 2。 |
| |
下面我有一个分析器,我可以在其中查看曲线,我在这里用黄色突出显示,您可以看到第一个形状组件如何影响曲线的形状, |
| |
主要影响曲线的生长阶段,第二个形状成分主要影响曲线的死亡阶段。 |
| |
让我们仔细看看其中几个批次。我们来看看第 15 批次。这是第 15 批次的曲线,我们可以看到形状分量 1 的幅值和形状分量 2 的幅值。我可以直接将它们输入到我的分析器中。 |
| |
现在您可以看到,我能够复现第 15 批次的曲线。我们再看一个。我们来看看第 2 批次,您会发现它与第 15 批次相比非常不同,形状……形状分量的幅度也非常不同。所以,让我们 |
| |
看看那些。 |
| |
现在您可以看到我们已经......我们也能够复制该曲线。 |
| |
因此,了解了平均形状,即表示曲线周围变化的两个形状成分,我们现在可以使用这些形状成分的幅度来进行分析。 |
| |
我们可以这样做...当您的曲线是模型中的响应时,您可以在功能数据资源管理器中进行分析。 |
| |
下面,我有一个新的分析器。这次在分析器里,我又有了曲线,我会再次用黄色高亮显示。 |
| |
然后我得到了pH值、温度、压力和搅拌速度参数。你可以看到,这里的搅拌速度相当平稳,所以它不会影响形状。 |
| |
压力也是一样,但当我开始观察温度时,你可以看到它改变了曲线的形状,主要是曲线的增长阶段。而当我改变pH值时,它主要影响的是曲线的增长阶段。 |
| |
这就是我理解流程的方法。那么,流程优化呢?我所说的流程优化是指: |
| |
你知道,如果我们想要标准化一条特定的曲线,那么为了得到这条曲线,我们需要多少pH值和温度呢?嗯,你首先要做的就是定义一下 |
| |
所需的曲线是什么样的。我的数据表底部有一些数据点,它们描述了我想要的形状,你可以在我的……上看到它们。 |
| |
在图形生成器中。在这种情况下,我感兴趣的是得到一条曲线,其中增长率非常快,然后崩溃率非常慢。 |
| |
这很容易添加到函数式数据探索器中。我们只需要再做一步;我会回忆一下我之前的操作。 |
| |
还有一个步骤是加载目标函数,确定哪个 |
| |
函数代表我们的目标。我现在要做的就是重复之前的步骤。我会进行直接函数主成分分析。 |
| |
我将把我的 FPC 定制为 2,而这个...这些结果正是我们之前看到的,然后我将进行功能性 DOE。 |
| |
再次强调,我会在这里突出显示我的曲线。既然目标曲线已经确定,我就可以最大化可取性,换句话说,我可以找到pH值和温度的设定点 |
| |
以及压力和搅拌速度,这样就能得到最接近目标曲线的曲线。所以 |
| |
非常快的增长速度,缓慢的崩溃率。我只需要 |
| |
在我的发酵罐中,pH 值为 7.2,温度为 37.9。这就是我理解和优化工艺流程时会用到的方法。 |
| |
当我们谈论生长曲线或曲线形状的过程监控时,存在一些不同的选择,我在这里有几个不同的想法。 |
| |
如果这是您想做的事情,我强烈建议您查看这个 2020 年的演示文稿,具有函数形式的过程变量的统计过程控制。 |
| |
这是一个录制好的演示,非常棒。他们讨论了如何提取这些功能主成分,并将它们放入模型驱动的多元控制图中。 |
| |
他们对此进行了出色的演示...演示,然后还谈到了采用这种方法的一些可能存在的缺点。 |
| |
因此,我想讨论您可能需要考虑的另一种方法,即查看与标准的综合差异。 |
| |
就像之前一样,当我们查看目标曲线时,你可以用它作为标准,然后针对每个批次计算与该标准的差异。例如,我这里 |
| |
图中用蓝色……或者不好意思,用红色表示的某批次的曲线。蓝色曲线是标准曲线,我取的是差异值,差异值就在下面这条绿色曲线上。 |
| |
你可以对曲线进行积分,得到曲线下的面积,然后就可以在你的统计过程控制程序中使用它了。我只想快速地向你介绍一下具体步骤。 |
| |
这是我的时间和标准浊度值,也就是第一批的浊度,我刚刚计算了两者之间的差值。然后你可以做的是 |
| |
使用拟合 Y 和 X 来构建随时间变化的差异的样条模型,然后您可以将该模型的系数保存到数据表中。 |
| |
你将得到 X 值和四个系数,可以用来构建样条模型。这是构建样条模型的公式。 |
| |
然后对这个公式进行积分。你可以通过脚本来实现,我选择在公式编辑器中实现。我在这里只是手动对前面的公式进行积分,就确定了曲线每段的面积。 |
| |
因此,一旦我有了这些区域切片,我只需要将我感兴趣的区域加起来。这样我就可以计算出整个曲线的面积。 |
| |
我也可以只对生长期和死亡阶段进行分析,我已经在这里完成了 |
| |
在我的表格变量中。这样,我现在就有一个变量,分别表示总积分差异、生长阶段的积分差异和死亡阶段的积分差异。 |
| |
本质上,你只需要对每个批次都进行一遍。这里我已经对所有20个批次都进行了同样的操作,现在你可以对这些变量进行统计过程控制了。 |
| |
以上就是我使用函数式数据探索器来监控流程、理解流程以及优化流程的方法。希望您能了解一下,这对您来说也很容易。谢谢。 |