CoderCastrov logo
CoderCastrov
Наука о данных

Извлечение данных из биологических баз данных: UniProt

Извлечение данных из биологических баз данных: UniProt
просмотров
3 мин чтение
#Наука о данных

Обзор

Каждый день тысячи новых статей публикуются, и эти результаты систематически включаются в несколько баз данных. Использование баз данных облегчает визуализацию и понимание естественных явлений. Однако иногда данные разбросаны по нескольким записям или разным базам данных, что затрудняет процесс принятия решений. Чтобы иметь общее представление о биологическом явлении, ниже приведен пример скрипта на языке Python для доступа, визуализации и анализа базы данных UniProt.

Получение данных

Сначала мы используем базовый URL http://www.uniprot.org/uniprot/ и добавляем идентификатор к базовому URL и расширение файла ".txt". С помощью этого полного URL мы получаем доступ к базе данных UniProt с помощью библиотеки request.

Затем мы создаем каталог для сохранения всех данных, которые мы загружаем из UniProt. Вы можете использовать аналогичную структуру, как на изображении. Загрузка данных необязательна, но может быть полезна для работы в автономном режиме. Теперь, чтобы загрузить некоторые данные, мы генерируем случайную выборку из всех белков внутри человеческого протеома. Этот список содержит идентификатор UniProt каждого выбранного белка. Этот список можно изменить на список заранее выбранных целей.

Визуализация

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

Размер

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

Мы перебираем все записи и строим характеристики выбранных белков.

Местоположение и функции

Для доступа к данным о местоположении и функциях в записи UniProt мы используем контролируемую лексику, используемую базой данных, словари местоположения и GO-терминов можно найти здесь. Оба файла мы поместили в папку с определениями. Мы загружаем словарь и используем похожую стратегию, создавая шаблон с помощью библиотеки регулярных выражений и выполняя итерацию по файлу.

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

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

Снижение размерности

Для облегчения визуализации данных мы собираемся использовать некоторые из наиболее распространенных методов снижения размерности. У нас есть набор образцов (белки), который содержит бинарную информацию о их местоположении или функции. Поскольку все атрибуты в образцах больше трех, представление данных становится сложным. Чтобы уменьшить количество измерений, необходимых для представления данных, мы используем несколько вариантов метода PCA внутри библиотеки sklearn, используя:

Кластеризация

Путем преобразования данных мы можем ясно видеть, что есть некоторые кластеры точек, которые имеют похожую функцию или похожее местоположение. Чтобы выбрать эти кластеры, мы используем алгоритм DBSCAN из sklearn. DBSCAN принимает два важных параметра: eps и min_samples. Eps относится к расстоянию между ближайшим соседом точки данных, а min_samples относится к минимальному количеству образцов для формирования кластера. Мы можем сгенерировать приближение для обоих параметров: для min_samples мы собираемся использовать логарифм от количества точек данных, а для eps мы вычисляем гистограмму минимального расстояния между точками. Из данных гистограммы мы берем среднее значение первых трех значений интервалов, которое мы можем использовать для eps.

После того, как у нас есть правильные параметры для DBSCAN, мы можем вычислить кластеры с помощью функции DBSCAN из sklearn. Алгоритм сгенерирует список размером, равным количеству точек данных, этот список содержит метку каждой точки данных. Используя словарь, мы можем создать простую функцию, которая выбирает все точки данных, принадлежащие заданному кластеру.

Со всей этой информацией мы можем визуализировать полученные кластеры.

Теперь вы можете использовать методы снижения размерности и кластеризации для анализа данных, полученных из базы данных UniProt. Полный код этого учебника можно найти на моем GitHub, нажав здесь. А в следующей статье этой серии я покажу вам некоторые методы парсинга веб-страниц для загрузки данных взаимодействия из IntAct.