LifeScience Hack

生物系創薬研究者がAI(誇大表示)を手に入れるまでの過程(Python、Deep Learning、ライフサイエンス)

超初心者向け!!RNA-seq解析シリーズ⑤StringTieの使い方

誰でもできるRNA-seq解析シリーズ!
今回はHISAT2によるマッピング結果をアセンブルし、発現差を比較するようにします。

StringTieというソフトを使用します。

↓これまでの関連記事一覧↓

lifesciencehack-ai.hatenablog.com

sam→bamへの変換

まず、アノテーションを実施する前に、
HISAT2でマッピングしたファイルをソートしてバイナリファイルのbam形式に変換します。

こうすることによってコンピュータが認識しやすくなり、
高速に処理することができるそうです。

ソート&bam変換は「samtools」を使います。

samtoolsのインストール

まずは、samtoolsをインストールします。
インストールはbrew installで簡単にできます。

brew install samtools

samファイルをソートしてbamに変換

samtools sort -@ 4 -O bam -o SRR1571967.sort.bam SRR1571967.sam

samtoolsのコマンド説明

samtools samtoolコマンド実行を指示
sort samtoolでソートする
-@ 4 CPUの使用するスレッド数を指定
-O bam outputのファイル形式をbamに指定
-o SRR1571967.sort.bam outputのファイル名を指定
SRR1571967.sam hisat2で出力したマッピングファイルを指定

すべてのファイルに対して同様に実施しましょう。

samtools sort -@ 4 -O bam -o SRR1571967.sort.bam SRR1571967.sam
samtools sort -@ 4 -O bam -o SRR1571968.sort.bam SRR1571968.sam
samtools sort -@ 4 -O bam -o SRR1571969.sort.bam SRR1571969.sam
samtools sort -@ 4 -O bam -o SRR1571970.sort.bam SRR1571970.sam
samtools sort -@ 4 -O bam -o SRR1571971.sort.bam SRR1571971.sam
samtools sort -@ 4 -O bam -o SRR1571972.sort.bam SRR1571972.sam

これで全てのマッピングファイルをソートしbamに変換できました。

StringTieでassembleする

マッピング→ソート→bam変換が完了しました。
今あるbamデータはRNA-seqの何千万とあるリードが、
ゲノムのどこに相当するものかという情報だけです。
これからこのデータをもとに遺伝子発現量を比較するわけですが、
そのためにはゲノムのどこに何の遺伝子があるのかを知り、
各リードは何の遺伝子の一部であったのか情報を付与する必要があります。

このためのプログラムが「StringTie」になります。

StringTieのインストール

以下のコマンドを実行

brew install stringtie

アノテーションファイルの取得

次にアノテーションファイルを取得いたします。
リファレンスゲノムと同じデータベースからアノテーションを取ります。
今回はUCSCのmm10をリファレンスゲノムとしましたので、
UCSCからアノテーションファイルを取得します。

UCSCのTable Browserに行き、対応するアノテーションファイルを取得します。

Table Browser
f:id:tottoham:20191217233046p:plain 画像のように、
●種
●リファレンスゲノムに対応するアッセンブリー
●TrackをNCBI RefSeq
●gtfファイル形式を選択
●ファイル名指定
gzip圧縮
を設定しget outputをクリックしてダウンロードします。
macOSですと、勝手にファイルが解凍されると思います。
もし解凍されていなかったら、以下のコマンドで解凍しましょう。

#gzipファイルの解凍
gzip -d UCSC.mm10.gtf.gz

StringTieによるアノテーション情報付与

stringtie SRR1571967.sort.bam -o SRR1571967.gtf -p 4 -G UCSC.mm10.gtf -l SRR1571967 -A SRR1571967.gene.abundance.tab
StringTieコマンド説明

stringtie stringtieコマンド実行
SRR1571967.sort.bam samtoolsでsortしたbamファイルを指定
-o SRR1571967.gtf出力ファイル名を指定
-p 4CPUの使用するスレッド数を指定
-G UCSC.mm10.gtf先程UCSCからダウンロードしたアノテーションファイルを指定
-l SRR1571967ラベル名を指定
-A SRR1571967.gene.abundance.tab タブ区切り形式ファイルも出力させ、そのファイル名を指定 StringTieの詳しい説明につきましては、
https://ccb.jhu.edu/software/stringtie/index.shtml?t=manual#output
に詳しい説明があります。
これを全てのsort.bamファイルに対して実行します。

stringtie SRR1571967.sort.bam -o SRR1571967.gtf -p 4 -G UCSC.mm10.gtf -l SRR1571967 -A SRR1571967.gene.abundance.tab
stringtie SRR1571968.sort.bam -o SRR1571968.gtf -p 4 -G UCSC.mm10.gtf -l SRR1571968 -A SRR1571968.gene.abundance.tab
stringtie SRR1571969.sort.bam -o SRR1571969.gtf -p 4 -G UCSC.mm10.gtf -l SRR1571969 -A SRR1571969.gene.abundance.tab
stringtie SRR1571970.sort.bam -o SRR1571970.gtf -p 4 -G UCSC.mm10.gtf -l SRR1571970 -A SRR1571970.gene.abundance.tab
stringtie SRR1571971.sort.bam -o SRR1571971.gtf -p 4 -G UCSC.mm10.gtf -l SRR1571971 -A SRR1571971.gene.abundance.tab
stringtie SRR1571972.sort.bam -o SRR1571972.gtf -p 4 -G UCSC.mm10.gtf -l SRR1571972 -A SRR1571972.gene.abundance.tab

実行すると作業ディレクトリに下画像のようにファイルが作成されたらOKです。
f:id:tottoham:20200816113541p:plain

gtfファイルをmergeする

次にStringTieで作成された.gtfファイルを一つにまとめ、比較できるようにします。
各サンプルで同定された転写産物をまとめたgtfファイルが作成されます。

mergelist.txtファイルの作成

mergeさせるgtfファイル(stringtieでアノテーションをつけた)のpathを全て指定するtxtファイルを作成します。 一番ラクなのは全てのファイルを作業ディレクトリに入れておけば、
画像のようにファイル名一覧を作成するだけで良いです。
macであればテキストエディットで作成し、ファイル名をmergelist.txtにして保存しましょう。
作業ディレクトリにファイルがない場合は相対パスを一つづつ書けばOKです。
f:id:tottoham:20200816125657p:plain

mergeの実行
stringtie --merge -G UCSC.mm10.gtf -o stringtie_merged.gtf mergelist.txt
コマンドの説明

stringtie --mergestringtieでmergeを実行することを指定
G UCSC.mm10.gtf リファレンスゲノムを指定
-o stringtie_merged.gtf mergelist.txt 出力されるファイル名を指定、mergeするファイルを指定したtxtファイル名を指定

mergeを実行し、stringtie_merged.gtfファイルが作成されればOKです。

Ballgown用ファイルの作成

作業ディレクトリにballgownというフォルダを作ります。
その後、

stringtie SRR1571967.sort.bam -e -B -p 4 -G stringtie_merged.gtf -o ballgown/SRR1571967/SRR1571967.gtf
コマンド説明

stringtiestringtieを実行 SRR1571967.sort.bam sort.bamファイルを指定 -e -Gで指定されたリファレンス転写物にマッチした転写物のみを使用するオプション
-B Ballgown用ファイルを作成
-p 4 使用するCPUのスレッド数を指定
-G stringtie_merged.gtf 先ほどStringtieでmergeしたファイルを指定
-o ballgown/SRR1571967/SRR1571967.gtf 出力先とファイル名を指定

全てのファイルに対して実行
stringtie SRR1571967.sort.bam -e -B -p 4 -G stringtie_merged.gtf -o ballgown/SRR1571967/SRR1571967.gtf
stringtie SRR1571968.sort.bam -e -B -p 4 -G stringtie_merged.gtf -o ballgown/SRR1571968/SRR1571968.gtf 
stringtie SRR1571969.sort.bam -e -B -p 4 -G stringtie_merged.gtf -o ballgown/SRR1571969/SRR1571969.gtf
stringtie SRR1571970.sort.bam -e -B -p 4 -G stringtie_merged.gtf -o ballgown/SRR1571970/SRR1571970.gtf
stringtie SRR1571971.sort.bam -e -B -p 4 -G stringtie_merged.gtf -o ballgown/SRR1571971/SRR1571971.gtf
stringtie SRR1571972.sort.bam -e -B -p 4 -G stringtie_merged.gtf -o ballgown/SRR1571972/SRR1571972.gtf

次の記事ではballgownを用いて発現差解析を行っていきたいと思います。