2014年10月29日(水)

NGSデータをIGVブラウザで見るまで

投稿者:

僕はNGS解析の専門家ではありませんが、たぶんこれ、ここ数年のうちにPCR並に当たり前の技術になるでしょうから(学生のころはPerkinElmerのPCRマシーンが眩しかった、、、)、猿でも出来るレベルのNGS解析の解説記事を不定期でアップしていこうと思います。以下、埼玉大及び熊本大学の集中講義で使用した資料です。

Section I とりあえず解析環境が入っているMacを使ってやってみる

0)IGVブラウザのダウンロード

Broad instituteのホームページからダウンロードできる。
メールアドレスと所属を登録すればすぐにダウンロードできる。
Java Web Startのオプションもある。自分のコンピュータにインストールする事も出来る(推奨)。

1)ゲノムのダウンロード

作業をするためのフォルダを作っておく。ここではS_pombeという名前のフォルダを作製。
まずはS.pombeゲノムのデータをダウンロードしなくてはいけない。ググればいろいろなサイトがヒットする。
EnsembleのS.pombeのゲノムのfasta形式のファイルや遺伝子アノテーションのgtfファイル(tophatで使う)はこちらから。
FTPサイトはゲストでログインすればファイルを取得できる。
Schizosaccharomyces_pombe.ASM294v2.23.dna.genome.fa.gzをダウンロードして解凍する。
ファイル名をpombe.faに変えておく。
S_pombeフォルダの中にgenomeというフォルダを作って入れておく。

2)インデックスファイルの作製

マッピングをするためにはゲノムの「目次」であるインデックスファイルが必要。
bowtie2の場合、.bt2の拡張子がついたファイルが6種類(リンク先からダウンロード可能)
pombe.1.bt2
pombe.2.bt2
pombe.3.bt2
pombe.4.bt2
pombe.rev.1.bt2
pombe.rev.2.bt2
ともあれ、自力でこれらのファイルを作ってみよう。
Terminalを起動して、genomeフォルダに移動。
使うコマンドはbowtie2-build。読み込むファイル名と出力ファイル名(拡張子なし)を指定するだけ。

cd ./genome
bowtie2-build -f pombe.fa pombe

3)sraファイルのダウンロード

必要なデータをとってきて先ほど作ったS_pombeフォルダに保存しておく。

ダウンロードされるのはsraファイルなので、fastq形式に変換する。 分からなかったら"sra fastq 変換"とググれば良い。 使うコマンドはfastq-dump。ファイル名を指定するだけ。 sraファイルがおいてあるフォルダにcdを使って移動するのを忘れずに。 ここではSRR835119の例を示す。

fastq-dump SRR835119.sra

ちなみに、ペアエンドリードの場合は。

fastq-dump --split files XXXX.sra

にしなくてはいけない。

4)ゲノムへのマッピング

bowtie2を使う場合

bowtie2 -x インデックスファイル(共通部分のみ) -U 読み込みファイル名.fastq -S 保存ファイル名.sam

bowtie2 -x ./genome/pombe -U SRR835119.fastq -S SRR835119.sam

これでゲノムにマップされたsamファイルが生成される。
これをIGVが読み込めるbamファイルに変換する。
samtools view -bS 読み込みファイル名.sam > 出力ファイル名.bam

samtools view -bS SRR835119.sam > SRR835119.bam

この時点ではbamファイルはバラバラの順番に並んでいる。
ゲノムの配列の順番に並べ替え(ソート)しなくてはいけない。

samtools sort SRR835119.bam SRR835119

注)2016/5/19にやったらエラーが出た。アウトプットファイルを指定したらできたんですが。。。

samtools sort SRR835119.bam -o SRR835119_sorted.bam

あとはこのソート済みbamファイルから、目次のインデックスファイル.baiを作るだけ。

samtools index SRR835119.bam

IGVを立ち上げて見てみる!!


tophatを使う場合

tophat -p コア数 -G gtfファイル.gtf -o 出力先 インデックスファイル(共通部分のみ) 入力ファイル.fastq

tophat -p 6 -G ./genome/pombe.gtf -o ./tophat ./genome/pombe  SRR835119.fastq

tophatフォルダの中にaccepted_hits.bamというファイルが生成される。既にソートされているので、インデックスをつければigvで見る事が出来る。

 

Section II マッピングをしてくれるコマンドライン集

命令文が一杯あって面倒くさい!!
でも、解析用フォルダ内にsraファイル、その中にあるgenomeフォルダの中にゲノム.fa、インデックス.bt2を入れておいて、以下の命令文をエディタにコピー。#NAMEの部分をsraファイルの名前に置換すれば、igvで見る事の出来るbamファイルを生成するコマンド文が一発で出来る。簡単。簡単。

bowtie2マッピング

#single endの場合

fastq-dump #NAME.sra;
bowtie2 -x ./genome/pombe -U #NAME.fastq -S #NAME.sam;
samtools view -bS #NAME.sam > #NAME.bam;
samtools sort #NAME.bam #NAME;
samtools index #NAME.bam

#pair endの場合

fastq-dump --split-files #NAME.sra;
bowtie2 -x ./genome/pombe -1 #NAME_1.fastq -2 #NAME_2.fastq -S #NAME.sam;
samtools view -bS #NAME.sam > #NAME.bam;
samtools sort #NAME.bam #NAME;
samtools index #NAME.bam

tophat (single end) マッピング (2コア)

#non-directionalの場合

fastq-dump #NAME.sra;
tophat -p 2 -G ./genome/pombe.gtf -o ./tophat ./genome/pombe  #NAME.fastq;
samtools index ./tophat/accepted_hits.bam

#directionalでsense-strandがfastqファイルに入っている場合

fastq-dump #NAME.sra;
tophat -p 2 -G ./genome/pombe.gtf -o ./tophat --library-type fr-firststrand ./genome/pombe  #NAME.fastq;
samtools index ./tophat/accepted_hits.bam

#directionalでantisense-strandがfastqファイルに入っている場合

fastq-dump #NAME.sra;
tophat -p 2 -G ./genome/pombe.gtf -o ./tophat --library-type fr-secondstrand ./genome/pombe  #NAME.fastq;
samtools index ./tophat/accepted_hits.bam

tophat (pair end)マッピング (2コア)

#non-directionalの場合

fastq-dump --split-files #NAME.sra;
tophat -p 2 -G ./genome/pombe.gtf -o ./tophat ./genome/pombe  #Name_1.fastq #NAME_2.fastq;
samtools index ./tophat/accepted_hits.bam

#directionalでsense-strandがfastqファイルに入っている場合

fastq-dump --split-files #NAME.sra;
tophat -p 2 -G ./genome/pombe.gtf -o ./tophat --library-type fr-firststrand ./genome/pombe #NAME_1.fastq #NAME_2.fastq;
samtools index ./tophat/accepted_hits.bam

#directionalでantisense-strandがfastqファイルに入っている場合

fastq-dump --split-files #NAME.sra;
tophat -p 2 -G ./genome/pombe.gtf -o ./tophat --library-type fr-secondstrand ./genome/pombe -o ./tophat #NAME_1.fastq #NAME_2.fastq;
samtools index ./tophat/accepted_hits.bam


Section III NGS解析環境づくり-基本Mac OSXの場合

Xcodeのインストール
 App Storeより無料でインストールできる。
Command line toolsのインストール (Xcode 7.3.1以降では必要ないかも)
 XcodeのメニューからXcode->Open Developer Tool->More Developer Tools
 リストからCommand Line Tools for Xcodeをダウンロードしてインストール
 Marvericks以前の場合はXcodeの環境設定からインストールできる
homebrewのインストール
インストール方法はこちらに書いてある。以下のコマンドをTerminalにコピペしてリターンキーを押すだけ。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

homebrewさえインストールされれば、あとは簡単。 インストールの際のコマンドは brew install /homebrew/science/ツール名なので

brew install homebrew/science/sratoolkit
brew install homebrew/science/samtools
brew install homebrew/science/bowtie2
brew install homebrew/science/tophat
brew install homebrew/science/cufflinks
brew install homebrew/science/bedtools
brew install homebrew/science/fastx_toolkit
brew install igv

igvをターミナルから走らせる際にJava JDKをインストールしないといけない。ダウンロードはこちらから。 ここまでインストールしておけば、数十万円する市販ソフト並みの一通りの解析は可能!
今回はfastqの生データをいきなり突っ込んだが、FastX_toolkitなどでアダプター除去、低クオリティーリード除去など必要な時もある。
ツールは古くなる。時々アップデートする。

brew update
brew doctor
brew upgrade ツール名

sraファイルを高速ダウンロードするにはAspera Connectをインストールしておくと良い(10倍程度早くなる)。 Windowsの場合はLinux環境をインストールすれば何とかなる、、、はず。

Section IV もうちょっと突っ込んで、、、

リードをそのままマッピングしてもそこそこの結果が出てきますが、特に、塩基置換を調べる時など、クオリティーが低いリードを無理やりマッピングしてしまうとノイズが増えてしまうようです。クオリティーフィルターはいろいろありますが、FASTX-Toolkitが便利ということでインストールしようとしても動かず、Macでは動かないのかなということで敬遠していたのですが、最近チェックしてみると、今ではhomebrewで普通にインストールできるようです。というわけで、たとえば3' 末端からクオリティが 30 未満の塩基をトリミングし、長さが 100 bp 未満となったリードを破棄する。リードの 80% 以上の塩基がクオリティ 20 未満のリードならば除去する。というフィルターならば、

fastq_quality_trimmer -t 30 -l 100 -i <inputのファイル.fastq> | fastq_quality_filter -q 28 -p 80 -o <outputのファイル.fastq>

 

でオーケー。FastQCとかでフィルターがうまくいっているかチェックした後マッピングしなおすと、劇的に結果が変わるときもあるようです。

分からない時はググる!!!

統合TVに懇切丁寧な説明が動画付きでのっている。 東京大学門田研のNGS解析関連ホームページ
門田研の孫さんによるBioLinuxのインストールについて
MacOSを使っている場合、Bowtie MappingならSraTailorが便利
標準パイプラインについてはこちらを参照。

中川 真一

北海道大学 薬学研究院 教授
▶ プロフィールはこちら

ブログアーカイブ

ログイン

サイト内検索