• Home
  • Chimie
  • Astronomie
  • Énergie
  • La nature
  • Biologie
  • Physique
  • Électronique
  • Un nouveau langage de programmation moléculaire :CRN++

    L'algorithme d'Euclide et comment il sera écrit en CRN++. Crédit :Vasic et al.

    La biologie synthétique est un domaine de recherche relativement nouveau qui pourrait avoir un impact significatif sur un certain nombre de domaines, dont la biologie, nanofabrication et médecine. Un défi principal dans ce domaine émergent est celui d'intégrer le calcul dans des contextes moléculaires, dans les situations où les microcontrôleurs électroniques ne peuvent pas être insérés. Pour ce faire, il faut développer des méthodes qui peuvent représenter efficacement des calculs utilisant des composants moléculaires.

    Une équipe de chercheurs de l'Université du Texas à Austin a créé CRN++, un nouveau langage pour programmer la cinétique chimique déterministe (action de masse) lors des calculs. Dans leur papier, prépublié sur arXiv , les chercheurs décrivent ce nouveau langage et construisent un compilateur qui traduit les programmes CRN++ en réactions chimiques.

    "Un défi technique clé de la biologie synthétique est de concevoir un contrôleur chimique qui interagit au sein d'un environnement cellulaire, accomplir une tâche particulière, " Marko Vasic, l'un des chercheurs qui a mené l'étude, Raconté Tech Xplore . « Pour y parvenir, il est nécessaire à la fois de concevoir des molécules synthétiques et de les programmer. Les molécules interagissent via des réactions chimiques, et en programmant des molécules, nous entendons définir des règles d'interaction (réactions chimiques) entre elles. »

    Les récentes améliorations de la synthèse de l'ADN ont ouvert de nouvelles, possibilités intéressantes pour l'ingénierie moléculaire. Cependant, les chercheurs en biologie synthétique doivent d'abord trouver des moyens de concevoir les règles d'interaction (réactions chimiques) pour atteindre un objectif souhaité. L'objectif principal de cette étude récente était de concevoir un langage de niveau supérieur qui pourrait exprimer le comportement des réactions chimiques d'une manière plus intuitive.

    « En génie logiciel, un programmeur écrit dans un langage de haut niveau facile à comprendre, et un tel programme est compilé jusqu'au code machine, ce qui est difficile à comprendre par un humain, mais compréhensible par une machine, " Vasic a expliqué. " Nous avons essayé de construire une analogie dans la programmation moléculaire en définissant un langage de haut niveau qui est plus facile à raisonner et qui est compilé jusqu'à la chimie " complexe ".

    La sortie du compilateur ainsi que les résultats de simulation pour le programme CRN++. Crédit :Vasic et al.

    CRN++ repose sur deux idées :la modularité et l'utilisation d'un oscillateur. La modularité signifie que le langage comprend un ensemble de réactions chimiques appelées modules qui peuvent être composés sans interférence entre différents ensembles de réactions. Pour y parvenir, les chercheurs ont associé les opérations de base de CRN++ à ces modules. Ils ont également utilisé un oscillateur chimique pour l'ordre temporel, ce qui leur a permis de traduire les commandes impératives ordonnées de la langue en chimie.

    "Au meilleur de nos connaissances, nous sommes les premiers à fournir un langage de programmation impératif conforme aux réseaux de réactions chimiques, " a déclaré Vasic. " Nous avons ouvert notre code, dont CRN++, ainsi qu'un cadre de simulation, car nous espérons que cela permettra aux chercheurs d'expérimenter plus facilement de nouvelles approches, et ainsi faire avancer la zone plus loin."

    Les chercheurs ont évalué CRN++ et prouvé sa faisabilité sur une série d'algorithmes pour le calcul discret et réel. Le nouveau langage peut également être facilement étendu pour prendre en charge de nouvelles commandes ou implémentations, ce qui en fait la base idéale pour le développement de programmes moléculaires plus avancés.

    "Les programmes traduits de CRN++ en chimie contiennent une certaine quantité d'erreurs, qui peut être très faible dans certaines classes de programmes mais peut être élevé ou s'accumuler au fil du temps dans d'autres, " a déclaré Vasic. " Nous prévoyons donc d'étudier plus avant les sources d'erreur et de concevoir des programmes qui garantissent que l'erreur ne s'accumule pas au-delà d'une certaine limite. "

    Vasic et ses collègues cherchent également à élargir leur langage de programmation en incluant de nouveaux modules, définis comme des ensembles de réactions chimiques qui peuvent effectuer des opérations de base.

    © 2018 Tech Xplore




    © Science https://fr.scienceaq.com