Orateur | Transcription |
| Andrea Coombs, JMP | Bonjour, je m'appelle Andrea Coombs et je suis ingénieur système chez JMP. Alors aujourd'hui, je vais raconter l'histoire de mes années où j'ai travaillé dans l'industrie, plus précisément dans l'industrie pharmaceutique. |
| Voici donc ce dont je vais vous parler aujourd'hui en quelques mots. |
| stratégies d'adaptation pour donner du sens |
| de données de production en temps réel dans la fabrication... dans la fabrication de vaccins. Et dans cette présentation, j'ai discuté des façons de traiter les données courbes |
| que nous recevions en temps réel des capteurs de notre atelier de fabrication. |
| Et aujourd'hui, ce dont je veux parler, ce sont certains des nouveaux outils que nous avons dans JMP, en particulier l'explorateur de données fonctionnel, et comment cela aurait fait de tout ce travail un jeu d'enfant. |
| Et j'aborderai des façons d'utiliser l'explorateur de données fonctionnel pour la compréhension des processus, l'optimisation des processus et la surveillance des processus. |
| Commençons donc par parler du processus et des courbes auxquelles nous étions confrontés. Donc, ici à gauche, nous avons un exemple d'un processus hypothétique de fabrication de vaccins. Cela commence par la préparation du matériel. |
| Dans ce cas, on fait une fermentation bactérienne en deux étapes, puis le produit est filtré, absorbé et récolté, |
| et en aval, le produit est centrifugé, puis enfin, plusieurs sous-lots de matériau sont formulés ensemble en un seul lot de matériau. |
| Et aujourd'hui, je vais me concentrer sur les étapes de fermentation de ce processus. |
| Ainsi, pendant que les bactéries fermentent, elles se développent et les courbes de croissance ressemblent à quelque chose ici à droite. Donc pendant la croissance, il y a une phase de latence, il y a une phase de croissance exponentielle, une phase stationnaire et, enfin, une phase de mort logarithmique. |
| Et pendant que j'étais dans cette entreprise, nous traversions une évolution des processus sous... de la compréhension des processus, en particulier autour de ces courbes de croissance. |
| Nous avons donc commencé très tôt, en prélevant simplement cinq échantillons de ces deux étapes de fermentation, en envoyant ces échantillons au laboratoire de contrôle qualité et en attendant les résultats. Et nous avons |
| densité optique, afin que nous puissions dire la densité des cellules dans ces échantillons, et les résultats que nous avons obtenus ressemblaient à ce que vous voyez ici à droite. |
| Nous avons une distribution des résultats à ces moments précis, mais nous ne savions vraiment pas à quoi ressemblaient les courbes de croissance. Ils auraient pu ressembler à n'importe laquelle des courbes que j'ai dessinées sur ces distributions ci-dessous. Nous n'avions vraiment aucune idée. |
| Mais ensuite, nous avons implémenté des sondes en ligne, nous avons donc implémenté des sondes de turbidité afin que nous puissions réellement voir à quoi ressemblent ces courbes de croissance. Cependant, nous avons dû nous habiller et entrer dans la salle de fabrication |
| télécharger manuellement les données, les ramener à nos bureaux, puis essayer de comprendre ce que nous allions faire de toutes ces données. |
| Et puis, enfin, nous avons mis à niveau notre API pour que nous puissions désormais avoir toutes les données de tous nos capteurs à notre bureau, sans avoir besoin de s'habiller et de revenir en arrière... et de retourner dans la fabrication ; nous avions toutes les données |
| à portée de main, ce qui était super. Mais grâce à une analyse minutieuse, nous avons pu déterminer que nous avions trop de données et que nous avions beaucoup de données à traiter. |
| Donc c'est pourquoi... |
| c'est pourquoi j'ai fait cette présentation sur les stratégies d'adaptation pour donner un sens aux données en temps réel. |
| Nous avons beaucoup travaillé pour donner un sens à nos données, et je voulais partager quelques stratégies que vous pourriez adopter pour donner un sens à vos données en temps réel. |
| La première chose dont j'ai parlé était de paramétrer ces courbes de croissance. Nous avions donc ces courbes, mais nous voulions pouvoir observer la croissance et |
| comprendre ce qui se passait, alors nous les avons paramétrés. En d'autres termes, nous avons pris la pente de la croissance, la pente du taux de mortalité, nous examinions la durée pendant laquelle les bactéries étaient dans chacune des phases. Nous regardions |
| la turbidité à certains moments, et maintenant nous avions une grande collection de ces croissances... ce que nous appelions des variables de croissance. |
| Et ces variables de croissance nous ont été très utiles. Nous les avons utilisés pour la compréhension des processus, pour l'optimisation des processus et la surveillance des processus. |
| Maintenant, le deuxième groupe de stratégies d'adaptation dont j'ai parlé était simplement le traitement de toutes ces données en temps réel |
| que nous avions. Alors bien sûr, une fois que nous avons commencé à trouver toutes ces données utiles, nous voulions y accéder immédiatement. |
| Donc, la première chose que nous avons dû comprendre, c'est toutes nos sources de données et nous assurer que nous pouvions avoir accès à tout ce que nous avions, non seulement les données de notre historien, mais nous avions des données de notre |
| Système ERP, dans nos systèmes de gestion des informations de laboratoire. Nous devions rassembler toutes ces données en un seul endroit. Nous avons utilisé un super journal, c'est donc une sorte de centrale de commande pour accéder à toutes nos données et exécuter tous nos scripts. |
| C'était vraiment beaucoup de travail que nous avons fait. Nous étions assez fiers de nous, mais vous savez avec le recul, |
| sachant quels outils nous avons dans JMP, en particulier maintenant avec JMP 16, il y a quelques choses qui auraient rendu ce travail beaucoup plus facile. |
| Avec les courbes de croissance, nous aurions pu utiliser l'explorateur de données fonctionnelles pour analyser nos courbes. Nous n'aurions pas à les paramétrer, |
| où nous laissions beaucoup de données derrière nous. Nous pouvons utiliser toutes les données dans l'explorateur de données fonctionnel. Et puis, bien sûr, l'enregistrement des actions dans le journal amélioré, |
| cela aurait rendu les efforts de scénarisation tellement plus faciles. Mais aujourd'hui, je veux juste me concentrer sur la façon dont j'aurais utilisé l'explorateur de données fonctionnel. |
| Bien sûr, je n'ai plus accès à ces données, j'ai donc simulé des courbes de croissance. Ici, j'ai 20 courbes différentes, qui représentent une certaine variabilité que vous pourriez voir pendant la fermentation bactérienne. |
| Et avec l'explorateur de données fonctionnel, cela se résume vraiment à ces quatre étapes. La première chose est que vous allez prendre votre collection de courbes |
| et vous allez lisser toutes les courbes individuelles. La deuxième étape consiste à déterminer une forme moyenne et des composants de forme qui décrivent toute la variabilité que vous voyez dans ces courbes. |
| L'étape suivante consiste à extraire l'amplitude des composants de forme pour chaque courbe. |
| Et une fois que vous avez ces deux composants de forme, ils sont en fait appelés composants principaux fonctionnels, |
| vous pouvez ensuite les utiliser comme vous le souhaitez pour analyser vos données, que vos courbes soient des entrées de modèles, si elles sont des sorties de modèles, si vous souhaitez effectuer une analyse de clustering. |
| Vraiment, vous pouvez maintenant faire n'importe quel type d'analyse avec ces composants principaux fonctionnels. Dans l'exemple d'aujourd'hui, toutes mes courbes sont des sorties vers un modèle, donc je vais utiliser DOE fonctionnel |
| pour regarder de plus près ces courbes. Entrons donc dans JMP. |
| Ici j'ai mon tableau de données, où j'ai les numéros de lot, j'ai le temps dans la turbidité, qui composent les courbes. |
| Et j'ai aussi un tas de paramètres de processus. Et la première chose que je veux faire est de comprendre le processus pour voir si l'un de ces paramètres de processus |
| ont un impact sur la variabilité que je vois dans les courbes. Passons donc à l'explorateur de données fonctionnel. Nous mettrons le temps comme notre X, la turbidité est notre Y. Nous allons mettre notre fonction ID, puis nous allons prendre tous ces paramètres de processus et les saisir en tant que variables supplémentaires. |
| Maintenant, la première étape que nous devons faire est d'adapter le modèle flexible à toutes nos courbes et je vais utiliser l'ACP fonctionnelle directionnelle... directe pour ce faire. |
| Voici ces modèles flexibles. La deuxième étape, que JMP a déjà effectuée pour moi, consiste à déterminer la courbe moyenne |
| et nos composants de forme. Et JMP a identifié pour moi six composants de forme différents. Ici, à gauche, je peux voir ces six composants de forme différents. |
| Et voici la quantité cumulée de variabilité que ces composants de forme expliquent dans mes données. |
| Vous pouvez voir qu'avec les deux premières composantes de forme, je décris déjà 92 % de la variabilité de ma courbe, ce qui est formidable. |
| Et les autres composants de forme ici, je vais les exclure, car ils expliquent probablement simplement la variabilité aléatoire de mes données. Alors allons-y et personnalisons notre nombre de FPC jusqu'à deux et il me reste ces deux composants de forme. |
| Maintenant, la prochaine étape consiste à déterminer l'ampleur de chacun de ces composants de forme pour chacune de ces courbes, et je les ai ici dans mon tracé de score. |
| Sur l'axe X, j'ai le Shape Component 1, et sur l'axe Y, j'ai Shape Component 2. |
| Ci-dessous, j'ai un profileur où je peux jeter un œil à ma courbe, que j'ai surlignée ici en jaune, et vous pouvez voir comment le premier composant de forme affecte la forme de la courbe, |
| principalement la phase de croissance de la courbe, et la deuxième composante de forme a un impact principalement sur la phase de mort de la courbe. |
| Et examinons de plus près quelques-uns de ces lots. Jetons un coup d'œil au lot 15. Voici la courbe pour le lot 15, et nous pouvons voir l'amplitude du composant de forme 1 et l'amplitude du composant de forme 2. Je peux les saisir directement dans mon profileur. |
| Vous pouvez maintenant voir que je suis capable de reproduire la courbe pour le lot 15. Jetons un coup d'œil à un autre. Jetons un coup d'œil à ce lot 2, et vous pouvez voir qu'il est très différent par rapport au lot 15 et à la forme... l'ampleur des composants de forme est également très différente. Alors allons-y |
| jetez un oeil à ceux-ci. |
| Et vous pouvez voir maintenant que nous avons été... nous sommes également capables de reproduire cette courbe. |
| Donc, connaissant la forme moyenne, les deux composantes de forme qui représentent la variabilité autour des courbes, nous pouvons maintenant utiliser ces grandeurs de ces composantes de forme pour faire une analyse. |
| Et nous pouvons faire le... lorsque vos courbes sont la réponse dans votre modèle, vous pouvez faire cette analyse ici même dans l'explorateur de données fonctionnelles. |
| Donc ici-bas, j'ai un nouveau profileur. Et cette fois dans mon profileur, j'ai... j'ai à nouveau ma courbe, que je vais à nouveau surligner en jaune. |
| Et puis j'ai les paramètres pH, température, pression et vitesse de mélange. Vous pouvez voir ici pour la vitesse de mélange, c'est assez plat, donc ça n'a pas d'impact sur cette forme. |
| Idem pour la pression, mais quand je commence à regarder la température, vous pouvez la voir changer la forme de ma courbe, principalement la phase de croissance de ma courbe. Et comme je change de pH, cela a principalement un impact sur cette phase de ma courbe. |
| C'est donc l'approche que j'adopterais pour comprendre le processus. Qu'en est-il de l'optimisation des processus ? Et par optimisation des processus, je veux dire, |
| vous savez, s'il y a une courbe particulière sur laquelle nous voulons standardiser, quels seraient le pH et la température dont nous aurions besoin pour obtenir la courbe souhaitée ? Eh bien, la première chose que vous devez faire est de définir ce que |
| courbe désirée ressemble. Et j'ai juste quelques points de données ici au bas de mon tableau de données qui décrivent la forme que je recherche, et vous les verrez ici sur mon... |
| dans le générateur de graphes. Et dans ce cas, je suis intéressé à obtenir une courbe où j'ai un taux de croissance très rapide, puis un taux de crash très lent. |
| Et c'est vraiment facile à ajouter dans l'explorateur de données fonctionnel. Nous avons juste besoin de faire une étape supplémentaire; Je vais rappeler ce que j'ai fait avant. |
| Et la seule étape supplémentaire consiste à charger cette fonction cible, à identifier |
| fonction représente notre cible. Et tout ce que je fais maintenant, c'est que je vais reproduire ce que j'ai fait avant. Je vais faire mon PCA fonctionnel direct. |
| Je vais personnaliser mes FPC jusqu'à 2 et ceci... ces résultats sont exactement ce que nous voyions auparavant, puis je vais monter et faire mon DOE fonctionnel. |
| Et encore une fois, je vais souligner ma courbe ici. Et maintenant que cette courbe cible a été identifiée, je peux maximiser la désirabilité, donc en d'autres termes, je peux trouver les points de consigne pour le pH et la température |
| et la pression et la vitesse de mélange qui me donneront une courbe qui ressemble le plus à cette courbe cible. il y a donc |
| taux de croissance très rapide, un taux de crash lent. Et j'aurais juste besoin de |
| commencer avec un milieu avec un pH de 7,2 et utiliser la température de 37,9 sur mes fermenteurs. C'est donc l'approche que j'aurais utilisée pour la compréhension et l'optimisation des processus. |
| Lorsque nous parlons de la surveillance des processus des courbes de croissance ou des formes de courbes, il existe différentes options et j'ai quelques réflexions différentes ici. |
| Si c'est quelque chose que vous voulez faire, je vous recommande fortement de consulter cette présentation 2020, contrôle statistique des processus pour les variables de processus qui ont une forme fonctionnelle. |
| C'était une présentation qui a été enregistrée et c'est vraiment super. Ils ont parlé de prendre ces composants principaux fonctionnels et de les mettre dans des cartes de contrôle multivariées pilotées par un modèle. |
| Ils ont fait une excellente démonstration... une démonstration de cela, puis ont également parlé de certains inconvénients possibles de cette approche. |
| Je veux donc discuter d'une autre approche que vous pourriez envisager et qui consiste à examiner la différence intégrée par rapport à une norme. |
| Donc, comme avant, lorsque nous examinions cette courbe cible, vous pouviez utiliser cette courbe cible comme norme, puis pour chaque lot, calculer la différence par rapport à cette norme. Donc par exemple, ici j'ai |
| une courbe d'un lot qui est représentée ici en bleu... ou désolé, en rouge. La courbe standard est en bleu et je prends la différence et la différence ici est sur cette courbe verte en bas. |
| Et vous pouvez simplement intégrer cette courbe pour trouver l'aire sous la courbe, puis vous pouvez l'utiliser dans votre programme de contrôle statistique des processus. Et je veux juste vous expliquer rapidement les étapes à suivre pour le faire. |
| Voici donc mon temps et mes valeurs de turbidité standard, ma turbidité pour ce premier lot, et je viens de calculer la différence entre les deux. Et puis ce que vous pouvez faire, c'est que vous pouvez |
| utilisez fit Y by X pour créer un modèle de spline pour cette différence dans le temps, puis vous pouvez enregistrer les coefficients de ce modèle dans une table de données. |
| Vous obtiendrez vos valeurs X et les quatre coefficients que vous pouvez utiliser pour créer le modèle spline. Et voici cette formule pour construire le modèle spline, |
| puis vous intégrez cette formule. Vous pouvez donc soit le faire via des scripts, j'ai choisi de le faire dans l'éditeur de formules. Je viens donc de déterminer l'aire de chaque tranche de la courbe ici en intégrant simplement cette formule précédente à la main. |
| Donc, une fois que j'ai ces tranches de zones, il me suffit d'additionner les zones qui m'intéressent. Je peux donc faire l'aire de la courbe totale. |
| Je peux aussi le faire uniquement pour la phase de croissance et uniquement pour la phase de mort, et je l'ai fait ici ici |
| dans ma variable de table. J'ai donc maintenant une variable pour ma différence intégrée totale, pour ma différence intégrée juste pendant la phase de croissance et ma différence intégrée pendant la phase de mort. |
| Et essentiellement, vous venez de parcourir et de faire cela pour chacun des lots. Ici, j'ai fait cela pour les 20 lots, et maintenant vous pouvez effectuer votre contrôle de processus statistique sur ces variables. |
| Donc, ce sont en quelque sorte mes approches que j'aurais adoptées pour examiner la surveillance des processus, ainsi que la compréhension et l'optimisation des processus à l'aide de l'explorateur de données fonctionnelles. J'espère que vous le vérifierez et que c'est un morceau de gâteau pour vous aussi. Merci. |