Un langage de programmation pour l’ADN (encore un…)

La biologie synthétique (voir les explications de la Wikipédia), on le sait, repose essentiellement sur une similitude d’approche avec l’informatique. On utilise des parties standardisées de l’ADN pour créer des « fonctions » qui, assemblées, deviendront des programmes susceptibles d’être placés au sein du code génétique d’une cellule.

Depuis quelque temps existent donc déjà divers « environnements de développement » pour la biotech, et j’en ai présenté quelques-uns dans un précédent article, tout en me lamentant sur le manque de maintenance et de documentation desdits programmes.

Est-ce que Cello, ce nouvel outil développé par le MIT, qui a eu ces jours-ci droit à un traitement de Nature, de Science et du New Scientist, va permettre d’accélérer le processus ?

Comme l’électronique… mais plus compliqué

C’est dans une vidéo que, Christopher Voigt, le créateur de Cello, a donné quelques éléments de compréhension. Il y explique les difficultés inhérentes à la biologie synthétique, et comment Cello peut contribuer à les réduire.

celloPour utiliser la biologie dans toute sa complexité, il ne faut pas seulement savoir manipuler quatre ou cinq gènes, comme on le fait aujourd’hui, mais plusieurs centaines, simultanément, précise-t-il. Ensuite il faut pouvoir contrôler le moment où chacun de ces gènes agira et dans quel environnement…

Les « réseaux de régulation génétique » sont représentés par des diagrammes avec des entrées, des sorties et des embranchements qui s’apparentent aux « portes » de la logique traditionnelle. De fait, le langage le plus proche de la biologie est peut-être celui de l’ingénierie électrique, qui fait justement grand usage de ces portes.

On a déjà créé de tels réseaux de régulation impliquant trois ou quatre protéines, mais cela a été très compliqué, demandé des années d’efforts, et il a fallu beaucoup d’essais et d’erreurs. Mais les « réseaux » qu’on trouve dans la nature impliquent plusieurs centaines de protéines !

Le processus suivi par un logiciel comme Cello est donc le suivant : tout d’abord le programmeur écrit un fichier textuel, comme le ferait tout développeur classique. Ensuite, ce texte est converti sous la forme d’un diagramme constitué d’interactions, de portes logiques, etc., analogue à ceux utilisés en électronique. Enfin, le logiciel doit savoir comment traduire ce diagramme, purement abstrait, en séquences d’ADN susceptibles d’être insérées dans une cellule.

Pour concevoir un circuit logique, électrique ou biologique, on peut se reposer sur une seule « porte logique », la porte NON-OU. Celle-ci prend deux signaux en input (qui peuvent être deux propositions logiques, deux signaux électriques ou, dans le cas de la biologie, deux molécules), et renvoie un « vrai » si et uniquement si les deux entrées sont « fausses » (si par exemple la porte ne reçoit aucun des deux courants électriques ou aucune des deux molécules). A partir de NON-OU on peut recréer toutes les autres opérations logiques plus traditionnelles, comme le OU, le ET, etc.

Par exemple, nous explique Voigt, l’ensemble du programme qui a guidé Apollo 11 peut être décrit sous la forme de 5 600 portes NON-OU : « Si on pouvait transcrire sous forme biologique ces 5 600 portes, note-t-il, on pourrait placer le programme Apollo dans une cellule. »

Pour produire une porte NON-OU en biologie, continue Voigt, on commence tout d’abord par fabriquer une porte NON. Dans ce cas, il s’agit d’une séquence d’ADN possédant un inhibiteur qui désactivera le promoteur déclenchant la séquence génétique produisant une molécule donnée. Si on entre en input une molécule qui active cet inhibiteur, il se produit ce qu’on attend d’une porte NON : si le système reçoit un signal en entrée, il ne produit rien en sortie. S’il ne reçoit rien, en revanche, il délivrera une molécule dans l’environnement.

A partir de là, rien de plus simple que produire une porte NON-OU : il suffit que l’inhibiteur soit activé non par par une, mais par deux protéines différentes devant agir simultanément.

Tout cela a l’air très simple pas vrai ? Mais en fait, il y a un problème. Le monde de la biologie n’est pas celui de l’ingénierie électrique. Si on observe le programme d’Apollo 11, nous explique Voigt, on s’aperçoit que les différents ensembles de portes NON-OU présentent à peu près la même architecture, et qu’ils sont physiquement séparés. Il suffit donc de prendre ces différents groupes et de les connecter entre eux… Les choses ne sont pas aussi propres au sein d’une cellule. Elles ressembleraient plutôt, nous dit Voigt, à un burrito où tous les ingrédients sont mélangés. Si on avait les 5 600 portes au sein de la cellule, les différentes molécules se baladeraient librement dans l’environnement, se cogneraient les unes aux autres, activeraient des circuits qu’elles n’auraient pas dû, etc.

Il est donc extrêmement important de réduire, voire supprimer, ces interactions indésirables.

Pour ce faire, si on ne peut pas isoler physiquement les circuits, on peut le faire chimiquement. Il faut pour cela que les différentes portes utilisent différents couples d’inhibiteurs et de promoteurs. Au cours de leurs recherches, Voigt et son équipe ont découvert 16 combinaisons, qui ne sont pas susceptibles d’interagir entre elles. Ils ont pu ainsi construire une « libraire de portes », chacune étant suffisamment isolée des autres pour que cela permette leur usage dans des contextes variés.

Restait à mettre au point le langage de programmation. Celui-ci est basé sur Verilog, un outil de conception de circuits électroniques existant déjà depuis un certain temps.

Comment fonctionne Cello ?

Le programmeur biologique écrit donc son texte en langage Verilog, puis le compilateur non seulement crée le diagramme correspondant, mais surtout, il s’en va chercher dans la « librairie de portes » les éléments susceptibles d’être compatibles entre eux et d’éviter les interférences. A la fin, il crée une séquence d’ADN qu’il ne reste plus qu’à envoyer par e-mail à une compagnie de biotech pour qu’elle la synthétise.

Cello permettra-t-il de simplifier la tâche des programmeurs d’ADN ? Pour le vérifier, Voigt et ses collègues ont conçu 60 circuits, dont 45 ont fonctionné dès la première tentative. Et surtout, ils ont pu avec l’aide de ce logiciel, élaborer le plus grand circuit biologique jamais construit, avec sept portes logiques et des brins d’ADN longs de 12 000 unités.

Cello est disponible gratuitement sous la forme d’une application web. Bien évidemment, je n’y ai pas compris grand-chose, mais apparemment, quand on s’y connaît un peu, ça marche. J’ai chargé ainsi un fichier démo, choisi (au hasard) les inputs et les outputs, puis cliqué sur Run. Le tout petit fichier Verilog utilisé au démarrage a produit alors un fichier texte très long (plusieurs pages). Après avoir appris, à ma grande joie, que ma compilation était réussie, j’ai pu avoir accès à une fenêtre me donnant la possibilité d’afficher le diagramme du circuit logique, un ensemble de courbes prédisant le comportement de « mon » programme et, enfin, à la séquence d’ADN elle-même… Ne comptez pas sur la présence de tutoriel explicatif, ce qui confirme une fois de plus ma première loi de la Computer Science qui stipule que la complexité d’un logiciel est inversement proportionnelle à la documentation disponible. Ceci dit, Verilog, le langage de base est, lui, très bien documenté ; vous trouverez, par exemple, un tutoriel en français (.pdf), et, sur ce site, bon nombre de ressources le concernant. C’est déjà ça !

Rémi Sussan

À lire aussi sur internetactu.net