لغة برمجة جزيئية جديدة: ++CRN

يعتبر علم الأحياء الاصطناعية مجالاً بحثياً جديداً نسبياً بإمكانه التأثير بشكلٍ كبير على عددٍ من المجالات البحثية الأخرى، بما في ذلك الأحياء، تكنولوجيا النانو، والطب.

التحدي الأساسي الذي برز في هذا المجال المستجد هو دمج الحسابات ضمن سياقات جزيئية، في الحالات التي لا يمكن فيها إدراج المتحكمات الدقيقة الإلكترونية (Electronic Micro-controllers)، يتطلب فعل ذلك تطوير أساليب بإمكانها تمثيل الحسابات بفعالية باستخدام مكوناتٍ جزيئية.

خوارزمية إقليدس وطريقة تمثيلها في لغة ++CRN. حقوق الصورة: Vasic et al
خوارزمية إقليدس وطريقة تمثيلها في لغة ++CRN. حقوق الصورة: Vasic et al


قام فريقٌ من جامعة تكساس University of Texas في ولاية أوستن Austin الأمريكية بابتكار لغة ++CRN، لغة جديدة لبرمجة الحركية الكيميائية (فاعلية الكتلة) الحتمية للقيام بالحسابات. في ورقتهم البحثية، المنشورة مسبقاً في مجلة أركايف ArXiv (يمكن الاطلاع عليها هنـا)، قام الباحثون بشرح الأفكار العامة لهذه اللغة الجديدة وأنشأوا مترجماً برمجياً Compiler متخصصاً في ترجمة البرامج المكتوبة بلغة ++CRN إلى تفاعلاتٍ كيميائية.

ماركو فاسيك Marko Vasic، أحد الباحثين الذين قاموا بالدراسة، يقول:"إن التحدي التقني الأساسي لعلم الأحياء الاصطناعية هو تصميم متحكم كيميائي يتفاعل ضمن بيئة خلوية، لتحقيق مهمة معينة." ويضيف: "ومن أجل تحقيق ذلك، من الضروري هندسة جزيئات اصطناعية وكذلك برمجتها. تتفاعل الجزيئات عبر التفاعلات الكيميائية، ومن خلال برمجة الجزئيات فإننا نسعى إلى تحديد قواعد التفاعل (التفاعلات الكيميائية) بينها".

أتاحت التحسينات الأخيرة في تركيب الحمض النووي الاصطناعي إمكانيات جديدة ومثيرة للهندسة الجزيئية؛ ومع ذلك، فإن الباحثون في الأحياء التركيبية يحتاجون أولاً إلى إبتكار أساليبٍ لتصميم قواعد التفاعل (التفاعلات الكيميائية) لتحقيق الهدف المنشود. إن الغرض الأساسي من هذه الدراسة الحديثة هو تصميم لغة ذات مستوى عالٍ والتي بإمكانها التعبير عن سلوك التفاعلات الكيميائية بطريقةٍ بديهيةٍ أكثر.

وأوضح فاسيك: "في هندسة البرمجيات، يقوم المبرمج بالبرمجة بإستخدام لغة عالية المستوى والتي من السهل فهمها، وهكذا برنامج يتم ترجمته إلى لغة الآلة، التي من الصعب على الإنسان فهمها، لكنها مفهومة للآلة." وأضاف:"حاولنا بناء تماثل في البرمجة الجزيئية من خلال تعريف لغة عالية المستوى من السهل التفكير بها، ويتم ترجمتها إلى كيمياء "معقدة"."

مخرجات المترجم البرمجي (Compiler)، كذلك، نتائج محاكاة برنامج الCRN++. حقوق الصورة: Vasic et al
مخرجات المترجم البرمجي (Compiler)، كذلك، نتائج محاكاة برنامج الCRN++. حقوق الصورة: Vasic et al


إن لغة ++CRN مبنية على فكرتين: النمطية، وإستخدام مذبذب كيميائي. النمطية تعني أن اللغة تحتوي على مجموعة من التفاعلات الكيميائية تدعى وحدات (Modules) التي من الممكن احتواؤها بدون حدوث تشويش بين المجموعات المختلفة من التفاعلات. ومن أجل تحقيق ذلك، قام الباحثون بتعيين عملياتٍ أساسية من لغة ++CRN لهذه الوحدات. و قاموا أيضاً بإستخدام مذبذبٍ كيميائي للترتيب المؤقت، مما سمح لهم بترجمة أوامر برمجية إلزامية ومرتبة إلى تفاعلاتٍ كيميائية.

يقول فاسيك: "وفقاً لما عَلِمناه، فإنّنا أول من وفر لغة برمجة أساسية تقوم بترجمة الأوامر البرمجية إلى شبكات تفاعلاتٍ كيميائية." وأضاف:"قمنا بجعل الكود البرمجي الخاص بنا مفتوح المصدر، ويشمل لغة ++CRN، بالإضافة إلى إطار المحاكاة، حيث نأمل أن ذلك سيجعل من السهل على الباحثين تجربة نهجاً جديدة، وبالتالي سيتقدم هذا المجال البحثي أكثر".

قام الباحثون بتقييم لغة ++CRN وأثبتوا قابليتها للتنفيذ على سلسلة من الخوارزميات لحساباتٍ منفصلة وذات قيم حقيقية. بإمكان اللغة الجديدة أيضاً التوسع بسهولة لدعم أوامر وتطبيقاتٍ جديدة، مما يجعلها أساساً مثالياً لتطوير لغاتٍ جزيئية جديدة أكثر تطوراً.

يقول فاسيك:"إن البرامج التي يتم ترجمتها من لغة ++CRN إلى تفاعلاتٍ كيميائية تحتوي بعضاً من الأخطاء، والتي من الممكن أن تكون قليلة في بعض الفئات من البرامج وكثيرة أو تتراكم مع الوقت في برامجٍ أخرى، لذلك فإننا نخطط للتوسع في فحص مصادر الخطأ، وتصميم برامج تضمن بأن الخطأ لن يتراكم أكثر من حدٍ معين".

يتطلع فاسيك وزملاؤه أيضاً إلى توسيع لغتهم البرمجية عبر تضمين وحداتٍ جديدة، معرّفة كمجموعاتٍ من التفاعلات الكيميائية التي بإمكانها تنفيذ عملياتٍ أساسية.

إمسح وإقرأ

المصادر

شارك

المساهمون


اترك تعليقاً () تعليقات