bgzip - Утилита сжатия/распаковки блоков
bgzip [-cdfhikrt] [-b virtualOffset] [-I index_name] [-l compression_level] [-s size] [-@ threads] [file]
Bgzip сжимает файлы аналогично gzip(1) и совместим с ним. Файл сжат в серию небольших (менее 64 КБ) блоков «BGZF». Это позволяет создавать индексы для сжатого файла и использовать их для извлечения частей данных без необходимости распаковывать весь файл.
Если в командной строке файлы не указаны, bgzip сжимает (или распаковывает, если используется опция -d) стандартный ввод в стандартный вывод. Если указан файл, он будет сжат (или распакован с -d). Если используется опция -c, результат будет записан в стандартный вывод, иначе при сжатии bgzip запишет в новый файл с суффиксом .gz и удалит оригинал. При распаковке входной файл должен иметь суффикс .gz, который будет удален, чтобы сделать выходное имя. Опять же, после завершения распаковки входной файл будет удален.
Bgzip попытается гарантировать, что блоки BGZF заканчиваются новой строкой, когда входным файлом является текстовый файл. Исключением является случай, когда одна строка больше, чем блок BGZF (64 КБ). Это может помочь инструментам, которые используют индекс для выполнения произвольного доступа к сжатому потоку, поскольку начало блока, вероятно, также будет началом текстовой записи.
Этот параметр обрабатывает текстовые файлы, как если бы они были двоичным содержимым, игнорируя расположение символов новой строки. Это также восстанавливает поведение текстовых файлов до версии bgzip 1.15 и более ранних версий.
Распаковать в стандартный вывод из позиции виртуального файла (несжатое смещение на основе 0). Подразумевает -c и -d.
Запись в стандартный вывод, сохранение исходных файлов без изменений.
Распаковать.
Перезаписывайте файлы без запроса или распаковывайте файлы с неизвестным расширением имени файла для сжатия (например, .gz) без запроса. Используйте --force дважды, чтобы сделать и то, и другое без запроса.
Попробуйте использовать существующий индекс для создания сжатого файла с соответствующими смещениями блоков. Индекс необходимо указать с помощью параметра -I file.gzi. Обратите внимание, что это предполагает использование той же библиотеки сжатия и уровня, что и при создании исходного файла. Не используйте его, если вы не знаете, что делаете.
Отображает справочное сообщение.
Создайте индекс BGZF при сжатии. Если не используется параметр -I, к нему будет добавлено имя сжатого файла с расширением .gzi.
Имя файла индекса.
Не удаляйте входной файл во время работы.
Уровень сжатия для использования при сжатии. От 0 до 9 или -1 для уровня по умолчанию, установленного библиотекой сжатия. [-1]
Перестройте индекс для существующего сжатого файла.
Распаковать байты INT (несжатый размер) в стандартный вывод. Подразумевает -с.
Проверьте целостность сжатого файла.
Количество используемых потоков [1].
Формат BGZF, написанный bgzip, описан в спецификации формата SAM, доступной по адресу http://samtools.github.io/hts-specs/SAMv1.pdf.
Он использует функцию gzip, которая позволяет объединять сжатые файлы. Входные данные разбиваются на блоки размером не более 64 килобайт как до, так и после сжатия (включая заголовки сжатия). Каждый блок сжимается в файл gzip. Заголовок gzip включает дополнительное подполе с идентификатором «BC» и длиной сжатого блока, включая все заголовки.
Формат индекса представляет собой двоичный файл со списком пар сжатых и несжатых смещений в файле BGZF. Каждое сжатое смещение указывает на начало блока BGZF. Несжатое смещение — это соответствующее местоположение в несжатом потоке данных.
Все значения хранятся как 64-битные целые числа без знака с прямым порядком байтов.
Содержимое файла:
uint64_t number_entries
за которыми следуют пары number_entries:
uint64_t compressed_offset
uint64_t uncompressed_offset
# Compress stdin to stdout
bgzip < /usr/share/dict/words > /tmp/words.gz
# Make a .gzi index
bgzip -r /tmp/words.gz
# Extract part of the data using the index
bgzip -b 367635 -s 4 /tmp/words.gz
# Uncompress the whole file, removing the compressed copy
bgzip -d /tmp/words.gz
Библиотека BGZF была первоначально реализована Бобом Хэндсакером и модифицирована Хенгом Ли для удаленного доступа к файлам и кэширования в памяти.
gzip(1), tabix(1)