La doctorante de minuit : pourquoi PhytoNote est né d'une plaque DPPH ratée
23h32 au labo de phytochimie de Rabat. Une absorbance UV inversée dans Excel, trois jours perdus, un standard d'arnicaline gâché. Ce soir-là, j'ai décidé d'apprendre Flutter.
Il était 23h32 quand j'ai éteint le spectrophotomètre. Je m'en souviens parce que la pendule du couloir, celle qui grésille toujours au-dessus de la porte du labo de phytochimie, venait de cliquer. J'étais en première année de thèse à la Faculté des Sciences de Rabat, et ma journée avait commencé à 8h pour préparer mes extraits d'arnica. Quatorze heures plus tard, j'avais encore trois colonnes de chiffres à reporter dans Excel avant de pouvoir rentrer.
La plaque, le carnet, le doute
Sur la paillasse, ma microplaque Greiner 96 puits transparente attendait son sort. Je travaillais sur un test DPPH classique avec dix concentrations en triplicat, plus les blancs et les contrôles trolox. L'UV-1900 Shimadzu venait de cracher ses absorbances à 517 nm. J'avais tout noté à la main dans mon carnet de paillasse, à la mine de plomb, parce que c'est ce qu'on m'avait appris à faire.
Ce que personne ne dit aux doctorants de phytochimie, c'est qu'à 23h passées, après une journée à pipeter du méthanol HPLC-grade, l'écriture devient mécanique. Tu recopies. Tu ne lis plus vraiment ce que tu écris. Tu sais juste que tu veux finir et rentrer chez toi prendre une douche.
Le labo était vide. Mon directeur de thèse, le Pr. Lemhadri, était parti depuis 19h. Les ventilateurs des sorbonnes ronronnaient. Quelqu'un avait laissé une radio allumée au fond du couloir, une émission marocaine sur Médi 1, voix éteinte. Je pouvais entendre mes propres clics de souris quand je tapais les chiffres dans la feuille Excel.
Le matin d'après
Je suis revenue le lendemain à 9h, café à la main, prête à finaliser ma courbe d'inhibition. J'ai ouvert le fichier. La courbe était bizarre. Au lieu de la sigmoïde habituelle, j'avais une bosse au milieu, comme si l'activité antioxydante avait chuté entre 50 et 100 µM avant de remonter. Impossible, biologiquement parlant. Pas avec de l'arnicaline pure.
J'ai relu le carnet. J'ai relu Excel. J'ai relu encore une fois. Quelque part entre les deux, j'avais inversé deux valeurs. Mes 25 µM étaient passés à la place de mes 75 µM. Une faute d'inattention à 23h40 qui faisait sauter tout l'IC50.
J'ai appelé ma responsable. Sa voix calme au téléphone, sans reproche, juste un constat : il faut refaire. Trois jours pour repréparer une nouvelle solution mère d'arnicaline, refaire la gamme, recouler la plaque, relire au spectro. Le standard d'arnicaline coûte autour de 380 dirhams les 5 mg chez notre fournisseur, et j'en avais utilisé une bonne moitié pour rien. Plus le temps perdu. Plus la honte intérieure d'avoir laissé une erreur aussi bête contaminer trois jours de manip.
L'idée qui germe pendant le retour en taxi
Le soir, dans le taxi qui me ramenait à Agdal, je tournais le problème dans tous les sens. Pourquoi est-ce que je continuais à transcrire des chiffres à la main alors que le spectro savait déjà ce qu'il avait mesuré ? Pourquoi le contrôle qualité arrivait au moment où j'étais le plus fatiguée, c'est-à-dire le plus exposée à l'erreur ?
J'avais déjà bricolé des macros Excel pour automatiser le calcul des IC50, mais le problème n'était pas le calcul. Le problème était la saisie. Le problème était cette fenêtre de fatigue, entre la mesure et le tableur, où l'erreur humaine s'invite.
J'avais besoin d'un outil qui prend la valeur directement de mes doigts au moment où je la lis sur l'écran du spectro, qui la valide tout de suite contre les bornes attendues, et qui la stocke avec un timestamp. Pas dans trois heures. Pas après que j'ai fini la plaque. Tout de suite. À l'instant où l'absorbance s'affiche.
Apprendre Flutter dans l'urgence
Je n'étais pas développeuse. J'avais fait deux ans de Python à la fac pour mes analyses statistiques, et un peu de R pour les ACP. Mais une application mobile native, c'était hors de mon périmètre.
Le week-end qui a suivi, j'ai téléchargé Flutter et le SDK Android. J'ai choisi Flutter parce que je voulais que l'app tourne aussi bien sur le vieux Samsung de ma collègue Khadija que sur l'iPad du Pr. Lemhadri. Dart est venu vite, étonnamment. Le système de widgets est logique quand on vient d'un milieu où on pense en hiérarchies de molécules.
La première version de PhytoNote a vu le jour quatre mois plus tard. Une page de saisie sobre, un champ par puits, validation en 200 millisecondes sur chaque valeur (borne min/max selon le type d'essai), et un calcul d'IC50 par régression non linéaire en quatre paramètres dès que la plaque est complète. Pas de transcription. Pas de double saisie. Pas de carnet à la mine de plomb à 23h32.
Ce que je n'avais pas anticipé
Ce que je n'avais pas vu venir, c'est que les autres doctorants du labo allaient me demander une copie. Puis les masters. Puis une collègue d'une équipe voisine qui travaillait sur l'activité antimicrobienne des extraits de figuier de Barbarie. Chacune avec son protocole, ses contraintes, ses bornes. PhytoNote a dû devenir configurable. C'est là qu'est née la couche YAML qui définit chaque essai, et qui rend l'app utilisable au-delà de mon seul cas d'usage.
Aujourd'hui, je ne sais plus combien d'IC50 je dois à cette nuit de novembre. Je sais juste que je ne retranscrirai plus jamais des absorbances à la main à 23h30. Pas par confort. Par discipline scientifique. Les données générées par mes manips méritent mieux que ma fatigue.
Si vous voulez voir à quoi ressemble PhytoNote aujourd'hui, la page dédiée à l'application détaille les essais supportés, la couche de validation YAML, et le fonctionnement hors-ligne en environnement labo. J'ai aussi écrit un article de vulgarisation sur le rôle qu'elle joue à la paillasse au quotidien. Pour le contexte de ma trajectoire de recherche, mon CV est en ligne.