Национальный центр биотехнологической информации (NCBI) - это серия баз данных, в которых хранятся молекулярные и библиографические данные. С момента своего создания в 1988 году NCBI привлекла многих исследователей для доступа к своим молекулярным данным (например, последовательности ДНК, последовательности РНК, последовательности белка) и соответствующим библиографическим данным. Доступ к данным можно получить с помощью Entrez системы поиска данных, которая предоставляет пользователям доступ к базам данных NCBI. В качестве альтернативы можно также использовать утилиты программирования Entrez (известные как EUtils) для выполнения запросов в базах данных. Этот программный подход можно легко реализовать с помощью Biopython. Biopython позволяет исследователям выполнять поиск в базах данных NCBI и загружать записи с помощью скрипта Python. В следующих разделах я предложу пошаговое руководство по использованию Biopython для выполнения запроса в базе данных NCBI.
Настройка Biopython
- Убедитесь, что Python 2 или Python 3 готов на вашем компьютере (Python 3 рекомендуется выполнять действия, указанные в этом руководстве). В противном случае вы можете легко получить установщик и выполнить шаги установки отсюда.
- Есть несколько способов установить Biopython. Однако я бы порекомендовал PIP. Просто откройте терминал (или командную строку в Windows) и введите
pip install biopython
- Подождите несколько секунд, пока установка не будет завершена, и вы не закончите шаг по настройке Biopython на вашем компьютере.
Редактор программирования
- Чтобы начать писать свой код Python, настоятельно рекомендуется Jupyter Lab, поскольку он предлагает интерактивную среду кодирования, в которой вы можете выполнять кодирование в реальном времени и визуализировать свой вывод в каждом разделе вашего кода. Для получения дополнительной информации вы можете посмотреть это.
- Чтобы установить Jupyter Lab, откройте терминал (или командную строку в Windows) и введите
pip install jupyterlab
- В том же терминале (или командной строке в Windows) введите
jupyter lab
- Приведенная выше команда запустит Jupyter Lab в вашем браузере по умолчанию, как показано ниже:
- Затем выберите Python 3 Notebook.
- Переименуйте файл записной книжки
- Вы готовы начать писать код Python в Jupyter Lab.
Начать кодирование
- В первой ячейке записной книжки импортируйте модули Entrez и SeqIO из Biopython.
from Bio import Entrez from Bio import SeqIO
- Затем создайте новую ячейку в записной книжке и установите параметр электронной почты, используя одну из своих учетных записей. Этот шаг не является обязательным, но рекомендуется, чтобы NCBI могла связаться с вами, если возникнут проблемы с использованием Entrez.
Entrez.email = "[email protected]"
- Теперь предположим, что мы ищем ген «accD» из E. Coli с помощью Entrez, мы можем использовать для этой цели Entrez.esearch. Вам нужно будет установить параметры «db» и «term» внутри функции esearch. «Db» относится к конкретной базе данных NCBI, в которой делается запрос, тогда как «термин» обозначает тексты запроса, которые состоят из названия гена и организма. Кроме того, мы также можем определить максимальное количество возвращаемых ссылок на записи, используя «retmax» в качестве необязательного параметра. В данном случае мы устанавливаем его на 20. Мы сохраняем всю полученную информацию в переменной «result_list».
handle = Entrez.esearch(db='nucleotide', term='accD[Gene Name] AND "E. coli"[Organism]', , retmax="20") result_list = Entrez.read(handle)
- Вы можете просмотреть полученный идентификатор последовательности, обратившись к свойству «IdList» возвращенного результата. Возвращаются только двадцать идентификаторов последовательностей. Как вы могли заметить, мы можем определить общее количество идентификаторов последовательностей в базе данных NCBI Nucleotide, используя свойство «Count», которое возвращает 6296. Это означает, что только 20 идентификаторов из 6296 идентификаторов хранятся в id_list. Если вы хотите иметь больше идентификаторов, вы можете настроить параметр «retmax» в функции Entrez.esearch.
id_list = result_list['IdList'] count = result_list['Count'] print(id_list) print("\n") print(count)
- Теперь пора загрузить полные записи последовательности из базы данных NCBI с помощью функции Entrez.efetch. Я просто использую один из идентификаторов последовательности «1563118780» для установки параметра id в функции efetch. Вы также можете установить тип файла для записи последовательности, используя параметр «rettype». В моем случае я установил его как «gb», что является файлом генбанка.
handle2 = Entrez.efetch(db='nucleotide', id='1563118780', rettype='gb')
- Наконец, используйте функцию SeqIO.read, чтобы прочитать запись последовательности из дескриптора файла и присвоить ее переменной (например, seq_record). Вы готовы получить доступ к информации о последовательности, указав ее свойства, такие как идентификатор, имя, описание или последовательность.
seq_record = SeqIO.read(handle2, "genbank") print(seq_record.id) print(seq_record.name) print(seq_record.description) print(repr(seq_record.seq))
Это простое руководство, показывающее один пример того, как мы можем использовать Biopython для очень простой биоинформатической работы. В Biopython доступно гораздо больше функций, которые я продемонстрирую одну за другой в следующем посте.