| Conférencier |
Transcription |
| Andrea Coombs, JMP |
Bonjour, je m'appelle Andrea Coombs et je suis ingénieure système chez JMP. Aujourd'hui, je vais vous raconter mon parcours dans l'industrie, et plus précisément dans l'industrie pharmaceutique. |
| |
Voilà donc en quelques mots ce dont je vais parler aujourd’hui. |
| |
stratégies d'adaptation pour donner du sens |
| |
des données de production en temps réel dans la fabrication de vaccins. Dans cette présentation, j'ai abordé les différentes manières de traiter les données courbes. |
| |
que nous recevions en temps réel grâce aux capteurs de notre usine de fabrication. |
| |
Et aujourd’hui, je veux parler de certains des nouveaux outils dont nous disposons dans JMP, en particulier de l’explorateur de données fonctionnelles, et de la façon dont cela aurait fait de tout ce travail un jeu d’enfant. |
| |
Et je vais aborder les différentes manières d'utiliser l'explorateur de données fonctionnelles pour la compréhension, l'optimisation et la surveillance des processus. |
| |
Commençons par évoquer le processus et les courbes que nous avons traitées. À gauche, nous avons un exemple de processus hypothétique de fabrication de vaccins. Tout commence par la préparation du matériel. |
| |
Dans ce cas, nous effectuons une fermentation bactérienne en deux étapes, puis le produit est filtré, absorbé et récolté, |
| |
et en aval, le produit est centrifugé, puis finalement, 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 la fermentation, les bactéries se développent et leurs courbes de croissance ressemblent à celles présentées ici, à droite. Durant la croissance, il y a une phase de latence, 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 dans... dans la compréhension des processus, en particulier autour de ces courbes de croissance. |
| |
Nous avons donc commencé très tôt, en prélevant 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 obtenu |
| |
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 disposons d'une distribution des résultats à ces moments précis, mais nous ne savions pas vraiment à quoi ressemblaient les courbes de croissance. Elles auraient pu ressembler à n'importe laquelle des courbes que j'ai tracées sur ces distributions ci-dessous. Nous n'en avions tout simplement aucune idée. |
| |
Nous avons ensuite mis en place des sondes en ligne, notamment des sondes de turbidité, afin de visualiser concrètement les courbes de croissance. Cependant, nous avons dû nous préparer et entrer dans la salle de fabrication. |
| |
de télécharger manuellement les données, de les ramener à nos bureaux, puis d’essayer de comprendre ce que nous allions faire de toutes ces données. |
| |
Et puis, finalement, nous avons mis à niveau notre PLC de manière à pouvoir désormais disposer de toutes les données de tous nos capteurs sur notre bureau, sans avoir besoin de nous habiller et de revenir... et de revenir à la fabrication ; nous avions toutes les données |
| |
À portée de main, ce qui était formidable. Mais une analyse minutieuse nous a permis de constater que nous avions trop de données et que nous devions les traiter. |
| |
C'est donc pour ça que... |
| |
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 consacré beaucoup d’efforts à 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. |
| |
J'ai d'abord abordé le paramétrage de ces courbes de croissance. Nous disposions de ces courbes, mais nous voulions pouvoir observer la croissance et |
| |
Pour comprendre ce qui se passait, nous les avons paramétrés. Autrement dit, nous avons pris la pente de la croissance et celle du taux de mortalité, et nous avons étudié la durée pendant laquelle les bactéries étaient dans chacune des phases. Nous avons étudié |
| |
la turbidité à certains moments, et nous avions maintenant une grande collection de ces croissances... ce que nous appelions des variables de croissance. |
| |
Ces variables de croissance nous ont été très utiles. Nous les avons utilisées pour comprendre, optimiser et surveiller les processus. |
| |
Le deuxième groupe de stratégies d’adaptation dont j’ai parlé concernait simplement le traitement de toutes ces données en temps réel. |
| |
Alors, bien sûr, dès 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 avons dû déterminer était toutes nos sources de données et nous assurer que nous pouvions avoir accès à tout ce que nous avions, pas 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 centraliser toutes ces données. Nous avons utilisé un super journal, qui constitue en quelque sorte le centre de commande permettant d'accéder à toutes nos données et d'exécuter tous nos scripts. |
| |
C'était vraiment un travail énorme. On était plutôt fiers de nous, mais avec le recul, |
| |
sachant quels outils nous avons dans JMP, en particulier maintenant avec JMP 16, il y a quelques éléments qui auraient rendu ce travail beaucoup plus facile. |
| |
Avec les courbes de croissance, nous aurions pu utiliser l'explorateur de données fonctionnelles pour les analyser. Nous n'aurions pas eu besoin de les paramétrer. |
| |
Nous avons laissé de côté une grande partie des données. Nous pouvons exploiter 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 grandement simplifié la création de scripts. Mais aujourd'hui, je souhaite 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é quelques courbes de croissance. J'ai ici 20 courbes différentes, qui représentent une certaine variabilité observée lors de la fermentation bactérienne. |
| |
Avec l'explorateur de données fonctionnel, tout se résume à ces quatre étapes. La première étape consiste à 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 composantes de forme décrivant toute la variabilité observée dans ces courbes. |
| |
L’étape suivante consiste à extraire l’ampleur 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, qu'elles soient des sorties de modèles, ou que vous souhaitiez effectuer une analyse de clustering. |
| |
En réalité, on peut désormais réaliser n'importe quel type d'analyse avec ces composantes principales fonctionnelles. Dans l'exemple d'aujourd'hui, toutes mes courbes sont des sorties vers un modèle ; je vais donc utiliser un plan d'expérience fonctionnel. |
| |
Pour examiner ces courbes de plus près, passons maintenant à 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 constituent les courbes. |
| |
J'ai aussi un certain nombre de paramètres de processus. La première chose que je souhaite faire est de comprendre le processus pour voir si certains d'entre eux… |
| |
Ces variations ont un impact sur la variabilité observée dans les courbes. Explorons l'explorateur de données fonctionnelles. Nous indiquerons le temps comme X et la turbidité comme Y. Nous utiliserons notre fonction d'identification, puis nous prendrons tous ces paramètres de processus et les saisirons comme 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à réalisée pour moi, consiste à déterminer la courbe moyenne. |
| |
et nos composants de forme. JMP a identifié six composants de forme différents. Ici, à gauche, je peux voir ces six composants. |
| |
Et voici la quantité cumulative 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 formidable. |
| |
Je vais exclure les autres composants de forme, car ils expliquent probablement simplement la variabilité aléatoire de mes données. Réduisons donc le nombre de FPC à deux ; il ne me reste que ces deux composants de forme. |
| |
Maintenant, l’étape suivante consiste à déterminer l’ampleur de chacun de ces composants de forme pour chacune de ces courbes, et je les ai ici dans mon graphique 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ée ici en jaune, et vous pouvez voir comment le premier composant de forme impacte la forme de la courbe, |
| |
principalement la phase de croissance de la courbe, et la deuxième composante de forme impacte principalement la phase de mort de la courbe. |
| |
Examinons de plus près quelques-uns de ces lots. Prenons le lot 15. Voici sa courbe : on peut y voir l'amplitude des composantes de forme 1 et 2. Je peux les saisir directement dans mon profileur. |
| |
Vous pouvez maintenant voir que je peux reproduire la courbe du lot 15. Voyons-en un autre. Prenons le lot 2 : il est très différent du lot 15 et sa forme… l'amplitude des composantes de forme est également très différente. Voyons donc… |
| |
Jetez un oeil à ceux-là. |
| |
Et vous pouvez voir maintenant que nous avons été... nous sommes également capables de reproduire cette courbe. |
| |
Ainsi, 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, ci-dessous, j'ai un nouveau profileur. Et cette fois, dans mon profileur, j'ai à nouveau ma courbe, que je vais surligner en jaune. |
| |
Ensuite, j'ai les paramètres de pH, de température, de pression et de vitesse de mélange. Vous pouvez voir ici que la vitesse de mélange est assez stable, donc elle n'a pas d'impact sur la forme. |
| |
C'est pareil pour la pression, mais quand je commence à observer la température, on constate qu'elle modifie la forme de ma courbe, principalement sa phase de croissance. Et quand je modifie le pH, cela impacte principalement cette phase de ma courbe. |
| |
Voilà donc l'approche que j'adopterais pour comprendre les processus. Et qu'en est-il de l'optimisation des processus ? Et par optimisation des processus, j'entends : |
| |
Si nous souhaitons standardiser une courbe particulière, quels seraient le pH et la température nécessaires pour obtenir cette courbe ? La première chose à faire est de définir ce que cela implique. |
| |
Voici à quoi ressemble la courbe souhaitée. J'ai quelques points de données ici, en bas de mon tableau, qui décrivent la forme recherchée. Vous les verrez ici… |
| |
Dans le générateur de graphiques. Dans ce cas, je souhaite obtenir une courbe avec un taux de croissance très rapide et un taux de chute très lent. |
| |
Et c'est très facile à ajouter à l'explorateur de données fonctionnelles. Il suffit d'effectuer une étape supplémentaire ; je rappelle ce que j'ai fait précédemment. |
| |
Et l'étape supplémentaire consiste à charger cette fonction cible, à identifier laquelle |
| |
La fonction représente notre cible. Je vais maintenant reproduire ce que j'ai fait précédemment : je vais effectuer mon ACP fonctionnelle directe. |
| |
Je vais personnaliser mes FPC jusqu'à 2 et ceci... ces résultats sont exactement ce que nous voyions auparavant, puis je vais venir faire mon DOE fonctionnel. |
| |
Et encore une fois, je vais mettre en évidence ma courbe. Maintenant que cette courbe cible est identifiée, je peux maximiser la désirabilité, autrement dit, 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 |
| |
un taux de croissance très rapide, un taux de chute lent. Et il me suffirait |
| |
J'ai commencé avec un milieu avec un pH de 7,2 et utilisé une température de 37,9 sur mes fermenteurs. C'est donc l'approche que j'aurais adoptée pour comprendre et optimiser le procédé. |
| |
Lorsque nous parlons de surveillance des processus de courbes de croissance ou de formes de courbes, il existe différentes options et j'ai quelques réflexions différentes ici. |
| |
Si c'est quelque chose que vous souhaitez faire, je vous recommande vivement de consulter cette présentation de 2020, le contrôle statistique des processus pour les variables de processus qui ont une forme fonctionnelle. |
| |
Cette présentation enregistrée est vraiment excellente. Ils ont parlé de l'utilisation de ces composantes principales fonctionnelles et de leur intégration dans des cartes de contrôle multivariées pilotées par modèle. |
| |
Ils ont fait une superbe démonstration de cela et ont également parlé de certains inconvénients potentiels liés à cette approche. |
| |
Je souhaite donc discuter d’une autre approche que vous pourriez envisager et qui consiste à examiner la différence intégrée par rapport à une norme. |
| |
Comme précédemment, lorsque nous examinions cette courbe cible, nous pouvions l'utiliser comme étalon, puis calculer, pour chaque lot, l'écart par rapport à cet étalon. Par exemple, ici, j'ai |
| |
Une courbe d'un lot, représentée ici en bleu… ou plutôt en rouge. La courbe standard est en bleu, et je prends la différence, et la différence ici est sur la courbe verte ci-dessous. |
| |
Vous pouvez simplement intégrer cette courbe pour trouver l'aire sous la courbe, puis l'utiliser dans votre programme de contrôle statistique des processus. Je vais 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 les deux. Ensuite, vous pouvez |
| |
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. |
| |
Vous obtiendrez les valeurs X et les quatre coefficients permettant de construire le modèle spline. Voici la formule pour construire le modèle spline : |
| |
Ensuite, vous intégrez cette formule. Vous pouvez le faire via un script ; j'ai choisi de le faire dans l'éditeur de formules. J'ai donc déterminé l'aire de chaque tranche de la courbe en intégrant manuellement la formule précédente. |
| |
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 la zone de la courbe totale. |
| |
Je peux également 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 uniquement pendant la phase de croissance et pour ma différence intégrée pendant la phase de mort. |
| |
Il suffit de procéder ainsi pour chaque lot. Ici, j'ai effectué cette opération pour les 20 lots, et vous pouvez maintenant effectuer votre contrôle statistique du processus sur ces variables. |
| |
Voilà donc les approches que j'aurais adoptées pour analyser, comprendre et optimiser les processus à l'aide de l'explorateur de données fonctionnelles. J'espère que vous y jetterez un coup d'œil et que ce sera un jeu d'enfant pour vous aussi. Merci. |