macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

FASTQ、BED、BAMを操作するNGSUtilsその3 fastqutils

 

3回目はfastqを操作するfastqutilsを紹介する。

インストール

公式ページ

NGSUtils - bedutils

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を作成。いまいちわからない。

tofastaリンクfastaを作成。

 

.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.