Сайт использует файлы cookie. Продолжая пользоваться нашим сайтом, вы соглашаетесь на использование нами ваших данных.
Узнать больше
Принять и продолжить

База данных генов
Open Longevity Genes

Гены человека, ассоциированные со старением и продолжительностью жизни
Новости проекта
Что сделано за 2019–2020
Данные
В самом начале мы основывались на данных, выгруженных из базы GeneAge и собственных данных, собранных вручную. Теперь у нас гораздо больше собственных данных, а также информации, полученной из других баз.

  1. Данные об исследованиях ассоциации гена со старением:
    • Эксперименты с модификацией гена и увеличением продолжительности жизни млекопитающих/не млекопитающих/культур клеток;
    • Возрастные изменения экспрессии гена/активности белка у человека/млекопитающих/не млекопитающих;
    • Вмешательство в работу гена/продукта предотвращает связанное со старением ухудшение процесса или системы;
    • Аллельный полиморфизм, ассоциированный с долголетием или возрастным фенотипом;
    • Ассоциация гена с ускоренным старением у человека;
    • Участие продукта гена в регуляции генов, связанных со старением;

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

  3. Наиболее древний таксон, у которого ген консервативен, согласно NCBI HomoloGene.

  4. Обоснование (критерии отбора гена в базу) — список критериев отбора, которым соответствует ген (исследований ассоциации данного гена со старением).

  5. Общая информация о гене:
    • Название, HGNC, синонимы;
    • Локализация гена на хромосоме (регион, начало региона, конец региона, минус-/плюс- цепь);
    • ID для получения данных из других баз;
    • Описание функции гена, предоставленное RefSeq;

  6. Общая информация о продукте гена:
    • Классы белка с Human Protein Atlas;
    • Локализация в клетке;
    • Данные о концентрации белка в плазме крови;

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

  8. Болезни, ассоциированные с геном.

  9. Данные об экспрессии гена (уровень экспрессии в разных тканях, тканеспецифичность с Human Protein Atlas).

  10. Данные о возрастных изменениях экспрессии гена: уменьшается, увеличивается или изменяется неоднозначно экспрессия гена с возрастом.

  11. Данные из Gene Ontology (биологический процесс, клеточный компонент, молекулярное взаимодействие).
Программный продукт
Open Longevity Genes представляет собой web-приложение, хранящее данные о генах в СУБД MySQL. Часть данных собирается по API сторонних ресурсов, находящихся в открытом доступе, таких как Gene Age, Entrez Gene и Protein Atlas и Gene Ontology, часть внесена биологами и приведена к единой форме.

Серверная часть (бэкэнд) включает в себя API и CMS и написана на PHP 7.2 с использованием фреймворка Yii 2.

Клиентская часть (фронтенд) — одностраничное веб-приложение, написанное на JavaScript (Angular 8, Typescript).

В самом начале разработки был создан прототип на РHP, включавший в себя минимальный базовый функционал для представления данных из базы. Биологи получили возможность добавлять данные в базу данных через CMS. Вплоть до ноября 2019 года почти вся разработка шла на бэкенде.

В ноябре прошлого года мы перенесли логику из прототипа в новый проект на фреймворке Yii 2 и разделили бэкенд и фронтенд.

Мы провели работы по администрированию и настройке интеграции, настроили сборку и поставки frontend и backend приложений через GitLab CI, настроили стенды для разработки и тестирования и настроили окружения. По мере разработки часть функционала была перенесена с бэкэнда на фронтенд.


С этого момента параллельно идет работа над
  • API;
  • CMS для работы биологов с данными в базе;
  • Веб-приложением на Angular;

Ниже приведены основные изменения, которые происходили в проекте до настоящего времени.
Бэкенд
Проект использует БД MySQL. Все изменения структуры производятся с помощью миграций. Часть с API (app/genes) пишется близко к принципам слоеной архитектуры, соблюдая изоляцию логики от фреймворка и инфраструктуры.


  1. Сбор и хранение данных, администрирование БД:
    - Реализация парсеров для сбора данных из других баз:
    • Получение белковых классов из Human Protein Atlas
    • Получение экспрессии генов с NCBI
    • Описания из NCBI RefSeq
    • Получение GO terms с Gene Ontology
    • Данные о гомологах человеческих генов с HomoloGene NCBI
    • Получение Summary, Protein information, Gene information с Human Protein Atlas
    - Работы по изменению первоначальной структуры базы данных:
  • Вынесение возраста в отдельную сущность, объединение филумов c возрастом в млн. лет
  • Вынесение поля с причинами отбора для проставления связей many-to-many
  • Вынесение поля с функциональными классами (сейчас «возрастозависимые процессы/системы») для проставления связей many-to-many

- Разработка новой структуры базы данных (субд MySQL);
- Создание отдельных таблиц для хранения отдельных сущностей и общих связей many-to-many с таблицей генов;
- Написание консольных скриптов на PHP с фреймворком Yii 2 для миграций;
- Доработкам по структуре БД для исследований, проводившихся над геном.


2. Разработка API для получения данных о генах методом GET в формате JSON. Сейчас представлены только методы на чтение. На текущем этапе в API есть методы для:
  • Получения общего списка всех занесенных в базу генов с краткой информацией по каждому гену;
  • Получения полной информации (см. Данные) об одном гене по его внутреннему идентификатору и символу гена;
  • Получения списка генов, принадлежащих одновременно ко всем перечисленным функциональным классам;
  • Получения списка генов, имеющих заданное значение возрастного изменения экспрессии;
  • Получения списка последних отредактированных генов;
  • Получения общего списка всех занесенных в базу генов с GO terms по каждому гену для поиска генов по Gene Ontology (Биологический процесс, Клеточный компонент, Молекулярное взаимодействие).

Все API-методы принимают GET-параметр lang (en, ru) для вывода данных на соответствующем языке.
Система управления контентом (CMS)
CMS представляет собой веб-приложение на PHP, написанное на фреймворке Yii 2 и завязанное на структуре базы данных. Она предоставляет биологам интерфейс для добавления и редактирования данных со следующим функционалом:

  1. Регистрация и авторизация.
  2. Страницы с общими списками и поиском, а также формы для добавления и редактирования данных для всех полей, присутствующих в базе.
  3. Разделение прав пользователей (администратор, модератор, редактор, волонтер), часть функций доступна только администратору.
  4. Страница управления пользователями.
  5. Страница отдельного гена в CMS позволяет редактировать его поля и проставлять связи с другими объектами через поля с выпадающими списками и автоподстановками. В CMS можно редактировать:
  • Информация о самом гене:
    • Происхождение (выпадающий список)
    • Изменение экспрессии (выпадающий список)
    • Функциональные кластеры (список с автокомплитом)
    • Связь со старением/долголетием (ru, en, текстовые поля)
    • Эволюция (ru, en, текстовые поля)
    • Редактирование полей, перенесенных из GeneAge (название, положение, ориентация и т.д.)

  • Информация об исследованиях гена (формы для заполнения данных об исследованиях, часть полей - простый текстовые, часть - выпадающие списки с автокомплитом и автоматическим сохранением новых добавленных сущностей:
    • Эксперименты с увеличением продолжительности жизни
    • Возрастные изменения экспрессии гена/активности белка
    • Вмешательство в работу гена/продукта улучшает связанный со старением процесс
    • Участие продукта гена в регуляции генов, связанных со старением
    • Ассоциации гена с ускоренным старением у человека
    • Ассоциация гена с долголетием или ассоциированным с возрастом фенотипом

  • Информация о функциях гена (часть полей - простый текстовые, часть - выпадающие списки с автокомплитом и автоматическим сохранением новых добавленных сущностей;

  • Отдельное редактирование и добавление сущностей, используемых в формах для исследований и в информации о самом гене, редактирование названий:
    • Методы вмешательства
    • Результаты вмешательства (для продолжительности жизни)
    • Модельные организмы
    • Линии организмов
    • Образцы тканей
    • Виды возрастных изменений гена/белка
    • Процессы
    • Результаты вмешательства (для процессов)
    • Прогерические синдромы
    • Аллельные полиморфизмы
    • Виды активности белка
    • Эффекты в долголетии
    • Причины отбора
    • Функциональные классы
    • Филумы
    • Классы белков

6. Для всех сущностей доступен ввод названий на русском и английском языках для последующего вывода нужной локализации через API во фронтенд.
7. Добавлен changelog.
8. Формы для заполнения данных об исследованиях ассоциации гена со старением.
9. Добавлено массовое создание генов по NCBI ID.
Фронтенд
  1. Приложение на Angular 8 состоит из отдельных модулей и компонентов. Они часто используют одни и те же входные данные, но не связаны между собой. Это позволяет легко масштабировать приложение и обеспечивает быструю работу клиента, так как модули используются по мере необходимости. Для разработки UI компонентов используется библиотека Angular Material 8.2. На сегодняшний день реализован следующий функционал:

  1. Модели для получения данных с бэкенда. Маппирование данных, обработка данных и приведение к нужному виду, проверки для вывода данных на страницах веб-приложения.

  2. Поиск по генам в базе и автоподсказчик. Гены можно искать по названию, HGNC или ID в базе. До начала ввода в автоподсказчике поиска выводятся 5 предложенных генов. Во время поиска выделяется часть искомого слова при совпадении.

  3. Список генов на главной и вывод общей информации о них;
  • Пункты в списке гена отображаются и подгружаются порционно;
  • Изначально гены представлены в порядке добавления в базу;
  • Добавлена сортировка по имени и эволюционному возрасту генов и фильтрация позиций в списке по возрастозависимым процессам и значениям возрастного изменения экспрессии. Можно сбросить все примененные фильтры или только один;
  • Переключение представления списка генов в виде таблицы/карточек;
  • Контекстное меню со ссылками на другие базы и кнопкой добавления/удаления гена из Избранного;

4. Страница гена с более подробным описанием гена:
  • Вывод следующих данных от бэкенда:
    • Название, HGNC, синонимы;
    • Участие гена в возрастозависимые процессах;
    • Данные о происхождении гена: эволюционный возраст гена и наиболее древний таксон, у которого обнаружен ген, а также наиболее древний таксон, у которого ген консервативен;
    • Ортологи гена;
    • Данные об исследованиях ассоциации гена со старением;
    • Критерии отбора гена в базу;
    • Старые текстовые описания эволюции гена, его функций и доказательств ассоциации гена со старением;
    • Уровень экспрессии гена в разных тканях и органах;
    • Ссылки на этот ген в других базах;
    • Данные из Gene Ontology (биологический процесс, клеточный компонент, молекулярное взаимодействие).

Некоторые данные сгруппированы по вкладкам или перенесены в разворачивающиеся панели.

5. Страница «Избранное» и добавление/удаление гена из раздела.
6. Сервисы для работы нашим API, API PubMed, LocalStorage, локализацией и прочие.
7. Страница «Новости» со списком свежих публикаций из PubMed, касающихся генов, представленных в базе. Блок «Новости» на главной с тремя последними статьями.
8. Отображение последних отредактированных генов.
9. Переключение языка и форматирование дат в зависимости от языка.
10. Страницы со статическим контентом.
11. Добавлена информация в раздел справки по API с примерами ответов.
12. Интерфейс веб-приложения адаптируется под мобильные устройства и изменяется для удобства использования на небольшом разрешении.
Цель — создать инструмент, который поможет в поиске новых целевых биохимических способов продления жизни и прогнозировании эффективности терапии старения.
Что не так с другими базами данных?
Существует большое количество баз данных генов и белков. Зачем ещё одна?
Мало про старение
Баз данных генов, связанных именно со старением, на самом деле не так много. Явно недостаточно.
Неактуальные данные
Среди них есть базы, которые давно не обновлялись. Данные в них не актуальны и требуют перепроверки.
Неправильная структура
Сам подход к наполнению базы обычно ограничивается задачей собрать в одном месте какие-то определенные данные о каждом гене. Поэтому базы данных предоставляют информацию о конкретных генах, но не дают возможности сравнивать их или их продукты между собой.
Устаревшие технологии
Сайты многих баз были разработаны давно или же при разработке использовались уже устаревшие подходы и технологии. Это часто сказывается на удобстве пользования. Например, во время поиска приходится угадывать, какое название гена из множества существующих синонимов нужно ввести.
Нет API
Не всегда есть или документирован API, не всегда отдает то, что вы ожидаете получить.
Что мы хотим сделать
Для изучения старения необходим комплексный подход. Здесь пригодятся базы данных со всеми известными генами, связанными со старением. В нашем продукте будут:
Полнота и актуальность информации
Когда появилось большинство генов? С какими заболеваниями они связаны? В какие процессы они вовлечены?
Удобство работы с данными
Все необходимые инструменты для поиска, сортировки, фильтрации и сопоставления генов по различным параметрам.
Удобство для специалистов
Работа с базой как на сайте, так и при помощи запросов к API. Удобство и стабильная работа приложения.
Удобство для всех
Увлекательный, интуитивно понятный интерфейс вовлечёт в изучение генетики любого. Таков план.
comments powered by HyperComments