Bioinformatics/Sequencing data

[NGS data] Cutadapt와 Trimmomatic로 adapter 잘라내기

김해김씨99대손 2023. 6. 12. 17:31

- 작성 : 2023.05.08

primer를 잘라내는 프로그램은 여러 개가 개발되었다. 그중에서 대표적인 몇몇의 프로그램을 비교해 보자.

참고로 모두 큰 차이가 존재하진 않는다! 이 프로그램들의 목적은 primer를 제거하는 것임으로 그 이상의 의의를 두지 말자. 

 

 

| Cutadapt

- 논문 : Cutadapt Removes Adapter Sequences From High-Throughput Sequencing Reads. 2011

- 인용수 20,605(2023.05.08 기준)

 

Cutadapt란 NGS데이터 전반에서 사용되는 파이썬 기반의 도구이다.  True seq, illuminz, SMART등의 여러 시퀀서의 아웃풋 결과물을 다룰 수 있다. 


 

Cutadapt 설치 및 사용해 보기

- Cutadapt 설치

conda update -n base -c conda-forge conda # 업데이트
conda create -n cutadaptenv cutadapt
conda activate cutadaptenv

 

- Cutadapt 사용 예시(illumina sequencer)

cutadapt  \
  -g ~~   \# forward 서열의 5' primer
  -G ~~   \# forward 서열의 3' primer
  -a ~~ \# reverse 서열의 3' primer
  -A ~~ \# reverse 서열의 5' primer
  --minimum-length 20  \# 최소 잘라낼 길이 
  -Q 20 -q 20  \# forward와 reverse 서열의 QC 기준을 20으로 잡음
  FASTQ_1.fastq.gz \# input forward 서열 위치  
  FASTQ_2.fastq.gz \# input reverse 서열 위치 
  -o  cutadapt/FASTQ_1.fastq.gz  \# output forward 서열 위치  
  --paired-output  cutadapt/FASTQ_2.fastq.gz # output reverse 서열 위치

+) Cutadapt결과 정리

+) 자세한 tutorial

 

 

 

 

 

 

| Trimmomatic

- 논문제목 : Trimmomatic: a flexible trimmer for Illumina sequence data. Bioinformatics. 2014 

- 인용수 40,539 (2023.05.08 기준)

- 홈페이지 : http://www.usadellab.org/cms/?page=trimmomatic 

 

- 일루미나 시퀀싱 장비의 결과물을 전문적으로 다루는 프로그램으로, command line 기반의 프로그램이다. 


Trimmomatic 설치 및 사용해 보기

Trimmomatic 설치

 

1. 홈페이지 접속

 

2. Downloading trimmomatic에서 원하는 버전의 binary 파일 다운로드 -> 압축 풀기

http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.39.zip
unzip -d Trimmomatic-0.39.zip Trimmomatic-0.39/

 

- 총 3개의 파일이 있다. 이중 adapter폴더에 내가 사용하고자 하는 어뎁터 서열을 .fa 파일로 저장해 둔다. 

primer 서열 예시

 

3. Trimmomatic 실행하기

- 일단 Trimmomatic 만 실행해보자

 java -jar ~/trimmomatic-0.39/trimmomatic-0.39.jar

잘 실행되는 것을 볼 수 있다. 

 

 

- 일루미나 사의 paired end파일일 경우 adapter를 잘라내는 과정은 아래와 같다. 

java -jar ~/trimmomatic-0.39/trimmomatic-0.39.jar \# 프로그램 실행
PE\# paired-end 서열
Input_1.fastq.gz Input_2.fastq.gz \# input 파일
-baseout  Output  \# output파일이 저장될때 이름 형식
ILLUMINACLIP: ~/trimmomatic-0.39/adapters/primer_example.fa:2:30:10 \# 제거할 어뎁터 서열
LEADING:3 \#  leading low quality나 N base를 버려라 
TRAILING:3 \# trailing low quality나 N base를 버려라
SLIDINGWINDOW:4:15 \# 4base를 기준으로 스캔하고 QC 15밑에는 버려라
MINLEN:36 # 36bp이하 리드는 버려라

# Input Read Pairs: 39475 Both Surviving: 1538 (3.90%) Forward Only Surviving: 12120 (30.70%) Reverse Only Surviving: 1678 (4.25%) Dropped: 24139 (61.15%)

자세한 옵션은 아래와 같다. 

 

 

ILLUMINACLIP:<fastaWithAdaptersEtc>:<seed mismatches>:<palindrome clip threshold>:<simple clip threshold>

- fastaWithAdaptersEtc: 사용하고자 하는 primer서열이 담긴 fa파일

- seedMismatches: primer와 read의 최대 불일치 base 수

- palindromeClipThreshold: PE에서 adapter가 연결된 read들이 정확하게 패치하는 염기 수(specifies how accurate the match between the two 'adapter ligated' reads must be for PE palindrome read alignment.)

- simpleClipThreshold: adapter와 read 간의 정확한 일치가 어느 정도 base 수여야 하는지

SLIDINGWINDOW:<windowSize>:<requiredQuality>

- windowSize: specifies the number of bases to average across

- requiredQuality: specifies the average quality required.

LEADING:<quality>

- quality: Specifies the minimum quality required to keep a base.

TRAILING:<quality>

- quality: Specifies the minimum quality required to keep a base.

CROP:<length>

- 유지되었으면 하는 read길이 입력

HEADCROP:<length>

- read의 시작 부분부터 잘라내고자 하는 길이 입력

MINLEN:<length>

- read의 최소 base 수 

 

 

 

 

 

 

 

| 참고 

- 텍사스 대학교의 bioinformatics team : https://wikis.utexas.edu/display/bioiteam/Trimmomatic+-+GVA2020 

- http://www.usadellab.org/cms/?page=trimmomatic 

- https://slequime.github.io/HTS-tutorial/trimming-trimmomatic.html

 

 

 

 


현재 Cutadapt가 가장 간편해서 쓰고 있는데, 결과물을 보니 제거가 되지 않는 reverse 서열의 primer가 일부 관찰되었다. 

이 후에 trimmomatic으로 제거한 후 비교해봐야 겠다. 

 

기존의 primer제거 전후는 Dada2의 ITS tutorial을 참고하길 바란다. 

반응형