챕터 21 선수지식: SAM/BAM 파일 처리에 들어가기 전 알아야 할 것
1. 21챕터는 무엇을 하려는 장인가요?
21챕터는 정렬 결과 파일을 이해하고 다루는 장입니다. 20장에서 BWA-MEM2가 FASTQ read를 참조 유전체에 정렬했다면, 그 결과는 SAM 또는 BAM 파일로 저장됩니다. 21장에서는 이 파일을 열어보고, 변환하고, 정렬하고, 인덱싱하고, 필터링하고, 시각화하는 방법을 배웁니다.
여기서 중요한 관점은 다음입니다.
FASTQ는 “기계가 읽은 원자료”이고, SAM/BAM은 “그 read들이 참조 유전체 어디에 붙었는지 기록한 결과 파일”입니다.
FASTQ만 보면 read의 원래 위치를 알 수 없습니다. SAM/BAM을 보면 각 read가 어느 염색체, 어느 위치에 붙었는지, 방향은 어떤지, 짝 read는 어디에 있는지, 품질은 어떤지, 삽입이나 결실은 있는지 등을 볼 수 있습니다.
21장에서 자주 쓰는 도구는 samtools입니다. samtools는 SAM/BAM 파일을 처리하는 매우 대표적인 생명정보학 도구입니다. 파일 변환, 정렬, 인덱싱, 통계 확인, 특정 영역 추출, 필터링 등 여러 작업을 할 수 있습니다.
2. SAM과 BAM은 무엇이 다른가요?
SAM은 Sequence Alignment/Map의 약자입니다. 정렬 결과를 사람이 읽을 수 있는 텍스트 형식으로 저장합니다. 텍스트이므로 less, head, samtools view 등으로 내용을 확인하기 쉽습니다. 하지만 파일 크기가 큽니다.
BAM은 SAM을 압축한 바이너리 형식입니다. 사람이 일반 텍스트처럼 바로 읽기는 어렵지만, 파일 크기가 작고 처리 속도가 빠릅니다. 실제 분석에서는 대부분 BAM을 사용합니다.
비유하면 SAM은 사람이 읽기 쉬운 긴 문서이고, BAM은 컴퓨터가 빠르게 읽기 좋은 압축 파일입니다. 내용의 핵심은 같지만 저장 방식이 다릅니다.
| 형식 | 특징 | 주 용도 |
|---|---|---|
| SAM | 텍스트 형식입니다. 사람이 읽기 쉽지만 큽니다. | 구조 확인, 디버깅, 작은 예제 학습 |
| BAM | 바이너리 압축 형식입니다. 작고 빠릅니다. | 실제 분석, 보관, 시각화, 후속 처리 |
SAM을 BAM으로 바꾸려면 다음처럼 합니다.
samtools view -bS aligned.sam > aligned.bam
BAM을 사람이 볼 수 있는 SAM 형태로 출력하려면 다음처럼 합니다.
samtools view aligned.bam | less
헤더까지 함께 보려면 -h 옵션을 씁니다.
samtools view -h aligned.bam | less
3. SAM 파일은 헤더와 정렬 레코드로 나뉩니다
SAM 파일은 크게 헤더(header)와 정렬 레코드(alignment record)로 나뉩니다.
헤더는 파일 전체에 대한 설명입니다. 보통 @로 시작합니다. 어떤 참조 유전체를 썼는지, 염색체 이름과 길이는 무엇인지, 샘플 정보는 무엇인지, 어떤 프로그램으로 만들었는지 등을 기록합니다.
정렬 레코드는 각 read가 실제로 어디에 어떻게 정렬되었는지 나타내는 줄입니다. read 하나당 한 줄 또는 그 이상이 나올 수 있습니다.
예를 들어 헤더는 다음처럼 생길 수 있습니다.
@HD VN:1.6 SO:coordinate
@SQ SN:chr1 LN:248956422
@RG ID:sample1 SM:sample1 PL:ILLUMINA
@PG ID:bwa-mem2 PN:bwa-mem2 VN:2.2.1
@HD는 헤더 전체 정보입니다. SO:coordinate는 좌표 기준으로 정렬되어 있다는 뜻일 수 있습니다.
@SQ는 참조 서열 정보를 뜻합니다. SN:chr1은 참조 서열 이름이 chr1이라는 뜻이고, LN:248956422는 그 길이를 뜻합니다.
@RG는 Read Group 정보입니다. 20장에서 설명한 샘플 정보가 여기에 들어갑니다.
@PG는 프로그램 정보입니다. 어떤 프로그램이 이 파일을 만들었는지 기록합니다.
헤더는 단순 장식이 아닙니다. 후속 분석 도구들이 헤더 정보를 읽고 샘플, 참조 유전체, 정렬 상태를 판단합니다. 헤더가 없거나 잘못되어 있으면 downstream 분석에서 오류가 날 수 있습니다.
4. SAM 정렬 레코드의 11개 필드를 큰 감각으로 이해하기
SAM 정렬 레코드는 탭으로 구분된 여러 필드를 가집니다. 그중 필수 필드가 11개입니다. 처음부터 모든 필드를 외울 필요는 없습니다. 먼저 “read의 이름, 위치, 품질, 정렬 모양, 서열과 품질”이 들어간다고 이해하면 됩니다.
대표 필드는 다음과 같습니다.
| 필드 | 쉬운 의미 |
|---|---|
| QNAME | read 이름입니다. FASTQ의 ID와 연결됩니다. |
| FLAG | read의 여러 상태를 숫자로 압축한 값입니다. |
| RNAME | read가 붙은 참조 서열 이름입니다. 예: chr1 |
| POS | read가 붙기 시작한 위치입니다. 1-based 좌표입니다. |
| MAPQ | mapping quality입니다. 위치 신뢰도를 뜻합니다. |
| CIGAR | read가 참조와 어떻게 맞는지 압축 표현합니다. |
| RNEXT | 짝 read가 붙은 참조 서열입니다. |
| PNEXT | 짝 read의 위치입니다. |
| TLEN | DNA 조각의 추정 길이입니다. |
| SEQ | read 염기서열입니다. |
| QUAL | read 품질 점수입니다. |
이 중 초보자가 특히 먼저 익혀야 하는 것은 RNAME, POS, MAPQ, CIGAR, FLAG입니다. 이 다섯 개만 이해해도 BAM 파일을 보는 눈이 크게 좋아집니다.
RNAME과 POS는 read가 어디에 붙었는지를 알려줍니다. MAPQ는 그 위치를 얼마나 믿을 수 있는지 알려줍니다. CIGAR는 read와 참조 사이에 match, insertion, deletion 같은 차이가 어떻게 있는지 알려줍니다. FLAG는 read의 방향, paired 여부, unmapped 여부, duplicate 여부 같은 상태를 알려줍니다.
5. FLAG는 여러 상태를 더한 숫자입니다
SAM의 FLAG 필드는 초보자에게 가장 낯선 부분입니다. FLAG는 read의 상태를 하나의 숫자로 압축해서 표현합니다. 이 숫자는 여러 상태값을 더해서 만들어집니다.
예를 들어 FLAG=99라면 원문 설명처럼 다음 상태들이 더해진 것입니다.
99 = 1 + 2 + 32 + 64
이것은 대략 다음 뜻을 담을 수 있습니다.
- 이 read는 paired-end read입니다.
- 짝이 올바르게 정렬되었습니다.
- mate read는 reverse strand에 있습니다.
- 이 read는 첫 번째 read, 즉 R1입니다.
처음에는 FLAG 숫자를 머릿속으로 모두 해석하려고 하지 않아도 됩니다. 실전에서는 samtools나 온라인 FLAG 해석 도구를 사용합니다. 하지만 FLAG가 “단순한 ID가 아니라 read 상태를 압축한 값”이라는 점은 꼭 알아야 합니다.
자주 보는 FLAG 관련 의미는 다음과 같습니다.
| 값 | 의미 |
|---|---|
| 1 | paired-end read입니다. |
| 2 | properly paired입니다. |
| 4 | read가 정렬되지 않았습니다. |
| 8 | mate read가 정렬되지 않았습니다. |
| 16 | read가 reverse strand에 정렬되었습니다. |
| 64 | 첫 번째 read, 즉 R1입니다. |
| 128 | 두 번째 read, 즉 R2입니다. |
| 1024 | duplicate로 표시되었습니다. |
samtools 필터링에서 -f와 -F 옵션이 이 FLAG와 연결됩니다. -f 2는 FLAG 2가 켜진 read, 즉 properly paired read만 남기라는 뜻입니다. -F 4는 FLAG 4가 켜진 read, 즉 unmapped read를 제외하라는 뜻입니다.
FLAG는 더하기와 필터 조건으로 읽습니다
FLAG 계산은 고급 수학이 아니라 상태값 더하기입니다. 예를 들어 paired-end read이고, properly paired이며, 첫 번째 read라면 다음 값을 더합니다.
1 + 2 + 64 = 67
따라서 FLAG 67은 “paired-end이고, 올바르게 짝지어졌고, R1이다”라는 정보를 담습니다. 여기에 reverse strand 값 16이 추가되면 67 + 16 = 83이 됩니다.
-f와 -F도 이 FLAG와 연결됩니다.
-f 2: FLAG 2가 켜진 read만 남깁니다. 즉 properly paired만 봅니다.-F 4: FLAG 4가 켜진 read를 제외합니다. FLAG 4는 unmapped이므로 mapped read만 남기는 효과가 있습니다.
소문자 -f는 “필요한 조건”, 대문자 -F는 “빼야 할 조건”이라고 기억하면 덜 헷갈립니다.
6. CIGAR는 정렬 모양을 압축한 문자열입니다
CIGAR 문자열은 read가 참조 유전체와 어떻게 정렬되었는지를 짧게 표현합니다. CIGAR는 변이, 삽입, 결실, clipping을 이해하는 데 중요합니다.
예를 들어 다음 CIGAR를 봅시다.
50M2I30M
이것은 앞의 50bp는 참조와 정렬되고, 그다음 read 쪽에 2bp 삽입이 있고, 그 뒤 30bp가 다시 정렬된다는 뜻입니다.
또 다른 예를 봅시다.
10M1D40M
이것은 10bp가 정렬되고, 참조 쪽에 비해 read에서 1bp가 빠진 것처럼 보이는 결실이 있고, 뒤의 40bp가 다시 정렬된다는 뜻입니다.
자주 보는 CIGAR 기호는 다음과 같습니다.
| 기호 | 의미 | 쉬운 설명 |
|---|---|---|
| M | alignment match | 참조와 read가 정렬된 구간입니다. 완전 일치만 뜻하지는 않을 수 있습니다. |
| I | insertion | read에는 있지만 참조에는 없는 염기입니다. |
| D | deletion | 참조에는 있지만 read에는 없는 염기입니다. |
| S | soft clipping | read에는 남아 있지만 정렬에는 쓰이지 않은 부분입니다. |
| H | hard clipping | read에서 제거되어 파일에 남지 않은 부분입니다. |
| N | skipped region | 주로 RNA-seq에서 intron처럼 건너뛴 구간을 나타낼 수 있습니다. |
처음에는 M, I, D, S만 익혀도 충분합니다. CIGAR를 읽을 수 있으면 IGV에서 보이는 read 모양과 SAM 텍스트가 서로 연결되기 시작합니다.
CIGAR에서 read 길이와 참조 길이는 다를 수 있습니다
CIGAR를 해석할 때 초보자가 자주 헷갈리는 부분은 insertion과 deletion입니다.
10M1I39M
이 경우 read에는 10 + 1 + 39 = 50bp가 있습니다. 하지만 참조 유전체 쪽으로 소비한 길이는 10 + 39 = 49bp입니다. I는 read에는 있지만 참조에는 없는 삽입이기 때문입니다.
반대로 다음을 봅시다.
10M1D39M
이 경우 read에서 온 염기는 10 + 39 = 49bp입니다. 하지만 참조 유전체 쪽으로 소비한 길이는 10 + 1 + 39 = 50bp입니다. D는 참조에는 있지만 read에는 없는 결실로 해석되기 때문입니다.
S는 soft clipping입니다. 예를 들어 5S45M은 read 앞쪽 5bp가 파일에는 남아 있지만 정렬에는 쓰이지 않았고, 45bp만 정렬되었다는 뜻입니다. 처음에는 “M은 둘 다 소비, I는 read만 소비, D는 참조만 소비, S는 read에는 있지만 정렬 밖”이라고 잡으면 됩니다.
7. 정렬, 인덱싱, 통계 확인은 왜 필요한가요?
BAM 파일을 만든 뒤에는 보통 좌표 기준으로 정렬합니다.
samtools sort -o aligned.sorted.bam aligned.bam
여기서 정렬(sort)은 read를 염색체 좌표 순서대로 배열하는 것입니다. chr1의 앞쪽 위치부터 뒤쪽 위치로, 그다음 다른 염색체로 이어지게 정리한다고 생각하면 됩니다.
왜 필요할까요? 특정 위치를 빠르게 찾고, 변이 찾기 같은 후속 분석을 안정적으로 하기 위해서입니다. 좌표 기준으로 정렬되지 않은 BAM은 많은 도구에서 제대로 처리되지 않을 수 있습니다.
좌표 정렬된 BAM에는 인덱스를 만들 수 있습니다.
samtools index aligned.sorted.bam
그러면 .bai 파일이 생깁니다. 이 인덱스는 BAM 파일의 특정 위치를 빠르게 찾아가기 위한 목차입니다. 예를 들어 chr1:1000000-2000000 구간만 보고 싶을 때, BAM 전체를 처음부터 읽지 않고 해당 위치로 빠르게 이동할 수 있습니다.
정렬 후에는 통계도 확인합니다.
samtools flagstat aligned.sorted.bam
samtools stats aligned.sorted.bam > stats.txt
flagstat은 mapped, paired, duplicate 같은 기본 통계를 보여줍니다. stats는 더 자세한 통계 정보를 제공합니다. 분석에서 중요한 것은 파일이 “만들어졌다”가 아니라, 그 파일이 “정상적인 품질과 구조를 가지고 있다”는 점입니다.
8. samtools view 필터링은 “조건에 맞는 read만 보기”입니다
BAM 파일에는 수많은 read가 들어 있습니다. 항상 전체를 다 볼 필요는 없습니다. 때로는 특정 영역만 보거나, 품질이 좋은 read만 보거나, mapped read만 보고 싶습니다. 이때 samtools view를 사용합니다.
특정 영역만 보려면 다음처럼 씁니다.
samtools view aligned.sorted.bam chr1:1000000-2000000
이 명령어는 chr1의 1,000,000번부터 2,000,000번 위치에 걸친 read만 보여줍니다. 이 기능을 쓰려면 보통 BAM 인덱스가 필요합니다.
정렬되지 않은 read를 제외하고 mapped read만 남기려면 다음처럼 합니다.
samtools view -F 4 aligned.sorted.bam > mapped.sam
여기서 -F 4는 FLAG 4가 켜진 read를 제외하라는 뜻입니다. FLAG 4는 unmapped를 뜻하므로, 결과적으로 mapped read만 남습니다.
properly paired read만 남기려면 다음처럼 합니다.
samtools view -f 2 aligned.sorted.bam > proper_pairs.sam
여기서 -f 2는 FLAG 2가 켜진 read만 포함하라는 뜻입니다.
mapping quality가 20 이상인 read만 남기려면 다음처럼 합니다.
samtools view -q 20 aligned.sorted.bam > high_quality.sam
여기서 -q 20은 MAPQ 20 이상만 남기라는 뜻입니다.
주의할 점이 있습니다. 위 예시처럼 > mapped.sam으로 저장하면 출력은 SAM 텍스트일 수 있습니다. BAM으로 저장하려면 -b 옵션을 함께 써야 합니다.
samtools view -b -F 4 aligned.sorted.bam > mapped.bam
실전에서는 출력 형식을 명확히 의식하는 습관이 중요합니다. 파일 확장자만 BAM이라고 붙인다고 내용이 자동으로 BAM이 되는 것은 아닙니다. 프로그램 옵션이 실제 형식을 결정합니다.
9. 중복 read는 왜 표시하거나 제거하나요?
NGS 라이브러리를 만들 때 PCR 증폭을 하는 경우가 많습니다. 이 과정에서 같은 DNA 조각이 여러 번 복사될 수 있습니다. 그러면 실제로는 하나의 원래 조각에서 나온 read가 여러 개처럼 보일 수 있습니다. 이를 PCR duplicate라고 부릅니다.
중복 read가 많으면 특정 위치의 read 수가 실제보다 부풀려질 수 있습니다. 변이 분석에서는 이것이 문제를 일으킬 수 있습니다. 예를 들어 어떤 오류가 PCR로 많이 복제되면, 마치 진짜 변이처럼 보일 수 있습니다.
samtools에서는 중복을 표시하거나 제거할 수 있습니다.
samtools markdup aligned.sorted.bam marked.bam
중복을 제거하려면 다음처럼 쓸 수 있습니다.
samtools markdup -r aligned.sorted.bam dedup.bam
다만 중복을 무조건 제거해야 하는 것은 아닙니다. 실험 종류에 따라 중복의 의미가 다릅니다. 예를 들어 RNA-seq에서는 많이 발현되는 유전자의 read가 자연스럽게 많이 나올 수 있습니다. 단일세포나 특수 라이브러리에서는 UMI라는 분자 바코드를 사용해 중복을 더 정교하게 처리하기도 합니다.
초보 단계에서는 이렇게 이해하면 됩니다.
중복 read는 “같은 원래 조각이 여러 번 세어진 것일 수 있으므로 조심해서 다루어야 하는 read”입니다.
10. IGV는 BAM을 눈으로 확인하는 도구입니다
IGV, 즉 Integrative Genomics Viewer는 유전체 데이터를 시각적으로 보는 도구입니다. BAM 파일을 IGV에 올리면 read들이 참조 유전체 위에 어떻게 쌓여 있는지 눈으로 확인할 수 있습니다.
텍스트로 SAM/BAM을 읽는 것은 중요하지만, 모든 것을 텍스트로만 이해하기는 어렵습니다. IGV를 사용하면 특정 위치에 read가 얼마나 쌓였는지, 변이처럼 보이는 위치가 있는지, read 방향이 이상하지 않은지, soft clipping이 몰려 있는지 등을 시각적으로 볼 수 있습니다.
IGV에서 BAM을 보려면 보통 BAM 파일 하나만으로는 부족합니다. 좌표 정렬된 BAM, 그 BAM에 대한 인덱스 파일 .bai, 그리고 같은 genome build의 참조 유전체 정보가 맞아야 합니다. 예를 들어 aligned.sorted.bam을 보려면 aligned.sorted.bam.bai도 함께 있어야 하고, hg38에 정렬한 BAM을 hg19 기준으로 열면 위치 해석이 어긋날 수 있습니다.
IGV는 특히 다음 상황에서 유용합니다.
- 변이 호출 결과가 실제 read에서 그럴듯해 보이는지 확인할 때
- 특정 유전자 주변의 coverage를 볼 때
- 정렬이 이상하게 몰린 구간을 확인할 때
- 구조적 변이나 clipping 패턴을 눈으로 볼 때
- 실습에서 SAM/BAM 개념을 직관적으로 이해할 때
하지만 IGV로 눈에 보인다고 해서 바로 결론을 내리면 안 됩니다. 사람 눈은 패턴을 잘 찾지만, 편견도 쉽게 생깁니다. IGV는 통계 분석을 대체하는 도구가 아니라, 결과를 검토하고 이해하는 보조 도구입니다.
11. FASTQ에서 분석 가능한 BAM까지 전체 흐름
19~21장을 하나로 묶으면 다음 흐름이 됩니다.
# 1. 원자료 품질 확인
fastqc R1.fastq.gz R2.fastq.gz
# 2. 어댑터와 낮은 품질 말단 제거
cutadapt -a ADAPTER_R1 -A ADAPTER_R2 -q 20 \
-o R1.trimmed.fastq.gz -p R2.trimmed.fastq.gz \
R1.fastq.gz R2.fastq.gz
# 3. 참조 유전체 인덱스 준비
bwa-mem2 index hg38.fa
# 4. read 정렬과 좌표 정렬 BAM 생성
bwa-mem2 mem -t 4 hg38.fa R1.trimmed.fastq.gz R2.trimmed.fastq.gz | \
samtools sort -o aligned.sorted.bam
# 5. BAM 인덱스 생성과 기본 통계 확인
samtools index aligned.sorted.bam
samtools flagstat aligned.sorted.bam
이 흐름에서 중요한 것은 각 단계의 입력과 출력이 이어진다는 점입니다. FASTQ는 read 원자료이고, 전처리 후에도 여전히 FASTQ입니다. BWA-MEM2 정렬을 거치면 SAM/BAM 계열 결과가 나오고, samtools sort를 거치면 좌표순 BAM이 됩니다. 그다음 samtools index로 .bai 목차를 만들고, flagstat이나 stats로 정렬 품질을 확인합니다.
초보 단계에서는 다음 세 문장만 확실히 잡으면 됩니다.
- FASTQ는 아직 참조 유전체 위치를 모르는 read 목록입니다.
- SAM/BAM은 read가 참조 유전체의 어디에 붙었는지 기록한 정렬 결과입니다.
- 정렬된 BAM은
sort,index,flagstat,IGV확인을 거쳐야 분석 가능한 파일로 다룰 수 있습니다.
12. 21장에서 본편을 읽기 전 체크리스트
본편으로 들어가기 전에 아래 질문에 답할 수 있으면 충분합니다.
- SAM은 사람이 읽기 쉬운 텍스트 정렬 파일이고, BAM은 같은 정보를 담은 압축 바이너리 파일이라는 점을 설명할 수 있는가?
- SAM 레코드의 QNAME, FLAG, RNAME, POS, MAPQ, CIGAR가 대략 무엇을 뜻하는지 말할 수 있는가?
- FLAG는 여러 상태값을 더한 숫자이며,
-f는 포함 조건,-F는 제외 조건이라는 점을 구분할 수 있는가? - CIGAR에서
M,I,D,S가 read와 참조 유전체 길이에 어떤 영향을 주는지 구분할 수 있는가? - BAM을 만든 뒤
sort,index,flagstat,markdup, IGV 확인이 왜 필요한지 큰 흐름으로 설명할 수 있는가?
이 정도를 이해하면 본편의 SAM/BAM 명령어와 파일 포맷 설명을 훨씬 덜 낯설게 읽을 수 있습니다.
문제 풀이
SAM/BAM 파일 처리
주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.
-
1. [쉬움] 객관식
SAM과 BAM의 차이로 가장 적절한 것은 무엇인가?
-
2. [쉬움] 객관식
SAM 헤더의 역할로 가장 적절한 것은 무엇인가?
-
3. [쉬움] 객관식
BAM 인덱스가 필요한 이유로 가장 적절한 것은 무엇인가?
-
4. [쉬움] 객관식
IGV의 역할로 가장 적절한 것은 무엇인가?
-
5. [보통] 객관식
SAM 레코드에서 CIGAR 문자열의 의미로 가장 적절한 것은 무엇인가?
-
6. [보통] 객관식
FLAG 값에 대한 설명으로 가장 적절한 것은 무엇인가?
-
7. [보통] 객관식
중복 read를 표시하거나 제거하는 이유로 가장 적절한 것은 무엇인가?
-
8. [어려움] 객관식
정렬된 BAM을 만들고 나서 인덱싱과 통계 확인을 해야 하는 이유로 가장 적절한 것은 무엇인가?
-
1. [쉬움] 객관식
다음 SAM 헤더 줄의 의미로 가장 적절한 것은 무엇인가?
@SQ SN:chr1 LN:248956422 -
2. [쉬움] 객관식
다음 SAM 레코드에서 QNAME에 해당하는 값은 무엇인가?
read001 0 chr1 100 60 50M * 0 0 ACGT FFFF -
3. [쉬움] 객관식
다음 SAM 레코드에서 CIGAR에 해당하는 값은 무엇인가?
read001 0 chr1 100 60 50M * 0 0 ACGT FFFF -
4. [쉬움] 객관식
다음 명령어의 역할로 가장 적절한 것은 무엇인가?
samtools view -b sample.sam > sample.bam -
5. [보통] 객관식
다음 명령어의 역할로 가장 적절한 것은 무엇인가?
samtools sort -o sample.sorted.bam sample.bam -
6. [보통] 객관식
다음 명령어의 역할로 가장 적절한 것은 무엇인가?
samtools index sample.sorted.bam -
7. [보통] 객관식
다음 명령어의 의미로 가장 적절한 것은 무엇인가?
samtools view sample.sorted.bam chr1:1000-2000 -
8. [보통] 객관식
다음 명령어에서
-f 4의 의미로 가장 적절한 것은 무엇인가?samtools view -f 4 sample.bam -
9. [보통] 객관식
다음 명령어에서
-F 4의 의미로 가장 적절한 것은 무엇인가?samtools view -F 4 sample.bam -
10. [어려움] 객관식
CIGAR
10M1I39M의 해석으로 가장 적절한 것은 무엇인가? -
11. [어려움] 객관식
CIGAR
5S45M의 해석으로 가장 적절한 것은 무엇인가? -
12. [어려움] 객관식
다음 명령어 조합의 순서로 가장 적절한 것은 무엇인가?
samtools sort -o sample.sorted.bam sample.bam samtools index sample.sorted.bam -
13. [어려움] 객관식
다음 명령어가 중복 read 처리와 관련해 하는 일로 가장 적절한 것은 무엇인가?
samtools markdup in.sorted.bam marked.bam -
14. [어려움] 객관식
IGV로 BAM을 볼 때 함께 준비해야 할 파일 조합으로 가장 적절한 것은 무엇인가?
-
23. [보통] 객관식
paired=1, properly paired=2, first in pair=64가 켜진 read의 FLAG 값은 얼마인가?
-
24. [보통] 객관식
FLAG 값 4가 켜졌다는 뜻으로 가장 적절한 것은 무엇인가?
-
25. [보통] 객관식
samtools view -F 4 aligned.sorted.bam의 의미로 가장 적절한 것은 무엇인가? -
26. [어려움] 객관식
CIGAR
10M1I39M에서 read 쪽 염기 길이로 가장 적절한 것은 무엇인가? -
27. [어려움] 객관식
CIGAR
10M1D39M에서 참조 유전체 쪽으로 소비한 길이로 가장 적절한 것은 무엇인가? -
28. [어려움] 객관식
IGV에서 정렬 결과를 안정적으로 확인하기 위한 준비물로 가장 적절한 것은 무엇인가?
-
주관식 1. [쉬움] 주관식 · Gemini 채점
SAM과 BAM의 차이를 저장 형식과 사용성 관점에서 설명하라.
-
주관식 2. [보통] 주관식 · Gemini 채점
SAM 레코드에서 FLAG와 CIGAR가 각각 무엇을 나타내는지 설명하라.
-
주관식 3. [보통] 주관식 · Gemini 채점
정렬 후 BAM에 대해 sort, index, flagstat/stats를 수행하는 이유를 설명하라.
-
주관식 4. [어려움] 주관식 · Gemini 채점
FASTQ에서 분석 가능한 BAM까지의 전체 흐름을 6단계 이상으로 설명하라.