macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

HiFiロングリードを使ってゲノムアセンブリの高精度なポリッシングを行う DeepPolisher

 

正確なゲノムアセンブリは生物学的研究に不可欠であるが、どんなに高品質なアセンブリであっても、それを構築するために使用された技術によって引き起こされたエラーは残る。通常、塩基レベルのエラーは、ドラフトアセンブリにアライメントされたリードを用いてポリッシングステップを追加することで修正される。しかし、現在の方法では、過剰なポリッシュと過小なポリッシュのバランスをとるのに苦労している。ここでは、DeepPolisherと呼ばれるアセンブリポリッシングのためのエンコーダのみの変換モデルを紹介する。DeepPolisherは、二倍体アセンブリへのPacbio HiFiリードアラインメントを用いて、基礎となる配列の修正を予測する。このパイプラインでは、PHARAOH(Phasing Reads in Areas Of Homozygosity)という手法を導入し、ウルトラロングONTデータを用いてアラインメントの正確なフェージングを行い、偽のホモ接合領域にヘテロ接合編集を正しく導入する。DeepPolisherパイプラインは、アセンブリエラーを半減させ、indelエラーを70%以上減少させることができる。このDeepPolisherパイプラインをHuman Pangenome Reference Consortium (HPRC)データリリースの180のアセンブリに適用したところ、ゲノムの大部分で平均3.4(54%のエラー削減)の予測Quality Value (QV)の改善が見られた。

DeepPolisherは、アセンブリ研磨のための配列間(seq2seq)変換器ベースの手法である。seq2seq変換器ファミリーのモデルは、言語処理、機械翻訳タスク、会話AI 26-28を含む多くのアプリケーションで使用され、大きな成功を収めている。以前、このモデルアーキテクチャはDeepConsensusで使用され、PacBio High-Fidelity (HiFi)シーケンスリードの品質を向上させた 29。本研究では、ドラフトアセンブリにアライメントされたHiFiシーケンスリードを入力とする、DeepPolisherと呼ばれるゲノム研磨のためのトランスフォーマーモデルの新しい適応を実証する。DeepPolisherとともに、ONTウルトラロング(UL)リードを用いた、偽ホモ接合領域における二倍体アセンブリへのHiFiリードアラインメントのphasing度を向上させるPHARAOHと呼ばれるパイプラインを開発した。本研究では、PHARAOHを用いたDeepPolisherが現在のポリッシングアプローチを上回ることを示す。

 

Case Study

https://github.com/google/deeppolisher/blob/r0.1.0/docs/case_study.md

 

インストール

Github

sudo docker pull google/deepconsensus:polisher_v0.1.0

> polisher --version

$ docker run -it --rm google/deepconsensus:polisher_v0.1.0 polisher -h

usage: Polisher

 

Usage:

  polisher <command> [optional arguments]

 

Commands:

  make_images: Convert aligned bam to tf.Example format.

  inference: Run inference on tf.Example input files and generate predictions.

polisher: error: the following arguments are required: command

 

 

ラン

レポジトリより

DeepPolisher は 2 つのステップで動作する:

make_images: make_imagesステップでは、DeepPolisherはアセンブリにアライメントされたリードを調べ、アセンブリエラーの可能性がある領域のテンソル状の例を作成する。その領域には、リードの塩基、塩基の質、マッピングの質、マッチ、ミスマッチなどの特徴が含まれる。
推論: 推論ステップでは、前ステップからの例は、その領域の配列を予測する変換モデルに渡される。予測された配列はアセンブリ配列と比較され、観察された違いは潜在的なエラーとして記録され、VCFに報告される。

 

DeepPolisherを使うには、2つのデータの入力が必要

 

実行手順

1,Verkko2やHiFiasmでゲノムアセンブリを行い、ハプロイドアセンブリを得る。

 

2,PacBioをハプロタイプマッピングしてbamを得る。PHARAOHパイプラインの使用が推奨されている。PHARAOHパイプラインはWDL(Workflow Description Language)ワークフローマネージャーで書かれている。PHARAOHはDeepPolisherに高精度なリード位相情報を提供するために開発されているので、HiFiリードと、HiFiリードの位相の補正のためのウルトラロングONTリードの指定が必要(ウルトラロングONTリードはHiFiリードの長さを超えるホモ接合領域において特に効果的)。

 

3、DeepPolisherのラン。

step1 - それぞれのハプロイドアセンブリへのアラインメントを指定してイメージを生成

#ASM1 母方
sudo docker run -it \
  -v $PWD/input:/input \
  -v $PWD/output:/output \
  google/deepconsensus:polisher_v0.1.0 polisher make_images \
--bam /input/HG002.mat.bam \
  --fasta /input/HG002.mat.fasta \
  --output /output/mat_images/polishing_mat \
--cpus 20

#ASM2 父方
sudo docker run -it \
  -v $PWD/input:/input \
  -v $PWD/output:/output \
  google/deepconsensus:polisher_v0.1.0 polisher make_images \
--bam /input/HG002.pat.bam \
--fasta /input/HG002.pat.fasta \
--output /output/mat_images/polishing_pat \
--cpus 20

step2 - イメージから推論してMAT VCFを生成

#ASM2 母方
sudo docker run --gpus all -it \
  -v $PWD/input:$PWD/input \
  -v $PWD/output:$PWD/output \
  google/deepconsensus:polisher_v0.1.0 \
  polisher inference \
  --input_dir $PWD/mat_images/polishing_mat \
  --out_dir $PWD/output/mat_vcf \
  --checkpoint /opt/models/pacbio_model/checkpoint \
  --reference_file $PWD/input/HG002.mat.fasta \
  --sample_name HG002

#ASM2 父方
sudo docker run --gpus all -it \
  -v $PWD/input:$PWD/input \
  -v $PWD/output:$PWD/output \
  google/deepconsensus:polisher_v0.1.0 \
  polisher inference \
--input_dir $PWD/pat_images/polishing_pat \
--out_dir $PWD/output/pat_vcf \
  --checkpoint /opt/models/pacbio_model/checkpoint \
--reference_file $PWD/input/HG002.pat.fasta \
  --sample_name HG002

アセンブリ潜在的なエラーを含むVCFファイルが出力される。

 

4、バリアントをアセンブリに適用

tabix -p vcf ${PAT_VCF_OUTPUT_DIR}/polisher_output.unsorted.vcf.gz
tabix -p vcf ${MAT_VCF_OUTPUT_DIR}/polisher_output.unsorted.vcf.gz

bcftools consensus \
-f ${PAT_FASTA} \
-H 2 \
${PAT_VCF_OUTPUT_DIR}/polisher_output.unsorted.vcf.gz > ${OUTPUT_DIR}/pat.polished.fasta

bcftools consensus \
-f ${MAT_FASTA} \
-H 2 \
${MAT_VCF_OUTPUT_DIR}/polisher_output.unsorted.vcf.gz > ${OUTPUT_DIR}/mat.polished.fasta

 

コメント

  • googleのレポジトリですが、公式ツールではなく、臨床目的では設計されていない事も書かれています。注意してください。
  • 人間以外のサンプルで使えるようにいくつかのサンプルでテストしているとの説明があります(#5)。

引用

Highly accurate assembly polishing with DeepPolisher

 Mira Mastoras,  Mobin Asri, Lucas Brambrink,  Prajna Hebbar, Alexey Kolesnikov,  Daniel E. Cook,  Maria Nattestad,  Julian Lucas,  Taylor S. Won,  Pi-Chuan Chang,  Andrew Carroll,  Benedict Paten,  Kishwar Shafin

bbioRxiv, Posted September 19, 2024.