본문 바로가기
Bioinformatics/Technology

SAM 파일 구조

by 임은천 2013. 4. 3.

SAM 파일은 염기 서열 파일들의 각 read에 대해서 필터링(filtering), 쳐내기(trimming), 묶기(grouping) 한 후에 참조 서열에 대해 해당 파일을 정렬(alignment)한 후에 생성되는 내용을 담은 파일이다.


SAM 파일의 가장 윗 부분에는 헤더가 있다. 대략 다음과 같이 생겼다.


@HD VN:1.3 SO:coordinate

@SQ SN:ref LN:45

@SQ SN:ref2 LN:40


여기에서 HD(header)는 헤더, VN(version number)은 버전 번호, SO는 정렬 순서(sorting order), SN(sequence name)은 서열 이름, LN(length)은 길이를 나타낸다.


여기에서는 좌표를 기준으로 정렬이 되었고, 서열의 이름은 ref와 ref2로 각각 45, 40의 길이를 가지고 있다. 즉, 이 정렬은 두 개의 참조 서열에 대한 정렬을 담고 있다.


다음으로 그 아래에는 각 서열에 대한 개별 정렬(alignment)을 보인다.


001 163 ref 7 30 8M4I4M1D3M = 37 39 TTAGATAAAGAGGATACTG * XX:B:S,12561,2,20,112

r002 0 ref 9 30 1S2I6M1P1I1P1I4M2I * 0 0 AAAAGATAAGGGATAAA *

r003 0 ref 9 30 5H6M * 0 0 AGCTAA *

r004 0 ref 16 30 6M14N1I5M * 0 0 ATAGCTCTCAGC *

r003 16 ref 29 30 6H5M * 0 0 TAGGC *

r001 83 ref 37 30 9M = 7 -39 CAGCGCCAT *


각 열은 다음의 의미를 가진다.


열 

이름 

형태 

설명 

1

QNAME 

문자열 

쿼리 이름(같은 이름은 같은 부분에서 왔음)

FLAG 

16비트 정수

비트 연산 플래그 

3

RNAME

문자열 

참조 서열 이름(헤더에서 있던 서열 중 한 가지) 

4

POS 

32비트 정수

참조 서열에서의 위치(1부터 시작)

5

MAPQ

8비트 정수 

매핑 품질 

6

CIGAR 

문자열 

매핑 형태(CIGAR) 문자열

7

RNEXT

32비트 정수 

짝을 이루는 참조 서열의 이름

8

PNEXT

32비트 정수 

짝을 이루는 참조 서열에서의 위치 

9

TLEN

32비트 정수 

템플릿의 길이

10

SEQ

문자열 

실제 서열

11

QUAL 

문자열

생어 점수(프레드 품질 점수 + 33)

 12

TAG

문자열

기타 정보를 포함함(없을 수도 있음) 


2번열 FLAG의 값은 다음과 같다.


비트 값

설명 

0x1

서열에서 다중 세그먼트를 가진 리드

0x2

정렬 프로그램에 의하면 각 세그먼트가 별로 안 좋게 정렬됨 

0x4

세그먼트가 매핑되지 않음(이 비트가 설정되면 값은 대부분 무시된다)

0x8

리드에서 매핑되지 않은 다음 세그먼트

0x10

SEQ는 역 방향으로 완전히 뒤집어짐 

0x20

리드의 다음 세그먼트의 SEQ는 역으로 뒤집어짐 

0x40

리드에서 첫 세그먼트 

0x80

리드에서 마지막 세그먼트

0x100

보조적 정렬

0x200

품질 제어를 통과하지 못함

0x400

PCR 또는 광학적 복제본


CIGAR 문자열은 다음을 뜻한다. 이것은 정렬이 어떤 식으로 이뤄져 있는지 설명해 준다.


설명자 

BAM에서의 설명자

설명 

M

정렬이 매칭됨

I

1

서열에 대해 삽입 발생 

D

2

서열에 대해 삭제 발생 

N

참조에서 스킵된 영역

S

4

가상 잘라내기(soft clipping, SEQ에 잘린 서열이 존재함) 

H

5

강제 잘라내기(hard clipping, SEQ에 잘린 서열이 존재하지 않음)

P

6

패딩(패딩된 참조에서 조용한 삭제)

=

7

서열이 매칭됨

X

서열이 미스매칭됨 


가장 마지막 열에 있는 태그는 다음과 같다.


태그

 종류

설명

X?

?

사용자를 위해 예비된 필드(Y?와 Z?도 마찬가지)

AM

i

최소한의 템플릿 독립적인 세그먼트의 매핑 품질

AS

i

정렬 프로그램에 의해 생성된 정렬 점수

BC

Z

바코드 서열

BQ

Z

기본 정렬 품질(BAQ, base alignment quality)로의 오프셋, 서열과 같은 길이를 가짐, BAQi=Qi-(BQi-64)

CC

Z

다음 히트의 참조 이름, "="은 같은 염색체를 위한 기호

CM 

색상 서열과 색상 참조 사이의 편집 거리

CP

i

다음 히트의 최왼쪽 좌표

CQ 

Z

리드의 원래 가닥에 있는 색상 리드 품질. QUAL과 같은 인코딩 방식이며, CS와 같은 길이

CS

Z

리드의 원래 가닥에 있는 색상 리드 서열. 프라이머 염기는 반드시 포함되어야 함

E2

Z

현재 염기가 에러로 판명될 때, 그 대신에 사용될 확률이 높은 두 번째 염기 후보

FI

i

템플릿에서 세그먼트의 색인 번호

FS

Z

세그먼트의 접미사 

FZ

B,S 

리드의 원래 가닥에 있는 플로우 신호 강도 (uint16_t)round(value * 100.0)으로 저장됨

LB

라이브러리. 만약 @RG가 있다면, RG-LG 태그와 같은 값을 가짐

HO

i

완전한 히트들의 수

H1

i

한 개 다른 히트들의 수 

H2

i

두 개 다른 히트들의 수 

HI

쿼리 히트 색인 번호, 정렬 레코드가 SAM에서 i번째 저장됨을 나타냄

 IH

i

현재 레코드에 있는 쿼리를 포함한 SAM에 저장된 정렬의 수 

MD

Z

미스매칭 위치의 문자열

MQ

i

메이트/다음 세그먼트의 매핑 품질

NH

i

현재 레코드에 있는 쿼리를 포함한 리포트된 정렬의 수 

NM

i

참조 서열로의 편집 거리

OQ

Z

원래의 염기 품질(일반적으로 재교정(recalibration) 전). QUAL과 동일한 인코딩

OP

원래 매핑 위치(일반적으로 재정렬(realignment) 전)

OC

Z

원래 CIGAR(일반적으로 재정렬 전)

PG

Z

프로그램. 만약 @PG가 있으면, PG-ID 태그와 일치하는 값

PQ

리드의 프레드 확률,  

PU

Z

플랫폼 단위. 만약 @RG가 있으면, RG-PU 태그의 값과 일치하는 값 

Q2

Z

메이트/다음 세그먼트의 프레드 품질. QUAL과 같은 인코딩

R2

Z

리드에서 메이트/다음 세그먼트의 서열 

RG

Z

리드 그룹. 만약 @RG가 헤더에 있으면, RG-ID 값과 일치하는 값 

SM

리드에 독립적인 매핑 품질 

TC

i

템플릿에 있는 세그먼트들의 수

U2

Z

가장 잘맞는 염기 값이 잘못되고, 두번째 염기 값마저 틀릴 프레드 확률. QUAL과 같은 인코딩 

UQ

i

세그먼트의 프레드 확률. 매핑이 정확한 것에 기반하여 변함



댓글