Churchill

  • Churchill: an ultra-fast, deterministic, highly scalable and balanced parallelization strategy for the discovery of human genetic variation in clinical and population-scale genomics
  • Churchill(こちら)は、並列化処理に関して重点開発した、リードの生データからバリアント検出までを一塊で実行する、集団ゲノム解析アプリ
    • ゲノムリードからバリアント検出までは、いろいろな手法の複合体となっていて、相当面倒だったが、それを一つの流れにした
  • データ処理上の克服課題
    • 並列処理(別々に処理して後から併せる)をしないと速くならないので、諸ステップの並列化をすることが課題であった
    • リードのマップは、リード同士の情報を使いあうので並列化しにくく、特に、paired-endは表裏として情報を使いあうが、この点は並列化する上での困難
    • マッピングが済めば、染色体ごとに分割・並列処理することが可能だが、染色体のサイズの不均衡(1番染色体のサイズは21番染色体の5倍)の問題があり、また、染色体数以上の並列化のためには不十分
  • データ処理の概要・薀蓄
    • 相互依存関係(並列化せずにリード同士を見渡す必要がある)
      • duplicate read removal removal
      • データ分割をして実行する場合には、リードペアは同一セットに入るようにする
      • base quality score recalibration
    • 並列化上の配慮(メモリが不足しがち)
      • 次世代シークエンシングゲノム解析を現在の計算機で行う場合は、CPUよりはメモリの不足が問題になりがちなので、並列化にあたってもそれに対する配慮が重要、特に仕事の分配バランス
    • Deterministic
      • 並列化のやり方が変わっても結果が同じになるようにしたい
    • マッピングoutlieres
      • 異なる染色体にまたがってのマッピングされたり、遠距離にはなれてマッピングされたりしたものは、「エラー」とみなすこともあるが、構造多型などの可能性があり、安易にoutlier扱いすることは得策ではない
  • 処理ステップ
    • Step 1. Parallelized alignment to a reference sequence
      • BWA
      • Illumina’s BCL-conversion process (CASAVA 1.8.2)
    • Step 2. Parallelized generation and deduplication of subregional BAMs
      • このプロセスがChurchillの肝
      • (1) Split raw BAM by region-> chrI BAMsと呼ばれるファイルを作る
      • (2) Merge split BAMs by subregion
      • (3) Merge split chrI BAMs
      • (4) Parallelized deduplication
      • (5) Merge chrI reads with subregional BAMs
    • Step 3. Parallelized local realignment around indels
      • Indel周囲のフォールスポジティブSNVを排除するべく、Smith-Waterman algorithm
    • Step 4. Parallelization of base quality score recalibration
      • 生リードのベースクオリティに基づいてコールエラーを考慮するのは最終バリアント検出にとって不正確なので、GATK’s base quality score recalibration (BQSR) algorithmにてリキャリブレーション
      • BQSRはベースの共分散行列を使う処理だが、分割して行うより、全体で行う方が正確なので、サブリージョンごとの共分散結果を統合して全ゲノムのそれにしてリキャリブレーションする
    • Step 5. Parallelization of variant calling
      • GATK UnifiedGenotyper, GATK HaplotypeCaller or Freebayes
  • 実装
    • Churchillの他に必要なもの
      • Python (with PySam)
      • BWA
      • Samtools
      • Picard Tools
      • GATK
    • Churchillの構成
      • Bash and Python scripts:linking and preparing for parallelization the inputs and outputs of BWA
      • Picard
      • SAMTools
      • GATK
    • Cofigure は1ファイル