Программное обеспечение для распознавания вторичных структур ДНК, связанных с эпигенетическими факторами, методами машинного обучения

Рассмотрение алгоритма нахождения зависимостей между вторичными структурами ДНК и их эпигенетическими факторами. Проектирование структуры программного обеспечения. Разработка подсистемы дисперсионного анализа "ANOVA"; пользовательского интерфейса.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 02.09.2018
Размер файла 6,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

— wm_title(str) задает название главного окна;

— geometry() - задает размеры окна;

— resizable() - запрещает изменение размера окна;

— config() - задает внешний стиль окна (цвет фона, ширину граней, тип границ и т. п.).

Toplevel() - класс окна, наследуемый от класса главного окна, имеет те же методы и свойства что и главное окно.

Label() - виджет который используется для вывода текста или изображения.

Button() - виджет кнопки, может содержать текст или изображение, связывает функцию или метод Python с каждой кнопкой. При нажатии кнопки Tkinter автоматически вызывает эту функцию или метод.

Entry() - виджет поля ввода, используется для ввода или отображения одной строки текста, получает введенные пользователем значения.

Text() - виджет для отображения текстовой информации.

OptionMenu() - это вспомогательный класс, который создает всплывающее меню и кнопку для его отображения.

Canvas() - виджет предоставляет структурированные графические возможности для Tkinter. Это универсальный виджет, который можно использовать для рисования графиков и графиков, создания графических редакторов и реализации различных видов пользовательских виджетов.

Примеры всех используемых виджетов (Рис. 31).

Рис. 32. Пример всех используемых виджетов.

7. Результат работы

Результатом данной исследовательской работы является программное обеспечение. При запуске, которого пользователь может наблюдать главное окно (Рис. 33).

Рис. 33. Главное окно запущенного ПО.

В главном окне пользователь может загрузить 3 различных файла содержащие данные о гене нажав на кнопку <F> перед соответствующим полем: Secondary structure, Epigenetic или Primary DNA. При нажатии на кнопку <F> напротив полей Secondary structure или Epigenetic откроется окно (Рис. 34) для загрузки файла формата “*.bed. При нажатии на кнопку <F> напротив поля Primary DNA откроется окно загрузки файла, но уже поддерживаемым форматом будет “*.fasta”, а также “*.csv.

Рис. 34. Пример окна загрузки файлов.

После загрузки всех файлов пользователь должен ввести желаемый коэффициент корреляции между паттернами в поле Enter correlation:”, выше этого коэффициента будет производится расчет. Далее в поле Enter step:” пользователем вводиться желаемый шаг подсчета плотности гена. После ввода этих данных пользователь может выбрать шаблон поиска паттернов, по графику вторичных структур ДНК, в виде одного из двух значений <Hollow> (с англ. - впадина) или <Pick> (с англ. - пик) находящиеся в выпадающем списке, по умолчанию стоит шаблон поиска <Hollow>.

По завершению ввода параметров для поиска паттернов пользователь может нажать на кнопку <Find Pattern>, после чего произведется расчет всех найденных паттернов в заданных файлах по заданным параметрам, главное окно выведет графики плотностей двух файлов, файла вторичных структур ДНК в виде графика красного цвета и файла эпигенетических факторов в виде графика синего цвета, также будет выведена информация о найденных паттернах, вид каждого из них, нормализованный вид, номер паттерна, его корреляция, координаты расположения в гене и количество всех паттернов. (Рис. 35).

Рис. 35. Вывод найденных паттернов и обзор всего гена.

В верхней части окна, где присутствует вывод всего гена пользователь, для удобного представления данных, может производить различные действия с помощью тулбара (Рис. 36).

Рис. 36. Тулбар для взаимодействия с графиком.

Функции тулбара:

- Увеличение/уменьшение масштаба вывода графиков;

- Перемещение по графику;

- Сохранение видимой области графика в виде изображения;

- Вывод в строку состояния координаты нахождения курсора, соответственно плотности и номер базовой пары;

- Перемещение по истории взаимодействия пользователя с графиком;

- Возврат в исходное состояние графика.

Пример увеличенного масштаба графика с помощью тулбара (Рис. 37).

Рис. 37. Увеличенный масштаб графика.

Пример окна сохранения видимой области графика в виде изображения (Рис. 38).

Рис. 38. Сохранение видимой области графика.

В нижней части программы пользователь имеет возможность просматривать найденные паттерны в исходном виде и в нормализированном, также можно просматривать параметры паттерна (Рис. 39).

Рис. 39. Паттерн исходный, нормализированный и его параметры.

Пользователь может просматривать различные паттерны с помощью кнопок “<” и “>”. Вывод двух различных паттернов (Рис. 40).

1

Рис. 40. Вывод двух различных паттернов.

Для кластеризации паттернов имеется выпадающий список между кнопок “<” и “>”, в списке можно выбрать три значения: “Класс 1”, “Класс 2”, “Отсутствие класса”, с помощью кнопок <Class No. 1>, <Class No. 2> и <None> соответственно. По умолчанию стоит значение <None> (Рис. 41).

Рис. 41. Выпадающий список классов.

После произведения пользователем кластеризации паттернов ему следует загрузить файл хранящий первичную структуру ДНК в поле Primary DNA, а также ввести область классификации в Classification area:” начало области поиска в поле Start и конец в поле End(Рис. 42).

Рис. 42. Область ввода данных для классификатора.

Далее пользователь может нажать кнопку <Make classification> для построения модели машинного обучения на основе выбранной им обучающей выборке. Произведется классификация выбранной области с помощь построенного классификатора. Откроется новое окно, в котором выводятся графики выбранной области, а также все паттерны, которые нашел классификатор в данной области. В этом же окне можем наблюдать результат анализа (Рис. 43)

Рис. 43. Окно вывода информации о построенной модели и найденных ею паттернов.

8. Описание вклада каждого участника

В ходе выполнения данной работы Маткаримовым Отабеком Ойбековичем были сделаны следующие задачи:

- разработка алгоритма подсчета плотностей распределения функциональных элементов на хромосоме; рассмотрение основных алгоритмов для решения задачи классификации; изучение специализированных библиотек языка Python; реализация различных моделей машинного обучения на языке Python; исследование качества основных моделей от внутренних параметров алгоритмов построения; проведено описание и исследование метрик для оценки точности алгоритмов машинного обучения; сохранение модели для интеграции с интерфейсом.

В ходе выполнения данной работы Поливода Денисом Эдуардовичем были сделаны следующие задачи:

- проведение обзора существующих программных решений;

- разработка алгоритма нахождения паттернов по плотности распределения функциональных элементов на хромосоме;

- разработка и дальнейшая оптимизация алгоритма расчета параметров;

- рассмотрены и проанализированы существующие методы машинного обучения;

- изучены основы языка Python и специализированные библиотеки расширения Tkinter;

- разработан интерфейс приложения;

- осуществлена интеграция модулей и модели классификации в программе.

Заключение

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

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

Полученные результаты могут быть использованы в работах для построения подобных классификаторов. По результатам проведения экспериментальной части было решено использовать метод машинного обучения логистическую регрессию. Итоговая программа может быть использована учеными биологами в целях анализа структур ДНК и их классификации, но стоит учитывать факт возможности неточности итогового результата, так как на тестовых примерах средний результат 0,76 по Precision. При написании ВКР и выполнении поставленных задач по биологическим вопросам мы тесно общались кандидатом физико-математических наук МГУ имени М.В. Ломоносова - Попцовой Марии Сергеевной по “Биофизики”, а по вопросам связанные с алгоритмами нахождения паттернов и машинного обучения нас консультировала и проверяла наши результаты наш научный руководитель по выполнению выпускной квалификационной работы, старший преподаватель МИЭМ Волкова Лилия Леонидовна, за что им огромное спасибо.

Список литературы

1. Доклады VI Международной конференции "Математическая биология и биоинформатика". Пущино, 16-21 октября 2016 г. -- МАКС Пресс Москва, 2016. -- С. 124-125.

2. Gaffney D. J. et al. Controls of nucleosome positioning in the human genome //PLoS genetics. - 2012. - Т. 8. - №. 11. - С. e1003036.

3. Hon G., Ren B., Wang W. ChromaSig: a probabilistic approach to finding common chromatin signatures in the human genome //PLoS computational biology. - 2008. - Т. 4. - №. 10. - С. e1000201.

4. Ernst J., Kellis M. ChromHMM: automating chromatin-state discovery and characterization //Nature methods. - 2012. - Т. 9. - №. 3. - С. 215.

5. Bedtools: a powerful toolset for genome arithmetic. - URL: http://bedtools.readthedocs.io/en/latest/ (дата обращения 21.03.2018).

6. Лелевич В. В. Биологическая химия //пособие для студентов лечебного и педиатрического факультетов/ВВ Лелевич.-Гродно: ГрГМУ. - 2009.

7. Frequently Asked Questions: Data File Formats. - URL: https://genome.ucsc.edu/FAQ/FAQformat.html (дата обращения 21.03.2018).

8. Финкельштейн А. В., Птицын О. Б. Вторичные структуры полипептидных цепей // Физика белка. -- Москва: КДУ, 2005. -- С. 86--95. -- ISBN 5-98227-065-2.

9. Ферстер Э., Ренц Б. Методы корреляционного и регрессионного анализа/Пер. с нем. и предисловие ВМ Ивановой. - 1983.

10. Gao W. et al. Discovering geometric patterns in genomic data //Proceedings of the ACM Conference on Bioinformatics, Computational Biology and Biomedicine. - ACM, 2012. - С. 147-154.

11. Palach J. Parallel Programming with Python. - Packt Publishing Ltd, 2014.

12. Mьller A. C., Guido S. Introduction to machine learning with Python: a guide for data scientists. - " O'Reilly Media, Inc.", 2016.

13. Большакова Е. И. и др. Автоматическая обработка текстов на естественном языке и компьютерная лингвистика: учеб. пособие //М.: МИЭМ. - 2011. - Т. 272. - С. 3.

14. Gйron A. Hands-on machine learning with Scikit-Learn and TensorFlow: concepts, tools, and techniques to build intelligent systems. - " O'Reilly Media, Inc.", 2017.

15. Основы линейной регрессии. - URL: http://statistica.ru/theory/osnovy-lineynoy-regressii/ (дата обращения 10.04.2018).

16. Seber G.A.F., Lee A.J. Linear regression analysis. - John Wiley & Sons, 2012.

17. Keller J.M., Gray M.R., Givens J.A. A fuzzy k-nearest neighbor algorithm // IEEE transactions on systems, man, and cybernetics. - 1985. - No. 4. - P. 580-585.

18. Larose D.T. k?Nearest Neighbor Algorithm // Discovering Knowledge in Data: An Introduction to Data Mining. - 2005. - P. 90-106.

19. Фонарев А. Ю., Дьяконов А. Г. Обзор алгоритмов бустинга //Москва. - 2012.

20. Бустинг. URL: http://www.machinelearning.ru/wiki/index (дата обращения 12.04.2018).

21. Hearst M.A. et al. Support vector machines // IEEE Intelligent Systems and their Applications. - 1998. - Vol. 13. - No. 4. - P. 18-28.

22. Manevitz L.M., Yousef M. One-class SVMs for document classification // Journal of Machine Learning Research. - 2001. - Vol. 2. - No. Dec. - P. 139-154.

23. Шитиков В. К., Мастицкий С. Э. Классификация, регрессия и другие алгоритмы Data Mining с использованием R. - 2017.

24. Чистяков С. П. Случайные леса: обзор //Труды Карельского научного центра Российской академии наук. - 2013. - №. 1.

25. Nasrabadi N. M. Pattern recognition and machine learning //Journal of electronic imaging. - 2007. - Т. 16. - №. 4. - С. 049901.

26. Polo G. PyGTK, PyQT, Tkinter and wxPython comparison //The Python Papers. - 2008. - Т. 3.

27. PyQT5 - URL: https://pythonspot.com/en/pyqt5/ (дата обращения 15.04.2018).

28. Tkinter Documentation - URL: https://wiki.python.org/moin/TkInter (дата обращения 15.04.2018).

29. wxPython - URL: https://wiki.python.org/moin/WxPython (дата обращения 15.04.2018).

30. LibAvg - URL: https://www.libavg.de/site/projects/libavg/wiki/WikiStart (дата обращения 16.04.2018).

31. An Introduction to Tkinter - URL: http://effbot.org/tkinterbook (дата обращения).

32. Chaudhary B. Tkinter GUI Application Development Blueprints. - Packt Publishing Ltd, 2015.

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.