Skip to content

CRAM #

Find similar titles

3회 업데이트 됨.

Edit
  • 최초 작성자
    ihcho
  • 최근 업데이트
    shlee

Structured data

Category
Analysis

CRAM #

CRAM (Compressed Reference-oriented Alignment Map)은 BAM 파일과 유사한 형식으로 DNA 시퀀싱 데이터를 저장하는 column 형태의 파일 형식이다. CRAM은 데이터를 더 효율적으로 저장하기 위해 압축 알고리즘을 사용한다. CRAM은 SAM (Sequence Alignment MAP) 및 BAM (Binary Alignment MAP) 파일 형식을 참조하여 효율적으로 사용할 수 있게 설계되었다. CRAM 파일은 보관된 데이터에 따라 BAM 파일보다 30~60% 더 작다

파일확장자 #

CRAM 파일은 대개 filename.cram 확장자를 가진다. 유전체 데이터를 압축한 형식이기 때문에 이러한 이름이 붙여졌다. 특정 영역에 대한 조회를 빠르게 처리하기 위해, CRAM 파일에는 filename.crai라는 인덱스 파일이 사용된다. 이 파일은 CRAM 파일에서 조회하고자 하는 영역에 대한 위치 정보를 저장하고 있으며, 이를 이용하여 CRAM 파일에서 빠르게 조회를 할 수 있다.

CRAM 특징 #

CRAM 파일은 BAM 파일과 마찬가지로 다양한 바이오인포매틱스 도구에서 사용할 수 있다. CRAM은 BAM 파일보다 데이터를 더 효율적으로 저장하여 디스크 공간을 절약할 수 있다. 이러한 이유로 CRAM 파일은 대규모 유전체 시퀀싱 데이터를 처리하는 데 매우 유용하다. CRAM 파일은 다음과 같은 특징을 가진다.

작은 압축 파일 크기 #

CRAM 파일은 데이터를 압축하여 저장하므로 BAM 파일보다 더 작은 파일 크기를 가진다. 이는 디스크 공간을 절약할 수 있어 대규모 시퀀싱 데이터를 다루는 데 매우 유용하다.

빠른 읽기 속도 #

CRAM 파일은 BAM 파일보다 더 빠르게 읽을 수 있다. 이는 대규모 유전체 시퀀싱 데이터를 처리할 때 매우 중요하다.

데이터 압축 방식 선택 가능 #

CRAM 파일은 다양한 압축 알고리즘을 사용하여 데이터를 저장할 수 있다. 이를 통해 사용자는 필요한 압축 수준을 선택하여 파일 크기와 속도를 조정할 수 있다.

CRAM 파일은 SAMtools 패키지를 통해 생성할 수 있다. 또한, SAMtools는 CRAM 파일을 읽고 쓰기 위한 라이브러리를 제공한다. 따라서 대부분의 바이오인포매틱스 도구에서 CRAM 파일을 지원한다.

파일 형태 #

CRAM 파일은 바이너리 형식으로 저장되며, BAM 파일과 마찬가지로 순차적인 read alignment 정보를 포함한다. 각각의 read alignment 정보는 크게 헤더(header)와 바디(body)로 구성된다.

헤더는 BAM 파일의 헤더와 유사하게 데이터의 메타정보를 포함한다. 예를 들어, 시퀀싱 데이터를 생성한 기기의 정보, 데이터 생성 일자, 데이터 포맷, 압축 방식 등이 포함된다.

바디는 각 read alignment 정보를 저장하는 부분이다. 각 read alignment 정보는 크게 read 데이터와 alignment 정보로 구성된다. read 데이터는 시퀀서(sequencer)에서 생성된 유전체 시퀀싱 데이터를 나타낸다. alignment 정보는 read 데이터가 어떤 위치에서 어떤 염기서열에 매핑되었는지를 나타낸다.

파일 구성 #

CRAM 파일은 컨테이너와 슬라이스로 구성되어 있다. 컨테이너는 CRAM 파일을 여러 개의 묶음으로 나눈 것이며, 슬라이스는 컨테이너 내에서 데이터를 나타내는 블록 단위이다.

컨테이너는 CRAM 파일을 조각내어 저장하기 위해 사용된다. 하나의 컨테이너에는 여러 개의 슬라이스가 포함될 수 있으며, 하나의 슬라이스는 크기가 고정된 블록 단위이다. 각 컨테이너에는 슬라이스에 대한 메타데이터와 함께 슬라이스의 압축된 데이터가 저장된다.

CRAM 파일의 구조는 다음과 같다.

┌───────────────────┐
│     Container     │
├───────────────────┤
│     Container     │
├───────────────────┤
│       ...         │
├───────────────────┤
│     Container     │
├───────────────────┤
│ Slice | Slice |...│
├───────────────────┤
│ Slice | Slice |...│
├───────────────────┤
│       ...         │
├───────────────────┤
│ Slice | Slice |...│
└───────────────────┘

각 슬라이스는 하나 이상의 다음과 같은 블록으로 구성된다.

Core data block: 슬라이스에서 실제 데이터를 저장하는 블록 Compression header block: 슬라이스의 압축 헤더 정보를 저장하는 블록 Container header block: 슬라이스가 속한 컨테이너의 헤더 정보를 저장하는 블록 Slice header block: 슬라이스의 헤더 정보를 저장하는 블록

활용 #

CRAM 파일은 BAM 파일과 비교하여 크기가 작아지고 압축률이 높아지기 때문에, 대용량 시퀀싱 데이터를 저장하고 전송하는 데에 유용하게 사용될 수 있다. 또한, CRAM 파일은 SAM/BAM 파일과 마찬가지로 다양한 생물 정보 분석 도구에서 지원되기 때문에, 다양한 생물 정보 분석 분야에서 활용되고 있다.

CRAM 파일은 다음과 같은 분석에 유용하게 활용될 수 있다.

대용량 시퀀싱 데이터 분석 #

CRAM 파일은 BAM 파일에 비해 크기가 작아서, 대용량의 시퀀싱 데이터를 저장하고 전송하기에 적합하다. 또한, CRAM 파일은 BAM 파일과 호환되기 때문에, 다양한 생물 정보 분석 도구에서 지원되는 것이 장점이다.

염기서열 비교 분석 #

CRAM 파일은 BAM 파일과 마찬가지로, 염기서열 정보를 포함하고 있기 때문에, 염기서열 비교 분석에 유용하게 사용될 수 있다. 예를 들어, DNA 시퀀싱 데이터에서 SNV (Single Nucleotide Variation) 및 Indel (Insertion or Deletion)을 탐지하고 분석하는 데에 활용될 수 있다.

진화 생물학 분석 #

CRAM 파일에는 다양한 종의 시퀀싱 데이터가 포함될 수 있으며, 이러한 데이터를 활용하여 진화 생물학적 분석을 수행할 수 있다. 예를 들어, CRAM 파일을 활용하여 특정 유전자의 다양한 종에서의 발현 및 동등 발현 분석 등을 수행할 수 있다.

유전체 어셈블리 #

CRAM 파일은 유전체 어셈블리를 위한 데이터로도 활용될 수 있다. 예를 들어, CRAM 파일을 활용하여 여러 개의 DNA 시퀀싱 데이터를 결합하여 유전체 어셈블리를 수행할 수 있다.

요약하면, CRAM 파일은 대용량 시퀀싱 데이터 저장 및 전송, 염기서열 비교 분석, 진화 생물학 분석, 유전체 어셈블리 등 다양한 생물 정보 분석 분야에서 활용될 수 있다.

참고자료 #

EBI (European Bioinformatics Institute) SAMtools NCBI (National Center for Biotechnology Information) Broad Institute

관련키워드 #

SAM, BAM, CRAM

0.0.1_20240214_1_v81