CRAM (формат файла)
Расширение имени файла | .набрать |
---|---|
Разработано | Маркус Си-Янг Фриц и др .; Вадим Залунин; Джеймс Бонфилд |
Тип формата | Биоинформатика |
Открытый формат ? | да |
Веб-сайт | www |
Сжатая карта ориентированного на ссылку выравнивания (CRAM) — это формат сжатого столбчатого файла для хранения биологических последовательностей, выровненных по эталонной последовательности , первоначально разработанный Маркусом Си-Янгом Фрицем и др . [1]
CRAM был разработан как эффективная альтернатива форматам файлов Sequence Alignment Map (SAM) и Binary Alignment Map (BAM) на основе ссылок. Он необязательно использует геномную ссылку для описания различий между выровненными фрагментами последовательности и эталонной последовательностью, что снижает затраты на хранение. Кроме того, каждый столбец в формате SAM разделяется на отдельные блоки, что повышает степень сжатия. Файлы CRAM обычно на 30–60 % меньше файлов BAM, в зависимости от данных, содержащихся в них.
Реализации CRAM существуют в htsjdk, [2] хтслиб , [3] JОбзор , [4] и Скрэмбл. [5]
Спецификация формата файла поддерживается Глобальным альянсом по геномике и здоровью (GA4GH). [6] со спецификацией, доступной на странице набора инструментов EBI. [7]
Формат файла [ править ]
Базовая структура файла CRAM представляет собой серию контейнеров, первый из которых содержит сжатую копию заголовка SAM. Последующие контейнеры состоят из заголовка сжатия контейнера, за которым следует серия фрагментов, которые, в свою очередь, содержат сами записи выравнивания, отформатированные как серия блоков.
CRAM-файл:
Магическое число Контейнер
(заголовок SAM)Контейнер
(Данные)... Контейнер
(Данные)Контейнер
(ЭОФ)
Контейнер:
Контейнер
ЗаголовокСжатие
ЗаголовокСрез ... Срез
Срез:
Срез
ЗаголовокБлокировать Блокировать ... Блокировать
CRAM создает записи из набора рядов данных, описывающих компоненты выравнивания. Заголовок сжатия контейнера указывает, какая серия данных в каком блоке кодируется, какой кодек будет использоваться, а также метаданные, специфичные для кодека (например, таблица длин кодов символов Хаффмана ). Хотя ряды данных можно смешивать в одном блоке, их разделение обычно улучшает сжатие и обеспечивает возможность эффективного выборочного декодирования там, где требуются только некоторые типы данных.
Выборочный доступ к файлу CRAM предоставляется через индекс (с суффиксом имени файла «.crai»). В данных, отсортированных по хромосомам и позициям, это указывает, какая область покрывается каждым срезом. В несортированных данных индекс можно использовать для простой выборки N й контейнер. Выборочное декодирование также может быть достигнуто с использованием заголовка сжатия для пропуска определенных серий данных, если требуются частичные записи.
История [ править ]
Год | Версия(и) | Примечания |
---|---|---|
2010-11 | до CRAM | Первоначальный документ, описывающий справочный формат. Он не использовал имя CRAM, а назывался mzip. Это программное обеспечение было реализовано на Python в качестве прототипа и демонстрации основных концепций. [1] |
2011-12 | 0.3–0.86 | Вадим Залунин из Европейского института биоинформатики (EBI) разработал первую реализацию под названием CRAM в виде пакета CRAMtools. [8] написан на языке программирования Java . |
2012 | 1.0 [9] | Реализовано в Java CRAMtools. [10] |
2013 | Реализация C добавлена в Scramble [11] [5] инструмент, разработанный Джеймсом Бонфилдом из Института Уэлкома Сэнгера . | |
2013 | 2.0 | Изменения включали поддержку более одной ссылки на срез (полезно для сильно фрагментированных сборок), лучшее кодирование вспомогательных тегов SAM, разделение программного клипа и вставленных баз на отдельные серии данных, метаданные для отслеживания количества записей и баз. на каждый срез и поправки к ряду данных BF (флаг BAM). |
2013 | Добавлен в htslib (0.2.0). | |
2014 | 2.1 [12] | Добавлены блоки EOF, чтобы помочь идентифицировать усеченные файлы. |
2014 | Добавлен в htsjdk (1.127). | |
2014 | 3.0 [13] | Включение кодеков lzma и rans для сжатия блоков, а также нескольких контрольных сумм для обеспечения целостности данных. |
2018 | Реализация JavaScript как часть JBrowse [4] (1.15.0), Роб Бьюлс. | |
2021 | Реализация Rust в Noodles [14] | |
2023 | 3.1 [15] | Официально принят. (Проект от 2019 г.) |
CRAM версии 4.0 существует в качестве прототипа в Scramble. [5] Первоначально продемонстрирован в 2015 году, но еще не принят в качестве стандарта.
См. также [ править ]
- SAM (формат файла)
- Карта двоичного выравнивания
- Сжатие данных повторного секвенирования генома
- Список форматов файлов для молекулярной биологии
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б Си-Ян Фриц, Маркус; Лейнонен, Раско; Кокрейн, Гай; Бирни, Юэн (май 2011 г.). «Эффективное хранение данных высокопроизводительного секвенирования ДНК с использованием эталонного сжатия» . Геномные исследования . 21 (5): 734–740. дои : 10.1101/гр.114819.110 . ISSN 1549-5469 . ПМК 3083090 . ПМИД 21245279 .
- ^ «Хтсйдк от Института Броуда» . samtools.github.io . Проверено 14 октября 2018 г.
- ^ «Самтулс» . www.htslib.org . Проверено 14 октября 2018 г.
- ↑ Перейти обратно: Перейти обратно: а б «JBrowse · Быстрый встраиваемый геномный браузер, созданный с использованием HTML5 и JavaScript» . jbrowse.org . Проверено 14 октября 2018 г.
- ↑ Перейти обратно: Перейти обратно: а б с Бонфилд, Джеймс К. (14 июня 2014 г.). «Инструмент преобразования Scramble» . Биоинформатика . 30 (19): 2818–2819. doi : 10.1093/биоинформатика/btu390 . ISSN 1460-2059 . ПМК 4173023 . ПМИД 24930138 .
- ^ «ГА4ГХ» . www.ga4gh.org . Проверено 14 октября 2018 г.
- ^ ЭМБЛ-ЭБИ. «Набор инструментов CRAM <Программное обеспечение <Европейский архив нуклеотидов <EMBL-EBI» . www.ebi.ac.uk. Проверено 14 октября 2018 г.
- ^ «Вадимзалунин/зубитель» . Гитхаб . 08.08.2017 . Проверено 14 октября 2018 г.
- ^ «Спецификация CRAM 1.0» (PDF) .
- ^ "enasequence/cramtools" . Гитхаб . 02.10.2018 . Проверено 14 октября 2018 г.
- ^ "jkbonfield/io_lib" . Гитхаб . 16.10.2018 . Проверено 14 октября 2018 г.
- ^ «Спецификация CRAM 2.1» (PDF) .
- ^ «Спецификация CRAM 3.0» (PDF) .
- ^ https://github.com/zaeleus/noodles/
- ^ «Спецификация CRAM 3.1» (PDF) .