Lautsprecher | Transkript |
| Andrea Coombs, JMP | Hallo, mein Name ist Andrea Coombs und ich bin Systemingenieur bei JMP. Heute erzähle ich also die Geschichte aus meinen Jahren, als ich in der Industrie, speziell in der Pharmaindustrie, gearbeitet habe. |
| Hier ist also, 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 Möglichkeiten zum Umgang mit gekrümmten Daten diskutiert |
| die wir in Echtzeit von Sensoren in unserer Fertigung erhielten. |
| Und heute möchte ich über einige der neuen Tools sprechen, die wir in JMP haben, insbesondere den funktionalen Daten-Explorer, und wie dies all diese Arbeit zu einem Kinderspiel gemacht hätte. |
| Und ich werde auf Möglichkeiten eingehen, den funktionalen Daten-Explorer für das Prozessverständnis, die Prozessoptimierung und die Prozessüberwachung zu verwenden. |
| 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 Herstellungsprozess eines Impfstoffs. Es beginnt mit der Materialvorbereitung. |
| In diesem Fall führen wir die bakterielle Fermentation in zwei Stufen durch, dann wird das Produkt gefiltert, absorbiert und geerntet. |
| und stromabwärts wird das Produkt zentrifugiert, und dann werden schließlich mehrere Teilchargen des Materials zusammen in eine Materialcharge formuliert. |
| Und heute werde ich mich auf die Fermentationsstufen dieses Prozesses konzentrieren. |
| Während Bakterien fermentieren, wachsen sie und die Wachstumskurven sehen hier rechts aus wie etwas. Während des Wachstums gibt es also eine Lag-Phase, eine exponentielle Wachstumsphase, eine stationäre Phase und schließlich eine logarithmische Todesphase. |
| Und während ich in diesem Unternehmen war, durchliefen wir eine Entwicklung des Prozessverständnisses, insbesondere um diese Wachstumskurven herum. |
| Also begannen wir früh, indem wir nur fünf Proben aus diesen beiden Fermentationsstufen nahmen, diese Proben ins QC-Labor schickten und auf die Ergebnisse warteten. Und wir haben |
| optische Dichte, damit wir die Dichte der Zellen in diesen Proben bestimmen konnten, und die Ergebnisse, die wir erhielten, sahen ungefähr so aus, wie Sie es hier rechts sehen. |
| Wir haben eine Verteilung der Ergebnisse zu diesen bestimmten Zeitpunkten, aber wir wussten nicht wirklich, wie die Wachstumskurven aussehen. Sie hätten wie jede der Kurven aussehen können, die ich über diese Verteilungen unten gezeichnet habe. Wir hatten einfach 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 anziehen und in die Fertigungssuite gehen |
| um die Daten manuell herunterzuladen, sie zurück zu unseren Schreibtischen zu bringen und dann herauszufinden, was wir mit all diesen Daten machen würden. |
| Und schließlich haben wir unsere SPS so aufgerüstet, dass wir jetzt alle Daten von all unseren Sensoren auf unserem Schreibtisch haben konnten, ohne dass wir uns umziehen und zurück in die Fertigung gehen mussten; wir hatten alle daten |
| an unseren Fingerspitzen, das war großartig. Aber durch sorgfältige Analyse konnten wir feststellen, dass wir zu viele Daten hatten und wir mit vielen Daten umgehen mussten. |
| Das ist der Grund... |
| Deshalb habe ich diese Präsentation über Bewältigungsstrategien gehalten, um Echtzeitdaten zu verstehen. |
| 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 uns das Wachstum anschauen und |
| verstanden, was vor sich ging, also haben wir sie parametrisiert. Mit anderen Worten, wir haben die Steigung des Wachstums, die Steigung der Todesrate genommen, wir haben uns die Zeitdauer angesehen, in der sich die Bakterien in jeder der Phasen befanden. Wir haben nachgeschaut |
| die Trübung zu bestimmten Zeitpunkten, und jetzt hatten wir eine große Sammlung dieser Wachstumsvariablen ... was wir Wachstumsvariablen nannten. |
| Und diese Wachstumsvariablen waren für uns sehr nützlich. Wir haben sie zum Prozessverständnis, zur Prozessoptimierung und Prozessüberwachung eingesetzt. |
| 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. |
| Als erstes mussten wir also alle unsere Datenquellen herausfinden und sicherstellen, dass wir auf alles zugreifen können, was wir hatten, nicht nur auf Daten von unserem Historiker, sondern auch auf Daten von unserem |
| ERP-System, in unseren Labor-Informations-Management-Systemen. Wir mussten diese Daten alle an einem Ort zusammenbringen. Wir haben ein Super-Journal 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 viel 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 Functional Data Explorer verwenden können, um unsere Kurven zu analysieren. Wir müssten sie nicht parametrisieren, |
| wo wir viele der Daten zurückgelassen haben. Wir können alle Daten im funktionalen Datenexplorer verwenden. Und dann natürlich die Aktionsaufzeichnung im erweiterten Protokoll, |
| das hätte den Aufwand beim Scripting so viel einfacher gemacht. Aber heute möchte ich mich nur darauf konzentrieren, wie ich den funktionalen Daten-Explorer verwendet hätte. |
| Da ich natürlich keinen Zugriff mehr auf diese Daten habe, 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 mit dem funktionalen Daten-Explorer läuft es wirklich auf diese vier Schritte hinaus. Als erstes nimmst du deine 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 oder 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 für ein Modell, daher werde ich funktionale DOE verwenden |
| um diese Kurven genauer zu betrachten. Kommen wir also zu JMP. |
| Hier habe ich meine Datentabelle, wo ich die Chargennummern habe, habe ich die Zeit in der Trübung, die die Kurven ausmachen. |
| 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 |
| beeinflussen die Variabilität, die ich in den Kurven sehe. Kommen wir also zum funktionalen Daten-Explorer. Wir setzen die Zeit als unser X ein, Trübung ist unser Y. Wir geben unsere ID-Funktion ein und nehmen dann alle diese Prozessparameter und geben sie als zusätzliche Variablen ein. |
| Der erste Schritt, den wir tun müssen, ist, das flexible Modell an alle unsere Kurven anzupassen, und ich werde dafür die 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 Mittelwertkurve |
| und unsere Formkomponenten. Und JMP hat für mich sechs verschiedene Formkomponenten identifiziert. Hier auf der linken Seite sehe ich diese sechs verschiedenen Formkomponenten. |
| Und hier ist die kumulative Variabilität, die diese Formkomponenten in meinen Daten erklären. |
| Sie sehen, allein mit den ersten beiden Formkomponenten beschreibe ich bereits 92% der Variabilität in meiner Kurve, was großartig ist. |
| Und die verbleibenden A-Form-Komponenten hier werde ich ausschließen, weil sie wahrscheinlich nur die zufällige Variabilität in meinen Daten erklären. Lassen Sie uns also weitermachen und unsere Anzahl an FPCs auf zwei reduzieren, und ich verbleiben bei diesen beiden Formkomponenten. |
| 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 Score-Plot. |
| Auf der X-Achse habe ich die Formkomponente 1 und auf der Y-Achse habe ich 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 beeinflusst hauptsächlich die Todesphase der Kurve. |
| Und schauen wir uns einige dieser Chargen genauer an. Schauen wir uns Batch 15 an. Hier ist die Kurve für Stapel 15, und wir können die Größe von Formkomponente 1 und die Größe von Formkomponente 2 sehen. Diese kann ich 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 diesen Batch 2, und Sie können sehen, dass dieser im Vergleich zu Batch 15 und der Form ganz anders aussieht ... auch die Größe der Formkomponenten ist sehr unterschiedlich. Also lass uns |
| schau dir die 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 Formkomponenten, die die Variabilität um die Kurven darstellen, können wir nun diese Größen dieser Formkomponenten verwenden, um eine Analyse durchzuführen. |
| Und wir können das... Wenn Ihre Kurven die Antwort in Ihrem Modell sind, können Sie diese Analyse direkt hier im funktionalen Daten-Explorer durchführen. |
| Also hier unten habe ich einen neuen Profiler. Und dieses Mal in meinem Profiler habe ich ... 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 die Mischgeschwindigkeit sehen, sie ist ziemlich flach, so dass sie diese Form nicht beeinflusst. |
| Dasselbe gilt für den Druck, aber wenn ich mir die Temperatur ansehe, kannst du sehen, dass sie die Form meiner Kurve verändert, hauptsächlich die Wachstumsphase meiner Kurve. Und wenn ich den pH-Wert verändere, beeinflusst dies hauptsächlich diese Phase meiner Kurve. |
| Das ist also der Ansatz, den ich für das Prozessverständnis wählen würde. Wie sieht es mit der Prozessoptimierung aus? Und mit Prozessoptimierung meine ich, |
| Wissen Sie, wenn es eine bestimmte Kurve gibt, auf die wir standardisieren möchten, welchen pH-Wert und welche Temperatur würden wir dann benötigen, um diese 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 hier am Ende meiner Datentabelle nur ein paar Datenpunkte, die die gesuchte Form beschreiben, und Sie werden sie hier auf meiner... |
| im Graph-Builder. Und in diesem Fall bin ich daran interessiert, eine Kurve zu erhalten, bei der ich eine wirklich schnelle Wachstumsrate und dann eine wirklich langsame Absturzrate habe. |
| Und das lässt sich ganz einfach in den funktionalen Daten-Explorer einfügen. Wir müssen nur einen zusätzlichen Schritt tun; Ich werde mich daran erinnern, was ich zuvor getan habe. |
| Und der eine zusätzliche Schritt besteht darin, diese Zielfunktion zu laden und zu identifizieren, welche |
| Funktion repräsentiert unser Ziel. Und alles, was ich jetzt tue, ist, das zu wiederholen, was ich zuvor getan habe. Ich mache mein direktes funktionelles PCA. |
| Ich werde meine FPCs auf 2 anpassen und dies ... diese Ergebnisse sind genau das, was wir zuvor gesehen haben, und dann werde ich hochkommen und meine funktionale DOE durchführen. |
| Und wieder werde ich hier meine Kurve hervorheben. Und jetzt, da diese Zielkurve identifiziert wurde, kann ich die Erwünschtheit maximieren, also mit anderen Worten, 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 tun |
| 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 verwendet hätte. |
| Wenn wir über die Prozessüberwachung von Wachstumskurven oder Kurvenformen sprechen, gibt es verschiedene Optionen und ich habe hier ein paar andere Gedanken. |
| Wenn dies etwas ist, das Sie tun möchten, empfehle ich Ihnen dringend, sich diese Präsentation von 2020, die statistische Prozesskontrolle für Prozessvariablen mit funktionaler Form, anzusehen. |
| 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 übertragen. |
| Sie machten eine großartige Demonstration ... eine Demonstration davon und sprachen dann auch über einige vielleicht Nachteile dieses Ansatzes. |
| Daher möchte ich einen anderen Ansatz diskutieren, den Sie möglicherweise in Betracht ziehen sollten, und zwar den integrierten Unterschied zu einem Standard. |
| Genau wie zuvor, wenn wir uns diese Zielkurve ansehen, können 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 wird ... oder leider in Rot. Die Standardkurve ist blau und ich nehme den Unterschied und der Unterschied 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 Standardtrübungswerte, meine Trübung für diese erste Charge, und ich habe gerade die Differenz zwischen diesen beiden berechnet. Und dann kannst du es tun |
| Verwenden Sie Y an 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 die Formel zum Erstellen des Spline-Modells: |
| und dann integrieren Sie diese Formel. Sie können dies entweder über Skripte tun, ich habe mich dafür entschieden, dies im Formeleditor zu tun. Also habe ich hier gerade die Fläche für jedes Stück der Kurve bestimmt, indem ich einfach die 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 Tabellenvariablen. Ich habe jetzt also 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 Wesentlichen gehen Sie einfach durch und tun dies 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 verfolgt hätte, um Prozessüberwachung und auch Prozessverständnis und Prozessoptimierung mit dem funktionalen Datenexplorer zu betrachten. Ich hoffe, du probierst es aus und es ist auch für dich ein Kinderspiel. Dankeschön. |