Je m'appelle Ben Richardson. Je suis ravi de vous présenter aujourd'hui une partie du travail réalisé chez UPSIDE Foods pour automatiser l'analyse des données de bioprocédés en JSL pour la viande cultivée. Je tiens tout d'abord à saluer les contributions majeures de Megan et Julia, et plus particulièrement d'UPSIDE Foods, l'entreprise que je représente ici. Voici quelques-uns de nos produits, à droite.
Tout d'abord, je vais aborder brièvement la table des matières afin de présenter le sujet. Je commencerai par une brève introduction au cas où certains ne seraient pas familiers avec la viande cultivée et les milieux de culture cellulaire. C'est précisément le département dans lequel je travaille, et cela sera crucial pour comprendre pourquoi JMP est un outil si puissant pour nous.
Je vais également vous expliquer comment notre script JSL a accéléré le développement de bioprocédés chez UPSIDE Foods. Je vous présenterai ensuite quelques-unes des fonctionnalités de cet outil que nous avons développé, comme l'accès en temps réel aux données clés des instruments, des outils de visualisation des données, l'analyse des tendances et même des fonctionnalités pratiques comme des outils pratiques pour l'opérateur utilisant des fonctions comme Tabulate.
La dernière section présente un guide d'initiation à l'automatisation de certains calculs avancés dans JMP. Pour ce faire, je me concentrerai sur une étude de cas. En bioprocédés, la consommation autospécifique de glucose est un paramètre important. C'est aussi un paramètre notoirement difficile à calculer.
Je vais aborder quatre étapes différentes que nous avons réalisées pour décomposer ce calcul avancé. La première consiste à standardiser la dénomination des échantillons. C'est un élément essentiel et fondamental de notre approche. Nous verrons également comment accéder aux données grâce à la connectivité aux bases de données ouvertes, comment nettoyer, trier et organiser automatiquement les données, et enfin comment créer ces colonnes de formules à l'aide de fonctions clés.
Commençons par un peu de contexte. Qu'est-ce que la viande cultivée ? Qu'est-ce qu'UPSIDE Foods ? UPSIDE Foods a été la première entreprise fondée dans le secteur de la viande cultivée en 2015. Depuis, elle est devenue un véritable leader dans ce domaine, obtenant l'approbation réglementaire de l'USDA et de la FDA en 2022.
Nous prenons des cellules animales. Il ne s'agit pas de viande végétale, mais de viande animale, et nous les isolons. Ce procédé ne nécessite pas d'abattage. Il n'est pas nécessaire de tuer des animaux. Ensuite, nous développons des lignées cellulaires à partir de ces isolements dans des milieux de culture cellulaire. C'est là que je me suis concentré.
Les cellules et les milieux de culture cellulaire sont combinés dans un bioréacteur. Tout comme pour la bière, on utilise de la levure pour les cultiver. Nous allons cultiver ces cellules animales dans un bioréacteur, puis les formuler pour en faire un produit destiné à la consommation humaine. Ce qui est vraiment passionnant, c'est que la biotransformation pourrait améliorer l'efficacité de la production de viande, réduire les coûts pour les consommateurs et limiter les impacts environnementaux négatifs. C'est un sujet qui m'enthousiasme vraiment. Cela permettrait de réduire l'utilisation des terres et de l'eau, et même les émissions de gaz à effet de serre, mais aussi la cruauté envers les animaux.
Pourquoi les milieux de culture cellulaire sont-ils si importants ? Je vais aborder ici la nutrition cellulaire, un sujet que nous souhaitons aborder. Vous pouvez voir quelques solutions dans le coin. Ce sont des couleurs originales, principalement issues de vitamines, qui créent ces couleurs. Les milieux de culture cellulaire sont essentiels car ils fournissent aux cellules les nutriments et l'environnement nécessaires à leur croissance extra-corporelle.
Les milieux de culture cellulaire n'ont rien d'exceptionnel. Ce sont simplement de petits morceaux d'ingrédients alimentaires courants que nous donnons aux poulets ou aux vaches, ou que nous consommons nous-mêmes : acides aminés, sucres, vitamines et minéraux. Afin d'accélérer le développement de milieux à bas coût, notamment pour les prix de gros, UPSIDE Foods a intégré verticalement sa production de milieux de culture cellulaire. Cela signifie que nous avons développé des formulations internes exclusives de milieux à partir de zéro, avec des composants de qualité alimentaire.
Si vous êtes familier avec les milieux de culture cellulaire ou les bioprocédés, concevoir des formulations de milieux de culture de A à Z n'est pas chose aisée. C'est là qu'intervient le logiciel statistique JMP. À titre d'exemple pour illustrer la difficulté, si l'on prend une factorielle pour un plan expérimental comportant 50 composants de milieux, il s'agit en réalité d'une estimation basse. De nombreux milieux peuvent en contenir plus de 100. Si l'on prend une concentration faible, moyenne et élevée pour chacun de ces éléments, l'espace de conception est de 3 à la puissance 50, soit 7,17 fois 1023. Cela représente plus d'une mole, soit 6,02 fois 1023, ce qui est pratiquement infini. Nous ne pouvons pas tester toutes ces conditions.
C'est là qu'intervient la conception d'expériences. Le plan d'expériences (DOE) est une méthodologie de statistiques appliquées qui permet d'explorer plus efficacement les espaces de conception, notamment par rapport à un facteur à la fois ou aux approches OFAT. Voici une illustration fournie par JMP. Prenons trois variables différentes et visualisons-les dans un espace tridimensionnel : les variables 1, 2 et 3.
Avec une approche traditionnelle, un facteur à la fois, nous optimisons la variable 1, trouvons la meilleure condition, passons à la variable 2, puis à la variable 3. Nous finirons par trouver un maximum local. Que se passe-t-il si la meilleure condition réelle se situe quelque part ici et que nous la manquons ? Premièrement, nous perdons beaucoup de temps et d'efforts à ne pas trouver la meilleure condition.
La puissance et l'importance de JMP pour notre approche s'expliquent par son logiciel de plan d'expériences (DOE) de pointe. C'est une véritable référence pour le développement de milieux de culture cellulaire et de bioprocédés. JMP a été largement adopté par les différents groupes de développement de bioprocédés chez UPSIDE Foods. C'est un outil naturel à utiliser pour certains de ces scripts.
Voyons comment ce scénario a permis d'accélérer le développement des bioprocédés chez UPSIDE Foods. J'ai ici un petit schéma qui isole les différentes étapes du processus de développement des bioprocédés, depuis les activités en amont, comme le développement des lignées cellulaires, jusqu'à la production, en passant par la science et la technologie de fabrication. J'ai beaucoup parlé du développement des milieux de culture. Nous vivons ici, mais le développement des procédés présente également de nombreux chevauchements.
Ce que je tiens à souligner, c'est que les boucles de rétroaction dynamiques tout au long de ce processus de développement sont un élément essentiel de l'innovation et des avancées scientifiques. Concrètement, une meilleure lignée cellulaire pourrait être obtenue et passer au stade du développement des milieux de culture. Cela nous permettrait ensuite de réaliser une avancée majeure sur certains nutriments limitants, et les cycles itératifs entre ces deux étapes sont véritablement à l'origine de cette avancée scientifique passionnante.
Je parlais justement de la façon dont le DOE nous a permis d'explorer plus efficacement nos espaces de conception. On pourrait croire que nos expériences sont de plus en plus limitées. En réalité, comme nous essayons de concevoir des médias de A à Z, nos expériences restent massives. Même si nous testons cet espace plus efficacement, il nous reste cet espace de conception absurde qu'il nous faut explorer.
Nous disposons d'un nombre considérable d'échantillons, parfois d'expériences, et de plus de 100 conditions pour concevoir ces supports de A à Z. Vous pouvez voir une photo de ma collègue Dasha en train d'imprimer des étiquettes. Cela illustre le nombre d'échantillons avec lesquels nous travaillons et la façon dont cela a créé un goulot d'étranglement entre les équipes.
Pour illustrer cela, je dispose de quelques comptages cellulaires annuels réalisés par l'entreprise, qui sont assez impressionnants. Plus de 40 000 comptages cellulaires par an pour l'équipe média d'UPSIDE Foods. Cette situation va forcément évoluer au fil du développement. À mesure que les échelles augmentent, le nombre de vaisseaux et de degrés de liberté diminue. Vous pouvez constater que PD, l'étape en dessous, traite encore environ 7 000 ou 8 000 échantillons par an.
Il s'agit d'une énorme quantité de données que nous essayons de traiter, et nous progressons à un rythme effréné. Nous avons développé un script JSL pour réduire les délais moyens entre nos analyses de routine des données de bioprocédés, diffuser ces informations plus rapidement, les transmettre aux autres équipes et accélérer les boucles de rétroaction. Nous avons ainsi pu réduire le temps d'analyse des données d'environ une semaine à environ deux jours, soit un triplement, ce qui est très encourageant.
Je vais maintenant vous présenter une petite démonstration de script. Je vais vous montrer quelques fonctionnalités de cet outil. Voici le script. Il est assez volumineux et a clairement évolué au fil du temps. Il contient beaucoup de code. Je n'aurai pas le temps de tout détailler pendant cette courte présentation. Je vais simplement présenter quelques fonctionnalités. Si j'exécute ce script, une petite fenêtre d'avertissement s'affichera pour vous informer que d'autres fenêtres ouvertes vont se fermer. Ça me va.
Je vais utiliser un exemple, peut-être 5109, pour une de nos expériences. Il s'agit de données réelles. Le script exécute notre connexion à la base de données ouverte et récupère les données dans JMP. Cela accélère le processus et nous pouvons le faire régulièrement, selon nos besoins. Pendant l'expérience, les données sont régulièrement téléchargées dans notre base de données, et nous pouvons extraire et consulter les graphiques en temps réel. Vous pouvez voir les différents instruments se remplir. Le script crée des tables de données. Il me demande ensuite si je souhaite ajouter une clé de condition.
Je vais aborder la clé de condition dans un instant. Je vais cocher « oui » pour vous montrer certaines fonctionnalités. Il me sera également demandé si je souhaite ajouter des données supplémentaires non liées à un instrument. Il s'agit de métadonnées supplémentaires. Par exemple, pack_cell_volume. Il s'agit de tout ce qui n'est pas exécuté par un instrument et téléchargé automatiquement dans la base de données. Je vais cocher « oui », encore une fois, pour vous montrer certaines fonctionnalités. Le script va ensuite créer une table de données. Nous avons une belle table de données déjà créée.
Avant de commencer, je vais ouvrir un script de normalisation. Il s'agit d'un petit script que j'ai écrit pour normaliser les données. Il va mettre à l'échelle tous les nombres de zéro à un afin que je puisse en parler sans droits de propriété intellectuelle. Je vais utiliser ce script et l'exécuter avec ma table de données, et nous verrons ce qui se passe.
Le temps de traitement vient d'être ajusté. Notre valeur maximale est désormais de 1, et tout le reste est relatif à celle-ci. Je n'ai pas besoin de vous montrer toutes les données importantes qui pourraient s'y cacher. Je peux simplement vous montrer quelques fonctionnalités.
Revenons au code de condition. Je vais l'ouvrir pour expliquer brièvement son fonctionnement. Nous avons des conditions numériques : 202, 203 et 204. Ensuite, toutes les variables que nous modifions sont liées à ces conditions via cette clé de condition. C'est là que nous allons placer toutes ces informations, car nous avons besoin d'un système de nommage d'échantillons standardisé. J'y reviendrai plus tard. Ceci illustre simplement comment nous lions les informations à cela.
Nous avons un joli tableau Big Data. Vous pouvez voir que nous avons 1 206 mesures d'échantillons. Nous avons tous les paramètres, tous les calculs, le lactate maximal, la production spécifique de lactate, les temps de doublement et d'autres informations intéressantes. Toutes nos données sont regroupées au même endroit. Je souhaite ensuite souligner certains des scripts que nous avons enregistrés en haut à gauche.
Par exemple, nous avons ce générateur de graphiques. Ce générateur est intéressant car il permet de changer automatiquement de colonnes et de représenter graphiquement tous nos paramètres et conditions. On peut ainsi rapidement observer une baisse de 202 au fil du temps. Ça ne fonctionne pas bien. 209. Grâce à cette clé de condition, on peut dire : « OK, je ne veux pas voir 201, 202. Ce que je souhaite, c'est voir la condition. »
Supposons qu'il s'agisse de conditions différentes. L'autre avantage de JMP et de Graph Builder, c'est que je peux rapidement dire : « Je veux voir ce que fait la variable 1. » On peut prendre la variable 1 ici et voir, « Oh, d'accord, tous les contrôles ne fonctionnent pas bien. » On a ici plusieurs stratégies qui pourraient fonctionner. De la même manière, on peut simplement faire glisser la variable 2 ici et interagir avec les données de manière très intuitive. On peut ainsi se faire une idée de ce qui se passe.
On peut examiner le lactate. On pourrait envisager de doubler le temps de réponse. On peut interagir très rapidement avec nos données, les analyser et les préparer pour les présenter à d'autres personnes de l'entreprise afin d'accélérer le processus. Imaginons que je souhaite également avoir une idée de la variable 2. Je peux simplement la superposer pour me faire une idée. Les temps de doublement augmentent. C'est logique. La stratégie 1 consiste à les maintenir bas. C'est ce que nous souhaitons. C'est la partie « Générateur de graphiques », qui est vraiment intéressante.
Nous disposons également de nombreuses autres fonctionnalités. Je vais vous en présenter quelques-unes rapidement avant de passer à la section suivante. L'une d'elles est l'analyse cyclique. En cliquant dessus, tous les lots disponibles s'affichent, ainsi que le numéro de passage, et une case à cocher apparaît.
Nous allons sélectionner tous ces éléments, car n moins 1 et n moins 2 sont des valeurs d'échelle. Je ne souhaite pas les inclure dans cette analyse. Je vais simplement sélectionner ceux qui me conviennent et cliquer sur OK. Des ajustements bivariés apparaîtront et nous obtiendrons des tendances. Vous pouvez voir que le logiciel quantifie la situation, récupère les données, analyse les tendances et les ajoute directement à notre tableau, le tout automatiquement via un script. Nous n'avons pas besoin de le faire manuellement. Cela accélère la sortie des données.
Vous pouvez voir ici l'analyse des tendances. Nous avons maintenant un graphique montrant la pente et son évolution dans le temps. Prenons simplement notre variable et analysons-la. Nous allons la colorier. Vous y trouverez des moyens très simples d'interagir avec vos données et de les analyser.
La dernière fonctionnalité que je vais vous présenter concerne les outils destinés aux opérateurs. Par exemple, si nous voulons prendre et gérer, par exemple, un flux ou une publicité, et qu'un opérateur souhaite savoir rapidement ce qu'il doit faire aujourd'hui pour gérer ces réacteurs, nous pouvons lui dire : « OK, prenons une journée. »
Par exemple, nous souhaitons effectuer cette opération le 24/08/2019. C'est une date. Je vais exécuter ce script. Par exemple, le 24/08, c'était quoi ? 2019, peut-être. Imaginons que nous utilisions un petit réacteur. Nous pourrions avoir un volume utile d'environ 225 millilitres, et alimenter 2 %. Nous cliquons simplement sur « OK », et le système va générer un tableau indiquant la quantité d'énergie à alimenter pour chaque réacteur et s'ils nécessitent certains retours.
Dans ce cas, pratiquement tout nécessitera à la fois de la glutamine et du glucose. Mais on pourrait imaginer une situation où, si tous ces niveaux n'étaient pas ce jour-là inférieurs au seuil de retour, vous pourriez recevoir quelques refus. Vous pouvez avoir un aperçu rapide de ce qu'il faut faire pour intervenir sur ces réacteurs. Voilà le scénario en bref. Je vais conclure sur certains points et revenir à la présentation.
Voyons comment procéder, surtout si vous débutez avec JMP. Comment procéder ? Commençons par l'étude de cas : ce calcul notoirement difficile, la consommation auto-spécifique. Les quatre étapes que je vais aborder sont : le développement d'un système de nommage d'échantillons standardisé, l'établissement d'une connexion à vos données, l'organisation, le nettoyage et le tri automatiques des données, et enfin, la création d'une colonne de formules qui calculera ce paramètre.
Allons droit au but. Pour bien cadrer l'argument ou la tâche à accomplir, nous allons devoir faire un petit exposé. Je vais vous donner un petit cours magistral où nous expliquerons ce qu'est la consommation cellulaire et pourquoi elle est si difficile à calculer. On peut comparer la consommation cellulaire à la puissance cellulaire. Chaque cellule doit consommer une certaine quantité de nutriments, et on peut la comparer à de l'énergie chaque jour, donc par unité de temps.
Par conséquent, notre consommation Q sera égale à un Delta C divisé par un Delta iVCD. Vous pouvez constater qu'il s'agit de la densité cellulaire viable. Il s'agit essentiellement du comptage cellulaire. C'est un élément essentiel en bioprocédés. De même, nous pouvons mesurer la quantité d'un nutriment dans une solution. Ces courbes typiques pourraient constituer un bon exemple de bioprocédé en discontinu alimenté. Nous allons examiner deux points temporels : celui qui nous intéresse et le point temporel précédent afin de définir ce paramètre.
Il y a un temps entre les deux. On peut le constater avec le Delta T ici. Pourquoi l'aire sous la courbe est-elle importante ? J'ai parlé d'iVCD au lieu de VCD. Je parlais de ce graphique de densité cellulaire viable, mais ce qui nous intéresse vraiment, c'est son intégrale. C'est important car une cellule vivante au début de ce cycle de culture, d'une durée de quatre jours peut-être, va consommer environ quatre fois plus de nourriture qu'une cellule fille qui s'est divisée ici et n'a existé qu'un jour avant d'être récoltée.
Ce que nous pouvons faire, c'est l'approximation. Nous pouvons utiliser quelques mathématiques empiriques et la règle du trapèze pour calculer cela. C'est la partie du dénominateur. Nous avons également besoin d'une variation de concentration, mais c'est un peu plus compliqué qu'il n'y paraît.
Puisque nous souhaitons connaître la variation de concentration due à la consommation cellulaire, nous devons soustraire la quantité ingérée. Nous ne mesurons généralement pas cette quantité, car nous savons ce que nous ajoutons. Nous ne disposons généralement pas de données de mesure indiquant son évolution, mais nous devons en tenir compte pour que nos taux de consommation soient précis.
On leur a donné une quantité donnée, et lorsque nous l'avons mesurée le lendemain, ils ont consommé non seulement le delta ici, mais aussi la quantité de delta ici. Cela signifie qu'il faut soustraire ce point supplémentaire. Cela aboutit à une formule complexe, avec de nombreux paramètres liés conditionnellement les uns aux autres. C'est là le nœud du problème, ce qui rend certains de ces calculs si difficiles à automatiser.
Je vais vous expliquer comment procéder. La première étape consiste à développer une dénomination d'échantillon standardisée. C'est la base de la stratégie d'automatisation que nous avons adoptée. Je vais utiliser un exemple de chaîne et en détailler certains éléments. Chacun de ces éléments est un élément important qui nous aide à automatiser et à traiter les données, notamment pour le nettoyage, le tri et le calcul automatiques.
Nous avons, par exemple, un identifiant de groupe. Nous avons un code de date, un numéro d'expérience, des traits de soulignement pour séparer les éléments et rendre le tout plus attrayant visuellement. Nous avons également un lot ou un cycle, un identifiant de réplication et un code de condition ou de réacteur. Cette longue chaîne de caractères peut paraître un peu intimidante, mais il s'agit généralement de données séquentielles et numériques.
Surtout si vous pensez que cela pourrait frustrer certains opérateurs, il leur suffit généralement de saisir ces informations une fois par jour, puis d'utiliser les fonctions d'autonumération de nombreux instruments d'analyse pour simplement cliquer sur la liste et la remplir. L'avantage de cette méthode est qu'elle s'avère rentable dès que l'on essaie d'automatiser et de calculer automatiquement certains de ces paramètres.
Mon conseil pour adapter cette approche serait d'identifier ce que votre équipe utilise pour manipuler et afficher les données, puis de consolider et de codifier le minimum d'éléments nécessaires. L'objectif est de simplifier au maximum. Certains éléments sont indispensables et indépendants de telle ou telle expérience, et d'autres sont indispensables pour manipuler ces données.
Vous pouvez toujours ajouter des fonctionnalités supplémentaires ultérieurement. Par exemple, nous proposons des options, comme le remplacement d'erreurs d'instrument, que vous pouvez ajouter à la fin. Vous pouvez effectuer des rééchantillonnages intentionnels, par exemple, comme le flux dont je parlais. Si vous souhaitez le mesurer et vérifier qu'il correspond à vos attentes, vous pouvez également intégrer d'autres options, mais il est essentiel d'établir un schéma de nommage strict pour votre analyse par défaut, afin de susciter l'adhésion et l'utilisation générale.
Quelle est la deuxième étape ? Vous devez accéder à ces données. Pour ce faire, nous avons utilisé une connexion à une base de données ouverte. JMP est ici, à droite, et nous allons essayer d'y importer nos données. Nous avons collaboré avec nos équipes informatiques et de données pour configurer nos instruments afin qu'ils exportent des fichiers CSV dès leur exécution. Ces fichiers sont ensuite téléchargés dans notre base de données. Vous pouvez voir qu'un compteur de cellules, par exemple, et une analyse chimique sont tous deux téléchargés dans cette base de données.
ODBC est la connexion. C'est cet élément qui relie la base de données au programme JMP. C'est une interface de programmation d'application (API) qui utilise SQL (Structured Query Language). Comme vous l'avez vu lors de la démonstration, vous pouvez également ajouter des métadonnées directement dans l'application ou JMP, ou les alimenter via la base de données. Les deux fonctionnent.
Comment faire concrètement ? JMP propose une fonctionnalité de requêtes SQL. Vous pouvez les parcourir manuellement et accéder à une interface utilisateur conviviale pour sélectionner les requêtes. Une fois la connexion à la base de données ouverte configurée, vous pouvez créer votre requête et la combiner avec une fonctionnalité très intéressante que je souhaite intégrer : le Générateur de workflows. Ce dernier suivra toutes vos étapes et générera le code JSL correspondant.
Pour des scripts plus avancés, vous devrez probablement modifier ce schéma. Il vous montre la syntaxe et accélère le codage, surtout pour les débutants, même ceux qui n'ont pas suivi de formation informatique classique. C'est un outil très puissant que je tiens à faire connaître.
Voici un extrait de code illustrant à quoi ressemblerait réellement le code. Nous avons une connexion. Dans ce cas, nous utilisons cette interface utilisateur pour ajouter un ELN. Ce sont quelques-unes des fonctionnalités supplémentaires que nous devrons ajouter ultérieurement. Cela vous donne un point de départ pour travailler, tester et commencer à itérer.
Très bien, étape 3. Nous devons nettoyer et trier les données. C'est une étape importante, car souvent, pour calculer une consommation de glucose spécifique, les utilisateurs importent les données dans Excel, par exemple. Ils les déplacent manuellement, les organisent, les suppriment et les référencent à différentes cellules. Nettoyer et fusionner automatiquement les données est essentiel pour garantir des résultats précis.
Les deux premiers domaines que je vais aborder sont les opérations de jointure et de tri. Dans l'interface utilisateur, elles se trouvent sous l'onglet Tables et peuvent également être combinées avec le générateur de workflow. Voici un exemple de fonction de jointure où nous prenons les analytes chimiques et les numérations cellulaires, et nous les joignons simplement. Ensuite, nous souhaitons les trier selon nos paramètres afin que les données soient organisées et classées selon l'ordre attendu par nos fonctions.
Enfin, nous pouvons effectuer divers nettoyages. C'est un peu plus intensif, mais cela peut être réalisé assez facilement à l'aide d'expressions logiques. L'exemple que j'utilise ici consiste essentiellement à supprimer les lignes en double des erreurs d'instrument. Il s'agit du paramètre R « underscore » mentionné précédemment.
Nous analysons et étiquetons ici ce qui est un doublon et ce qui ne l'est pas. Ensuite, nous sélectionnons, masquons et excluons tout ce qui n'est pas l'échantillon le plus récent. Ces scripts intègrent de nombreuses fonctionnalités de nettoyage, rendant vos données quasiment prêtes à être utilisées.
Très bien, passons à la dernière section. Comment construire une colonne avec des fonctions clés pour calculer ce paramètre ? Nous avons notre équation complexe. C'est assez complexe. La première étape consiste à utiliser des fonctions comme « if » et « is missing » pour que le calcul dépende des paramètres disponibles.
Dans cet exemple, nous pouvons dire que pour certains d'entre eux, nous avons un ajout de glucose. C'est le paramètre d'alimentation dont nous parlions. Pour d'autres, ce n'est pas le cas. Nous devons créer une équation qui indique : « Si cette valeur est présente, calculez-la en l'incluant. Si elle est absente, ne la calculez pas. » C'est ce que nous faisons avec les fonctions « if » et « is missing ».
Nous avons un autre problème. Les valeurs nécessaires à ce calcul apparaissent désormais sur différentes lignes. Avec un format en colonnes, avantageux pour la gestion des données, il est plus difficile de référencer des éléments extérieurs à la même ligne. Les formules sont davantage conçues pour référencer des éléments présents sur la même ligne. Nous pouvons exploiter une fonction très puissante que je souhaite mettre en avant : la fonction de décalage.
Lorsque vos données sont correctement triées et organisées, cela permet des références très précises aux données qui ne se trouvent pas sur la même ligne. Nous avons notre C de T ici et notre C de T moins 1, auxquels nous pouvons faire référence grâce à la fonction lag. Voici à quoi ressemblera ce code. Nous allons générer une nouvelle colonne. Nous allons créer une formule. Nous allons utiliser une instruction if pour vérifier qu'il s'agit bien de la même chose. Nous ne comparons pas deux lots différents. Nous sommes simplement dans le même lot grâce à cet identifiant unique. Nous allons vérifier si ce retour publicitaire se produit et effectuer le calcul. L'iVCD, cet autre fragment, se produit dans une autre colonne, mais son fonctionnement est très similaire.
Je vais maintenant revenir à JMP et vous montrer comment cela fonctionne. Très bien. J'ai maintenant un autre jeu de données normalisé. Vous pouvez voir que nous avons des échantillons, nos identifiants uniques, des valeurs de glucose et des retours d'information. Certains de ces événements se produisent. Dans certains cas, les valeurs sont différentes et leur espacement est irrégulier. Nous avons besoin d'un outil suffisamment intelligent pour calculer ces données et les exécuter correctement à chaque fois.
Nous allons exécuter le script présenté ci-dessous. Ce script va créer une nouvelle colonne pour calculer la consommation de glucose spécifique. Ensuite, nous allons déplacer la colonne sélectionnée pour la visualiser sans avoir à faire défiler la page. Je vais utiliser ce petit extrait du script et l'exécuter.
Je dois exécuter l'ensemble du processus, pas seulement la section sélectionnée. Une fois exécuté, on constate qu'une nouvelle colonne apparaît et que les calculs sont effectués. Les interruptions de calcul sont effectuées comme souhaité, et les valeurs obtenues sont précises et mises à l'échelle comme souhaité.
Si nous examinons notre formule, nous la construisons. Elle suit une logique conditionnelle et nous obtenons le calcul souhaité. Nous pouvons prévisualiser les données ici. Nous pouvons examiner les différents éléments, leur addition et résoudre les problèmes. C'est ainsi que nous obtenons des calculs automatisés avancés et précis.
Très bien. Fin de la présentation. Je tiens à conclure rapidement par quelques remerciements. Chez UPSIDE Foods, tout le monde a participé à ce projet, en particulier Megan et Julia. Voici quelques-uns de mes coéquipiers lors du concours Top Chef : l'entreprise dans son ensemble, notre site de production et quelques-uns de nos produits.
Un grand merci à nos équipes informatiques et de données pour avoir réalisé une partie du travail important concernant la connexion à la base de données ouverte et m'avoir aidé à résoudre les problèmes système. Je remercie également mon manager, Cameron, qui m'a présenté JMP et m'a montré la puissance de cet outil. Merci, et je termine mon exposé.