Lautsprecher | Abschrift |
| Andrea Coombs, JMP | Hallo, mein Name ist Andrea Coombs und ich bin Systemingenieur bei JMP. Deshalb werde ich heute die Geschichte meiner Jahre erzählen, als ich in der Industrie gearbeitet habe, insbesondere in der pharmazeutischen Industrie. |
| Hier ist, worüber ich heute in aller Kürze sprechen werde. |
| Bewältigungsstrategien, um Sinn zu machen |
| von Echtzeit-Produktionsdaten in der Herstellung ... in der Impfstoffherstellung. Und in dieser Präsentation habe ich den Umgang mit gekrümmten Daten besprochen |
| die wir in Echtzeit von Sensoren in unserer Fertigungshalle erhielten. |
| Und heute möchte ich über einige der neuen Tools sprechen, die wir in JMP haben, insbesondere den Funktionsdaten-Explorer, und wie das all diese Arbeit zu einem Kinderspiel gemacht hätte. |
| Und ich werde Möglichkeiten aufzeigen, wie der Funktionsdaten-Explorer für das Prozessverständnis, die Prozessoptimierung und die Prozessüberwachung verwendet werden kann. |
| Lassen Sie uns also zunächst über den Prozess und die Kurven sprechen, mit denen wir es zu tun hatten. Hier auf der linken Seite haben wir also ein Beispiel für einen hypothetischen Impfstoffherstellungsprozess. Es beginnt mit der Materialvorbereitung. |
| In diesem Fall führen wir eine bakterielle Fermentation in zwei Stufen durch, dann wird das Produkt gefiltert, absorbiert und geerntet. |
| und stromabwärts wird das Produkt zentrifugiert, und schließlich werden mehrere Unterchargen von Material zusammen zu einer Materialcharge formuliert. |
| Und heute werde ich mich auf die Fermentationsstadien dieses Prozesses konzentrieren. |
| Während also Bakterien fermentieren, wachsen sie und die Wachstumskurven sehen so aus wie hier rechts. Während des Wachstums gibt es also eine Verzögerungsphase, eine exponentielle Wachstumsphase, eine stationäre Phase und schließlich eine logarithmische Todesphase. |
| Und während ich bei diesem Unternehmen war, durchliefen wir eine Entwicklung des Prozessunter…des Prozessverständnisses, speziell um diese Wachstumskurven herum. |
| Also fingen wir früh an, indem wir nur fünf Proben aus diesen beiden Fermentationsstufen nahmen, diese Proben nach unten ins QC-Labor schickten und auf die Ergebnisse warteten. Und wir haben |
| optische Dichte, also konnten wir die Dichte der Zellen in diesen Proben bestimmen, und die Ergebnisse, die wir bekamen, sahen ungefähr so aus, wie Sie es hier rechts sehen. |
| Wir haben eine Verteilung der Ergebnisse zu diesen bestimmten Zeitpunkten, aber wir wussten wirklich nicht, wie die Wachstumskurven aussahen. Sie hätten wie jede der Kurven aussehen können, die ich unten über diese Verteilungen gezeichnet habe. Wir hatten einfach wirklich keine Ahnung. |
| Aber dann haben wir Inline-Sonden implementiert, also haben wir Trübungssonden implementiert, damit wir tatsächlich sehen können, wie diese Wachstumskurven aussehen. Allerdings mussten wir uns verkleiden und in die Produktionshalle gehen |
| um die Daten manuell herunterzuladen, sie zurück zu unseren Schreibtischen zu bringen und dann zu versuchen, herauszufinden, was wir mit all diesen Daten tun würden. |
| Und schließlich haben wir unsere SPS dahingehend aufgerüstet, dass wir jetzt alle Daten von all unseren Sensoren auf unserem Schreibtisch haben konnten, ohne dass wir uns anziehen und zurückgehen mussten ... und zurück in die Fertigung; Wir hatten alle Daten |
| an unseren Fingerspitzen, was großartig war. Aber durch sorgfältige Analyse konnten wir feststellen, dass wir zu viele Daten hatten und mit vielen Daten umgehen mussten. |
| Darum... |
| Deshalb habe ich diese Präsentation über Bewältigungsstrategien gehalten, um Echtzeitdaten sinnvoll zu nutzen. |
| Wir haben viel Arbeit investiert, um unsere Daten zu verstehen, und ich wollte Ihnen einige Strategien vorstellen, die Sie anwenden können, um Ihre Echtzeitdaten zu verstehen. |
| Das erste, worüber ich gesprochen habe, war die Parametrisierung dieser Wachstumskurven. Wir hatten also diese Kurven, aber wir wollten in der Lage sein, einen Blick auf das Wachstum zu werfen und |
| verstehen, was los war, also haben wir sie parametrisiert. Mit anderen Worten, wir nahmen die Steigung des Wachstums, die Steigung der Todesrate, wir betrachteten die Zeitdauer, in der sich die Bakterien in jeder der Phasen befanden. Wir haben uns angeschaut |
| die Trübung zu bestimmten Zeitpunkten, und jetzt hatten wir eine große Sammlung dieser Wachstumsvariablen ... was wir Wachstumsvariablen nannten. |
| Und diese Wachstumsvariablen waren sehr nützlich für uns. Wir haben sie zum Prozessverständnis, zur Prozessoptimierung und Prozessüberwachung eingesetzt. |
| Nun, die zweite Gruppe von Bewältigungsstrategien, über die ich gesprochen habe, war nur die Verarbeitung all dieser Echtzeitdaten |
| die wir hatten. Als wir anfingen, all diese Daten nützlich zu finden, wollten wir natürlich sofort darauf zugreifen. |
| Das erste, was wir also herausfinden mussten, waren alle unsere Datenquellen und sicherzustellen, dass wir auf alles zugreifen konnten, was wir hatten, nicht nur Daten von unserem Historiker, sondern wir hatten Daten von unserem |
| ERP-System, in unseren Laborinformationsmanagementsystemen. Wir mussten diese Daten alle an einem Ort zusammenführen. Wir haben ein Superjournal verwendet, also ist dies eine Art Kommandozentrale für den Zugriff auf alle unsere Daten und die Ausführung aller unserer Skripte. |
| Das war wirklich eine Menge Arbeit, die wir gemacht haben. Wir waren ziemlich stolz auf uns, aber im Nachhinein wissen Sie, |
| Wenn wir wissen, welche Tools wir in JMP haben, insbesondere jetzt mit JMP 16, gibt es ein paar Dinge, die diese Arbeit viel einfacher gemacht hätten. |
| Mit den Wachstumskurven hätten wir den Funktionsdaten-Explorer verwenden können, um unsere Kurven zu analysieren. Wir müssten sie nicht parametrisieren, |
| wo wir viele Daten zurückgelassen haben. Wir können alle Daten im Funktionsdaten-Explorer verwenden. Und dann natürlich die Aktionsaufzeichnung im erweiterten Log, |
| das hätte die Bemühungen im Scripting so viel einfacher gemacht. Aber heute möchte ich mich nur darauf konzentrieren, wie ich den funktionalen Datenexplorer verwendet hätte. |
| Natürlich habe ich keinen Zugriff mehr auf diese Daten, also habe ich einige Wachstumskurven simuliert. Hier habe ich 20 verschiedene Kurven, die eine gewisse Variabilität darstellen, die Sie während der bakteriellen Fermentation sehen konnten. |
| Und beim Funktionsdaten-Explorer läuft es wirklich auf diese vier Schritte hinaus. Als erstes nehmen Sie Ihre Sammlung von Kurven |
| und Sie werden alle einzelnen Kurven glätten. Der zweite Schritt besteht darin, eine mittlere Form und Formkomponenten zu bestimmen, die die gesamte Variabilität beschreiben, die Sie in diesen Kurven sehen. |
| Der nächste Schritt besteht darin, die Größe der Formkomponenten für jede Kurve zu extrahieren. |
| Und sobald Sie diese beiden Formkomponenten haben, werden sie eigentlich funktionale Hauptkomponenten genannt, |
| dann können Sie diese verwenden, wie auch immer Sie Ihre Daten analysieren möchten, ob Ihre Kurven Eingaben für Modelle sind, ob sie Ausgaben für Modelle sind, ob Sie eine Clusteranalyse durchführen möchten. |
| Mit diesen funktionalen Hauptkomponenten können Sie jetzt wirklich jede Art von Analyse durchführen. Im heutigen Beispiel sind alle meine Kurven Ausgaben an ein Modell, also werde ich funktionales DOE verwenden |
| um sich diese Kurven genauer anzusehen. Kommen wir also zu JMP. |
| Hier habe ich meine Datentabelle, wo ich die Chargennummern habe, ich habe die Zeit in der Trübung, die die Kurven ausmacht. |
| Und ich habe auch eine Reihe von Prozessparametern. Und das erste, was ich tun möchte, ist, ein gewisses Prozessverständnis zu erlangen, um zu sehen, ob einer dieser Prozessparameter vorhanden ist |
| wirken sich auf die Variabilität aus, die ich in den Kurven sehe. Gehen wir also in den Funktionsdaten-Explorer. Wir setzen Zeit als unser X ein, Trübung ist unser Y. Wir geben unsere ID-Funktion ein und dann nehmen wir all diese Prozessparameter und geben sie als zusätzliche Variablen ein. |
| Nun, der erste Schritt, den wir tun müssen, ist, dass wir das flexible Modell an alle unsere Kurven anpassen müssen, und ich werde dazu direktionale ... direkte funktionale PCA verwenden. |
| Hier sind diese flexiblen Modelle. Der zweite Schritt, den JMP bereits für mich erledigt hat, ist die Bestimmung der mittleren Kurve |
| und unsere Formkomponenten. Und JMP hat für mich sechs verschiedene Formkomponenten identifiziert. Hier auf der linken Seite kann ich diese sechs verschiedenen Formkomponenten sehen. |
| Und hier ist die kumulierte Menge an Variabilität, die diese Formkomponenten in meinen Daten erklären. |
| Sie können sehen, dass ich allein mit den ersten beiden Formkomponenten bereits 92 % der Variabilität in meiner Kurve beschreibe, was großartig ist. |
| Und die verbleibenden Formkomponenten hier werde ich ausschließen, weil sie wahrscheinlich nur die zufällige Variabilität in meinen Daten erklären. Lassen Sie uns also fortfahren und die Anzahl der FPCs auf zwei reduzieren, und ich habe diese beiden Formkomponenten übrig. |
| Der nächste Schritt besteht nun darin, die Größe jeder dieser Formkomponenten für jede dieser Kurven zu bestimmen, und ich habe sie hier in meinem Ergebnisdiagramm. |
| Auf der X-Achse habe ich die Formkomponente 1 und auf der Y-Achse habe ich die Formkomponente 2. |
| Unten habe ich einen Profiler, in dem ich mir meine Kurve ansehen kann, die ich hier gelb hervorgehoben habe, und Sie können sehen, wie sich die erste Formkomponente auf die Form der Kurve auswirkt. |
| hauptsächlich die Wachstumsphase der Kurve, und die zweite Formkomponente wirkt sich hauptsächlich auf die Todesphase der Kurve aus. |
| Und schauen wir uns ein paar dieser Chargen genauer an. Werfen wir einen Blick auf Batch 15. Hier ist die Kurve für Charge 15, und wir können die Größe von Formkomponente 1 und die Größe von Formkomponente 2 sehen. Ich kann diese direkt in meinen Profiler eingeben. |
| Jetzt können Sie sehen, dass ich die Kurve für Batch 15 reproduzieren kann. Schauen wir uns einfach noch einen an. Werfen wir einen Blick auf dieses Batch 2, und Sie können sehen, dass es im Vergleich zu Batch 15 und der Form ganz anders aussieht ... die Größe der Formkomponenten ist auch sehr unterschiedlich. Also lass uns |
| schau dir die mal an. |
| Und Sie können jetzt sehen, dass wir … wir sind auch in der Lage, diese Kurve zu replizieren. |
| Wenn wir also die mittlere Form kennen, die beiden geformten Komponenten, die die Variabilität um die Kurven herum darstellen, können wir jetzt diese Größen dieser Formkomponenten verwenden, um eine Analyse durchzuführen. |
| Und wir können das tun ... wenn Ihre Kurven die Antwort in Ihrem Modell sind, können Sie diese Analyse direkt hier im Funktionsdaten-Explorer durchführen. |
| Also hier unten habe ich einen neuen Profiler. Und dieses Mal habe ich in meinem Profiler ... ich habe wieder meine Kurve, die ich wieder gelb hervorheben werde. |
| Und dann habe ich die Parameter pH, Temperatur, Druck und Mischgeschwindigkeit. Sie können hier für die Mischgeschwindigkeit sehen, es ist ziemlich flach, also beeinflusst es diese Form nicht. |
| Dasselbe gilt für den Druck, aber wenn ich anfange, mir die Temperatur anzusehen, können Sie sehen, dass sie die Form meiner Kurve verändert, hauptsächlich die Wachstumsphase meiner Kurve. Und wenn ich den pH-Wert ändere, wirkt sich das hauptsächlich auf diese Phase meiner Kurve aus. |
| Das ist also der Ansatz, den ich für das Prozessverständnis wählen würde. Nun, was ist mit der Prozessoptimierung? Und mit Prozessoptimierung meine ich, |
| Wissen Sie, wenn wir eine bestimmte Kurve standardisieren möchten, welchen pH-Wert und welche Temperatur benötigen wir, um die gewünschte Kurve zu erhalten? Nun, das erste, was Sie tun müssen, ist zu definieren, was das ist |
| gewünschte Kurve aussieht. Und ich habe nur ein paar Datenpunkte hier unten in meiner Datentabelle, die die Form beschreiben, nach der ich suche, und Sie werden sie hier auf meinem ... |
| im Graph-Builder. Und in diesem Fall bin ich daran interessiert, eine Kurve zu bekommen, bei der ich eine wirklich schnelle Wachstumsrate und dann eine wirklich langsame Absturzrate habe. |
| Und dies ist wirklich einfach in den Funktionsdaten-Explorer hinzuzufügen. Wir müssen nur einen zusätzlichen Schritt machen; Ich werde mich daran erinnern, was ich vorher gemacht habe. |
| Und der einzige zusätzliche Schritt besteht darin, diese Zielfunktion zu laden und zu identifizieren, welche |
| Funktion stellt unser Ziel dar. Und alles, was ich jetzt tue, ist, das zu wiederholen, was ich vorher gemacht habe. Ich mache meine direkte funktionelle PCA. |
| Ich werde meine FPCs auf 2 reduzieren und das ... diese Ergebnisse sind genau das, was wir vorher gesehen haben, und dann werde ich hochkommen und mein funktionales DOE machen. |
| Und wieder werde ich hier meine Kurve hervorheben. Und jetzt, da diese Zielkurve identifiziert wurde, kann ich die Erwünschtheit maximieren, mit anderen Worten, ich kann die Sollwerte für pH und Temperatur finden |
| und Druck und Mischgeschwindigkeit, die mir eine Kurve geben, die dieser Zielkurve am ähnlichsten ist. Also da ist |
| wirklich schnelle Wachstumsrate, eine langsame Absturzrate. Und ich müsste es einfach |
| Beginnen Sie mit Medien mit einem pH-Wert von 7,2 und verwenden Sie die Temperatur von 37,9 auf meinen Fermentern. Das ist also der Ansatz, den ich für das Prozessverständnis und die Prozessoptimierung gewählt hätte. |
| Wenn wir über die Prozessüberwachung von Wachstumskurven oder Kurvenformen sprechen, gibt es verschiedene Möglichkeiten, und ich habe hier ein paar andere Gedanken. |
| Wenn Sie dies tun möchten, empfehle ich Ihnen dringend, sich diese Präsentation von 2020 anzusehen, statistische Prozesskontrolle für Prozessvariablen, die eine funktionale Form haben. |
| Dies war eine Präsentation, die aufgezeichnet wurde, und sie ist wirklich großartig. Sie sprachen darüber, diese funktionalen Hauptkomponenten zu nehmen und sie in modellgesteuerte multivariate Regelkarten zu stecken. |
| Sie demonstrierten das großartig … und demonstrierten das und sprachen dann auch über einige der möglichen Nachteile dieses Ansatzes. |
| Daher möchte ich einen anderen Ansatz erörtern, den Sie vielleicht in Betracht ziehen sollten, und zwar die Betrachtung des integrierten Unterschieds zu einem Standard. |
| Genau wie zuvor, als wir uns diese Zielkurve angesehen haben, könnten Sie diese Zielkurve als Standard verwenden und dann für jede Charge die Differenz zu diesem Standard berechnen. Hier habe ich zum Beispiel |
| eine Kurve aus einer Charge, die hier in Blau dargestellt ist ... oder leider in Rot. Die Standardkurve ist blau und ich nehme die Differenz und die Differenz hier ist auf dieser grünen Kurve unten. |
| Und Sie können einfach über diese Kurve integrieren, um die Fläche unter der Kurve zu finden, und diese dann in Ihrem statistischen Prozesssteuerungsprogramm verwenden. Und ich möchte Sie nur schnell durch die Schritte führen, wie das geht. |
| Hier ist also meine Zeit und meine Standard-Trübungswerte, meine Trübung für diese erste Charge, und ich habe gerade die Differenz zwischen diesen beiden berechnet. Und was Sie dann tun können, ist, dass Sie können |
| Verwenden Sie Y nach X anpassen, um ein Spline-Modell für diese Differenz im Laufe der Zeit zu erstellen, und dann können Sie die Koeffizienten für dieses Modell in einer Datentabelle speichern. |
| Was Sie erhalten, sind Ihre X-Werte und die vier Koeffizienten, die Sie zum Erstellen des Spline-Modells verwenden können. Und hier ist diese Formel zum Erstellen des Spline-Modells: |
| und dann integriert man diese Formel. Sie können dies also entweder durch Skripterstellung tun, ich habe mich für den Formeleditor entschieden. Also habe ich gerade die Fläche für jeden Abschnitt der Kurve hier bestimmt, indem ich einfach diese vorherige Formel von Hand integriert habe. |
| Sobald ich also diese Bereichsscheiben habe, muss ich nur noch die Bereiche addieren, die mich interessieren. So kann ich die Fläche für die Gesamtkurve machen. |
| Ich kann es auch nur für die Wachstumsphase und nur für die Todesphase tun, und das habe ich hier oben getan |
| in meiner Tabellenvariable. Also habe ich jetzt eine Variable für meine gesamte integrierte Differenz, für meine integrierte Differenz nur während der Wachstumsphase und meine integrierte Differenz während der Todesphase. |
| Und im Grunde gehen Sie einfach durch und tun das für jede der Chargen. Hier habe ich dies für alle 20 Chargen getan, und jetzt können Sie Ihre statistische Prozesskontrolle für diese Variablen durchführen. |
| Das sind also meine Ansätze, die ich genommen hätte, um mich mit Prozessüberwachung und auch Prozessverständnis und Prozessoptimierung mit dem funktionalen Datenexplorer zu befassen. Ich hoffe, du schaust es dir an und es ist auch für dich ein Kinderspiel. Danke dir. |