Национальный центр биотехнологической информации (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 доступно гораздо больше функций, которые я продемонстрирую одну за другой в следующем посте.