ラベル peakcaller の投稿を表示しています。 すべての投稿を表示
ラベル peakcaller の投稿を表示しています。 すべての投稿を表示

2014年4月15日火曜日

ChIP-seq解析の流れ

大体の解析の流れはこんな感じ。
  1. 解析に必要なツールのインストール、コントロールを含む.fastqまたは.SRAファイル (SRA Toolkitでfastqへ変換する必要有)をダウンロード
  2. fastqファイルの中身をFastQCで確認して、FASTX-Toolkitのfastq_quality_trimmer, fastq_quality_filterでクリーニング
  3. Bowtie2でマッピング(リファレンスゲノムをダウンロードしておく必要有)
  4. Samtoolsでバイナリー化
  5. 必要が有ればbedtoolsのintersectBedを使ってリピート配列の除去
  6. MACSでピークコール
  7. R+Bioconductorを用いて高次解析
    • ChIPpeakAnno
      • アノテーション付加(近傍TSSまでの距離・EnsEMBL Gene ID・上流下流)
    • org.Mm.eg.db
      • Gene ontology
    • BSgenome
      • ピーク領域の配列を得る
    • rGADEM
      • de novo motif search
    • MotIV
      • 既存データとの類似性チェック
Rを使った高次解析については二階堂さんのHPが参考になる。とりあえず、1-6に関して実際にやった流れを記す。長いのと、Rの使い勝手がすこしちがうので7に関しては別に記す。

1については既に終わっている。

2から始める。(workディレクトリにfastqファイルがある前提でworkで作業を行う。)

とりあえずfastqc
fastqc -t 8 Sox2_ChIP-seq_Oct3_4_KODay0.fastq -o ./
しばらく待つと、Sox2_ChIP-seq_Oct3_4_KODay0.fastqcというディレクトリとそのzipファイルが出来る。それをディレクトリごとローカルに転送する。ローカル側から
scp -r kosugi@サーバーアカウント:/home/kosugi/local/work/Sox2_ChIP-seq_Oct3_4_KODay0.fastqc.zip /Users/TK/fastqc/  
すると指定した場所にディレクトリごと転送される。その中にfastqc_report.htmlがあるのでブラウザーにドラッグアンドドロップする。
こんな感じになる。3'末のクオリティーが低いものが多い事がわかる。FASTQ形式についてwikiで調べればこの数値についてある程度解説が見られる。とりあえず今回は3'末端からクオリティー値を20未満のものをトリミングして、30bp未満のreadを破棄。さらに、80%以上がクオリティー値が20以上ものを抽出する事にした。オプションの詳細はFASTX-Toolkitのusageを確認する。パイプ(|)でつなげてそのまま実行する。
fastq_quality_trimmer -t 20 -l 30 -Q 33 -i Sox2_ChIP-seq_Oct3_4_KODay0.fastq | fastq_quality_filter -q 20 -p 80 -Q 33 -o ./Sox2_ChIP-seq_Oct3_4_KODay0.clean.fastq
このfastqファイルを先ほどと同様にfastqcしてfastqc_report.htmlをみる。
クリーニングされた事が見た目でわかる。
それぞれのfastqファイルをwc -lすると行数がわかる
wc -l Sox2_ChIP-seq_Oct3_4_KODay0.fastq
62931980 Sox2_ChIP-seq_Oct3_4_KODay0.fastq
wc -l Sox2_ChIP-seq_Oct3_4_KODay0.clean.fastq
59910120 Sox2_ChIP-seq_Oct3_4_KODay0.clean.fastq
fastqは4行で1readなので大体0.8M read程除去されたことがわかる。

3のBowite2によるマッピング

とりあえずコマンド。10分程かかる。read数やマシーン性能に依存する。
bowtie2 -t -p 8 -x ../bowtie2-2.2.1/indexes/mm10 -U Sox2_ChIP-seq_Oct3_4_KODay0.clean.fastq -S SoxDay0.sam


オプションの意味は 時間:-t
コア数:-p
インデックスのパス:-x
fastqのパス:-U
出力名:-S

4のSamtoolsによるバイナリ化

とりあえずコマンド。
samtools view -Sb SoxDay0.sam > SoxDay0.bam
[samopen] SAM header is present: 66 sequences.等と出て、数分待つ。 オプションの意味は
-S:インプットがsamファイル 
-b:アウトプットがbamファイル
bowtieで吐き出されるのは人間が理解できるsamファイルであり、これ以降のステップではバイナリー化しないと認識してくれないらしくこのステップが必要になる。つぎにソートを行う。igvというツールを使う時にindexを作る必要が有り、そのためには順序よく並んでないと怒られるらしい。
samtools sort SoxDay0.bam SoxDay0.sorted
すると、SoxDay0.sorted.bamというのがつくられる。次にindexを作る。
samtools index SoxDay0.sorted.bam
数分待つとSoxDay0.sorted.bam.baiファイルが出来る。今回はigvでマップされたものを確認しない。次にマップ率を出す。flagstatを使う。
samtools flagstat SoxDay0.sorted.bam > SoxDay0.sorted.bam.summary.txt 
less SoxDay0.sorted.bam.summary.txt
14977530 + 0 in total (QC-passed reads + QC-failed reads)
0 + 0 duplicates
14529891 + 0 mapped (97.01%:-nan%)
0 + 0 paired in sequencing
0 + 0 read1
0 + 0 read2
0 + 0 properly paired (-nan%:-nan%)
0 + 0 with itself and mate mapped
0 + 0 singletons (-nan%:-nan%)
0 + 0 with mate mapped to a different chr
0 + 0 with mate mapped to a different chr (mapQ>=5)

97%がマップされている。

5のintersectBedを使ってリピート配列の除去

必要が有ればrepeat region にマップされたreadsを除去する。これには準備が必要でUCSC Table Browserからデータをダウンロードしておく。以下のように設定して、get outputしたらダウンロードできる。

local/shareに転送した。これで準備完了
scp /Users/TK/Downloads/repeats_mm10.bed kosugi@サーバー名:/home/kosugi/local/share
以下がrepeat regionを除去するコマンド。
intersectBed -abam SoxDay0.sorted.bam -b ../share/repeats_mm10.bed -v > SoxDay0.rmRepeat.bam
これで除去できた。 6のMACSによるピークコール コントロールのサンプルについても同様の作業を行って、bamファイルが2つある状況にする。準備ができたら以下のコマンドを叩く。数分待つ。
macs14 -t SoxDay0.sorted.bam -c SoxKODay2.sorted.bam -f bam -g mm -n SoxDay0
オプションの意味は -t:sampleファイル -c:controlファイル -f:ファイル形式 -g:ゲノムサイズ -n:出力名 終わると、色んなファイルが出力される。
SoxDay0_negative_peaks.xls
SoxDay0_summits.bed
SoxDay0_peaks.bed
SoxDay0_peaks.xls
SoxDay0_model.r
例えば、SoxDay0_peaks.bedの中身はこんな感じ。
head SoxDay0_peaks.bed
chr1 3062864 3063136 MACS_peak_1 81.45
chr1 3482902 3483152 MACS_peak_2 65.14
chr1 4150841 4151273 MACS_peak_3 222.85
chr1 4660129 4660269 MACS_peak_4 53.63
chr1 4802472 4802926 MACS_peak_5 193.69
chr1 4855364 4855775 MACS_peak_6 270.83
chr1 4972272 4972486 MACS_peak_7 71.27
chr1 4972497 4972701 MACS_peak_8 84.01
chr1 6448821 6449289 MACS_peak_9 126.84
chr1 6458167 6458317 MACS_peak_10 62.50
以下のように、ローカル側からxlsファイルを転送すればエクセルで見られる。3000ヶ所くらいピークが見つかった。
scp kosugi@サーバー名:/home/kosugi/local/work/SoxDay0_peaks.xls /Users/TK/MACS/ 
wiggleファイルが欲しい場合はMACSを実行する時に -wとオプションをつける。(結構時間がかかる数十分)

2014年4月6日日曜日

MACSのインストール

HPはここhttp://liulab.dfci.harvard.edu/MACS/
右上のdownloadをクリック
ターミナルを開いてsrcに移動、Download version 1.4.2をドラッグアンドドロップ
cd src/
wget "https://github.com/downloads/taoliu/MACS/MACS-1.4.2-1.tar.gz"
--2014-04-06 13:55:08--  https://github.com/downloads/taoliu/MACS/MACS-1.4.2-1.tar.gz
github.com をDNSに問いあわせています... 192.30.252.128
github.com|192.30.252.128|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://cloud.github.com/downloads/taoliu/MACS/MACS-1.4.2-1.tar.gz [続く]
--2014-04-06 13:55:09--  http://cloud.github.com/downloads/taoliu/MACS/MACS-1.4.2-1.tar.gz
cloud.github.com をDNSに問いあわせています... 54.230.27.179, 205.251.209.90, 205.251.209.218, ...
cloud.github.com|54.230.27.179|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 66569 (65K) [application/gzip]
`MACS-1.4.2-1.tar.gz' に保存中

100%[======================================>] 66,569      66.4K/s 時間 1.0s

2014-04-06 13:55:11 (66.4 KB/s) - `MACS-1.4.2-1.tar.gz' へ保存完了 [66569/66569]
次に解凍 .tar.gzなのでtar jxvfで解凍。-Cで解凍先を指定する。
tar zxvf MACS-1.4.2-1.tar.gz -C ../local/
解凍されたMACS-1.4.2-1ディレクトリに移動して、INSTALLファイルをみる
cd ../local/MACS-1.4.2-1
less INSTALL

* Prerequisite
Python version must be equal to 2.6 or 2.7 to run MACS. We recommend
using the version 2.6.5.

* Install under Debian or Ubuntu Linux system
The most convenient way to install MACS is through Debian APT system,
so that it can be perfectly integrated in the Python environment of
your operation system. You can easily manage the package, and the
uninstall is much easier. Download the deb package from MACS download
page, and type this in the commend line:

$ dpkg -i macs_1.4.0.deb

To uninstall, type:
$ dpkg -r macs_1.4.0

MACS uses Python's distutils tools for source installations. To
install a source distribution of MACS, unpack the distribution tarball
and open up a command terminal. Go to the directory where you unpacked
MACS, and simply run the install script :

$ python setup.py install

By default, the script will install python library and executable
codes globally, which means you need to be root or administrator of
the machine so as to complete the installation. Please contact the
administrator of that machine if you want their help. If you need to
provide a nonstandard install prefix, or any other nonstandard
options, you can provide many command line options to the install
script. Use the –help option to see a brief list of available options:

$ python setup.py --help

For example, if I want to install everything under my own HOME
directory, use this command:

$ python setup.py install --prefix /home/taoliu/

ようするにpython2.6か2.7が必要。Debian or Ubuntu Linux systemではdpkgというコマンドが使えるようだが、今の環境はCentOSなのでpython setup.py installを使う。prefixを使えば指定先にインストールできる。という事らしい。
python --version
Python 2.7.3
となったので問題ないかな。
python setup.py install --prefix /home/kosugi/local
と叩くと以下のようになり、Python2.7を使っているという事がわかる。
/usr/local/Python-2.7.3/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'console'
  warnings.warn(msg)
/usr/local/Python-2.7.3/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'app'
  warnings.warn(msg)
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/MACS14
copying lib/__init__.py -> build/lib/MACS14
copying lib/Constants.py -> build/lib/MACS14
copying lib/OptValidator.py -> build/lib/MACS14
copying lib/OutputWriter.py -> build/lib/MACS14
copying lib/PeakDetect.py -> build/lib/MACS14
copying lib/PeakModel.py -> build/lib/MACS14
copying lib/Prob.py -> build/lib/MACS14
creating build/lib/MACS14/IO
copying lib/IO/__init__.py -> build/lib/MACS14/IO
copying lib/IO/bedGraphIO.py -> build/lib/MACS14/IO
copying lib/IO/BinKeeper.py -> build/lib/MACS14/IO
copying lib/IO/FeatIO.py -> build/lib/MACS14/IO
copying lib/IO/Parser.py -> build/lib/MACS14/IO
copying lib/IO/WiggleIO.py -> build/lib/MACS14/IO
running build_scripts
creating build/scripts-2.7
copying and adjusting bin/macs14 -> build/scripts-2.7
copying and adjusting bin/elandmulti2bed -> build/scripts-2.7
copying and adjusting bin/elandresult2bed -> build/scripts-2.7
copying and adjusting bin/elandexport2bed -> build/scripts-2.7
copying and adjusting bin/sam2bed -> build/scripts-2.7
copying and adjusting bin/wignorm -> build/scripts-2.7
changing mode of build/scripts-2.7/macs14 from 644 to 755
changing mode of build/scripts-2.7/elandmulti2bed from 644 to 755
changing mode of build/scripts-2.7/elandresult2bed from 644 to 755
changing mode of build/scripts-2.7/elandexport2bed from 644 to 755
changing mode of build/scripts-2.7/sam2bed from 644 to 755
changing mode of build/scripts-2.7/wignorm from 644 to 755
running install_lib
creating /home/kosugi/local/lib
creating /home/kosugi/local/lib/python2.7
creating /home/kosugi/local/lib/python2.7/site-packages
creating /home/kosugi/local/lib/python2.7/site-packages/MACS14
copying build/lib/MACS14/__init__.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14
copying build/lib/MACS14/Constants.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14
copying build/lib/MACS14/OptValidator.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14
copying build/lib/MACS14/OutputWriter.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14
copying build/lib/MACS14/PeakDetect.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14
copying build/lib/MACS14/PeakModel.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14
copying build/lib/MACS14/Prob.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14
creating /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO
copying build/lib/MACS14/IO/__init__.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO
copying build/lib/MACS14/IO/bedGraphIO.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO
copying build/lib/MACS14/IO/BinKeeper.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO
copying build/lib/MACS14/IO/FeatIO.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO
copying build/lib/MACS14/IO/Parser.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO
copying build/lib/MACS14/IO/WiggleIO.py -> /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/__init__.py to __init__.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/Constants.py to Constants.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/OptValidator.py to OptValidator.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/OutputWriter.py to OutputWriter.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/PeakDetect.py to PeakDetect.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/PeakModel.py to PeakModel.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/Prob.py to Prob.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO/__init__.py to __init__.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO/bedGraphIO.py to bedGraphIO.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO/BinKeeper.py to BinKeeper.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO/FeatIO.py to FeatIO.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO/Parser.py to Parser.pyc
byte-compiling /home/kosugi/local/lib/python2.7/site-packages/MACS14/IO/WiggleIO.py to WiggleIO.pyc
running install_scripts
copying build/scripts-2.7/macs14 -> /home/kosugi/local/bin
copying build/scripts-2.7/elandmulti2bed -> /home/kosugi/local/bin
copying build/scripts-2.7/elandresult2bed -> /home/kosugi/local/bin
copying build/scripts-2.7/elandexport2bed -> /home/kosugi/local/bin
copying build/scripts-2.7/sam2bed -> /home/kosugi/local/bin
copying build/scripts-2.7/wignorm -> /home/kosugi/local/bin
changing mode of /home/kosugi/local/bin/macs14 to 755
changing mode of /home/kosugi/local/bin/elandmulti2bed to 755
changing mode of /home/kosugi/local/bin/elandresult2bed to 755
changing mode of /home/kosugi/local/bin/elandexport2bed to 755
changing mode of /home/kosugi/local/bin/sam2bed to 755
changing mode of /home/kosugi/local/bin/wignorm to 755
running install_egg_info
Writing /home/kosugi/local/lib/python2.7/site-packages/MACS-1.4.2-py2.7.egg-info
今回は、/home/kosugi/local/binにemacs14という実行ファイルとその他の実行ファイルが作られている。
elandexport2bed
elandmulti2bed
elandresult2bed
macs14
sam2bed
wignorm
INSTALLファイルにはOn Linux, using bash, I include the new value in my PYTHONPATH by adding this line to my ~/.bashrc となっているので
export PYTHONPATH=/home/kosugi/local/lib/python2.7/site-packages:$PYTHONPATH
と記述し再ログインして、macs14とコマンドを叩くと
Usage: macs14 <-t data-blogger-escaped-tfile=""> [-n name] [-g genomesize] [options]
Example: macs14 -t ChIP.bam -c Control.bam -f BAM -g h -n test -w --call-subpeaks
macs14 -- Model-based Analysis for ChIP-Sequencing
Options:
以下オプションの説明
となったのでインストール出来た。ヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノ 今回は、インストール先を自分の好きな場所にする事が出来た。--prefix 指定先とすると自動的にbinとlibというディレクトリが作られるようだ。 前もってbinを作ってPATHも通しておいた(ディレクトリの作成)ので、順調に進んだかな。ちゃんとreadmeやinstallといったファイルを見ながら確認してやれば結構敷居低いと感じた。これでChIP-seqの解析できるかな