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].
Примечания
- ↑ 1 2 3 Zhang, 2016.
- ↑ Lauren Mills. Common File Formats (англ.) // Current Protocols in Bioinformatics. — 2003.
- ↑ GLIMMER . Дата обращения: 19 апреля 2018. Архивировано 2 ноября 2013 года.
- ↑ GENSCAN . Дата обращения: 19 апреля 2018. Архивировано из оригинала 5 мая 2018 года.
- ↑ Deng et al, 2017.
- ↑ 1 2 GFF3, Summary . Дата обращения: 13 апреля 2017. Архивировано 22 июля 2017 года.
- ↑ 1 2 3 4 Generic Model Organism Database, GFF2 . Дата обращения: 9 мая 2014. Архивировано 17 мая 2014 года.
- ↑ GFF Versions, GMOD . Дата обращения: 9 мая 2014. Архивировано 19 июля 2014 года.
- ↑ 1 2 Generic Model Organism Database, GTF . Дата обращения: 9 мая 2014. Архивировано 19 июля 2014 года.
- ↑ GFF3, Description of the Format . Дата обращения: 13 апреля 2017. Архивировано 22 июля 2017 года.
- ↑ Generic Model Organism Database, GFF3 . Дата обращения: 9 мая 2014. Архивировано 19 июля 2014 года.
- ↑ CIGAR . Дата обращения: 19 апреля 2018. Архивировано из оригинала 30 сентября 2002 года.
- ↑ Stanke M., Diekhans M., Baertsch R., Haussler D. Using native and syntenically mapped cDNA alignments to improve de novo gene finding. (англ.) // Bioinformatics. — 2008. — Vol. 24, no. 5. — P. 637—644. — doi:10.1093/bioinformatics/btn013. — PMID 18218656.
- ↑ GFFREAD . Дата обращения: 19 апреля 2018. Архивировано 19 апреля 2018 года.
- ↑ Wormbase . Дата обращения: 19 апреля 2018. Архивировано 19 апреля 2018 года.
- ↑ 1 2 GFF Convertation, GMOD . Дата обращения: 9 мая 2014. Архивировано 19 июля 2014 года.
Литература
- Hongen Zhang. Overview of Sequence Data Formats // Statistical Genomics. — New York, NY: Springer New York, 2016. — С. 3—17. — ISBN 978-1-4939-3576-5, 978-1-4939-3578-9.
- Feilong Deng, Shi-Yi Chen, Zhou-Lin Wu, Yongsong Hu, Xianbo Jia, Song-Jia Lai. GFFview: A Web Server for Parsing and Visualizing Annotation Information of Eukaryotic Genome // Journal of Computational Biology. — Oxford Journals, 2017.