Conférencier | 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, en particulier dans l'industrie pharmaceutique. |
| Voici donc de quoi 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 quelques-uns des nouveaux outils que nous avons dans JMP, en particulier l'explorateur de données fonctionnel, et comment cela aurait rendu tout ce travail un jeu d'enfant. |
| Et j'expliquerai comment utiliser l'explorateur de données fonctionnelles 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 de processus de fabrication de vaccin hypothétique. Cela commence par la préparation du matériel. |
| Dans ce cas, nous faisons 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 du processus sous... de la compréhension du 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 les envoyant au laboratoire de contrôle qualité et en attendant les résultats. Et nous avons |
| densité optique, afin que nous puissions déterminer 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 tracées sur ces distributions en bas. Nous n'avions vraiment aucune idée. |
| Mais ensuite, nous avons mis en œuvre des sondes en ligne, nous avons donc mis en œuvre 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 |
| pour télécharger manuellement les données, les ramener à nos bureaux, puis essayer de comprendre ce que nous allions faire avec 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 examiner 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 regardions 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 juste 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 avons voulu y accéder immédiatement. |
| Donc, la première chose que nous devions comprendre était 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 les données de notre |
| Système ERP, dans nos systèmes de gestion de l'information de laboratoire. Nous devions rassembler toutes ces données au même 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 fonctionnelles. Et puis, bien sûr, l'enregistrement des actions dans le journal amélioré, |
| cela aurait rendu les efforts dans le script tellement plus faciles. Mais aujourd'hui, je veux juste me concentrer sur la façon dont j'aurais utilisé l'explorateur de données fonctionnelles. |
| Bien sûr, je n'ai plus accès à ces données, alors j'ai 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 pour analyser vos données comme vous le souhaitez, 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 sorties vers un modèle, je vais donc utiliser un 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 fonctionnelles. 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 entrer 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 une PCA fonctionnelle directionnelle... directe pour le faire. |
| Voici ces modèles flexibles. La deuxième étape, que JMP a déjà réalisée pour moi, est de déterminer la courbe moyenne |
| et nos composants de forme. Et JMP a identifié six composants de forme différents pour moi. Ici sur la 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, juste avec les deux premiers composants de forme, je décris déjà 92% de la variabilité de ma courbe, ce qui est génial. |
| Et les composants de forme restants 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 à deux et il me reste ces deux composants de forme. |
| Maintenant, la prochaine étape consiste à déterminer l'amplitude 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 composant de forme 1 et sur l'axe Y, j'ai le composant de forme 2. |
| Ci-dessous, j'ai un profileur où je peux jeter un œil à ma courbe, que j'ai surligné 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 la forme impacte principalement 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 du 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 du lot 15. Jetons juste un coup d'oeil à un autre. Jetons un coup d'œil à ce lot 2, et vous pouvez voir que cela semble très différent par rapport au lot 15 et la forme... l'ampleur des composants de la 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 en mesure 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 surligne à nouveau en jaune. |
| Et puis j'ai les paramètres de pH, température, pression et vitesse de mélange. Vous pouvez voir ici pour la vitesse de mélange, c'est assez plat, donc cela n'a pas d'impact sur cette forme. |
| Idem pour la pression, mais quand je commence à regarder la température, vous pouvez le voir changer la forme de ma courbe, principalement la phase de croissance de ma courbe. Et comme je change le pH, cela impacte principalement cette phase de ma courbe. |
| C'est donc l'approche que j'adopterais pour la compréhension du processus. Eh bien, 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 cette courbe souhaitée ? Eh bien, la première chose que vous devez faire est de définir ce que |
| courbe souhaitée ressemble. Et j'ai juste quelques points de données ici au bas de mon tableau de données qui décrivent cette forme que je recherche, et vous les verrez ici sur mon... |
| dans le générateur de graphe. 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 fonctionnelles. 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 laquelle |
| fonction représente notre cible. Et tout ce que je fais maintenant, c'est que je vais reproduire ce que je faisais avant. Je ferai 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 vraiment rapide, un taux d'accident lent. Et j'aurais juste besoin de |
| commencer avec des milieux 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 surveillance de processus de courbes de croissance ou de formes de courbes, il existe différentes options et j'ai ici quelques réflexions différentes. |
| Si c'est quelque chose que vous voulez faire, je vous recommande fortement de consulter cette présentation 2020, le contrôle statistique des processus pour les variables de processus qui ont une forme fonctionnelle. |
| C'est une présentation qui a été enregistrée et c'est vraiment génial. Ils ont parlé de prendre ces principaux composants 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 ils ont également parlé de certains des inconvénients peut-être de l'adoption 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 auparavant, 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 sur cette courbe pour trouver la zone sous la courbe, puis vous pouvez l'utiliser dans votre programme de contrôle de processus statistique. Et je veux juste vous expliquer rapidement comment procéder. |
| 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 ces deux. Et puis ce que tu peux faire c'est que tu peux |
| utilisez l'ajustement Y par X pour créer un modèle de spline pour cette différence au fil du temps, puis vous pouvez enregistrer les coefficients de ce modèle dans une table de données. |
| Ce que vous obtiendrez, ce sont vos valeurs X et les quatre coefficients que vous pouvez utiliser pour créer le modèle de spline. Et voici cette formule pour construire le modèle de spline, |
| et 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 formule. 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 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. |
| 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 passez simplement en revue et faites cela pour chacun des lots. Ici, j'ai fait cela pour les 20 lots, et maintenant vous pouvez faire votre contrôle de processus statistique sur ces variables. |
| C'est donc 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 allez y jeter un coup d'œil et que c'est un morceau de gâteau pour vous aussi. Merci. |