Coder Social home page Coder Social logo

ajacs68's Introduction

NGSデータから新たな知識を導出するためのデータ解析リテラシー

AJACS68 (AJACS浜松) https://events.biosciencedbc.jp/training/ajacs68 January 17, 2018

尾崎 遼 Haruka Ozaki [email protected] | http://yuifu.github.io | @yuifu

理化学研究所 情報基盤センター バイオインフォマティクス研究開発ユニット 基礎科学特別研究員 Bioinformatics Research Unit, ACCC, RIKEN


概要

本講習では、NGSデータを解析するための基礎的な考え方・知識と、データ解析プロセスをどう設計・実践していくかの技術を学びます。
ソフトウェアの使い方の詳細な解説よりも、実験系研究者が独学していくために必要なことに焦点を絞っています。

資料

Overview

  • NGSは塩基を読み取る機械です
  • NGS解析
    • 実験: サンプルから調整した核酸をNGSで読み取り、データを出力する
    • 情報解析: データを前処理、解析し、知識を得る



講習の流れ

  • 基礎
    • NGSとは何か
    • NGS解析の流れ
  • 知識
    • 解析デザイン
    • データ前処理
    • データ解析
  • 技術(独学の方法)
  • 実習


NGSとは何か

NGSについて

次世代シーケンサー (Next Generation Sequencer; NGS) とは「サンガー法以降、2000年代中頃から登場した、新しいDNAシーケンス技術の総称」です。NGSはハイスループットな塩基配列読み取り(シーケンシング)ができることを特徴とします。「次世代」というには登場から時間が経ちすぎていることもあり、最近ではHigh Throughput Sequencer (HTS) と呼ばれることも増えてきました。

2018年1月現在でメジャーなNGSプラットフォーム(機器)としては、

  • 第二世代 (塩基配列決定時に電気泳動を必要としない)
    • Illumina の HiSeqシリーズ、MiSeq, NextSeq500, MiniSeq, iSeq100
    • BGI のBGISEQシリーズ
    • Ion Torrent の Ion S5シリーズ、Ion S5 XL
    • Qiagen の GeneReader
  • 第三世代(鋳型のPCR増幅が必要ない)
    • PacBio の PacBio RS, Sequel
  • 第四世代(蛍光色素を使わない)
    • Oxford Nanopore MinION, GridION X5, PromethION RnD

などがあります。NGSの測定技術の詳細については、以下の文献・サイトを参照してください。

  • Goodwin, Sara, John D. McPherson, and W. Richard McCombie. "Coming of age: ten years of next-generation sequencing technologies." Nature Reviews Genetics 17.6 (2016): 333-351. https://www.nature.com/articles/nrg.2016.49

シーケンシング手法: 何を読むか

NGSはライブラリDNAができさえすればシーケンシングできます。なので、サンプルに適切な処理を施し、対象とするDNAやRNAをライブラリDNAに変換することで、多様な生命現象を網羅的に測定することができます。

対象分子 シーケンシング手法 計測値
ゲノムDNA WGS ゲノム配列
mRNA RNA-seq 遺伝子発現量
抗体で濃縮されたDNA ChIP-seq タンパク質がゲノムに結合した部位

例えば、ChIP-seqは、転写因子などのDNA結合タンパク質とDNAをあらかじめ架橋して断片化し、さらに免疫沈降で濃縮することで、ターゲットとするDNA結合タンパク質が結合するゲノムDNA配列を網羅的に特定する手法です。

Peter J. Park, ChIP–seq: advantages and challenges of a maturing technology, Nature Reviews Genetics (2009) doi:10.1038/nrg2641

また、RNA-seqは、細胞中のmRNAを逆転写して得たcDNA配列を(断片化して)NGSでシーケンシングすることで、遺伝子の発現量を網羅的に測定する手法です。

Zhong Wang et al., RNA-Seq: a revolutionary tool for transcriptomics, Nat Rev Genet. 2009 Jan; 10(1): 57–63. doi: 10.1038/nrg2484

このような実験手法をシーケンシング手法と呼びます。各シーケンシング手法は慣例として RNA-seq、ChIP-seqのように -Seqと呼ばれることが多いです。シーケンシング手法が対象とする生命現象には、ゲノムやエキソンのDNA変異、遺伝子発現、RNAスプライシング、RNA修飾、RNA高次構造、ヒストン修飾、DNAメチル化、DNA-タンパク質相互作用、RNA-タンパク質相互作用、クロマチン立体構造、RNA-RNA相互作用などがあります。

NGSの登場以来、数百種類の実験手法が発表されています。これらのシーケンシング・アプリケーションの情報をまとめたサイトがいくつかあります。

"For All You Seq—DNA" https://emea.illumina.com/techniques/sequencing/ngs-library-prep/library-prep-methods.html

プラットフォーム(機器)による違い

NGSのプラットフォームによって、出力されるデータの性質に違いがあります。実際の現場では、研究の目的や予算に合わせたNGSプラットフォームが選択されます。

NGSでシーケンスされる塩基配列(リード)の長さはプラットフォームによって異なります。Illuminaなどの短いリードを出力するシーケンサーはショートリードシーケンサー、PacBioやOxford Nanoporeといった長いリードを出力するシーケンサーはロングリードシーケンサーと呼び分けることもあります。この講義では、主にIlluminaのショートリード由来のデータを想定しますが、データ解析の考え方などはロングリードのデータを扱う上でも参考になると思います。

NGSのスペックはよくリード長 (Read length)とスループット (Throughput) (1回のランで読まれる塩基対の合計) で比較されることが多いです。下のブログにまとまった情報があります(2016年7月時点)。リード長とスループットがトレードオフになっていること、各社で次々にスループットやリード長が改善していることがわかります。また、塩基読み取りエラー率にも違いがあり、現時点ではロングリードシーケンサーはショートリードよりもエラー率が高いです。

Developments in high throughput sequencing – July 2016 edition | In between lines of code

2018年1月時点での最新のNGSプラットフォームのスペック比較もコミュニティでまとめられています。

Next Generation Sequencing spreadsheet

小まとめ

  • NGSとは
    • ハイスループットなシーケンサーの総称
    • 異なるシーケンシング手法によって様々な生命現象を測定できる


NGS解析の流れ

NGSを用いた研究は、ライブラリ調整 (Library preparation)、シーケンシング (Sequencing)、データ前処理 (Data preprocessing)、データ解析 (Data analysis)の4つのステップから成ります。

ライブラリ調整 (Library preparation)・シーケンシング (Sequencing)

NGSはサンプルDNAを処理して得られたライブラリDNAを入力とし、DNA塩基配列データを出力します。多くの場合、サンプルDNAは断片化され、シーケンシング反応用のアダプターやプライマーを付加されてライブラリDNAとなります。

データ前処理 (Data preprocessing)

NGSから出力される一次データ (primary data, 生データ) はこの断片化された塩基配列 (リード) の情報です。リードデータは通常FASTQ形式のファイルで保存されます。

FASTQ形式

  • シーケンシングされた塩基配列と各塩基の読み取り精度 (Base quality) を記述
  • 4行で一つの配列を表す
    1. @+配列のID
    2. 塩基配列
    3. +
    4. 各塩基の読み取り精度のスコア (Quality score)
  • https://ja.wikipedia.org/wiki/Fastq
@USSD-TL1-1227:179:C4E9UACXX:6:1101:12730:2322 1:N:0:GATCAG
CTGGAAGTGTGGAAGGGAACTTAATCATTGAGTTTCTGTGAAGTATTTTGCCATCCTAAAATCCCTGAGAGTGAAACTGTTGAATCATGCTCACTTTCTT
+
BBBFFFFFFFFFFIIIIIIIIIIIIIIIIIIIFIIIIIIIIIIFIIIIIIIIIIIIIIIIIIIIIIIIIIIBFIIBFFFFFFFFFFFFFFFFFFFFFFFF
@USSD-TL1-1227:179:C4E9UACXX:6:1101:12519:2371 1:N:0:GATCAG
ATTCTCATCACGTAACACTGATGGATTCCATACCTAATTTATCAATCTAAGACATTACTGGACCACGTAACCTTACATATAACTACCTGACCATATTTTC
+
BBBFFFFFFFFFFIIIIIIIIIIIFIIIIIIIIIIIIFIIIIIIIIIIIIIIIIIIIIIIIIIIFIIFIIIIIIIFFFFFFFFFFFFFFFFFFFFFFFFF
@USSD-TL1-1227:179:C4E9UACXX:6:1101:12546:2486 1:N:0:GATCAG
GTTCCACATTGTTCTGCTGTGCTTTGTCCAAATGAACCTTTATGAGCCGGCTGCCATCTAGTTTGACGCGGATTCTCTTGCCCACAATTTCGCTTGGGAA
+
BBBFFFFFFFFFFIIIIIIIIIIIIIIIIIIIIIIIIIFIIFIBFIFIIIIIBFFIBFFIIIIFIIIFFFBBFFBBFBBBBBBFFBBFFBBBFFFBBBFB

リードデータはそのままでは生物学的な解釈ができません。そこで、統計検定などデータ解析を行える形にするために、生データをいくつもの段階を経て処理・加工する必要があります。同時にデータの品質管理 (Quality control; QC) も行います。そのためのステップをデータ前処理と呼びます。

まず、リードを元の塩基配列に復元する必要があります。復元の方法には大きく2つの方法があります。一つは、同じ生物種もしくは近縁種のゲノムDNAを参照するリファレンスアラインメント (マッピング) (Reference Alignment (Mapping)) 。もう一つは、出力されたリード情報のみを使うアセンブリ (Assembly) です。

Haas BJ, Zody MC. Advancing RNA-Seq analysis. Nat Biotechnol. 2010 May;28(5):421-3. doi: 10.1038/nbt0510-421.

さらに、復元された塩基配列に対して、多型検出や発現量推定など、目的に応じた特徴抽出、注釈付けをおこないます。例えば、ChIP-seqならタンパク質の結合部位のゲノム上の位置のリストを作成します。また、RNA-seqなら遺伝子発現量の表を作成します。このようなステップを経ることで、データ解析ステップで使いやすいデータになります。

データ解析 (Data analysis)

データ前処理で加工された前処理済みデータに対して統計検定や次元圧縮、クラスタリングなどを行います。これにより、データの特徴を明らかにしつつ、研究の目的に応じて解釈し、新規な知見を得ることができます。

このように、「NGSを使う」「NGS解析をおこなう」と言っても、目的に応じて各ステップで様々な選択肢を選ぶ必要があります。様々な目的に対応できる柔軟性・拡張性がNGSの魅力とも言えます。そのため、NGSデータを解析するためには、目的をはっきりさせることが重要となります。

NGSデータについて

NGS解析の際には様々な種類のデータ形式が登場します。データ形式は「テキスト形式かバイナリ形式か」と「仕様 (specification) (データをどのように記述するかのルール)」によって分けられます。

バイナリ形式は圧縮されたファイルフォーマットで、テキストエディタなどで内容を読むことができません。

NGSデータ解析では、塩基配列、ゲノム上の区間、アラインメント、変異といった様々な情報を記述したデータを扱います。どのファイルがどんな情報を記述しているかについて考えると理解しやすいです。

フォーマット名 ファイル拡張子 情報の種類、主な用途
FASTA .fa .fasta .mfa 塩基配列、アミノ酸配列
FASTQ .fastq NGSから出力された塩基配列とBase quality
SAM/BAM .sam .bam リファレンスゲノム配列に対してマッピングした結果のフォーマット
BED .bed ゲノム上の区間、ゲノムアノテーション
GTF (GFF) .gtf .gff ゲノム上の区間、ゲノムアノテーション
VCF/BCF .vcf .bcf DNA変異

(坊農秀雄「Dr. Bonoの生命科学データ解析」, p.96, 表3.2 を改変)

また、前処理済みデータの場合、上記のような生命科学データに特有の形式だけでなく、一般的な表をコンマ区切りやタブ区切りテキストの形式 (.txt .csv .tsv) で保存する場合も多いです。例えば、遺伝子 x サンプルの遺伝子発現量の行列や、全サンプルのChIP-seqピークを合わせてサンプルごとの有無を記録したファイルなどが当てはまります。

小まとめ

  • NGS解析はライブラリ調整 (Library preparation)、シーケンシング (Sequencing)、データ前処理 (Data preprocessing)、データ解析 (Data analysis)
    • データ前処理では、データのQCや解析しやすいようにデータの加工を行う。
    • データ解析では、研究目的に応じてワークフローが多様化する
  • NGSデータは
    • NGSから出力生データから、中間データ、前処理済みデータなどいろいろ
    • ファイル形式もいろいろ


解析デザイン

計画

NGSデータ解析において最も大事なことは研究目的の設定です。NGSデータ解析を始める前に(理想的には実験を開始する前に)研究の目的を明確にします。例えば、以下のような目的が挙げられます。

  • スクリーニング・候補出し
    • 病気の原因遺伝子
    • ある生命現象の責任遺伝子
    • バイオマーカー(予測)
  • 全体像を捉える
    • どんな遺伝子群が働いているのか知りたい
  • 関係性の発見
    • ある遺伝子群とあるエピゲノム修飾の関連 (association) をみたい

次に、その目的のためにどのようなデータをどのように解析すればいいかを詰めていきます。さらに、実験・データ解析の計画を紙に描いてみると頭の中が整理されます。

  • どのような仮定・仮説を置いているか
  • 仮説は既存知識に照らして適切か
  • 何がわかればいいか
  • どのような図必要か
  • 実験・解析が適切かをどのような指標で評価するか
  • 結果が得られたときにどのように検証実験をするか

どうやって評価するか

データ解析の結果をどう評価・解釈・検証するかを考えます。先行研究などからポジコン (positive control) が知られている場合、ポジコンがとれているかが一つの評価になります。例えば、

  • RNA-seqを用いた2群間での発現変動遺伝子を探索する場合、発現に差があることが既に知られている遺伝子(があれば)が、発現変動遺伝子のリストに含まれるか、といった評価が考えられます。
  • 一細胞RNA-seqであれば、研究対象の細胞型に特異的な発現を示すマーカー遺伝子を知っていたとして、そのマーカー遺伝子が発現しているかも大事な評価になります。

また、NGS解析では網羅的な測定が行われるため、一度の実験でサンプルあたり多数の変数(遺伝子、ゲノム位置など)に対する測定値(遺伝子発現量、ピークの有無やリード数)が得られます。そのため、個々の変数(遺伝子、ゲノム位置など)のみならず、データを全体像として捉える視点も重要となります。例えば、

  • 発現差のある遺伝子のリストにどんな機能を持った遺伝子が多いか (Gene ontology enrichment analysis など)、その遺伝子機能が既存知識と照らしてリーズナブルか。
  • ChIP-seqでヒストン修飾領域を調べる場合、そのヒストン修飾がゲノム上のどのような領域に多いかの先行研究の知見と整合性があるか。

さらに、検証実験を考えておくことも大切です。重要な遺伝子の発現差をRT-qPCRで確認できるか、見つかった候補遺伝子をノックダウンして表現型をみれるかといったケースが考えられます。

探索的データ解析

ハンズオン講習会やチュートリアルで学ぶNGS解析のワークフローはしばしば一直線に描かれます。しかし、NGS解析に限らずデータ解析では、データ前処理とデータ解析のステップを何度も行きつ戻りつすることがあります。これは、たいていの場合、QCや可視化などを通じてデータと解析結果の観察や評価を行うと、その結果に応じて、前処理の過程を見直したり、データの加工・統合をさらに発展させたり、新たに生じた仮説を検証するデータ解析を行うことになるためです。

このようなデータ解析の実践方法は John Wilder Tukey によって探索的データ解析 (Exploratory data analysis) と呼ばれています[1]。探索的データ解析ではデータから仮説を導出することが重視されます。Tukeyは、伝統的な仮説検定を中心としたデータ解析を確証的データ解析 (confirmatory data analysis) と呼び、仮説検証への偏重を批判しました。探索的データ解析では、まずデータを眺めることが重視され、種々の可視化手法でデータの特徴を観察することが重要視されます。 [1] https://en.wikipedia.org/wiki/Exploratory_data_analysis

リファレンスを決める

参照ゲノム配列(reference genome sequence)や参照遺伝子アノテーション (Reference gene annotation) はNGS解析をする上で最も重要な外部データです。これらは混ぜて「リファレンス」と呼ぶことがしばしばあります。

注意すべき点は、リファレンスには作成元とバージョンがあり、作成元・バージョンが異なると通常異なる情報となることです。参照ゲノム配列であれば、ゲノム上のある区間をchr1:111000-111199という座標という形で表しますが、バージョンが異なるだけでこの区間が実際のゲノム配列の異なる位置を指し示す場合もあります。

  • リファレンス配列のバージョン

    • ゲノム
      • UCSC: 染色体名がchrで始まる
      • Ensembl: 染色体名が数字で始まる (chrがない)
  • 遺伝子アノテーション

どの遺伝子アノテーションを使うかで結果が変わることもあります[1]。目的に照らしつつ、いくつかの遺伝子アノテーションをためして、リーズナブルな結果が得られるものを選ぶという場合もあります。どれを使う場合にも、一つの研究プロジェクトの中では(特別な理由がない限り)統一するのが重要です。

[1] Zhao and Zhang, A comprehensive evaluation of ensembl, RefSeq, and UCSC annotations in the context of RNA-seq read mapping and gene quantification, BMC Bioinformatics (2015) https://bmcgenomics.biomedcentral.com/articles/10.1186/s12864-015-1308-8



データ前処理

  • リードのQC
  • マッピングデータのQC
  • RNA-seqの前処理・QC
  • ChIP-seqの前処理・QC

リードのQC・フィルタリング

NGSから出力されるリードには cutadapt アダプター配列やポリA、ポリT、低クオリティのリードが含まれている場合があります。リードのデータにそのような配列が含まれていたり、その他おかしなことがないかを確認し、必要に応じてそういった配列をFASTQファイルからアダプターを取り除く必要があります。このような操作をリードのQCと呼び、特に後者ははリードトリミングやリードフィルタリングとも呼ばれます。

FASTQファイルのクオリティを確認するには、FastQCがよく使われます。チェックできるソフトウェアがよく用いられます。FastQCでは、FASTQフィイルのQCの結果HTML形式でレポートが出力されます。例えば"Overrepresented sequences"という項目には、リードデータの中で超複数の多い配列を表します。Overrepresented sequencesが出てきた場合、配列から、アダプターなど実験操作由来の外部からの配列なのか、高発現遺伝子由来の配列なのか、はたまたコンタミなのかを判断します。配列が生物由来かを見分けるにはGGGenomeを利用することができます ( http://gggenome.dbcls.jp )。

また、リードトリミングには cutadapt がよく用いられます。cutadapt はFASTQファイルを入力として、アダプター配列を含むリードや低クオリティのリードが除去されたFASTQファイルを出力します。リードトリミングの実行後、もう一度 FastQC をかけることで、リードの品質が改善したかを確認するとよいでしょう。また、リードトリミング後のリードの数も記録しておきましょう。

なお、Illuminaのシーケンサーから出力されるリードは3'末端のクオリティが低いため、シーケンシングを実施するラボ・企業によっては予定したよりも一塩基多くシーケンシングを行うことがあります。例えば、100 bp のシングルエンドのリードを得る場合に、実際には 101 bp シーケンシングするということです。このようなデータを得た場合、3'末端の1塩基は削る必要があるので注意してください。

マッピングデータのQC

マッピングの手段はシーケンシング手法によって異なります。例えば、 真核生物においてはRNAはスプライシングを受けるため、RNA-seq

  • ゲノムへのマッピング率がサンプル間で大きく異なっていないか?
  • ゲノムへマッピングされたリード数がサンプル間で大きく異なっていないか?

ゲノムブラウザ (Genome browser) による確認も重要です。ゲノムブラウザはゲノムにマッピングされたデータ (BAMなど) やゲノムアノテーション (BED, GTF, GFFなど) をゲノムの座標に沿った形で可視化するソフトウェアです。IGVはインストールしやすく、よく使われています。

RNA-seqの前処理・QC

RNA-seqでは通常、遺伝子 (geneまたはtranscriptのレベルで) の発現量の推定・定量が行われます。発現量定量は、ゲノム(またはトランスクリプトーム)にマッピングしたあとに発現量推定をするのが一般的でした。一方、ゲノムへのマッピングを行わない高速な手法も登場しています。

HISAT, StringTie, Ballgown

ゲノムへのマッピングと発現量定量には TopHat+Cufflinks が有名ですが、すでに後継のパイプライン HISAT, StringTie, Ballgown が発表されています。

HISAT2はRNA-seqのリードをゲノムにマッピングするソフトウェアです。StringTieはRNA-seqのリードをリファレンスゲノムにマッピングしたあとでアセンブリをおこなうソフトウェアです。Cufflinksより性能がよいと報告されています。アセンブリを行わず、発現量推定だけを行うこともできます。Ballgownは発現変動解析をおこなうソフトウェアです。

https://www.nature.com/articles/nprot.2016.095/figures/1

「古いソフトウェアが使われ続ける」問題

NGS解析ソフトウェアは次々と新しいものが開発されています。既存のタスクに対して新しいソフトウェアが開発される場合、計算時間もしくは精度が向上していることが多いため、新しいソフトウェアを用いたほうがよいということになります。一方で、現場のユーザーにとっては、資料が充実している、使い慣れている、これまでの解析結果を最> 初からやり直すのは避けたい、先行研究と比較するために互換性を保ちたいといった理由から、古いソフトウェアを使い続ける動機付けが働きます。そのため、明らかに性能の優れたソフトウェアが登場しても古いソフトウェアが使われ続けるという問題があります。この問題は近年ソフトウェア開発者らによって盛んに議論されています [1]。

例えば、RNA-seq用のマッピングソフトウェアであるTopHatの共著者のLior Pachter‏は「TopHatをも使うな」「HISAT2など後継がでている」と述べています [2]。

Bowtie2/STAR + RSEM

Bowtie2やSTARはゲノムへのリードのマッピングを行うソフトウェアです。一方で、トランスクリプトームへのリードマッピングも行うことができます。RSEMはトランスクリプトームへのマッピングした結果を元に発現量推定を行います。RSEMの内部でトランスクリプトームへのマッピングソフトウェアを呼び出すことも可能です。

k-merベースの発現量定量

ゲノム・トランスクリプトームへのマッピングの代わりにk-merのカウントをベースにした方法を用いることで、高速にtranscriptレベルの発現量を推定するソフトウェアがいくつか登場しています。ゲノムやトランスクリプトームへのマッピングをベースとした手法では、比較的ファイルサイズの大きいBAMファイルが出力されますが、k-merベースの方法ではBAMが出力されないため(kallistoではオプションによって"pseudoalign"したSAMを出力させることができます)、ストレージを圧迫しないこともメリットです。

kallisto の論文 https://www.nature.com/articles/nbt.3519 より引用

RNA-seqデータの発現量定量後のQC

発現量定量後によく行われるQCとして以下のようなものがあります。

  • 発現量があるとされた遺伝子の数(検出遺伝子数)がどのくらいあるか
  • 検出遺伝子数が極端に異なるか
    • ただし、生物学的な理由で検出遺伝子数が大きく異なる場合がある。例えば、幹細胞は分化細胞よりクロマチンがオープンな箇所が多く発現遺伝子の種類が多いことがある。
  • ポジコン(マーカー遺伝子など)の発現があるか

また、発現量定量後に、さらにデータから発現量が低い遺伝子は除くことが多いです。これは、低発現の遺伝子はノイズが大きく解析に悪影響となるため、また、計算時間を短くするためです。

ChIP-seqデータの前処理・QC

ChIP-seqデータはまずゲノムへのマッピングが必要になります。マッピング後、ピーク検出をおこなうことで、転写因子の結合部位やヒストン修飾領域のリストを得ることができます。ピーク検出はMACS2やGEMでできます。ピーク数が replicate間で特に異ならないか?

ChIP-seqのピーク検出結果のQCツールとしてはIDRがあります。IDRは検出されたピークのreplicate間での再現性を評価するとともに、再現性の低いピークをフィルタリングするための統計的有意性スコアを計算します。

また、ChIP-seqデータのQCからピーク検出、可視化までを行うツールとして、DROMPAやがあります。

ChIP-seqのピークのリストを得るだけでなく、遺伝子に割り当てたり、ゲノム上のどこに多いか(TSSの上流、下流、Gene bodyなど)をみることで、実験・解析がうまくいっているかの示唆が得られます。例えば、ヒストン修飾の場合は当該ヒストン修飾の機能に関する事前知識と整合するか、転写因子の場合は転写開始点に多いかなどです。このような操作はピークアノテーションと呼ばれ、ChIPpeakAnnoなどで実行できます。

http://bioconductor.org/packages/release/bioc/vignettes/ChIPpeakAnno/inst/doc/quickStart.html

また、転写因子ChIP-seqでは幅の狭い領域に結合部位が限局します。そのようなデータに対してDNAモチーフ解析をすることで、対象とする転写因子のモチーフが既知である場合に、ちゃんとそのモチーフが取れるかも評価指標となります。

小まとめ

  • リードのQC
    • FastQC
    • リードトリミング
  • マッピングデータのQC
    • マッピング率・リード数の確認
    • ゲノムブラウザによるマッピングの確認
  • RNA-seqの前処理・QC
    • HISAT, StringTie, Ballgown
    • Bowtie2/STAR + RSEM
    • k-merベースの発現量定量
    • 検出遺伝子数・ポジコンの確認
    • 低発現遺伝子の助教
  • ChIP-seqの前処理・QC
    • ピーク検出
    • ピークアノテーション
    • モチーフ検出


データ解析

  • 変動パターン解析
  • エンリッチメント解析
  • 層別・関連性・重なりの解析
  • 次元圧縮・クラスタリング
  • リード分布を集合的に眺める
  • データの統合(IDによる統合、ゲノム上の位置による統合)

変動パターン解析

NGS解析では複数の条件間で比較することが多いです。二群の差、時系列パターン、群特異的遺伝子など、実験デザインによって様々なですが、特定の変動パターンを持った変数(遺伝子、ピークなど)を統計学的手法やデータマイニング的手法で検出します。これは変動パターンがなんらかの機能を示唆する、という仮定に基づくものです。

EdgeR は古典的なソフトウェアですが、一般化線形モデルや加法モデルが使えるため、多様な実験デザインに対応しています。

エンリッチメント解析

遺伝子や転写因子結合部位のリストが得られた時、一つ一つを詳細に調べるのも重要ですが、全体像を理解することも重要です。特に、どのような性質を持った要素がリストに含まれているのかを知るのがエンリッチメント解析です。

よく使われるのが、遺伝子機能のエンリッチメント解析です。MetaScapeはウェブサービスで使いやすいです。

また、ChIP-seqから得られたゲノム領域のリストを入力とすることもできます。GREATというウェブサービスでは、入力のリスト中のゲノム領域を近傍の遺伝子に割り当てて遺伝子機能のエンリッチメント解析を行います。

層別・関連性・重なりの解析

変動パターンで層別した遺伝子群やピーク集合がどんな特徴を持つか、群間で何か特徴が異なるかに興味がもたれます。例えば、以下の様な形が考えられます。このような違い

  • 転写因子Aと転写因子Bの結合部位が重なる場所はどのくらいか
  • 転写因子A/B単独の結合部位に比べて異なる特徴はあるか
  • TSSからの距離の分布に違いがあるか
  • ChIP-seqタグ数に違いがあるか
  • 近くの遺伝子の発現量変化や発現量の絶対値に違いがあるか
  • 濃縮するDNAモチーフに違いがあるか

また、2つの特徴(遺伝子群同士、ピーク集合同士など)の重なりが統計学的に有意かを検定するのに、Fisherの正確確率検定 (Fisher's exact test) や超幾何分布検定 (Hypergeometric test) がおこなわれます。さらに、数千のゲノムアノテーションファイルを対象に、手持ちのゲノム領域のリストが有意に大きな重なりがあるかを調べるツールとしてGIGGLEがあります。例えば、手持ちのBEDファイルやVCFファイルがあるときに、ENCODE projectやRoadmap Epigenome project、FANTOM5といったコンソーシアムとの重なりを一気に調べられます。ChIP-seqデータの二次データベースであるChIP-atlasでもこのような解析ができます。

次元圧縮・クラスタリング

似たものをまとめる操作をクラスタリングと呼びます。クラスタリングはサンプル方向の場合と変数(遺伝子、ピークなど)方向の場合があります。クラスタリングによって、データに既存知識との整合性があるか、あるいは、これまで知られていないかったもの同士のつながりが示唆される場合があります。例えば、

  • 共発現する protein-coding RNA と long non-coding RNA は共通の生物学的プロセスに寄与するかもしれない (Guilt-by-association)
  • replicate同士が近くにクラスタリングされていることはデータの信頼性を表すかもしれない

一般的な階層的クラスタリング用いられる場合があります。また、WGCNAのような共発現ネットワークを描いてから遺伝子をクラスタリングする手法もあります。

高次元のデータを低次元空間に射影することでデータ間の関係を明らかにする手法として次元圧縮 (Dimensional reduction)があります。線形な変換をおこなうPCAやICA、非線形な変換を行うMDS、Diffusion map、t-SNEなどがあります。PCAは昔からマイクロアレイの時代から発現データの次元圧縮に使われています。また、一細胞RNA-seqデータの解析では、多数の細胞型を分けたり細胞系譜を再構築するためにt-SNEやdiffusion mapがよく用いられます。

t-SNEによる一細胞RNA-seqデータの可視化 Macosko, Evan Z., et al. "Highly parallel genome-wide expression profiling of individual cells using nanoliter droplets." Cell 161.5 (2015): 1202-1214.

リード分布を集合的に眺める

リードの分布を集合的に眺めることで、mRNA量(RNA-seqの場合)やヒストン修飾や転写因子結合部位(ChIP-Seqの場合)がどのように分布しているかについての知見を得ることができます。主なものにHeatmap, Aggregation plot, Meta-gene plot があります。

  • Heatmap: 領域周辺のリード分布を縦(が多い)に並べて一覧できるように表示
  • Aggregation plot: ゲノム上の部位(点)の周辺のリードの分布を平均化して表示
  • Meta-gene plot: ゲノム上の区間(遺伝子領域 (gene body) など)について、その長さをそろえた上で周辺のリードの分布を平均化して表示

ゲノム上の全TSS、全遺伝子、ChIP-seqピーク領域について可視化することで、解析しているデータの測定対象の特徴が既存知識と齟齬がないかについて確認することができます。さらに、領域・遺伝子をグループ分けしてグループごとにリードの分布を可視化することで、グループ間でのリード分布を比較することができます。例えば上の例では、発現量に応じてグループ分けした遺伝子群(High, Medium, Low)ごとにMeta-gene plotを作成することで、H3K4me3という転写活性化型のヒストン修飾が発現量が高い遺伝子群で多くなっていることがわかります。

上のような可視化を行うソフトウェアとして deepTools や ngs.plot があります。

データの統合

NGSデータの解析結果が得られたあと、その結果を別のデータセットの解析結果や外部のデータベースの内容と統合することで、単独のデータだけでは見えなかった知見が明らかになる場合があります。そのような目的のためには「データの統合」が必要となります。データの統合は主に「IDによる統合」と「ゲノム座標による統合」があります。

  • 詳しくは 「Dr. Bonoの生命科学データ解析」の5.6節を参照

IDによる統合

異なる遺伝子リストや異なるデータセットの複数の発現量行列を遺伝子IDでひも付けたいとしましょう。そのような操作を一般にJOINといいます。Rの dplyrパッケージを使うとJOINがスムーズにできます。

なお、異なるデータベース間でIDによる統合をしようとすると、IDの変換が必要となります。Ensembl の BioMart を使うとデータベース間でのIDの変換がスムーズです。

ゲノム上の位置による統合

ゲノム上の位置が近い特徴同士はなんらかの関連がある場合があります。例えば、転写因子の結合部位が遺伝子の近くにある場合、その遺伝子の発現量の変動データと統合して解析することで、転写因子の機能についての示唆を得られます。

ゲノム上の位置によって異なるデータを統合するには bedtools が便利です。bedtoolsは BEDフォーマットを操作するコマンドラインツール群です。intersectBedwindowBed によって近くのゲノム領域(ピークなど)同士を紐づけることができます。

小まとめ

  • 変動パターン解析
  • エンリッチメント解析
  • 層別・関連性・重なりの解析
  • 次元圧縮・クラスタリング
  • リード分布を集合的に眺める
  • データの統合(IDによる統合、ゲノム上の位置による統合)


技術(独学の方法)

NGSデータ解析に必要な知識と技術には、汎用性の高いものと生命科学系データ(NGSデータを含む)特有のものがあります。それぞれをどう独学で学ぶかを見ていきます。

  • NGS解析の選択肢
  • NGS解析の3つの壁
  • NGS解析の勉強
  • UNIXコマンドラインの勉強
  • スクリプト言語の勉強
  • Rの勉強
  • トラブルシューティングの勉強

NGS解析の選択肢

NGSデータ解析をどう進めていくかには、利用可能な時間とお金、およびどこまで深く解析するかによっていくつか選択肢があります。

また、ウェブサービス, GUI, CUIという区別も重要です。GUIはグラフィカルユーザーインターフェースの略で、パソコンを使うときにクリックなどで使うことができるインターフェースです。CUIはキャラクターユーザーインターフェースの略で、文字ベースでUNIXコマンドラインでの操作が必要になります。ウェブサービスやGUIに比べ、CUIでは利用できるソフトウェアの種類数が多いこと、自動化やスパコンによる計算などスケールしやすいことがメリットとなります。

メリット デメリット
ウェブサービス インストール不要 ウェブサービスは作るのが面倒なので、できることがCUIに比べて限られる。ファイルサイズが大きいデータの処理が困難な場合が多い。
GUI 操作が楽 GUIは作るのが面倒なので、できることがCUIに比べて限られる。
CUI ソフトウェアの種類が多く、できることが増える。スクリプト化による自動化が可能。 UNIXコマンドラインの習得が必要。

Galaxy

Galaxy はウェブベースのNGSデータ解析環境です。

NGS解析の3つの壁

  • バイオインフォのドメイン知識の壁
    • → バイオインフォ、NGS解析の知識の勉強で乗り越えられる
  • CUIの壁
    • → UNIXコマンドライン、スクリプト言語、Rの習得で乗り越えられる
  • トラブルシューティングの壁
    • → トラブルシューティングの方法を覚えることで乗り越えられる

NGS解析の勉強

  1. 研究目的、NGS解析で何を明らかにしたいのかを決める
  2. 自分のやりたいNGS解析についてサーベイする
  3. 「Dr. Bonoの生命科学データ解析」を読む https://www.medsi.co.jp/books/products/detail.php?product_id=3588
    • NGSデータはNGSデータだけでなく、多様な生命科学型データベースの情報と比較することが多い。そのため、一般のバイオインフォについて知ることが重要となる。

NGSデータの取得

UNIXコマンドラインの勉強

NGSデータを取り扱うためにはUNIXコマンドラインを道具として使う必要があります[1]。UNIXコマンドラインは文字(Character)ベースのユーザインタフェース(Character User Interface:CUI)です。一方、パソコンなどを使うときに目にするのはグラフィカルユーザーインターフェース(Graphical User Interface:GUI)です。

GUIでできるに越したことはないですが、実際はCUIでやったほうが便利な場合が多いです。それには、(1) NGSデータのような数-数十GBのデータを扱うには、GUIでは処理する効率が悪かったり、事実上不可能な場合がある、(2) 同じ処理を異なるファイルに対して何度も実行するとき、スクリプト化すればミスなく繰り返せる、(3) スパコンやクラウドといった外部の計算機資源を使うにはCUIで操作する必要がある、といった理由があります[1]。

[1] 坊農秀雄「Dr. Bonoの生命科学データ解析」, 第3章

  1. 坊農秀雄「Dr. Bonoの生命科学データ解析」の第3章を通読する
    • UNIXコマンドラインでできることが簡潔にまとまっている
  2. UNIXコマンドラインを使える環境を構築する
    • Mac, Linux であればターミナルを開けばよい
    • Windows の人はLinux環境を構築する http://cmdline.2016.class.kasahara.ws の「Linux環境をWindows上に構築したい人へ」というスライドと「ゲノム情報解析のために Windows 上で Linux 環境を構築したい人へのイントロダクション」という動画を参考にする
  3. 「コマンドライン講習会」 http://cmdline.2016.class.kasahara.ws の動画をその1からその4までみる(スライドも参照)
    • 自分の環境で試しながら聴くと理解が深まる
    • (たった5-6時間で一生使える技術が身につく!)

スクリプト言語の勉強

スクリプト言語はプログラミング言語。スクリプト言語が使えるようになると、簡単な文字列処理、データ加工などができるようになります。シェルスクリプト、Perl、Python、Rubyなどが有名です。

  1. https://biosciencedbc.jp/human/human-resources/workshop/h27 のスクリプト言語(シェルスクリプト、Perl、Python)の資料と動画をみる

Rの勉強

Rは統計検定やデータの可視化などに強いプログラミング言語です。Rのメリットとして、統計解析や可視化のパッケージが多数利用可能であること、広く使われているためサポート情報・コミュニティの情報・日本語の情報が充実していることが挙げられます。

また、 Bioconductor の存在も重要です。Bioconductor は生命科学系のRパッケージに特化したレポジトリ(パッケージの集積場所)です。EdgeRなどNGS解析でよく使われるパッケージもBioConductorからインストールすることができます。

さらに、最近はtidyverseもデータ解析に便利です。tidyverseは整理されたインターフェースを目指したRパッケージ群です。生命科学系のみならず、アカデミア・企業を問わず一般の様々なデータ解析の現場で使われています。

Rを使うインターフェース

Rを使うインターフェースにはいくつかの選択肢があります。

名前 使用感 導入
REPL ターミナルから操作する Rをインストールすればすぐ使える
RStudio スクリプトを書きながら実行できる、便利な機能がGUIで使える 比較的楽
Jupyter notebook ウェブブラウザで使える、スクリプトを書きながら実行できる、実行結果がそのまま残る コマンドライン初学者には少し難しいかも

Rのパッケージのインストール

まとまった機能を持ったコマンド群をパッケージと呼びます。もともとインストールされている場合もありますが、統計解析や可視化手法、NGS解析に特化したツールは新たにインストールする必要がある場合があります。

パッケージを配布するために集積する場所をレポジトリと呼びます。Rパッケージの代表的なレポジトリはCRANです。またBioconductorは生命科学系のデータ解析用のパッケージに特化したレポジトリです。また、R言語に限らず汎用的なレポジトリとして GitHub もあります。

RStudioでのパッケージのインストールについてはこちらを参照してください https://github.com/yuifu/ajacs68/blob/master/Tutorial_install_R_packages.md

Rの習得

RはRStudio を使うと便利です http://www.rstudio.com

  1. RStudio の使い方の動画をみる http://togotv.dbcls.jp/20170512.html
    • MacOSX版だがだいたい同じ
  2. R と RStudio をインストールする
  3. https://biosciencedbc.jp/human/human-resources/workshop/h27 のR基礎1, R基礎2 の動画とスライドをみる
  4. https://biosciencedbc.jp/human/human-resources/workshop/h27 のR各種パッケージ, Bioconductorの利用法1, Bioconductorの利用法2の動画とスライドをみる
  5. tityverse

トラブルシューティングの勉強

ソフトウェアを動かすとしばしばエラーが出ます。エラーが出たら、落ち着いてエラーメッセージ(たいてい英語)を読みましょう。エラーに対処するヒントが書いてあることがあります。

また、エラーメッセージをGoogle検索してみることも有効です。同じようなエラーに遭遇した人が解決�法を発見していることがあります。

人に聞いてみることもいいでしょう。例えば以下の方法が考えられます。その際には、(1) ソフトウェアの名前とバージョン、(2) ソフトウェアを動かした、(3) 何をしようとしたかの説明、(4) どんなエラーメッセージが出たか、を書くとスムーズです。

その他

多重検定

多数の異なる変数に対して同じ検定を繰り返し行うことを、多重検定 (multiple testing) と呼びます。NGS解析では一度の実験で、遺伝子やDNA変異といった「変数」の測定値が多数得られるため、多重検定の問題によく遭遇します。例えば、疾患群と対象群の間で頻度の異なるDNA変異を探す、多数の遺伝子の中から発現変動遺伝子を探索する場合、多重検定の問題を考える必要があります。

2群の間で発現が変動する遺伝子があるかを $n_g$ 個の遺伝子 (マウスやヒトの場合、数千から数万) について検定する場合を考えましょう。有意水準を $\alpha$ と設定します。このとき、実際にはすべての遺伝子に差がなかったとしても少なくとも1つの遺伝子で有意と判定される(偽陽性となる)確率は $1-(1-\alpha)^{n_g}$ となり、$n_g$がある程度大きいとその確率はほぼ1となります。このように多重検定では偽陽性が出てくることが問題となります。

多重検定で生じる偽陽性の数を制御するため、Bonferroni 補正、Benjamini-Hochberg法、Storey法といった方法が提案されています。

データ解析の実験ノートの付け方

実験ノート(紙でも電子でも)にいろいろ書きましょう。

  • 調べたこと(ウェブページ、文献)
  • 実行したコマンド・その目的・その結果
  • ソフトウェアのバージョンや実行時のパラメーター
    • バージョンやパラメーターはちゃんと書いていない論文もありますが、再現性が担保されなくなるので真似しないでください
  • エラーメッセージ

NGS実験・解析手法の情報収集

  • RNA-seq全般の最新情報 http://www.rna-seqblog.com
  • 一細胞データ解析ソフトウェア (scRNA-seq、scATAC-seqなど) のリスト https://github.com/seandavi/awesome-single-cell
  • ソフトウェアの論文
    • たいていソフトウェア論文を出していて、他のツールとの比較をしている
  • ソフトウェアの比較評価論文
    • 複数のソフトウェアを比較評価した論文。タイトルやアブストラクトに"Evaluation", "Assessment", "Comparison"が含まれることが多い
  • ソフトウェアのダウンロードページ

小まとめ

  • NGS解析にはウェブサービス, GUI, CUIという選択肢がある
    • CUIがよさそう
  • NGS解析の3つの壁は乗り越えられる
    • バイオインフォ、NGS解析の知識の勉強
    • UNIXコマンドライン、スクリプト言語、Rの勉強
    • トラブルシューティングの方法の勉強

参考



ajacs68's People

Contributors

inutano avatar yuifu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ajacs68's Issues

CCCExplorer errors

Hi yuifu,
When I was running CCCExplorer on R using CCCExplorer.R scripts, I meet some problems.
First,I can't find object kegg
then I use: kegg<-pathways("hsapiens", "kegg") ,and Find_KEGG_edge function was rewritten like these

Find_KEGG_edge=function(x){
  x<-x[,c(2,4:6)]
  x=as.matrix(x)
  temp1=x[x[,1]%in%all_symbol&x[,2]%in%all_symbol,]
  if(is.matrix(temp1)){
    temp1[,1]=unlist(as.list(org.Hs.egSYMBOL[temp1[,1]]))
    temp1[,2]=unlist(as.list(org.Hs.egSYMBOL[temp1[,2]]))
  }
  return(temp1)
}

and it all run perfect.
Second, when I run the #simplify network by connecting receptors to TFs directly#partt
length(f) was 0, so there was an error.
I was wondering if I was wrong with the kegg object.
Please help on this.
Many thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.