Home Phred Score (Base Call Quality Score)
Post
Cancel

Phred Score (Base Call Quality Score)

Definition


Sequencing 결과로 나온 base call이 얼마나 정확한지 나타내는 수치입니다. Fastq 파일 내 각 read의 네 번 째 line을 구성합니다. Phred+33 encoding과 ASCII 표기법을 사용합니다. 아래와 같은 계산식으로 score를 산출합니다.

$ Q = -10log_{10}^{(e)} $

e는 base call 결과가 틀렸을 확률을 의미합니다.

결과값을 음수로 변환하기 때문에 x축(e)이 증가하면 y축(phred score)은 감소합니다. 그리고 y축은 log scale에 따라 변화하기 때문에 x축 값이 $10^{n}$ 단위로 증가/감소하면 y축 값은 n 단위로 증가/감소 합니다.

Phred score 20은 e가 0.01임을 의미합니다. 곧, base call error 확률이 1%이며, 100개 base call 중에서 1개의 error base를 포함하고 있음을 나타냅니다. 동시에 call accuracy가 99%임을 뜻합니다.

Phred score 10 = probability of error 10% = call accuracy 90%

Phred score 20 = probability of error 1% = call accuracy 99%

Phred score 30 = probability of error 0.1% = call accuracy 99.9%

Phred+33 encoding과 ASCII 표기법


Phred score는 왜 +33 encoding과 ASCII 표기법을 사용할까요?

Illumina sequencer 데이터는 일반적으로 phred score 0~40 범위 안에서 출력됩니다. 0~9는 1byte를 사용하지만, 10 이상부터는 2byte를 사용합니다. 수 백 만 개의 read가 포함된 fastq 파일에서 quality score를 효율적으로 저장하기 위해서는 2byte보다 1byte 정보로 quality를 표현하는 것이 현명한 선택입니다. 또한 base와 quality score는 1:1 match이므로 반드시 한 자리수로 표현해야 fastq 파일에서 정확히 사용할 수 있습니다. ASCII 표기법은 하나의 character가 1byte를 차지하므로 위 두 가지 목적에 적합합니다.

ASCII(American Standard Code for Information Interchange, 미국 정보 교환 표준 부호) 표기법은 1963년 미국 ANSI에서 표준화한 정보교환용 7bit(8bit=1byte) 부호체계 입니다. 1byte 중 7bit만 사용하도록 만든 이유는 나머지 1bit를 통신 에러 검출 용도로 비워두었기 때문입니다. 000(0x00)부터 127(0x7F)까지 총 128개 부호가 사용됩니다.

DecHxOctChar
00000NUL(null)
11001SOH(start of heading)
22002STX (start of text)
33003ETX(end of text)
44004EOT(end of transmission)
55005ENQ(enquiry)
66006ACK(acknowledge)
77007BEL(bell)
88010BS(backspace)
99011TAB(horizontal tab)
10A012LF(NL line feed, new line)
11B013VT(vertical tab)
12C014FF(NP from feed, new page)
13D015CR(carriage return)
14E016SO(shift out)
15F017SI(shift in)
1610020DLE(data link escape)
1711021DC1(device control 1)
1812022DC2(device control 2)
1913023DC3(device control 3)
2014024DC4(device control 4)
2115025NAK(negative acknoledge)
2216026SYN(synchronous idle)
2317027ETB(end of trans. block)
2418030CAN(cancel)
2519031EM(end of medium)
261A032SUB(substitute)
271B033ESC(escape)
281C034FS(file separator)
291D035FS(group separator)
301E036RS(record separator)
311F037US(unit separator)
3220040Space

Dec 기준 0~32는 print가 불가능한 제어 문자입니다. 9~13, 32는 공백이 포함된 문자입니다. 따라서 quality score로 사용 불가한 위 문자를 제외하고 33부터 표기합니다.(Phred+33)

DecHxOctChar
3321041!
3422042
3523043#
3624044$
3725045%
3826046&
3927047
4028050(
4129051)
422A052*
432B053+
442C054,
452D055-
462E056.
472F057/
48300600
49310611
50320622
51330633
52340644
53350655
54360666
55370677
56380708
57390719
583A072:
593B073;
603C074<
613D075=
623E076>
633F077?
6440100@
6541101A
6642102B
6743103C
6844104D
6945105E
7046106F
7147107G
7248110H
7349111I

앞서 설명드린 내용처럼 illumina sequencer 데이터는 일반적으로 phred score 0~40 범위 안에서 출력됩니다. 즉, 위 !(33=0+33)부터 I(73=40+33)까지 ASCII 문자가 quality score로 사용됩니다. 물론 아래 문자도 사용될 수 있습니다.

DecHxOctChar
744A112J
754B113K
764C114L
774D115M
784E116N
794F117O
8050120P
8151121Q
8252122R
8353123S
8454124T
8555125U
8656126V
8757127W
8858128X
8959129Y
905A132Z
915B133[
925C134/
935D135]
945E136^
955F137_
9660140`
9761141a
9862142b
9963143c
10064144d
10165145e
10266146f
10367147g
10468148h
10569149i
1066A152j
1076B153k
1086C154l
1096D155m
1106E156n
1116F157o
11270160p
11371161q
11472162r
11573163s
11674164t
11775165u
11876166v
11977167w
12078170x
12179171y
1227A172z
1237B173{
1247C174|
1257D175}
1267E176~
1277F177DEL

Phred score와 ASCII 문자표를 사용하는 이유, 방식까지 살펴봤습니다.

This post is licensed under CC BY 4.0 by the author.