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

2014年7月24日木曜日

マップしなかったリード・マップしたリード・ユニークなリードの数え方

bowtieが終わったあとに表示される以下の様なリード数が表示されるがこれをあとでコマンドから確認する方法
135582741 reads; of these:
135582741 (100.00%) were unpaired; of these:
22383842 (16.51%) aligned 0 times
61518065 (45.37%) aligned exactly 1 time
51680834 (38.12%) aligned >1 times
83.49% overall alignment rate 
基本的にフラグが立っているのでそれを利用する。
#reads; of these:これはfastQCした結果のhtmlを見るかbowtieにかける前のfastqをwc -lして4で割れば良い。
#aligned 0 times:マップされなかったリード数の表示は
samtools view -cf 4 filename.bam
#マップされたリード数の表示は
samtools view -cF 4 filename.bam
#aligned >1 times:マルチマップされたリード数の表示は
grep 'XS:' ./filename.sam | wc -l
#aligned exactly 1 time:ユニークにマップされたリード数の表示は
マップされたリード数からマルチマップされたリード数を引くか
sed '/XS:/d' Enh1.sam | wc -lとして、全リード数からマルチマップのリードをsamから取り除いた行カウントを行う。その値からsamのheaderのライン数とマップされなかったリード数を引く。
ちなみに、pairをきちんと組んでいるものを抽出するには この組み合わせ
samtools view -S -f 99 -S filename.sam > ./filename.99.sam
samtools view -S -f 147 -S filename.sam > ./filename.147.sam
この組み合わせ
samtools view -S -f 83 -S filename.sam > ./filename.83.sam
samtools view -S -f 163 -S filename.sam > ./filename.163.sam
http://ppotato.wordpress.com/2010/08/25/samtool-bitwise-flag-paired-reads/がわかりやすい。
<<<<<追記>>>>>>
 XS:による方法は非常に限られた状況でのみ成立するっぽいです.
 bowtie2でSEでやった時は少なくともbowtieを走らせたあとの結果と一致しました。
ちなみにPEでやったものを同様に行うと、想定よりも大きい値が出たため、PEにはこの方法は適応できません。
XS:i:<N>
Alignment score for the best-scoring alignment found other than the alignment reported. Can be negative. Can be greater than 0 in --local mode (but not in --end-to-end mode). Only present if the SAM record is for an aligned read and more than one alignment was found for the read. Note that, when the read is part of a concordantly-aligned pair, this score could be greater than AS:i. ってbowtie2のmanualに記載があるけれどよくわかりません( TДT)

SE/PEどちらの場合も、よくいわれるNH:i:のフラグはbowtie2では立ちませんでした。MAPQの値で行う事も出来ませんでした。

確実にmulti alignを取り除く方法知っている方いたら教えてくださいm(_ _ )m

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月5日土曜日

Bowtie2に使うゲノムダウンロード

HPはここhttp://bowtie-bio.sourceforge.net/bowtie2/index.shtml
右下にindexesっていうとこがある。
ここからhg19とmm10のダウンロードを行う。
インデックスがついたゲノムファイルを置いておくディレクトリを~/local/bowtie2-2.2.1につくる
cd ../local/bowtie2-2.2.1
mkdir indexes
早速ダウンロード H. sapiens, UCSC hg19をクリックするとPCにダウンロードされるので、ターミナルにリンク先をコピペする。ターミナルへのリンクのコピペはリンクをドラッグアンドドロップすればできる。
ターミナルを起動して、srcに移動してダウンロード。
cd src/
wget "ftp://ftp.ccb.jhu.edu/pub/data/bowtie2_indexes/hg19.zip"
次に解凍。zipなのでunzipを使う。 localに解凍する -dで解凍先に../local/bowtie2-2.2.1を指定
unzip hg19.zip -d ../local/bowtie2-2.2.1/indexes/
mm10も同様に行う。
wget "ftp://ftp.ccb.jhu.edu/pub/data/bowtie2_indexes/mm10.zip"
次に解凍。zipなのでunzipを使う。 localに解凍する -dで解凍先に../local/bowtie2-2.2.1を指定
unzip mm10.zip -d ../local/bowtie2-2.2.1/indexes/
一応indexesディレクトリがどうなったか確認すると以下のようになっている。
ls -1 ../local/bowtie2-2.2.1/indexes/
hg19.1.bt2
hg19.2.bt2
hg19.3.bt2
hg19.4.bt2
hg19.rev.1.bt2
hg19.rev.2.bt2
make_hg19.sh
make_mm10.sh
mm10.1.bt2
mm10.2.bt2
mm10.3.bt2
mm10.4.bt2
mm10.rev.1.bt2
mm10.rev.2.bt2
一つのゲノムファイルに付き6つの.bt2ファイルがある。.shファイルは何に使うか不明。ひとまずこれでOK。fasta形式のゲノムファイルのみが手元に有る場合は、bowtie2のbowtie-buildというコマンドでindexを作る事ができるらしい。そういう機会がでてきたらusageで使い方を確認して行ってみる

2014年4月4日金曜日

Bowtie 2のインストール

HPはここhttp://bowtie-bio.sourceforge.net/bowtie2/index.shtml
Lastest Releaseにあるリンクをクリック
bowtie2-2.2.1-linux-x86_64.zipをクリックするとPCにダウンロードされるので、ターミナルにリンク先をコピペする。ターミナルへのリンクのコピペはリンクをドラッグアンドドロップすればできる。ただ今回はhttp/~/~/~/bowtie2-2.2.1-linux-x86_64.zip/downloadとなっているとうまくいかないので最後の/downloadを消す必要が有る。
ターミナルを起動して、srcに移動する。
cd src/
wget "http://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.2.1/bowtie2-2.2.1-linux-x86_64.zip"
--2014-04-04 11:36:17--  http://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.2.1/bowtie2-2.2.1-linux-x86_64.zip
sourceforge.net をDNSに問いあわせています... 216.34.181.60
sourceforge.net|216.34.181.60|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.2.1/bowtie2-2.2.1-linux-x86_64.zip/download [続く]
--2014-04-04 11:36:17--  http://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.2.1/bowtie2-2.2.1-linux-x86_64.zip/download
sourceforge.net|216.34.181.60|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.1/bowtie2-2.2.1-linux-x86_64.zip?r=&ts=1396579000&use_mirror=jaist [続く]
--2014-04-04 11:36:18--  http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.2.1/bowtie2-2.2.1-linux-x86_64.zip?r=&ts=1396579000&use_mirror=jaist
downloads.sourceforge.net をDNSに問いあわせています... 216.34.181.59
downloads.sourceforge.net|216.34.181.59|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://jaist.dl.sourceforge.net/project/bowtie-bio/bowtie2/2.2.1/bowtie2-2.2.1-linux-x86_64.zip [続く]
--2014-04-04 11:36:18--  http://jaist.dl.sourceforge.net/project/bowtie-bio/bowtie2/2.2.1/bowtie2-2.2.1-linux-x86_64.zip
jaist.dl.sourceforge.net をDNSに問いあわせています... 150.65.7.130, 2001:df0:2ed:feed::feed
jaist.dl.sourceforge.net|150.65.7.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 26374304 (25M) [application/octet-stream]
`bowtie2-2.2.1-linux-x86_64.zip' に保存中

100%[======================================>] 26,374,304  2.43M/s 時間 10s

2014-04-04 11:36:29 (2.41 MB/s) - `bowtie2-2.2.1-linux-x86_64.zip' へ保存完了 [26374304/26374304]
次に解凍。zipなのでunzipを使う。 localに解凍する -dで解凍先を指定 ちなみにコマンドやファイル名はtabキーで補完されるので使うと便利
unzip bowtie2-2.2.1-linux-x86_64.zip -d ../local/
解凍すると、bowtie2-2.2.1ディレクトリができる。先ほどのHPのPATHのところにBy adding your new Bowtie 2 directory to your PATH environment variable, you ensure that whenever you run bowtie2, bowtie2-build or bowtie2-inspect from the command line, you will get the version you just installed without having to specify the entire path. This is recommended for most users. To do this, follow your operating system's instructions for adding the directory to your PATH.と記述されているので適当にパスを通す。
export PATH=/home/kosugi/local/bowtie2-2.2.1:$PATH
ほんで、home ディレクトリに戻ってbowtie2 -hでusageがでるか確認
bowtie2 -h
Bowtie 2 version 2.2.1 by Ben Langmead (langmea@cs.jhu.edu, www.cs.jhu.edu/~langmea)
以下Usage
動いた!これで場所を選ばず実行できる。
再ログインしても良いようにパスを.bashrcに記述
vim .bashrc
ファイルが開いたらiを押すと書き込める。以下を一番下に追記する。追記したらescキーを押して:wq
## bowtie2
export PATH=/home/kosugi/local/bowtie2-2.2.1:$PATH  :$PATHを後ろに持ってくると今まで書かれたパスの前に記述という事らしい。
念のため再ログインしてwhichでどのパスでプログラムが実行されている確認する。
which bowtie2
~/local/bowtie2-2.2.1/bowtie2
順調順調^^