| Oratore |
Trascrizione |
| Andrea Coombs, JMP |
Ciao, mi chiamo Andrea Coombs e sono un ingegnere di sistema presso JMP. Oggi vi racconterò la storia dei miei anni di lavoro nel settore, in particolare in quello farmaceutico. |
| |
Ecco di cosa parlerò oggi in sintesi. |
| |
strategie di coping per dare un senso |
| |
di dati di produzione in tempo reale nel settore manifatturiero...nella produzione di vaccini. E in quella presentazione ho discusso i modi per gestire i dati curvi. |
| |
che ricevevamo in tempo reale dai sensori installati nel nostro reparto produzione. |
| |
E oggi vorrei parlarvi di alcuni dei nuovi strumenti che abbiamo in JMP, in particolare dell'esploratore di dati funzionali, e di come questo avrebbe reso tutto questo lavoro un gioco da ragazzi. |
| |
E spiegherò come utilizzare Functional Data Explorer per comprendere, ottimizzare e monitorare i processi. |
| |
Iniziamo quindi parlando del processo e delle curve che abbiamo analizzato. Qui a sinistra, abbiamo un esempio di un ipotetico processo di produzione di un vaccino. Inizia con la preparazione del materiale. |
| |
In questo caso, stiamo effettuando la fermentazione batterica in due fasi, quindi il prodotto viene filtrato, assorbito e raccolto, |
| |
e a valle il prodotto viene centrifugato e, infine, più sottolotti di materiale vengono formulati insieme in un unico lotto di materiale. |
| |
E oggi mi concentrerò sulle fasi di fermentazione di questo processo. |
| |
Quindi, mentre i batteri fermentano, crescono e le curve di crescita sono come quelle qui a destra. Durante la crescita, c'è una fase di latenza, una fase di crescita esponenziale, una fase stazionaria e, infine, una fase di morte logaritmica. |
| |
E mentre lavoravo in questa azienda, stavamo attraversando un'evoluzione del processo di comprensione del processo, in particolare per quanto riguarda queste curve di crescita. |
| |
Quindi abbiamo iniziato presto, prelevando solo cinque campioni da queste due fasi di fermentazione, inviandoli al laboratorio di controllo qualità e aspettando i risultati. E abbiamo ottenuto |
| |
densità ottica, così abbiamo potuto determinare la densità delle cellule in quei campioni e i risultati che abbiamo ottenuto erano più o meno quelli che vedete qui a destra. |
| |
Avevamo una distribuzione dei risultati in quei punti temporali specifici, ma non sapevamo davvero che aspetto avessero le curve di crescita. Avrebbero potuto assomigliare a una qualsiasi delle curve che ho disegnato su quelle distribuzioni qui sotto. Semplicemente non ne avevamo idea. |
| |
Ma poi abbiamo implementato sonde in linea, quindi abbiamo implementato sonde di torbidità per poter vedere effettivamente come appaiono quelle curve di crescita. Tuttavia, abbiamo dovuto indossare i guanti e andare nella suite di produzione. |
| |
scaricare manualmente i dati, riportarli sulle nostre scrivanie e poi cercare di capire cosa avremmo fatto con tutti questi dati. |
| |
E poi, infine, abbiamo aggiornato il nostro PLC in modo che ora potessimo avere tutti i dati da tutti i nostri sensori sulla nostra scrivania, senza bisogno di cambiarci e tornare indietro... e tornare alla produzione; avevamo tutti i dati |
| |
A portata di mano, il che era fantastico. Ma attraverso un'analisi attenta, siamo riusciti a determinare che avevamo troppi dati e che avevamo troppi dati da gestire. |
| |
Ecco perché... |
| |
Ecco perché ho tenuto questa presentazione sulle strategie di coping per dare un senso ai dati in tempo reale. |
| |
Abbiamo dedicato molto impegno a dare un senso ai nostri dati e volevo condividere con voi alcune strategie che potreste adottare per dare un senso ai vostri dati in tempo reale. |
| |
La prima cosa di cui ho parlato è stata la parametrizzazione di quelle curve di crescita. Quindi avevamo queste curve, ma volevamo essere in grado di dare un'occhiata alla crescita e |
| |
Per capire cosa stava succedendo, li abbiamo parametrizzati. In altre parole, abbiamo preso la pendenza della crescita, la pendenza del tasso di mortalità, e abbiamo osservato la durata del tempo in cui i batteri si trovavano in ciascuna fase. Abbiamo osservato |
| |
la torbidità in determinati punti temporali, e ora avevamo una grande raccolta di queste crescite...quelle che chiamavamo variabili di crescita. |
| |
E queste variabili di crescita ci sono state molto utili. Le abbiamo utilizzate per comprendere, ottimizzare e monitorare i processi. |
| |
Ora, il secondo gruppo di strategie di coping di cui ho parlato consisteva semplicemente nell'elaborazione di tutti questi dati in tempo reale |
| |
che avevamo. Quindi, ovviamente, una volta che abbiamo iniziato a trovare utili tutti questi dati, volevamo avervi accesso subito. |
| |
Quindi la prima cosa che abbiamo dovuto capire è stata quella di gestire tutte le nostre fonti di dati e di assicurarci di poter accedere a tutto ciò che avevamo, non solo i dati del nostro storico, ma anche i dati provenienti dal nostro |
| |
Sistema ERP, nei sistemi di gestione delle informazioni del nostro laboratorio. Dovevamo riunire tutti quei dati in un unico posto. Abbiamo utilizzato un super journal, quindi è una sorta di centrale di comando per accedere a tutti i nostri dati ed eseguire tutti i nostri script. |
| |
Abbiamo fatto davvero un sacco di lavoro. Eravamo piuttosto orgogliosi di noi stessi, ma sai, col senno di poi, |
| |
conoscendo gli strumenti di cui dispone JMP, in particolare ora con JMP 16, ci sono un paio di cose che avrebbero reso questo lavoro molto più semplice. |
| |
Con le curve di crescita, avremmo potuto usare l'esploratore di dati funzionali per analizzare le nostre curve. Non avremmo dovuto parametrizzarle, |
| |
dove lasciavamo molti dati. Possiamo utilizzare tutti i dati nell'esploratore dati funzionale. E poi, naturalmente, la registrazione delle azioni nel registro avanzato, |
| |
Questo avrebbe semplificato di molto il lavoro di scripting. Ma oggi voglio concentrarmi solo su come avrei usato l'esploratore di dati funzionale. |
| |
Ovviamente, non ho più accesso a quei dati, quindi ho simulato alcune curve di crescita. Qui ho 20 curve diverse, che rappresentano la variabilità che si può osservare durante la fermentazione batterica. |
| |
E con l'esploratore di dati funzionali, tutto si riduce a questi quattro passaggi. La prima cosa da fare è prendere la raccolta di curve. |
| |
e si procederà a levigare tutte le singole curve. Il secondo passo consiste nel determinare una forma media e le componenti di forma che descrivono tutta la variabilità osservata in queste curve. |
| |
Il passo successivo consiste nell'estrarre l'entità delle componenti di forma per ciascuna curva. |
| |
E una volta che hai questi due componenti di forma, vengono effettivamente chiamati componenti principali funzionali, |
| |
Puoi quindi utilizzarli come preferisci per analizzare i tuoi dati, sia che le tue curve siano input per i modelli, sia che siano output per i modelli, sia che tu voglia fare un'analisi di clustering. |
| |
In realtà, ora è possibile fare qualsiasi tipo di analisi con queste componenti principali funzionali. Nell'esempio di oggi, tutte le mie curve sono output di un modello, quindi userò DOE funzionale. |
| |
per dare un'occhiata più da vicino a queste curve. Entriamo quindi nel vivo dell'analisi con JMP. |
| |
Qui ho la mia tabella dati, dove ho i numeri di lotto e il tempo nella torbidità, che compongono le curve. |
| |
E ho anche un sacco di parametri di processo. E la prima cosa che voglio fare è capire il processo per vedere se qualcuno di questi parametri è |
| |
stanno influenzando la variabilità che vedo nelle curve. Quindi andiamo nell'esploratore dei dati funzionali. Imposteremo il tempo come X, la torbidità come Y. Inseriremo la nostra funzione ID e poi prenderemo tutti questi parametri di processo e li inseriremo come variabili supplementari. |
| |
Ora, il primo passo che dobbiamo fare è adattare il modello flessibile a tutte le nostre curve e per farlo userò la PCA funzionale direzionale...diretta. |
| |
Ecco questi modelli flessibili. Il secondo passaggio, che JMP ha già eseguito per me, è determinare la curva media. |
| |
e i nostri componenti di forma. JMP ha identificato sei diversi componenti di forma per me. Qui a sinistra, posso vedere questi sei diversi componenti di forma. |
| |
Ed ecco la quantità cumulativa di variabilità che quei componenti di forma spiegano nei miei dati. |
| |
Come puoi vedere, con i primi due componenti della forma sto già descrivendo il 92% della variabilità della mia curva, il che è fantastico. |
| |
E i restanti componenti di forma qui, li escluderò, perché probabilmente spiegano solo la variabilità casuale nei miei dati. Quindi andiamo avanti e personalizziamo il numero di FPC a due e mi ritroverò con quei due componenti di forma. |
| |
Ora, il passo successivo è determinare l'entità di ciascuna di queste componenti di forma per ciascuna di queste curve, e le ho qui nel mio grafico dei punteggi. |
| |
Sull'asse X ho il Componente Forma 1 e sull'asse Y ho il Componente Forma 2. |
| |
Qui sotto ho un profiler dove posso dare un'occhiata alla mia curva, che ho evidenziato qui in giallo, e puoi vedere come il primo componente di forma influisce sulla forma della curva, |
| |
principalmente la fase di crescita della curva, mentre la seconda componente di forma ha un impatto principalmente sulla fase di morte della curva. |
| |
Diamo un'occhiata più da vicino ad alcuni di questi lotti. Diamo un'occhiata al lotto 15. Ecco la curva del lotto 15, e possiamo vedere l'entità della componente di forma 1 e l'entità della componente di forma 2. Posso inserirli direttamente nel mio profiler. |
| |
Ora potete vedere che sono in grado di riprodurre la curva del Batch 15. Diamo un'occhiata a un altro esempio. Diamo un'occhiata a questo Batch 2, e potete vedere che appare molto diverso rispetto al Batch 15 e la forma... anche l'entità delle componenti della forma è molto diversa. Quindi... |
| |
date un'occhiata a quelli. |
| |
E ora potete vedere che siamo riusciti a replicare anche quella curva. |
| |
Quindi, conoscendo la forma media, ovvero le due componenti di forma che rappresentano la variabilità attorno alle curve, possiamo ora utilizzare le grandezze di queste componenti di forma per effettuare un'analisi. |
| |
E possiamo fare...quando le tue curve sono la risposta nel tuo modello, puoi fare quell'analisi proprio qui nell'esploratore dei dati funzionali. |
| |
Quindi qui sotto ho un nuovo profiler. E questa volta nel mio profiler ho... ho di nuovo la mia curva, che evidenzierò di nuovo in giallo. |
| |
E poi ho i parametri di pH, temperatura, pressione e velocità di miscelazione. Come potete vedere, la velocità di miscelazione è piuttosto piatta, quindi non influisce sulla forma. |
| |
Lo stesso vale per la pressione, ma quando inizio a guardare la temperatura, vedo che cambia la forma della mia curva, principalmente la fase di crescita. E quando modifico il pH, questo influisce principalmente su quella fase della mia curva. |
| |
Quindi questo è l'approccio che adotterei per la comprensione dei processi. Bene, che dire dell'ottimizzazione dei processi? E per ottimizzazione dei processi intendo... |
| |
Sai, se c'è una curva particolare che vogliamo standardizzare, quali sarebbero il pH e la temperatura necessari per ottenere la curva desiderata? Beh, la prima cosa che devi fare è definire cosa... |
| |
Aspetto della curva desiderata. E ho solo alcuni punti dati qui in fondo alla mia tabella dati che descrivono la forma che sto cercando, e li vedrai qui sul mio... |
| |
Nel generatore di grafici. E in questo caso, mi interessa ottenere una curva in cui ho un tasso di crescita molto rapido e poi un tasso di crash molto lento. |
| |
Ed è davvero facile da aggiungere all'esploratore di dati funzionali. Dobbiamo solo fare un ulteriore passaggio; vi ricorderò cosa ho fatto prima. |
| |
E il passaggio aggiuntivo è caricare quella funzione di destinazione, identificare quale |
| |
La funzione rappresenta il nostro obiettivo. E tutto ciò che sto facendo ora è replicare quello che ho fatto prima. Farò la mia analisi funzionale diretta. |
| |
Personalizzerò i miei FPC riducendoli a 2 e questi...questi risultati sono esattamente quelli che vedevamo prima, e poi farò il mio DOE funzionale. |
| |
E ancora una volta, evidenzierò la mia curva qui. Ora che la curva target è stata identificata, posso massimizzare la desiderabilità, quindi, in altre parole, posso trovare i punti di riferimento per pH e temperatura. |
| |
e pressione e velocità di miscelazione che mi daranno una curva che assomiglia di più a quella curva target. Quindi c'è |
| |
tasso di crescita molto veloce, un tasso di crollo lento. E avrei solo bisogno di |
| |
Iniziare con un terreno con un pH di 7,2 e utilizzare la temperatura di 37,9 sui miei fermentatori. Questo è l'approccio che avrei utilizzato per comprendere e ottimizzare il processo. |
| |
Quando parliamo di monitoraggio del processo di curve di crescita o forme di curve, ci sono diverse opzioni disponibili e io ho un paio di idee diverse a riguardo. |
| |
Se è qualcosa che vuoi fare, ti consiglio vivamente di dare un'occhiata a questa presentazione del 2020, controllo statistico di processo per variabili di processo che hanno una forma funzionale. |
| |
Questa è stata una presentazione registrata ed è davvero fantastica. Hanno parlato di come prendere quelle componenti principali funzionali e inserirle in carte di controllo multivariate basate su modelli. |
| |
Hanno fatto un'ottima dimostrazione e poi hanno anche parlato di alcuni possibili svantaggi di questo approccio. |
| |
Vorrei quindi discutere di un altro approccio che potreste prendere in considerazione, ovvero quello che esamina la differenza integrata rispetto a uno standard. |
| |
Quindi, proprio come prima, quando esaminavamo quella curva target, si poteva usare quella curva target come standard e poi, per ogni lotto, calcolare la differenza rispetto a quello standard. Ad esempio, qui ho |
| |
Una curva di un lotto rappresentata qui in blu... o scusate, in rosso. La curva standard è in blu e sto prendendo la differenza, e la differenza qui è su questa curva verde qui sotto. |
| |
E puoi semplicemente integrare su quella curva per trovare l'area sottesa, e poi usarla nel tuo programma di controllo statistico di processo. Voglio solo spiegarti brevemente i passaggi per farlo. |
| |
Quindi ecco il mio tempo e i miei valori di torbidità standard, la mia torbidità per quel primo lotto, e ho appena calcolato la differenza tra questi due. E poi quello che puoi fare è... |
| |
utilizzare l'adattamento Y per X per creare un modello spline per quella differenza nel tempo, quindi è possibile salvare i coefficienti per quel modello in una tabella dati. |
| |
Otterrai i valori di X e i quattro coefficienti che puoi usare per costruire il modello spline. Ed ecco la formula per costruire il modello spline: |
| |
e poi integri questa formula. Puoi farlo tramite scripting, io ho scelto di farlo nell'editor di formule. Ho semplicemente determinato l'area per ogni fetta della curva, integrando manualmente la formula precedente. |
| |
Una volta ottenute le sezioni di queste aree, non mi resta che sommare le aree che mi interessano. In questo modo posso calcolare l'area della curva totale. |
| |
Posso farlo anche solo per la fase di crescita e solo per la fase di morte, e l'ho fatto qui sopra |
| |
Nella variabile della mia tabella. Quindi ora ho una variabile per la mia differenza integrata totale, per la mia differenza integrata solo durante la fase di crescita e per la mia differenza integrata durante la fase di morte. |
| |
In sostanza, basta ripetere l'operazione per ciascuno dei lotti. Qui l'ho fatto per tutti i 20 lotti, e ora potete eseguire il controllo statistico di processo su quelle variabili. |
| |
Questi sono in un certo senso gli approcci che avrei adottato per analizzare il monitoraggio, la comprensione e l'ottimizzazione dei processi utilizzando il Functional Data Explorer. Spero che tu lo provi e che sia un gioco da ragazzi anche per te. Grazie. |