ラベル クオリティチェック の投稿を表示しています。 すべての投稿を表示
ラベル クオリティチェック の投稿を表示しています。 すべての投稿を表示

2013年5月26日日曜日

FASTX-toolkitをインストールする(Linux OS, Ubuntu)

FASTX-toolkitはFASTA・FASTQファイルの処理を行うことができるソフトウェアです。クオリティの高いリードを選抜したり、タグ配列の除去などに利用できます。

〈FASTX-toolkitのダウンロード〉
(1)下記のFASTX-toolkitのサイトへ移動。
http://hannonlab.cshl.edu/fastx_toolkit/index.html

(2)メニューの「Download & Installation」をクリック。
http://hannonlab.cshl.edu/fastx_toolkit/download.html

(3)「Download」の項にファイルが置いてあるので、
・fastx_toolkit-0.0.13.2.tar.bz2
・libgtextutils-0.6.1.tar.bz2
をそれぞれダウンロードする。

〈FASTX-toolkitのインストール〉
FASTX-toolkitには「libgtextutils-0.6」が必要となります。そこで、まずこのファイルをインストールしましょう。
#ファイルの解凍
$ bzip -d libgtextutils-0.6.1.tar.bz2
$ tar xvf libgtextutils-0.6.1.tar

#ディレクトリの移動
$ cd ./libgtextutils-0.6.1

#コンパイル(インストール)
$ ./configure
$ make
$ sudo make install


#ファイルの解凍
$ bzip -d libgtextutils-0.6.1 fastx_toolkit-0.0.13.2.tar.bz2
$ tar xvf libgtextutils-0.6.1 fastx_toolkit-0.0.13.2.tar

#ディレクトリの移動
cd ./fastx_toolkit-0.0.13.2

#コンパイル
$ ./configure
$ make

#パスを通す
$sudo cp ./bin/* /bin
⇒「*」は任意の文字列を表すメタ文字(ここでは、すべてのファイル名とマッチする)。

⇒今回はもともとパスの通っている「/bin」ディレクトリにファイルをコピペしましたが、もちろん「.profile」ファイルにパスを通す先のディレクトリの場所を書き加えてもOKです。

FASTX-toolkitのコマンドのうち、
・fasta_clipping_histogram
・The fastx_barcode_splitter
・The fastq_quality_boxplot
 の3つについては追加でPerlのモジュールやいくつかのソフトウェアをインストールする必要があります。個人的に、これら3つは今まで使ったことがないので、インストール方法については割愛します。

よくよくマニュアルをみてみると、「The fastx_barcode_splitter」を使ってFASTQファイルを分割できるようで、小さく分割したFASTQファイルを並列処理させる場合に使えそうですね。

〈参考文献〉
-FASTX-Toolkit_Command-line Usage
http://hannonlab.cshl.edu/fastx_toolkit/commandline.html

2013年3月31日日曜日

fastqファイルのクオリティチェック(fastq_illumina_filterを使ってみた)

illuminaのCASAVA-1.8 pipeline(Version 1.8)で生成されたfastqファイルは、クオリティの低いリードには「Y」、クオリティの良いリードには「N」が与えられています。(クオリティの良し悪しはCASAVA filteringにより落ちたリードかどうかで判断。フィルタリングの具体的な方法はよくわかっていない。)

fastqファイルは1つの配列の情報が4行で記述されており、CASAVA filterから落ちたリードかどうかはその1行目に書かれています。(fastqファイルのデータの読み方についてはwikiを参照。)

NCBIの「Gene Expression Omnibus(GEO)」か、DDBJの「Sequence Read Archive(SRA)」からダウンロードしたsraファイルを「SRA Toolskit」でfastqファイルに変換すると、illuminaのCASAVA pipelineから生成されたfastqファイルであっても、CASAVA filterの情報(NもしくはY)が抜け落ちています。(fastq-dumpコマンドを実行すると、自動的にクオリティの低いリードはフィルタリングされているよう。そのため、あまり気にする必要がないのかも。)

そのため、GEOやSRAのような「Public database」からダウンロードしてきたsraファイル(fastqファイル)については、以下の作業を行う必要はないと思います。

ただ、illuminaのCASAVA-1.8 pipelineを使って自前でfastqファイルを生成した場合では、以下のCASAVA filteringでクオリティが低いと判断されたリード(「Y」と記載)を排除したほうが良いと思います。

〈fastq_illumina_filter-0.1のインストール〉
(1)wgetコマンドで指定したサイトからファイルをダウンロードする。
$ wget http://cancan.cshl.edu/labmembers/gordon/fastq_illumina_filter/fastq_illumina_filter-0.1.tar.gz
⇒もしくは以下のサイトから、「Download」の「Source code」にあるファイルをダウンロード。
http://cancan.cshl.edu/labmembers/gordon/fastq_illumina_filter/

(2)ファイルを解凍する。
$ tar -xzf fastq_illumina_filter-0.1.tar.gz

(3)解凍したファイルのディレクトリに移動する。
$ cd fastq_illumina_filter-0.1

(4)コンパイルを実行する。
$ make
g++ -O2 -g -Wall -Wextra -Werror    fastq_illumina_filter.cpp   -o fastq_illumina_filter

(5)パスの通っているディレクトリへ、プログラム(fastq_illumina_filter)を移動する。
$ sudo cp fastq_illumina_filter /usr/local/bin
[sudo] password for imamachi:
⇒一時的に管理者権限を利用する。

(6)インストールされているか、実際にコマンドを実行してみる。
$ fastq_illumina_filter
fastq_illumina_filter (version 0.1) - Filters a FASTQ file generated by CASAVA 1.8
Copyright (C) 2011 - A. Gordon <gordon@cshl.edu> - Released under AGPLv3 or later.

Usage: fastq_illumina_filter  [--keep Y/N] [-NYhv] [-o OUTPUT] [INPUT]

   [INPUT]   = Input file. Reads from STDIN if no file is specified.
   [-o OUTPUT] = Output file. Default is STDOUT if no file is specified.
   --keep N  = Keep reads that were NOT filtered.
               (Reads that have 'N' in the read-ID line.)
   --keep Y  = Keep reads that were filtered.
               (Reads that have 'Y' in the read-ID line.)
   -N      = same as '--keep N'
   -Y      = save as '--keep Y'
   -v      = Report read counts to STDERR
             Use twice to show progress while procesing the file.
             When combined with '-o FILE', report goes to STDOUT.
   -h      = This helpful help screen

!! NOTE ABOUT Y/N !!:
  Reads that were filtered (have 'Y' in the read-ID)
  are the LOW QUALITY reads. You most likely DO NOT want them.
  (In previous CASAVA version, those are reads that have not passed filtering)

  Reads that were NOT filtered are the better-quality reads.
  So using '-N' or '--keep N' is probably the option you want to use.

FASTQ files from CASAVA-1.8 Should have the following READ-ID format:
@<instrument>:<run number>:<flowcell ID>:<lane>:<tile>:<x-pos>:<y-pos> <read>:<is filtered>:<control number>:<index sequence>

Example 1:
  $ gunzip -c NA10831_ATCACG_L002_R1_001.fastq.gz | head -n 4
  @EAS139:136:FC706VJ:2:5:1000:12850 1:N:18:ATCACG
  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  +
  BBBBCCCC?<A?BC?7@@???????DBBA@@@@A@@

  $ gunzip -c NA10831_ATCACG_L002_R1_001.fastq.gz | fastq_illumina_filter -vvN | gzip > good_reads.fq.gz
  Processed 4,000,000 reads
  fastq_illumina_filter (--keep N) statistics:
  Input: 4,000,000 reads
  Output: 3,845,435 reads (96%)

Example 2 (The input and output files are not compressed):
  $ fastq_illumina_filter --keep N -v -v -o good_reads.fq NA10831_ATCACG_L002_R1_001.fastq
  Processed 4,000,000 reads
  fastq_illumina_filter (--keep N) statistics:
  Input: 4,000,000 reads
  Output: 3,845,435 reads (96%)

〈使用例〉
$ fastq_illumina_filter -N -v -o OUTPUT_file.fastq INPUT_file.fastq

・オプション
-N: CASAVA filterで落ちなかったリードをOUTPUT_file.fastqに出力。
-v: リード数の情報などを画面に出力。(STDERR)
など

〈参考文献〉
・Fastq - Wikipedia
http://ja.wikipedia.org/wiki/Fastq