🌟

Helixerによるゲノムアノテーション

2024/06/23に公開

はじめに

Helixer–de novo Prediction of Primary Eukaryotic Gene Models Combining Deep Learning and a Hidden Markov Model

https://www.biorxiv.org/content/10.1101/2023.02.06.527280v2.full

遺伝子構造の予測はゲノム配列から生物学的な知見を得るための重要なステップである一方、ゲノムシーケンスプロジェクトにおいては計算量や複雑な処理が課題となっている。現在、主流のde novo隠れマカロフモデルは生物学的な複雑性をモデル化する能力には限界があるほか、パイプラインはリソース集約型であるものが多く結果の品質は利用可能な外部データ (RNAのデータや、タンパクの配列情報など) によって異なる。

ここでは、遺伝子予測にDeep learningを適用した以前の論文をもとに、DNA配列のみからプライマリ遺伝子モデルを予測する高速なツールであるHelixerを紹介する。予測精度は、ほとんどの基準で他のde novoツールのよりもReferenceに近いスコアとなり、予測結果はそのまま後続の解析に使用したり、既存のパイプラインに統合して品質向上にも寄与できる可能性がある。

インストール

Singularityの仕様が推奨されているのでSingularityコンテナを使用する。

https://github.com/weberlab-hhu/Helixer

また、GPUが使えるらしいので以下を参考にその要件を確認する。

https://github.com/gglyptodon/helixer-docker

Singularityのコンテナをビルドする。

# pull current docker image 
singularity pull docker://gglyptodon/helixer-docker:helixer_v0.3.3_cuda_11.8.0-cudnn8

次にHelixerはモデルをベースとした遺伝子領域の推定を実施しているので、トレーニングファイルが存在するので、fetch_helixer_models.pyで取得する。

singularity run --nv helixer-docker fetch_helixer_models.py --all

トレーニングファイルについてはこちらにまとめられています。

https://uni-duesseldorf.sciebo.de/s/lQTB7HYISW71Wi0

デフォルトで利用可能な事前学習済みのモデルが利用可能な系統は以下の4つ。

  • land_plant
  • vertebrate
  • invertebrate
  • fungi

特定の系統のみのモデルを取得したい場合には--lineageで指定する。すべてダウンロードする場合には、--allをオプションで与える。

もし上記系統以外の生物種を対象とする場合には、トレーニングファイルを生成する方法もある。

https://github.com/weberlab-hhu/Helixer/blob/main/docs/training.md

Helixerで解析するゲノム配列

Helixerを実行するに当たり、アノテーションをするためのゲノム配列を取得する。小さなゲノムを持つ真核生物から中程度のゲノムサイズを持つものをいくつか選択した。

  • Helixerのtestデータ
  • パン酵母 (12.1 Mbp)
  • アユのゲノム (449.1 Mbp)
  • マウスのリファレンスゲノム (2.7 Gbp)
mkdir -p dat && cd dat

# Testデータ
wget ftp://ftp.ensemblgenomes.org/pub/plants/release-47/fasta/arabidopsis_lyrata/dna/Arabidopsis_lyrata.v.1.0.dna.chromosome.8.fa.gz

# パン酵母
wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/146/045/GCF_000146045.2_R64/GCF_000146045.2_R64_genomic.fna.gz

# アユ
wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/019/972/215/GCA_019972215.1_Pal_1.0/GCA_019972215.1_Pal_1.0_genomic.fna.gz

# Mus musculs GRCm39
wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/001/635/GCF_000001635.27_GRCm39/GCF_000001635.27_GRCm39_genomic.fna.gz

cd ..

Helixerの実行

HelixerはGPUを使った遺伝子予測が可能であり、singularity runの--nvオプションでNVIDIAのGPUを使用した実行ができる。testデータとパン酵母についてはGPUを使って実行した。

mkdir -p helixer_out/test helixer_out/pan helixer_out/ayu helixer_out/mouse

# test data
singularity run --nv helixer-docker_helixer_v0.3.3_cuda_11.8.0-cudnn8.sif \
Helixer.py \
--fasta-path dat/Arabidopsis_lyrata.v.1.0.dna.chromosome.8.fa.gz \
--lineage land_plant \
--gff-output-path helixer_out/test/Arabidopsis_lyrata_chromosome8_helixer.gff3 \
2>&1 | tee Arabidopsis_lyrata_helixer.log

# パン酵母
singularity run --nv helixer-docker_helixer_v0.3.3_cuda_11.8.0-cudnn8.sif \
Helixer.py \
--fasta-path dat/GCF_000146045.2_R64_genomic.fna.gz \
--lineage fungi \
--gff-output-path helixer_out/pan/GCF_000146045.2_R64_genomic_helixer.gff3 \
2>&1 | tee R64_helixer.log

以下の2種については、GPUに搭載されているメモリの容量が足りなかったため--nvオプションをつけずにCPUベースで実行。

RAMを多く使用するので、アユは80GB程度、Mouseについては126GB程度は最低でも必要となるので注意してください。

# ayu 
singularity run helixer-docker_helixer_v0.3.3_cuda_11.8.0-cudnn8.sif \
Helixer.py \
--fasta-path dat/GCA_019972215.1_Pal_1.0_genomic.fna.gz \
--lineage vertebrate \
--gff-output-path helixer_out/ayu/GCA_019972215.1_Pal_1.0_genomic_helixer.gff3 \
2>&1 | tee Pal_1.0_helixer.log

# Mouse
singularity run helixer-docker_helixer_v0.3.3_cuda_11.8.0-cudnn8.sif \
Helixer.py \
--fasta-path dat/GCF_000001635.27_GRCm39_genomic.fna.gz \
--lineage vertebrate \
--gff-output-path helixer_out/mouse/GCF_000001635.27_GRCm39_genomic_helixer.gff3 \
2>&1 | tee GRCm39_helixer.log

テストデータとパン酵母は2分かからないくらい、アユは3時間、Mouseは1.5日程度の時間を要しました。ゲノムサイズによって推定時間と要求されるPCスペックが異なる感じです。

出力されたgff3を見るとこんな感じ。exon領域や5′UTR, 3′UTR位置の推定結果が確認できます。

また、igvに非圧縮のゲノムfastaとgff3をアップロードするとstrand情報も含めて視覚的に状況を確認することが出来ます。

ゲノムのコードデング領域の推定後は一般的にはQCを行います。QCについては以降の記事でまとめます。

参考

備考

  • 自作PC1
    • CPU: Ryzen 5950X 32 threads
    • GPU: RTX3070Ti メモリ 8GB

Discussion