NGSデータ解析時のファイルのフォーマット (2)

FASTQ, BAM (SAM) に続いて、よく利用されるのが、BED (べっど)形式のファイルです。

BED

BED は、Browser Extensible Data の略です。Browser (ブラウザ)は、UCSC のゲノムブラウザのことです。染色体(ゲノム)上の位置情報に、何らかのスコアを加えて表現するためのファイルです。

これもテキスト形式のファイルで、1行ごとに、位置情報 (chrom, chromStart, chromEnd) とスコア (name, score)、その他の情報をオプションで記述します。

最低限のデータとしては、下記のようなものです。(各項目の区切りはタブ文字)

chr1 100 200 geneA 1000
chr2 1000 2000 geneB 10

chrom は染色体の番号、chromStart は、指定したい配列の開始位置、chromEnd は終了位置です。name は、ブラウザに表示するときのラベル名、score は、表示したい任意の数字 (0-1000) です。ここまでが、BEDファイルに必須の項目です。残りのオプション部分にいろいろな情報を指定できるので、同じ BED ファイルでも様々なバリエーションがあります。

https://genome.ucsc.edu/FAQ/FAQformat.html#format1

基本的には座標を指定するものなので、プロモーターやエンハンサーの位置を示したり、ChIP-seq の結果のピークの位置とスコアを表したり、様々なことに使用されています。

BED を元にさらに拡張されたフォーマットとして、bigBed, bedGraph があります。同様に、ゲノム上の位置(区間、領域)に情報を記述するものとして、WIG とそれを拡張、圧縮した bigWig などがあります。

bedtools

ゲノム上の位置情報どうしを演算するためのツールとして、 bedtools というソフトウェアがあります。bed で指定した配列の座標から、1000 base 上流の座標を求めたり、指定した座標の両端 500 から 1000 base の座標求めることができます。

さらにリファレンスゲノム(FASTAファイル)から、求めた座標に該当する領域の配列を抽出することも可能です。具体的な配列操作のイメージは、下記の解説が分かりやすいです。

getfasta

その他の操作もイメージつきで解説されています。(このようなソフトウェアの解説は、まず、作成者の準備したドキュメントに目を通すことをお勧めします。有用なことが多く書かれています。)

http://bedtools.readthedocs.io/en/latest/content/bedtools-suite.html

Mac であれば、brew を使ってインストールできます。

brew install bedtools

* science タップを追加する必要があります。ない場合は上記のコマンドのログにその旨が表示されますので、それに従います。

 

NGSデータ解析時のファイルのフォーマット (1)

NGSのデータ解析時に用いられるファイルの形式は様々なフォーマットがあります。名前もよく似ているものが多く、初めは混乱するかもしれません。代表的なシーケンスのデータベースである UCSC に各種フォーマットの解説があります。

https://genome.ucsc.edu/FAQ/FAQformat.html

RNA-seq において、代表的なフォーマットは、FASTQ (ふぁすときゅー)とBAM(ばむ)です。

FASTQ

FASTQ は、シーケンサーで検出されたリードの配列を保存したものです。もとは、ATGCの文字を記述するだけの FASTA(ふぁすた)というフォーマットがあり、それに加え、シーケンサーで読み取った各塩基のクオリティーのスコアを格納したものです。リードを1本1本、記録しているため、数千万行から数億行の大きなサイズのファイルです。テキストファイルですので、テキストエディタで開くと、文字が読めます。(圧縮されている場合は、一度展開する必要があります。エディタによってはそのまま読めるものもあります。)

ファイルの拡張子は、.fastq, .fq などです。圧縮されていれば、.fastq.gz, .fq.gz のようになります。(FASTA の場合は、.fasta, .fa, fa.gz など。)また、_1.fq.gz, _2.fq.gz のように番号がついているものは、ペアエンドモードでシーケンスされた結果です。この場合、1サンプルあたり、2つのFASTQファイルがあります。

BAM (SAM)

シーケンサーから出力されたリード(FASTQ) を、リファレンスとなる配列にマッピングした結果は、SAM(さむ)形式のファイルになります。1本1本のリードが、ゲノム上のどこにマップされたかを示します。FASTQ の中身も含むので、ファイルのサイズは数十ギガバイト (GB) と大きくなります。ファイルの拡張子は、.sam です。SAMフォーマットの仕様は、GitHub で確認できます。

BAM は、上記の SAM を圧縮したものです。データの中身は、SAMと同一のものです。通常、マッピングした結果として提供されるのは、このBAMファイルです。1サンプルにつき1個の BAM ファイルになります(ペアエンドでもマッピング後のファイルは1個)。ファイルの拡張子は、.bam です。圧縮といっても、単純に gzip や、bzip2 で圧縮したわけではないため、専用のツール (samtools) を使って圧縮や展開を行います。(よって、sam.gz や sam.bz2 ではありません。念のため)

BAM は圧縮されているので、テキストエディタで開いても読めません。通常は、IGVなどのゲノムブラウザに読み込ませて、結果を確認することになります。(ゲノムブラウザでは、手動でSAMに変換することなく、BAMのまま読め場合がほとんどです。)

RNA-seq の場合、マッピング後の結果を比較することになりますが、単純に BAM ファイルどうしを比較するわけではありません。BAMファイルから、各遺伝子ごとに何本のリードがあるのかをカウントする作業が必要になります。

 

特定の組織で発現の高い遺伝子を探す(ES細胞だけで発現の高いものは?)

ヒートマップとクラスタリングを応用することで、特定の組織で発現の高い遺伝子を探すことも可能です。

例えば、ES細胞だけで発現の高い遺伝子を探してみましょう。

公開データ (GEO, BioGPS) を利用して、いろいろな組織のデータを取得

まず、データとしては、様々な組織のマイクロアレイデータが必要になります。個々の研究室レベルで揃えようと思うと大変ですが、幸い近年では公開データがあるので、うまく利用しましょう。

いろいろな組織の遺伝子発現を比較したければ、 BioGPS のデータが使えます。心臓、肝臓、肺などの種々の組織、約180サンプルぶんのマイクロアレイデータがあります。

クラスタリングしてヒートマップで表示

データを取得したら、正規化して、クラスタリングを行い、結果をヒートマップで表示します。ここでは、RMA と quantile アルゴリズムによって正規化し、階層的クラスタリングを行いました。

全遺伝子では結果を見るのが大変なので、正規化後、アノテーションを元に stem cell 関連遺伝子だけを抽出しています。また、MeV上で、シグナル値を log2変換して、中央値からの距離に変換しています。クラスタリングは、遺伝子方向、サンプル方向とも階層的クラスタリングで行っています。

結果は下図のようになります。遺伝子が縦に並んでいます(行)。組織(サンプル)が横に並んでいます(列)。

stem cell 関連遺伝子のクラスタリング結果。BioGPSのデータを利用。
stem cell 関連遺伝子のクラスタリング結果。BioGPSのデータを利用。

ES細胞だけで発現が高い遺伝子

左から3分の1ほどの列に、ES細胞のデータ(4列)が並んでいます。これらの4列だけで、赤くなっている遺伝子があれば、それらが、ES細胞だけで発現が高い遺伝子です。

探してみると、真ん中より少し上にある遺伝子のクラスターに、ちょうど4列だけ赤い部分があります。ハイライトすると下図の部分です。遺伝子名を確認すると、Pou5f1 = Oct3, Nanog など有名な遺伝子が該当しているのが分かります。(見やすいように横方向を縮小しています。)

ES細胞だけで発現の高い遺伝子をハイライト。
ES細胞だけで発現の高い遺伝子をハイライト。

なお、色付けの設定から、「黒=発現していない」ではない、ので注意してください。

 

ratio のヒートマップで変動パターンをチェックする

シグナル値ではなく、ratio でヒートマップを書いて、変動パターンにをチェックすることもあります。

ratio のヒートマップ

シグナル値ではなく、ratio を用いたヒートマップの例を示します。データとしては、解析例1の3つの比較において、いずれかの比較で変動のあった遺伝子(約2678個)だけを用いています。

左から、3つの比較(ratio1, ratio2, ratio3) を並べています。ratio1 = sample1/control1, ratio2=sample2/control2, ratio3=sample3/control3 となります。

色付けは、ratio < 0.5 を明るい、ratio > 2 が明るいになるようにしています。

また、図は全体が見えやすいようにリサイズしています。

ratio のヒートマップ。遺伝子方向にクラスタリングを適用。
ratio のヒートマップ。遺伝子方向にクラスタリングを適用。

シグナル値を用いた場合のヒートマップと異なり、ヒートマップにコントロールは表示されません。3列ともであれば、3つの比較において、共通に増加した遺伝子だと分かります。逆に3列ともであれば、共通に減少した遺伝子です。

変動パターンをチェックしやすい反面、計算していない比較の組み合わせ(例えば、sample2 と sample3 ではどちらが高いか)は読み取るのが難しい場合があります。

参考

 

クラスタリング結果の誤解しやすい部分

クラスタリングを解釈する際に、よく誤解しやすい部分があります。クラスタリングの結果というものは、それほど絶対的なものではありません。

クラスタリングの結果は、どのアルゴリズム(hierarchical, k-means, SOM など)を用いてクラスタリングするかで多少異なりますし、同じアルゴリズムを用いたとしても、パラメーターの設定によっても若干変化します。

また、クラスタリングするときに、全遺伝子を用いるか、変動している遺伝子だけを用いるかでも変わります。

サンプル間の距離の計算方法による違い(パラメーターの違い)

サンプル方向にクラスタリングを行い、似ている順位のツリーを書くためには、各サンプル間の距離を求めることになります。このサンプル間の距離を求める方法は、いくつかあります。例えば、単純に引き算して差を取るだけの場合や、2乗してから差を取る場合、相関係数を用いる場合などです。

MeV では、 Distance Metric Selection の部分で、この距離を求める手法を選択することになります。

距離を求める方法の選択。
距離を求める方法の選択。

このサンプル間の距離の求め方によって、最終的な結果のツリーの分類は多少異なります。解析例1の全遺伝子(5万プローブ)をサンプル方向のみでクラスタリングした結果を示します。

Euclidian Distance を選択してクラスタリングした結果。
Euclidian Distance を選択してクラスタリングした結果。

距離を求める手法に Euclidian Distance を選択した場合、control1 だけ外れて(似ていないように)見えます。

Pearson Correlation を選択してクラスタリングした結果。
Pearson Correlation を選択してクラスタリングした結果。

相関係数(Pearson Correlation)を用いて、クラスタリングした場合、control1だけ外れているようには見えません。一般的には、この相関係数を用いることが多いと思います。

クラスタリングに用いる遺伝子セットによる違い

上述の全遺伝子を用いてクラスタリングした結果に対して、変動している遺伝子だけをクラスタリングした結果を示します。 全遺伝子を対象とした場合と異なり、 sample2 と sample3 が近いように見えています。

いずれかの比較で変動していた遺伝子を用いてクラスタリングした結果。
いずれかの比較で変動していた遺伝子を用いてクラスタリングした結果。

このようにクラスタリングの結果は、必ずしも、絶対的なものではありません。よく論文で図示されていますが、あくまで1例であり、あるパターンに分かれる可能性を示したものにすぎません。(仮説の証明手段ではありません。)

特に全遺伝子でクラスタリングした場合、「sample1 と一番近いのは、 sample2 と sample3 のどちらか?」というような、結果の細部にあまりこだわらないほうがよいでしょう。前述のような計算方法の違いで多少前後する可能性があります。ある意味、当然のことなので、これらの結果に一喜一憂する必要はありません。

(その時、用いたデータセットとパラメーターを使えば、とりあえず、あるパターンに分かれて見えるという程度に理解した方が良いです。結果の解釈には生物学的な裏付けが求められます。)