Программное обеспечение для распознавания вторичных структур ДНК, связанных с эпигенетическими факторами, методами машинного обучения
Рассмотрение алгоритма нахождения зависимостей между вторичными структурами ДНК и их эпигенетическими факторами. Проектирование структуры программного обеспечения. Разработка подсистемы дисперсионного анализа "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
...Подобные документы
Проектирование структур данных и пользовательского интерфейса. Разработка руководства системного программиста и пользователя. Основные элементы организации работы менеджера по работе с клиентами. Характеристика программного обеспечения ООО "Доминион+".
курсовая работа [1,7 M], добавлен 14.10.2012Формирование требований к системе. Описание входной и выходной информации. Концептуальное и логическое проектирование структуры и пользовательского интерфейса. Выбор средств реализации подсистемы. Реализация функциональности программного средства.
курсовая работа [1,3 M], добавлен 28.08.2012Специальное и общесистемное программное обеспечение. Разработка диаграммы прецедентов, классов, деятельности, состояний. Детальная реализация функциональных частей программного обеспечения. Разработка пользовательского интерфейса, методика испытаний.
курсовая работа [3,3 M], добавлен 26.01.2013Разработка интерфейса и программного обеспечения виртуальной библиотеки. Проектирование структуры экранов и навигационной системы. Построение прототипа пользовательского интерфейса. Тестирование и модификация прототипа. Экспертная оценка разработки.
курсовая работа [41,2 K], добавлен 19.12.2010Разработка программного обеспечения для автоматизированной системы калибровки и поверки комплекса технических средств ПАДК "Луг-1". Аналитический обзор аналогов. Проектирование пользовательского интерфейса. Средства разработки программного обеспечения.
дипломная работа [1,4 M], добавлен 17.12.2014Понятие локализации программного обеспечения как процесса его адаптации к культуре какой-либо страны. Перевод пользовательского интерфейса, документации и сопутствующих файлов программного обеспечения. Инструментарий для локализации. Языковые теги и коды.
презентация [243,7 K], добавлен 07.10.2013Программное обеспечение для обслуживания автосалона с графическим интерфейсом, возможностью хранения файлов на диске и поиском. Программное проектирование. Документирование программного обеспечения, его тестирование. Разработка руководства пользователя.
курсовая работа [1,7 M], добавлен 06.01.2013Освоение функций работы со структурами данных и файлами. Разработка программного обеспечения для создания, обработки сведений о сотрудниках учреждения. Реализация алгоритма программы в среде Microsoft Visual Studio 2010. Изучение руководства пользователя.
курсовая работа [3,3 M], добавлен 28.08.2012Общее описание разрабатываемого программного обеспечения, требования к его функциональности и сферы практического применения. Выбор инструментальных средств разработки. Проектирование структур баз данных и алгоритмов, пользовательского интерфейса.
дипломная работа [3,1 M], добавлен 19.01.2017Имитационное моделирование деятельности "Центра обслуживания абонентов". Диаграммы потоков данных. Выявление вариантов использования. Моделирование видов деятельности и взаимодействий. Проектирование пользовательского интерфейса и архитектуры приложения.
дипломная работа [1,3 M], добавлен 24.10.2010Анализ функциональной структуры и обеспечивающей части АСУ. Проектирование функциональной структуры подсистемы управления проблемами, разработка модели в среде CPN Tools и алгоритма работы. Описание программного и технического обеспечения проекта.
дипломная работа [5,6 M], добавлен 26.06.2011Описание особенностей подсистемы обеспечения медикаментами. Разработка структуры базы данных, схемы алгоритма и программного модуля, структуры реестра. Обоснование выбора языка программирования. Оценка надежности и классификация ошибок программы.
дипломная работа [1,3 M], добавлен 25.12.2014Понятие пользовательского интерфейса, требования к его разработке. Понятие диалога, типы диалога. Критерии хорошего диалога. Эвристические правила Якоба. Принципы построения интерфейсов. Факторы, влияющие на удобство работы с программным обеспечением.
презентация [2,9 M], добавлен 19.09.2016Классификация программного обеспечения, его особенности, назначение. Программное обеспечение для работы с текстом, изображением, прикладное, офисное, для работы в Интернете. Системы программирования, специфика программного обеспечения, что такое вирусы.
презентация [1,2 M], добавлен 25.02.2010Стандарты в сфере дистанционного обучения. Создание модели подсистемы анализа SCORM-пакетов (лекционный материал), написание ее программной реализации и обеспечение эффективного функционирования. Проектирование программного средства, его тестирование.
курсовая работа [1,7 M], добавлен 28.08.2012Техническое задание для разработки программного обеспечения "Больница". Обоснования для проведения разработки. Цель, назначение подсистемы. Требования ко всем видам обеспечения программы. Общесистемное программное обеспечение. Применение языка Delphi 6.0.
курсовая работа [832,9 K], добавлен 18.01.2010Характеристика основных потоков данных, существующих на предприятии. Способы и средства для разработки программного обеспечения. Проектирование пользовательского интерфейса. Разработка слоя взаимодействия с базой данных. Разработка слоя бизнес сервисов.
дипломная работа [750,8 K], добавлен 10.07.2017Требования к подсистеме создания Scorm-пакетов. Построение диаграммы потоков данных. Проектирование программного средства. Выбор средств реализации подсистемы. Организация взаимодействия приложения с базой данных. Реализация пользовательского интерфейса.
курсовая работа [634,2 K], добавлен 16.08.2012Выбор базовых программных средств для разработки оригинального программного обеспечения. Компоненты программно-методического комплекса проектирования токарных операций. Программное обеспечение для организации интерфейса программно-методического комплекса.
дипломная работа [2,8 M], добавлен 14.05.2010Подбор игрового движка и описание его основных характеристик. Разработка структуры, алгоритма и интерфейса программы. Проектирование иерархии классов. Выделение типового приема визуализации. Тестирование правильности работы программного обеспечения.
курсовая работа [3,1 M], добавлен 19.01.2017