bgzip - 참조 설명서, 옵션, 명령 예제


이름

bgzip - 블록 압축/압축 해제 유틸리티

개요

bgzip [-cdfhikrt] [-b virtualOffset] [-I index_name] [-l compression_level] [-s size] [-@ threads] [file]

설명

Bgzip은 gzip(1)과 유사한 방식으로 파일을 압축하며 gzip(1)과 호환됩니다. 파일은 일련의 작은(64K 미만) 'BGZF' 블록으로 압축됩니다. 이렇게 하면 압축 파일에 대해 색인을 작성하고 전체 파일의 압축을 풀지 않고도 데이터의 일부를 검색하는 데 사용할 수 있습니다.

명령줄에 파일이 지정되지 않은 경우 bgzip은 표준 입력을 표준 출력으로 압축(또는 -d 옵션을 사용하는 경우 압축 해제)합니다. 파일이 지정되면 압축됩니다(또는 -d로 압축 해제). -c 옵션을 사용하면 결과가 표준 출력에 기록됩니다. 그렇지 않으면 bgzip을 압축할 때 접미사가 .gz인 새 파일에 기록하고 원본을 제거합니다. 압축을 풀 때 입력 파일에는 .gz 접미사가 있어야 하며 출력 이름을 만들기 위해 제거됩니다. 다시 압축 해제가 완료되면 입력 파일이 제거됩니다.

옵션

--binary

Bgzip은 입력이 텍스트 파일일 때 BGZF 블록이 개행으로 끝나도록 시도합니다. 이에 대한 예외는 단일 라인이 BGZF 블록(64Kb)보다 큰 경우입니다. 이는 블록의 시작이 텍스트 레코드의 시작일 가능성이 높기 때문에 인덱스를 사용하여 압축된 스트림에서 임의 액세스를 수행하는 도구를 지원할 수 있습니다.

이 옵션은 줄 바꿈 위치를 무시하고 텍스트 파일을 바이너리 콘텐츠인 것처럼 처리합니다. 이것은 또한 텍스트 파일의 동작을 bgzip 버전 1.15 및 이전 버전으로 복원합니다.

-b, --offset INT

가상 파일 위치(0 기반 비압축 오프셋)에서 표준 출력으로 압축을 풉니다. -c 및 -d를 의미합니다.

-c, --stdout

표준 출력에 기록하고 원본 파일을 변경하지 않고 유지합니다.

-d, --decompress

압축을 풉니다.

-f, --force

묻지 않고 파일을 덮어쓰거나 알려진 압축 파일 이름 확장자(예: .gz)가 없는 파일을 묻지 않고 압축 해제합니다. 묻지 않고 둘 다 하려면 --force를 두 번 사용하십시오.

-g, --rebgzip

블록 오프셋이 일치하는 압축 파일을 생성하려면 기존 인덱스를 사용하십시오. 색인은 -I file.gzi 옵션을 사용하여 지정해야 합니다. 이는 원본 파일을 만들 때와 동일한 압축 라이브러리 및 수준이 사용 중이라고 가정합니다. 당신이 무엇을하고 있는지 알지 못한다면 그것을 사용하지 마십시오.

-h, --help

도움말 메시지를 표시합니다.

-i, --index

압축하는 동안 BGZF 인덱스를 생성합니다. -I 옵션을 사용하지 않는 한 압축 파일 이름에 .gzi가 추가됩니다.

-I, --index-name FILE

색인 파일 이름.

-k, --keep

작업 중에는 입력 파일을 삭제하지 마십시오.

-l, --compress-level INT

압축할 때 사용할 압축 수준입니다. 압축 라이브러리에서 설정한 기본 수준의 경우 0에서 9까지 또는 -1입니다. [-1]

-r, --reindex

기존 압축 파일에서 인덱스를 다시 작성하십시오.

-s, --size INT

INT 바이트(압축되지 않은 크기)를 표준 출력으로 압축 해제합니다. -c를 의미합니다.

-t, --test

압축 파일의 무결성을 테스트합니다.

-@, --threads INT

사용할 스레드 수[1].

BGZF 형식

bgzip으로 작성된 BGZF 형식은 http://samtools.github.io/hts-specs/SAMv1.pdf에서 제공되는 SAM 형식 사양에 설명되어 있습니다.

압축 파일을 연결할 수 있는 gzip 기능을 사용합니다. 입력 데이터는 압축 전후(압축 헤더 포함) 모두 64KB 이하의 블록으로 나뉩니다. 각 블록은 gzip 파일로 압축됩니다. gzip 헤더에는 식별자가 'BC'인 추가 하위 필드와 모든 헤더를 포함한 압축된 블록의 길이가 포함됩니다.

GZI 형식

인덱스 형식은 BGZF 파일의 압축된 오프셋과 압축되지 않은 오프셋 쌍을 나열하는 이진 파일입니다. 압축된 각 오프셋은 BGZF 블록의 시작을 가리킵니다. 압축되지 않은 오프셋은 압축되지 않은 데이터 스트림의 해당 위치입니다.

모든 값은 little-endian 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 라이브러리는 원래 Bob Handsaker에 의해 구현되었으며 원격 파일 액세스 및 메모리 내 캐싱을 위해 Heng Li에 의해 수정되었습니다.

또한보십시오

gzip(1), tabix(1)