GFF (формат файла)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

GFF (англ. General Feature Format, GFF) — формат файлов, используемый для хранения разметки генов и других элементов последовательностей ДНК, РНК и белков. Используемое для такого типа файлов расширение обозначается как .GFF. Формат был предложен исследователями из Института Сенгера, его версия GFF2 (старейшая из ныне используемых) вышла в 1998 году[1][2].

Общие сведения[править | править код]

Появление технологий секвенирования нового поколения сделало задачу расшифровки генома более простой и доступной. Существуют программы, позволяющие идентифицировать в полученной нуклеотидной последовательности того или иного организма такие функциональные элементы, как гены, экзоны, интроны, стартовые и стоп-кодоны, мотивы, сайты сплайсинга и т. д.[3][4]. Формат GFF часто используется для хранения таких элементов генома[1].

Файл в формате GFF — это текстовый файл, где для каждого функционального элемента генома отводится одна строка. Каждая строка содержит 9 полей, разделенных знаком табуляции[5]. Такая структура файла позволяет легко и быстро извлекать необходимые данные, а также обрабатывать их такими средствами, как bash (например, команды grep, sort и др.), простыми скриптами awk и perl[6].

Ниже представлен пример файла в формате GFF[7]:

IV     curated  mRNA   5506800 5508917 . + .   Transcript B0273.1; Note "Zn-Finger"
IV     curated  5'UTR  5506800 5508999 . + .   Transcript B0273.1
IV     curated  exon   5506900 5506996 . + .   Transcript B0273.1
IV     curated  exon   5506026 5506382 . + .   Transcript B0273.1
IV     curated  exon   5506558 5506660 . + .   Transcript B0273.1
IV     curated  exon   5506738 5506852 . + .   Transcript B0273.1
IV     curated  3'UTR  5506852 5508917 . + .   Transcript B0273.1

В этом примере хранятся данные только об одной мРНК, которая охватывает весь представленный диапазон. Запись включает участки типо 5'UTR, 3'UTR и exon. Все они сгруппированы в транскрипт под названием B0273.1. Также мРНК имеет дополнительную заметку.


Примеры веб-сервисов и баз данных, которые могут выдавать файлы в формате GFF: UniProt, Ensembl Genomes, mirBAse.

Версии GFF[править | править код]

В настоящий момент используются три версии формата файлов GFF[8]:

  • GFF Version 2 (GFF2);
  • Gene Transfer Format (GTF);
  • GFF Version 3 (GFF3).

GFF2 имеет ряд недостатков. Наиболее существенным является то, что он может представлять только двухуровневые иерархии элементов, и, соответственно, не может справиться с трёхуровневой иерархией типа ген → транскрипт → экзон. Сейчас он объявлен устаревшим[7]. Формат GTF является уточнением второй версии GFF2, и иногда называется как GFF2.5[9].
В данный момент, наиболее современной является версия GFF3. В отличие от предыдущих версий[6], GFF3:

  • Обеспечивает возможность поддержки многих уровней иерархии элементов
  • Разграничивает имя/идентификатор элемента и предположение о его принадлежности к той или иной категории
  • Ограничивает поле «type» (см. таблицу) одним словарем допустимых типов элементов
  • Позволяет одиночному элементу (например, экзон) принадлежать сразу к нескольким группам

Помимо этого, версии формата GFF отличаются девятым полем: см. раздел «Структура формата GFF».

Структура формата GFF[править | править код]

Каждая строка в файле формата GFF содержит 9 колонок, разделенных знаком табуляции[1]. Каждая колонка называется полем и имеет своё назначение[10]. Список названий полей и их содержание в разных версиях формата приведены ниже.

Номер поля Название поля Описание
1 seqid Название (идентификатор) последовательности, где находится данный элемент. Идентификатор может содержать любые символы из набора [a-zA-Z0-9.:^*$@!+_?-].
2 source Источник определения элемента, в качестве которого может выступать программа, или база данных, или экспериментальная проверка, или организация (например, TAIR англ.). Фактически, уточняя собой элемент, поле «source» расширяет её онтологию.
3 type Тип элемента. Является либо термином Sequence Ontology, например, «CDS» (белок-кодирующая последовательность), «stop_codon» (стоп-кодон) «exon» (экзон), либо номером доступа SO с синтаксисом вида SO:000000. В любом случае, это либо сам элемент (sequence_feature, SO:0000110), либо его потомок (is_a child of)
4 и 5 start и end Начальные и конечные положительные целочисленные координаты элемента в последовательности, нумерация которых начинается с единицы.

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

Для элементов с нулевой длиной, (например, сайты вставки), начало равняется концу, а подразумеваемый сайт находится справа от указанной координаты в направлении конца.

6 score Вес элемента, число с плавающей запятой. Смысл веса строго не определён, однако настоятельно рекомендуется использовать E-value для элементов, определённых по сходству последовательностей, и P-value для элементов, предсказанных ab initio.
7 strand Направление элемента относительно цепи, на которой располагается: «+», если направление 5'->3', «-», если направление 3'->5', «.», если направление отсутствует.

Также может использоваться «?» для элементов, направление которых неизвестно.

8 frame (GTF, GFF2) или phase (GFF3) Рамка считывания или фаза для белок-кодирующих последовательностей. В форматах GFF2 и GTF frame указывает, какому основанию участка соответствует первое основание кодона рамки: первому (0), второму (1) или третьему (2), являясь тем самым остатком от деления на 3 длины всех предыдущих кодирующих фрагментов. «.» указывается, когда описываемый участок нельзя отнести к первым трем случаям.
В формате GFF3 phase тоже принимает значения 0, 1 или 2 и указывает количество оснований, которые должны быть удалены с начала этого элемента, чтобы достичь первого основания следующего кодона.
9 attribute Поле для дополнительной информации, например, для группировки отдельных наборов записей под одним названием. Здесь прописываются идентификаторы элементов более высоких порядков, к примеру, группировка интронов и экзонов в предсказание одного определённого гена.

Поле 9 в различных версиях[править | править код]

Поле group/attribute[7] используется для решения нескольких задач:

  • объединить в одну группу элементы, принадлежащие одной последовательности (например, разные экзоны одного гена);
  • дать элементу имя, тем самым облегчив его поиск в файле;
  • добавить заметки об элементе;
  • добавить альтернативное имя.

В формате GFF2 поле 9 называется group. Атрибуты поля отделены от их значений пробелом, между двумя парами «атрибут-значение» ставится точка с запятой. Пример использования поля group в формате GFF:

Chr3 giemsa heterochromatin 4500000 6000000 . . . Band 3q12.1 ; Note "Marfan's syndrome"

В формате GTF вместо поля group записывается attribute, которое включает два обязательных атрибута[7]:

gene_id — уникальный идентификатор для геномного локуса транскрипта; если он не указан, тогда нет гена, связанного с определённым элементом;

transcript_id — уникальный идентификатор для предсказанного транскрипта; если он не указан, тогда нет транскрипта, связанного с описанным элементом.

Такие атрибуты предназначены для обработки нескольких транскриптов и одной и той же области генома. Пример использования поля attribute в формате GTF[9]:

AB000381 Twinscan  CDS          380   401   .   +   0  gene_id "001"; transcript_id "001.1";

В формате GFF3 атрибуты поля записываются через «=», а между каждой парой «атрибут=значение» ставится точка с запятой[11]. Список всех атрибутов девятого поля в GFF3:

Название

атрибута

Описание
ID Уникальный идентификатор. Каждый идентификатор не может повторяться в одном файле GFF.
Name Отображаемое для пользователя имя. В отличие от ID, не обязан быть уникальным.
Alias Второе имя. Используется для обозначения имени локуса или номера доступа. Как и Name, не обязан быть уникальным.
Parent Идентификатор характеристики на 1 уровень выше. Уникален для GFF3 и поддерживает его многоуровневую иерархию.
Target Идентификатор типа выравнивания: ДНК-ДНК или белок-ДНК. Формат значения: «target_id start end [strand]», где strand является необязательным и может быть «+» или «-».
Gap Идентификатор типа выравнивания, в котором присутствуют гэпы. Формат выравнивания берется из CIGAR[12].
Derives_from Используется для устранения неоднозначности отношения между одной функцией и другой, когда связь является временной, а не чисто структурной «частью». Это необходимо для полицистронных генов.
Note Дополнительная заметка.
dbxref Ссылка на базу данных.
Ontology_term Перекрестная ссылка на онтологию.

Пример поля attribute в формате GFF3:

##gff-version 3
ctg123 . mRNA            1300  9000  .  +  .  ID=mrna0001;Name=sonichedgehog
ctg123 . exon            1300  1500  .  +  .  ID=exon00001;Parent=mrna0001
ctg123 . exon            1050  1500  .  +  .  ID=exon00002;Parent=mrna0001

Использование GFF[править | править код]

GFF — простой и стандартизованный файловый формат. Он используется для хранения результатов предсказания или экспериментального определения генов и более сложных функциональных элементов генома.
«Экспериментальные» GFF-файлы могут быть полезными для проверки предсказанных методами биоинформатики элементов генома[13].

Программы, использующие формат GFF:

Программа Описание
GFF3 online validator Валидация файлов формата GFF3
GenSAS Сервер для аннотаций последовательностей
Integrated Genome Browser Просмотр данных РНК-секвенирования и ChIP-секвенирования вдоль аннотации генома
Jalview (англ.) Просмотр и редактирование множественных выравниваний
STRAP Поиск элементов во множественных выравниваниях

Конвертирование GFF2 в GFF3[править | править код]

Существует несколько серверов, позволяющих перевести файл из GFF2 в формат GFF3[14][15]. Однако каждый из них немного по-разному интерпретирует исходные данные в файле GFF2, что создает проблемы при конвертации и ограничивает возможность их применения[16].

Например, если в поле feature версии GFF2 термин не соответствует стандартам Sequence Ontology (SO) (англ.), то это необходимо каким-либо образом исправить при переводе в формат GFF3[16].

Примечания[править | править код]

Литература[править | править код]