챕터 19 본편: NGS 시퀀싱과 Fastq 파일 처리
NGS 시퀀싱 데이터 처리 실습
개요
이 장에서는 차세대 시퀀싱(NGS) 데이터의 실제 처리 방법을 다룬다. NGS 기술의 원리와 Fastq 파일 형식에 대한 이론적 내용은 3장 차세대 시퀀싱을 참조한다.
실습 환경 구성
conda를 사용하여 실습에 필요한 도구들을 설치한다.
$ conda create -n bioinfo
$ conda activate bioinfo
$ conda install fastqc cutadapt
Fastq 파일 확인
압축 파일 내용 확인
Fastq 파일은 일반적으로 gzip으로 압축되어 .fastq.gz 형태로 제공된다. zcat과 less 명령을 사용하여 압축된 상태로 내용을 확인할 수 있다.
$ zcat R1.fastq.gz | less
Fastq 파일의 구조와 각 필드의 의미는 3장 Fastq 파일 형식과 구조를 참조한다.
Paired-end 파일
Paired-end 시퀀싱의 경우 두 개의 Fastq 파일이 생성된다. 파일명에 R1과 R2로 구분되며, 각각 Read 1과 Read 2를 포함한다.
Liver_SeqScope_2nd_1_R1.fastq.gz
Liver_SeqScope_2nd_1_R2.fastq.gz
두 파일의 줄 수는 동일하며, 같은 위치의 read는 동일한 DNA 조각에서 유래한 짝이다.
FastQC를 이용한 품질 확인
FastQC는 Fastq 파일의 품질을 확인하는 도구이다. 다음과 같은 정보를 제공한다.
-
위치별 품질 점수 분포
-
서열 품질 점수 분포
-
위치별 염기 조성
-
GC 함량 분포
-
서열 길이 분포
-
중복 서열 수준
-
과다 표현 서열
-
어댑터 오염도
FastQC 실행
단일 파일 실행:
$ fastqc R1.fastq.gz
Paired-end 파일 동시 실행:
$ fastqc R1.fastq.gz R2.fastq.gz
for 루프를 사용한 여러 파일 처리:
$ for i in `seq 1 2`; do fastqc R${i}.fastq.gz; done
결과 확인
FastQC 실행이 완료되면 HTML 형식의 보고서가 생성된다. 웹 브라우저에서 열어 품질을 확인한다.
주요 확인 항목:
-
Per base sequence quality: 각 위치별 품질 점수 분포. 일반적으로 read 끝으로 갈수록 품질이 낮아진다.
-
Per sequence quality scores: 전체 read의 평균 품질 분포.
-
Adapter Content: 어댑터 서열 오염도. 높은 비율이 나타나면 트리밍이 필요하다.
Cutadapt를 이용한 전처리
Cutadapt는 어댑터 서열 제거와 품질 기반 트리밍을 수행하는 도구이다.
어댑터 오염
어댑터 오염은 DNA insert가 read 길이보다 짧을 때 발생한다. 시퀀싱이 insert를 지나 반대쪽 어댑터 서열까지 읽어버리기 때문이다. 이러한 어댑터 서열은 분석 전에 반드시 제거해야 한다.
Illumina Universal Adapter 서열은 AGATCGGAAGAG로 시작한다. 사용하는 시퀀싱 키트에 따라 전체 어댑터 서열이 다를 수 있으므로, 정확한 서열은 Illumina Adapter Sequences 문서를 참조한다.
Cutadapt는 어댑터 서열 외에도 poly-A tail을 제거하는 데 사용할 수 있다. RNA-seq 데이터에서 poly-A tail이 포함된 경우 -a “A{100}” 옵션으로 제거할 수 있다.
Cutadapt 옵션
주요 옵션:
| 옵션 | 설명 |
|---|---|
| -a | Read 1에서 제거할 3’ 어댑터 서열 |
| -A | Read 2에서 제거할 3’ 어댑터 서열 |
| -o | Read 1 출력 파일 |
| -p | Read 2 출력 파일 |
| -q | 품질 기반 트리밍 임계값 |
어댑터 제거 실행
Paired-end 파일에서 어댑터 제거:
$ cutadapt -a AGATCGGAAGAG -A AGATCGGAAGAG -o trimmed_R1.fastq.gz -p trimmed_R2.fastq.gz R1.fastq.gz R2.fastq.gz
품질 기반 트리밍을 함께 수행하는 경우:
$ cutadapt -a AGATCGGAAGAG -A AGATCGGAAGAG -q 20 -o trimmed_R1.fastq.gz -p trimmed_R2.fastq.gz R1.fastq.gz R2.fastq.gz
결과 확인
처리 후 FastQC를 다시 실행하여 어댑터가 제거되었는지 확인한다.
$ fastqc trimmed_R1.fastq.gz trimmed_R2.fastq.gz
실습 과제
실습 19.1: Fastq 파일 구조 확인
-
제공된 Fastq 파일을 zcat과 less를 사용하여 확인한다.
-
첫 번째 read의 각 줄이 무엇을 의미하는지 설명한다.
-
품질 점수 문자를 Phred 점수로 변환한다.
실습 19.2: FastQC 분석
-
R1.fastq.gz와 R2.fastq.gz에 대해 FastQC를 실행한다.
-
생성된 HTML 보고서를 확인한다.
-
어댑터 오염이 있는지 확인한다.
실습 19.3: 어댑터 제거
-
Cutadapt를 사용하여 어댑터를 제거한다.
-
처리 전후의 FastQC 결과를 비교한다.
-
어댑터 제거 효과를 확인한다.
출처
이 본편 글은 원본 docx에 기록된 아래 출처를 기준으로 게시했습니다.
- 원본 문서: https://chaek.org/books/introduction-to-biomedical-informatics
- 원본 저장소: https://github.com/chaek-union/introduction-to-biomedical-informatics
- 원본 파일:
practices/19-ngs-fastq.md
문제 풀이
Chapter 19. NGS 시퀀싱과 Fastq 파일 처리
주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.
-
1. [쉬움] 객관식
실습 환경 구성을 위해 본편에 제시된 명령어 순서로 옳은 것을 고르시오.
-
2. [쉬움] 객관식
압축된 Fastq 파일의 내용을 확인하는 명령어로 옳은 것을 고르시오.
-
3. [쉬움] 객관식
Paired-end Fastq 파일에 대한 설명으로 옳은 것을 고르시오.
-
4. [쉬움] 객관식
FastQC가 제공하는 정보로 옳은 것을 고르시오.
-
5. [보통] 객관식
FastQC 보고서의
Per base sequence quality항목에 대한 설명으로 옳은 것을 고르시오. -
6. [보통] 객관식
FastQC 보고서에서
Adapter Content가 높게 나타났을 때 적절한 후속 조치로 옳은 것을 고르시오. -
7. [보통] 객관식
어댑터 오염이 발생하는 상황으로 옳은 것을 고르시오.
-
8. [보통] 객관식
Cutadapt 옵션에 대한 설명으로 옳은 것을 고르시오.
-
9. [어려움] 객관식
RNA-seq 데이터에서 poly-A tail을 제거하기 위해 본편에 언급된 Cutadapt 옵션으로 옳은 것을 고르시오.
-
10. [어려움] 객관식
품질 기반 트리밍 임계값 20을 Cutadapt에 함께 적용하는 옵션으로 옳은 것을 고르시오.
-
11. [어려움] 객관식
어댑터 제거 후 확인 절차로 옳은 것을 고르시오.
-
12. [어려움] 객관식
처리 전후 FastQC 결과 비교에 대한 해석으로 가장 적절한 것을 고르시오.
-
주관식 1. [쉬움] 주관식 · Gemini 채점
압축된
R1.fastq.gz파일 내용을 압축 해제한 상태로 확인하기 위한 명령어를 작성하시오. -
주관식 2. [쉬움] 주관식 · Gemini 채점
R1.fastq.gz와R2.fastq.gz를 동시에 FastQC로 분석하는 명령어를 작성하시오. -
주관식 3. [보통] 주관식 · Gemini 채점
R1.fastq.gz와R2.fastq.gz를seq 1 2형식의 for 루프로 FastQC 분석하는 명령어를 작성하시오. -
주관식 4. [보통] 주관식 · Gemini 채점
Paired-end 파일에서 Illumina Universal Adapter 시작 서열
AGATCGGAAGAG를 제거하고 결과를trimmed_R1.fastq.gz,trimmed_R2.fastq.gz로 저장하는 Cutadapt 명령어를 작성하시오. -
주관식 5. [어려움] 주관식 · Gemini 채점
위 어댑터 제거에 품질 기반 트리밍 임계값 20을 함께 적용하고, 처리 후 FastQC를 다시 실행하는 명령어까지 작성하시오.
-
주관식 6. [어려움] 주관식 · Gemini 채점
FastQC 결과에서 Adapter Content가 높게 나왔을 때 품질 확인 → 전처리 → 재확인의 절차를 설명하시오.