science >> Wetenschap >  >> Elektronica

Een nieuwe moleculaire programmeertaal:CRN++

Het algoritme van Euclides en hoe het zal worden geschreven in CRN++. Krediet:Vasic et al.

Synthetische biologie is een relatief nieuw onderzoeksgebied dat een aanzienlijke impact kan hebben op een aantal gebieden, inclusief biologie, nanofabricage en geneeskunde. Een primaire uitdaging in dit opkomende gebied is het inbedden van berekeningen in moleculaire contexten, in situaties waar elektronische microcontrollers niet kunnen worden geplaatst. Om dit te doen, moeten methoden worden ontwikkeld die berekeningen met behulp van moleculaire componenten effectief kunnen weergeven.

Een team van onderzoekers van de Universiteit van Texas in Austin heeft CRN++ gemaakt, een nieuwe taal voor het programmeren van deterministische (massa-actie) chemische kinetiek bij het uitvoeren van berekeningen. In hun krant voorgepubliceerd op arXiv , de onderzoekers schetsen deze nieuwe taal en bouwen een compiler die CRN++-programma's vertaalt naar chemische reacties.

"Een belangrijke technische uitdaging van synthetische biologie is het ontwerpen van een chemische controller die interageert binnen een cellulaire omgeving, het bereiken van een bepaalde taak, "Marko Vasic, een van de onderzoekers die het onderzoek heeft uitgevoerd, vertelde Tech Xplore . "Om dit te behalen, het is noodzakelijk om zowel synthetische moleculen te engineeren als te programmeren. Moleculen interageren via chemische reacties, en door moleculen te programmeren, we bedoelen het definiëren van interactieregels (chemische reacties) tussen hen."

Recente verbeteringen in de DNA-synthese hebben nieuwe, spannende mogelijkheden voor molecuul engineering. Echter, onderzoekers in de synthetische biologie moeten eerst manieren bedenken om de interactieregels (chemische reacties) te ontwerpen om een ​​gewenst doel te bereiken. Het belangrijkste doel van deze recente studie was om een ​​taal op een hoger niveau te ontwerpen die het gedrag van chemische reacties op een meer intuïtieve manier zou kunnen uitdrukken.

"Bij software-engineering een programmeur schrijft in een taal op hoog niveau die gemakkelijk te begrijpen is, en zo'n programma wordt gecompileerd tot op de machinecode, die voor een mens moeilijk te begrijpen is, maar begrijpelijk door een machine, " legde Vasic uit. "We hebben geprobeerd een analogie op te bouwen in moleculaire programmering door een taal op hoog niveau te definiëren die gemakkelijker te redeneren is en die is gecompileerd tot 'complexe' chemie."

De uitvoer van de compiler en simulatieresultaten voor het CRN++-programma. Krediet:Vasic et al.

CRN++ is gebaseerd op twee ideeën:modulariteit en het gebruik van een oscillator. Modulariteit betekent dat de taal een reeks chemische reacties bevat die modules worden genoemd en die kunnen worden samengesteld zonder interferentie tussen verschillende reeksen reacties. Om dit te behalen, de onderzoekers brachten de basisbewerkingen van CRN++ in kaart op deze modules. Ze gebruikten ook een chemische oscillator voor temporele ordening, waardoor ze geordende imperatieve commando's van de taal in scheikunde konden vertalen.

"Voor zover wij weten, wij zijn de eersten die een dwingende programmeertaal bieden die voldoet aan chemische reactienetwerken, "Zei Vasic. "We hebben onze code open source gemaakt, inclusief CRN++, evenals simulatiekader, omdat we hopen dat dit het voor onderzoekers gemakkelijker zal maken om nieuwe benaderingen uit te proberen, en zo het gebied verder te ontwikkelen."

De onderzoekers evalueerden CRN++ en bewezen de haalbaarheid ervan op een reeks algoritmen voor discrete en reële berekening. De nieuwe taal kan ook eenvoudig worden uitgebreid om nieuwe opdrachten of implementaties te ondersteunen, waardoor het de ideale basis is voor de ontwikkeling van meer geavanceerde moleculaire programma's.

"Programma's die zijn vertaald van CRN++ naar scheikunde bevatten enige fouten, die in sommige programmaklassen erg laag kan zijn, maar in andere hoog kan zijn of zich in de loop van de tijd kan opbouwen, "Zei Vasic. "We zijn daarom van plan om de bronnen van fouten verder te onderzoeken en programma's te ontwerpen die garanderen dat fouten zich niet boven een bepaalde grens opbouwen."

Vasic en zijn collega's willen ook hun programmeertaal verbreden door nieuwe modules, gedefinieerd als sets van chemische reacties die basisbewerkingen kunnen uitvoeren.

© 2018 Tech Xplore