Редактировать гены сложно. Мы не понимаем, как все разные гены работают в организме, и не можем полностью предсказать, как новые гены будут реагировать на остальную часть генома. Прошлой весной я решил сделать GIL, почти язык программирования, который добавил бы уровень абстракции для упрощения генной инженерии. К концу этого у меня была программа, которая позволяла вам определять многократно используемые фрагменты ДНК, автоматически преобразовывала аминокислоты в ДНК, оптимизированные для вашего организма-хозяина, и могла генерировать кшРНК, чтобы блокировать гены для вас. Однако у GIL был один огромный недостаток. GIL был чистым текстом. Есть много вещей (например, проектирование рибозимов и белков), где вам нужен визуальный интерфейс, чтобы хотя бы начать осознавать, что вы делаете (по крайней мере, я так делал 😁). Из-за этого я начал работу над CadBerry.

Что такое КэдБерри?

CadBerry — мой ответ на эту проблему с визуальным интерфейсом. Я планирую создать IDE для редактирования генов со всем, что было в GIL, а также библиотеки, дополнительные способы контроля над транскрибируемыми генами (возможно, даже библиотеку CRISPR), реализацию CELLO с использованием операторов if в стиле C вместо Verilog и редактор дизайна рибозимов. . Все это чрезвычайно амбициозно, поэтому моей текущей целью является создание текстового редактора, который автоматически компилирует файлы GIL, используя версию GIL, написанную на C++.

Мой прогресс

С тех пор, как я начал этот проект на прошлой неделе, я немного продвинулся вперед. Я следил за руководством по игровому движку The Cherno, чтобы настроить рендеринг, и пока что у меня есть окно, появляющееся на экране, и я работаю со слоями. Самая большая разница с C++ по сравнению с C# — это ошибки. В C#, если вы ссылаетесь на неинициализированную переменную, вы получите исключение NullReferenceException. В C++ вы получите нарушение доступа для чтения по адресу 0x50 из функции в std::atomic, и вам решать, посмотреть на стек вызовов и выяснить, что вызвало ошибку. Моя цель на следующей неделе — настроить экран создания проекта, но кто знает, что произойдет. Так или иначе, тогда увидимся.