DepthofCoverage
#
Find similar titles
- (rev. 14)
- lca
Structured data
- Category
- Biology
Table of Contents
Motivation #
유전체 분석을 하다보면 참조서열(Reference)에 short read 혹은 long read를 mapping 하는 과정에서 흔히 그 참조서열에 대한 read 들의 depth와 coverage값을 구하여 참조서열과 read들간의 simlilarity를 확인하게 된다. 하지만 depth, coverage 이 두 개념을 처음 접하게 되면 매우 헷갈리는 게 사실이다.
그렇다면 DNA 시퀀싱에서 Depth와 Coverage 의 값은 어떤 차이가 있는 것인가? 위키피디아 등을 살펴보면 depth와 coverage는 동일한 개념으로 각각의 base에 align되는 평균적인 read의 수로 표현할 수 있다. 하지만 다음 논문에서는 그 개념을 좀 더 이해하기 쉽게 breadth of coverage와 depth of coverage, 두 가지로 나누어 표현하였다.
참조 : http://www.danielecook.com/calculate-depth-coverage-bam-file/
Depth of Coverage #
개념 #
염기서열분석 Depth는 차세대 염기서열 분석에서 하나의 뉴클레오티드 위치에 어떤 염기가 시퀀싱 되어 나타나는 횟수를 의미한다. 예를 들어 "200X"는 동일한 뉴클레오티드 자리에 염기가 200번 반복하여 시퀀싱되어 읽혀졌음을 의미한다.
차세대 염기서열 분석의 각 유전자에 대한 정확도를 높이기 위해 보통 염기서열의 수 배에 달하는 시퀀싱이 이루어진다. 높은 Depth를 가진 위치에서의 유전자 호출은 높은 정확도를 지니고, 낮은 Depth는 불활실한 유전자 호출을 야기한다.
예를 들어, 그림에서 파란색 타일의 A, T, C의 base pair는 각각 base 마다 Sequence read가 5개씩 중복되어 align되어 있기 때문에 여기서의 Depth는 "5X"이다.
참조 : http://content.iospress.com/articles/journal-of-neuromuscular-diseases/jnd150092
계산법 #
step1. sort bam
samtools sort -@ 4 -m 8G aligned.bam aligned.sorted
step2. samtools depth
samtools depth aligned.sorted.bam > aligned.sorted.bam.depth
step3. Calculate Depth
awk '{sum+=$3} END { print "Average Depth = ",sum/REF_total_length}' aligned.sorted.bam.depth
Breadth of Coverage #
개념 #
Breadth of Coverage 는 어떤 read가 참조서열(Reference)에 align을 수행했을 때, 참조서열의 aligned 된 영역에 대해 read의 align된 길이를 나타낸 값을 의미한다. 이 값은 참조서열에 비해 read가 얼마만큼의 영역을 Cover할 수 있는가를 알 수 있다. Coverage 값이 높을수록 참조서열의 넓은 영역을 포함할 수 있고, 낮을수록 좁은 영역에 대해 alignment가 되었다고 이해할 수 있다.
예를 들어, 그림에서 파란색 타일에서 맨 마지막 read가 가지고 있는 ATCCTCAC 영역은 Reference sequence의 10bp에 비해 7bp만큼의 길이를 가지고 있으므로 70%의 coverage 값으로 계산 할 수 있다.
계산법 #
step1. sort bam
samtools sort -@ 4 -m 8G aligned.bam aligned.sorted
step2. samtools depth
samtools depth aligned.sorted.bam > aligned.sorted.bam.depth
step3. Calculate Depth
awk '{ print "Average Coverage = ",NR/REF_total_length}' aligned.sorted.bam.depth