3回目はfastqを操作するfastqutilsを紹介する。
インストール
公式ページ
git clone git://github.com/ngsutils/ngsutils.git
cd ngsutils/
make #依存がインストールされる(詳細はwebマニュアル参照)
$ fastqutils
Usage: fastqutils COMMAND
Commands
General
barcode_split - Splits a FASTQ/FASTA file based on sequence barcodes
filter - Filter out reads using a number of metrics
merge - Merges paired FASTQ files into one file
names - Write out the read names
properpairs - Find properly paired reads (when fragments are filtered separately)
revcomp - Reverse compliment a FASTQ file
sort - Sorts a FASTQ file by name or sequence
split - Splits a FASTQ file into N chunks
stats - Calculate summary statistics for a FASTQ file
tag - Adds a prefix or suffix to the read names in a FASTQ file
tile - Splits long FASTQ reads into smaller (tiled) chunks
trim - Remove 5' and 3' linker sequences (slow, S/W aligned)
truncate - Truncates reads to a maximum length
unmerge - Unmerged paired FASTQ files into two (or more) files
Conversion
convertqual - Converts qual values from Illumina to Sanger scale
csencode - Converts color-space FASTQ file to encoded FASTQ
fromfasta - Converts (cs)FASTA/qual files to FASTQ format
fromqseq - Converts Illumina qseq (export/sorted) files to FASTQ
tobam - Converts to BAM format (unmapped)
tofasta - Converts to FASTA format (seq or qual)
Run 'fastqutils help CMD' for more information about a specific command
ngsutils 0.5.9-a7f08f5
パスを通しておく。
ラン
filter(リンク)条件でフィルタリング
#100bp以上のリードを抽出
fastqutils filter -size 100 input.fq > output.fq
#150bp以下になるまでリードをトリミング
fastqutils filter -truncate 150 input.fq > output.fq
#ウィンドウサイズ4でスキャンし、quality30以下をトリミング
fastqutils filter -qual 30 4 input.fq > output.fq
-wildcard num Discard reads w/ more than N wildcards (N or .)
-size minsize Discard reads that are too short
-truncate size Trim reads to a maximum length
-qual minval window_size Truncate reads (5'->3') where the quality falls
below a threshold (floating average over
window_size)
-prefix size Trim away [size] bases from the 5' end
-suffixqual minval Trim away bases from the 3' end with low quality
value should be given as a character (in Sanger
scale)(like Illumina B-trim)
-trim seq pct mintrim Trim away at least [mintrim] bases that match a
[sequence] (3' adaptor) allowing for a match
percentage [pct] (0.0-1.0)
-paired Only keep reads that are correctly paired
(Requires an interleaved FASTQ file)
-whitelist keeplist.txt Only keep reads whose name is in the keeplist
names(リンク)リード名を出力。
fastqutils names input.fq > output
properpairs(リンク)ペアエンドでペアになっていないリードを除く。
fastqutils properpairs pair1.fq pair2.fq output_pair1.fq output_pair2.fq
revcomp(リンク)逆相補鎖(reverse complementary)に変換。
fastqutils revcomp input.fq > output.fq
sort(リンク)nameやポジションでソートする。
fastqutils sort input.fq > sort.fq
split(リンク)指定数に分割する。
#3つに分割する。
fastqutils split input.fq output 3
convertqual(リンク)イルミナのクオリティ値をsanger scaleに変換。
fastqutils convertqual input.fq > output.fq
csencode(リンク)color spaceをATGCに変換。
fastqutils csencode input.fq > output.fq
0 -> A
1 -> C
2 -> G
3 -> T
4,5,6,. -> N
fromfasta(リンク)qualとfastaからfastqを作成。
fastqutils fromfasta input.csfasta input.qual > output.fq
fromqseq(リンク)illumina export.txtからfastqを作成。
fastqutils fromqseq export.txt
stats(リンク)statistics
fastqutils stats input.fq > summary
出力。全部位の情報も出る。
$ fastqutils stats forward.fq
Done! (0:58)
Space: basespace
Pairing: Fragmented
Quality scale: Illumina
Number of reads: 224924
Length distribution
Mean: 230.287452651
StdDev: 49.7016332922
Min: 20
25 percentile: 204
Median: 235
75 percentile: 262
Max: 301
Total: 224924
Quality distribution
pos mean stdev min 25pct 50pct 75pct max count
1 33.9262595366 0.436774185711 30 34 34 34 38 224924
2 33.8028489623 1.54960128452 10 34 34 34 38 224924
3 33.8104426384 1.54959912975 10 34 34 34 38 224924
4 33.8467082214 1.44051755323 10 34 34 34 38 224924
5 33.8715655066 1.56917725475 10 34 34 34 38 224924
6 37.6461204674 1.84245487446 10 38 38 38 38 224924
7 37.622272412 1.94525249168 10 38 38 38 38 224924
8 37.6478232647 1.86618349415 10 38 38 38 38 224924
9 37.6512333055 1.85726711398 10 38 38 38 38 224924
10 37.6626060358 1.79494590177 10 38 38 38 38 224924
11 37.6324714126 1.89571282258 9 38 38 38 38 224924
12 37.6014342622 1.99703097792 10 38 38 38 38 224924
13 37.6435818321 1.8427123548 10 38 38 38 38 224924
14 37.6336940478 1.88442047255 10 38 38 38 38 224924
15 37.6378332237 1.85404372502 9 38 38 38 38 224924
16 37.6625215628 1.78640763134 9 38 38 38 38 224924
17 37.6524514947 1.80913909303 10 38 38 38 38 224924
18 37.6461649268 1.81338343748 9 38 38 38 38 224924
merge(リンク)ペアエンドをマージ。
unmerge(リンク)マージしたペアエンドを分割。
bfq(リンク)BFQ (binary-compressed FASTQ format) ⇆ fastq変換。
tag(リンク)リード名にtagをつける。
tile(リンク)指定長でfastqをオーバーラップありで分割。
trim(リンク)リンカーを除去。
truncate(リンク)指定長までリードをトリム。
tobam(リンク)bamを作成。いまいちわからない。
.gzも扱えます。
引用
NGSUtils: a software suite for analyzing and manipulating next-generation sequencing datasets
Marcus R. Breese and Yunlong Liu
Bioinformatics. 2013 Feb 15; 29(4): 494–496.