Проекты*

Программная реализация модели сборки генома

Работа призёра открытой городской научно-практической конференции «Инженеры будущего» по направлению «Инженеры» в секции «IT в медицине, биомедицинские технологии, медицинское приборостроение, бионика» среди работ учащихся 10–11 классов

Направление работы: Инженеры
Авторы работы: ГБОУ Школа № 953
Предметы: Биология, Информатика
Классы: 10 класс
Мероприятия: Открытая городская научно-практическая конференция «Инженеры будущего» по направлению «Инженеры» 2022 года

Актуальность

Сборка генома является неотъемлемой задачей, которую перед собой ставят многие биоинформатики, ведь знание нуклеотидной последовательности ДНК организма даёт понимание того, как протекают его внутренние процессы, а нуклеотидная последовательность определённого гена может говорить о его известных свойствах. Последовательности нуклеотидов ДНК у организмов одинакового вида немного отличаются.

При анализе этих различий становится возможным построение более фундаментальной модели жизнедеятельности организма, а также появляется вероятность слежения за мутациями внутри ДНК и осмысления их влияния на организм. Таким образом, возникает задача написания алгоритмов, позволяющих вычислять всю необходимую нуклеотидную последовательность ДНК или определённый участок этой молекулы.

Цель

Написание программного кода и приложения для него, решающих задачу сборки гена.

Задачи

  1. Ознакомление с функциями и строением ДНК в живых организмах.
  2. Изучение процесса секвенирования со стадии выделения фрагментов ДНК до получения целостного генома и принципа комплементарности.
  3. Освоение функционала строк и двумерных массивов в Python.
  4. Знакомство с такими объектами Python, как функции и списки.
  5. Овладение навыками работы с файлами и модулями, такими как sys, os и time в Python.
  6. Освоение метода компиляции программного кода на языке Python в exe-файл.
  7. Получение опыта в создании приложений.

Оснащение и оборудование, использованное при создании работы

  • Системный блок с установленным ПО:
    • Операционная система Windows 10 Pro
    • Язык программирования Python
    • Компьютерное приложение PyCharm (Community Edition), в котором были написаны все алгоритмы, собирающие и разбирающие ген
       
  • Компьютерная мышь Razer OROCHI V2
  • Компьютерная клавиатура Bloody B820R
  • Монитор BENQ GL2460 (1920*1080)
  • Google Colaboratory (на начальных этапах)

Описание

ДНК – это полимер, состоящий из двух полинуклеотидных цепей, соединённых друг с другом. В состав ДНК входят сложные органические соединения, включающие в свой состав одно из четырёх азотистых оснований: аденин (A), тимин (T), цитозин (C) или гуанин (G). Из всех этих элементов собиралась длинная цепь ДНК, молекулярная масса которой крайне велика.

Модель сборщика генома (программа сборщика)

  1. Все фрагменты гена (риды), подающиеся на вход сборщика, принадлежали только одной спирали ДНК.
  2. Программа начинала собирать нуклеотидную последовательность с заданного рида.
  3. У всех ридов имелись перекрытия.
  4. Программа соединяла риды по принципу большей длины перекрытия.

Работа над проектом состояла из следующих этапов

  1. Приобрели теоретические знания о строении ДНК и о его значении. Изучили процесс секвенирования со стадии выделения фрагментов ДНК.
  2. Изучили код, читающий информацию из файла, а также освоили запись на коде функций работы с двумерными массивами. Определили место выведения результата, изучили модули Python (sys, time и so) для передачи необходимых параметров.
  3. Написали алгоритмы сборки и разборки гена, компилировали программы с использованием контрольного набора данных для проверки работоспособности программы (модуль pyinstaller).
  4. Разработали пользовательский интерфейс, добавили всплывающие подсказки при наведении на модули программы. Также были добавлены все возможные ошибки с всплывающими окнами.
     

 

Результаты работы/выводы

В результате проектной работы была создана программа по сборке гена и разборке нуклеотидной последовательности на риды. Основная функция программы – сборка гена. Программная реализация сборщика, осуществлённая в данном проекте, работает в рамках определённой модели.

  1. Все фрагменты гена (риды), подающиеся на вход сборщика, принадлежат только одной спирали ДНК.
  2. Программа не учитывает ошибки, произошедшие в ридах в ходе секвенирования.
  3. Программа начинает собирать нуклеотидную последовательность с заданного рида.
  4. У всех ридов имеются перекрытия.
  5. Программа соединяет риды по принципу большей длины перекрытия.

Модуль сборки гена принимает на вход файл с ридами одинаковой длины, либо разной. Причем заданный начальный рид должен стоять на первой строке в файле

 

Суть алгоритма заключалась в анализе перекрытий поданных ридов и написании функции, которая является основой данного программного кода.

 

Перспективы использования результатов работы

  1. Сделать возможным подачу ридов с обеих спиралей ДНК.
  2. Реализовать разбиение на риды той же длины, что указал пользователь.

Сотрудничество с вузом/учреждением при создании работы

НИЦ «Курчатовский институт»

Награды/достижения (в каких конкурсах и с какими результатами выставлялась ранее эта работа)

Открытая городская научно-практическая конференция «Курчатовский проект — от знаний к практике, от практики к результату» – победитель

Мнение автора

«Во время работы над проектом было изучено огромное количество материала в области биологии и информатики.

Я благодарен проекту «Инженерный класс в московской школе» за возможность участвовать в исследовательской деятельности и представлять результаты работы для обсуждения экспертного жюри на открытой городской научно-практической конференции.

Конференция была проведена на очень хорошем уровне, было приятно выступать перед высококвалифицированным жюри и видеть заинтересованность в моей проектной работе. Надеюсь, что подобные проекты будут продолжать существовать и развиваться»