本文へスキップ

クオリティの低いリードを取り除く

クオリティの低いリードを取り除く方法は、大きく分けて2パターンあります。1つ目は、リード全体をみてクオリティが低い場合は、リードごとすべて取り除く方法です。2つ目は、リードの3'末端のQualityをみて、クオリティが高い塩基まで削除する方法です。
 ゲノムアセンブルする場合は、できるだけリードは長いほうが有利になります。そのため、前者の方法を採用した方が良いです。逆にリードの長さにあまり影響を受けない解析の場合は、後者の方法を選択しても良いでしょう。

1.リードの全体のクオリティを考慮する


FASTX-toolkit

ここでダウンロードを行う。リードの 80% 以上の塩基がクオリティ 20 未満のリードならば除去する場合
fastq_quality_filter -q 20 -p 80 -i read_R1.fastq -o read_R1_HQ.fastq


R

同様のことをRでやろうとするならば、以下の通りです。
 in_f <- "SRR037439.fastq"
out_f <- "hoge1.txt"
param1 <- 20
param2 <- 0.2

library(ShortRead)

fastq <- readFastq(in_f)
hoge <- as(quality(fastq), "matrix")
obj <- (rowSums(hoge < param1) <= width(fastq)*param2)
fastq <- fastq[obj]

writeFastq(fastq, out_f)
参照:http://www.iu.a.u-tokyo.ac.jp/~kadota/r_seq.htm

2.リードの末端のクオリティを考慮する


FASTX-toolkit

ここでダウンロードを行う。3' 末端からクオリティが 20 未満の塩基をトリミングし、長さが 50 bp 未満となったリードを破棄する場合
 fastq_quality_trimmer -t 20 -l 50 -i read_R1.fastq -o read_R1_HQ.fastq


Sickele

ここでダウンロードする。Paired-end readの処理を行うには、sickeleが便利である。
クオリティが 20 未満の塩基をトリミングし、長さが 50 bp 以上のPaired-end readを出力する場合
sickle pe -f input_file1.fastq -r input_file2.fastq -t sanger -o trimmed_output_file1.fastq -p trimmed_output_file2.fastq -s trimmed_singles_file.fastq -q 20 -l 50
オプション
-f: read1 input
-r: read2 input
-o: read1 output
-p: read2 output
-s: 半端モンなread
-q: quality値指定
-l: 長さの閾値
inserted by FC2 system