macでインフォマティクス

macでインフォマティクス

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

真核生物の遺伝子構造を予測する OrionGeno

 

 真核生物ゲノムシーケンシングの急速な拡大により、正確かつスケーラブルなゲノムアノテーションに対する需要が急速に高まっている。既存のab initio法は、複雑な遺伝子構造を再構築することや、系統的に離れた生物群に対して汎化することがしばしば困難であり、大規模なアノテーションへの利用が制限されている。本研究では、真核生物ゲノムをエンドツーエンドでアノテーションするための、系統情報を考慮した深層学習モデルOrionGenoを提案する。OrionGenoは、系統学的コンテキスト、長距離の配列モデリング、および遺伝子構造と反復配列の同時予測を統合することにより、ゲノム配列から直接、エクソン、イントロン、非翻訳領域(UTR)、および反復配列をアノテーションする。NCBIに登録されているもののアノテーションが付与されていない染色体レベルの真核生物ゲノムに適用した結果、OrionGenoは5,300を超えるゲノムについてアノテーションを生成し、公開アノテーション資源を大幅に拡充した。多様な真核生物系統にわたる評価において、OrionGenoは、エクソン、遺伝子、タンパク質配列、およびタンパク質構造の各レベルで、最先端の既存手法を上回る性能を示した。さらに、十分にキュレーションされたゲノムにおいて、既存の参照タンパク質コード遺伝子アノテーションには含まれていない、タンパク質をコードする可能性のある候補遺伝子座も同定した。

Webプラットフォームおよび統合アノテーションデータベースと組み合わせることで、OrionGenoは、ゲノムアセンブリを機能的な生物学的資源へと変換するための、スケーラブルかつ利用しやすいフレームワークを提供するとともに、Earth BioGenome Project のような大規模生物多様性プロジェクトを支援するものである。

インストール

mambaでPython3.10環境を作成してインストールした。

  • Linux
  • Python 3.10.18
  • CUDA 12.x

git clone https://github.com/BGIResearch/OrionGeno.git
cd OrionGeno
#Python 3.10 環境を用意
mamba create -y -p ./.conda-envs/oriongeno python=3.10.18 pip biopython=1.85
conda activate ./.conda-envs/oriongeno
python -m pip install -r requirements.min.txt
python -m pip install --no-cache-dir --no-deps -r requirements.native-cu126.txt

#git lfsも導入
mamba install -c conda-forge git-lfs -y

> python main.py -h

usage: main.py [-h] [--genome GENOME] [--output OUT] [--checkpoint CHECKPOINT] [--length SEQ_LEN] [--flank FLANK_SIZE]

               [--batch-size BATCH_SIZE] [--hmm-parallel-factor HMM_PARALLEL_FACTOR] [--hmm-decode-batch HMM_DECODE_BATCH]

               [--profile-hmm PROFILE_HMM] [--output-gene OUTPUT_GENE] [--output-repeat OUTPUT_REPEAT]

               [--gene-filter-mode {strict,none}] [--species-name SPECIES_NAME]

Run OrionGeno prediction from a genome FASTA and checkpoint.

options:

  -h, --help            show this help message and exit

  --genome GENOME       Genome FASTA input path. Required unless ORIONGENO_GENOME is set.

  --output OUT          Gene GFF output path. Repeat output uses the same basename with .repeat.gff.

  --checkpoint CHECKPOINT

                        OrionGeno checkpoint directory. Required unless ORIONGENO_CHECKPOINT is set.

  --length SEQ_LEN      Output window length.

  --flank FLANK_SIZE    Context bases added to each side of every output window.

  --batch-size BATCH_SIZE

                        Model-forward batch size. Use 'auto' to estimate from available GPU memory.

  --hmm-parallel-factor HMM_PARALLEL_FACTOR

                        Override the HMM chunk-parallel factor. Use 0 to choose it automatically.

  --hmm-decode-batch HMM_DECODE_BATCH

                        HMM Viterbi decode batch size, decoupled from --batch-size. Larger values improve CPU Viterbi batch-level

                        parallelism and amortize per-step CUDA kernel-launch overhead on the GPU fallback path; memory grows with

                        the batch and a CUDA OOM is handled by halving and retrying. Use 'auto' for a conservative tuned value;

                        use 0 to reuse the model-forward batch size (legacy behavior).

  --profile-hmm PROFILE_HMM

                        Print per-batch HMM timing breakdowns.

  --output-gene OUTPUT_GENE

  --output-repeat OUTPUT_REPEAT

  --gene-filter-mode {strict,none}

                        Gene annotation filtering mode. 'strict' writes only the strict-filtered records to --output; 'none'

                        writes unfiltered predictions to --output.

  --species-name SPECIES_NAME

                        Optional species name used only for species conditioning; it does not select a checkpoint.

 

モデルウエイト

学習済みモデルをHugging Faceから取得する。系統群に対応したcheckpointディレクトリを指定して使う。

Hugging Faceのページこちら

#Hugging FaceのBGI-Research/OrionGenoリポジトリをローカルに取得
git lfs install
git clone https://huggingface.co/BGI-Research/OrionGeno

現在いるディレクトリにOrionGeno/が作られ、その中にモデル関連ファイルがダウンロードされる(OrionGeno/checkpoints/)。モデル重みは合計約4.6 GB

OrionGeno/checkpoints/

大きな系統群ごとにモデルが用意されている。植物ゲノムの遺伝子予測を行うならOrionGeno/checkpoints/oriongeno_plants/をモデルのパスとして指定する。

 

実行方法

ゲノムのfastaファイルを指定して遺伝子予測を行う。--checkpoint には、対象生物に合った系統群のディレクトリを指定する。さらに、ゲノム配列をどのような長さのchunkで切り、どれだけ周辺情報を付け、何個ずつGPUにロードするか指定する。defaultでは--length 512000で、ゲノムを512 kb単位の出力窓として処理する--flankは、512 kbの左右に追加する配列のサイズ (chunk間の重複が0 bpだと、区切った境界上にある遺伝子の予測が不完全になるため)。現在の実装では--flank 0がデフォルト。

python main.py --genome genome.fna --output oriongeno.gtf --checkpoint OrionGeno/checkpoints/oriongeno_mammals --length 512000 --flank 64000 --batch-size 4 --output-gene True --output-repeat False --species-name Arabidopsis_thaliana
  • --genome   Genome FASTA input path. Required unless ORIONGENO_GENOME is set.
  • --output     Gene GFF output path. Repeat output uses the same basename with .repeat.gff.
  • --checkpoint    OrionGeno checkpoint directory. Required unless ORIONGENO_CHECKPOINT is set.
  • --length    Output window length.
  • --flank       Context bases added to each side of every output window.
  • --batch-size   Model-forward batch size. Use 'auto' to estimate from available GPU memory.

 

RTX 3070 Ti GPUを使い、シロイヌナズナのゲノムを使ってテストした、RTX 3070 TiはVRAM量が少ないので、 --length 51200と-batch-size 2を適用した。

 

出力例

GTFが出力される。リピートを有効にした場合は、出力名に .repeat を挿入したファイルが生成される。

 

> head -n 40 oriongeno.gtf

GTFには、gene、transcript、exon、intron、CDS、start_codon、stop_codon、five_prime_utr、three_prime_utr などのfeatureが含まれる。

 

その他

  • OrionGenoは、ゲノムDNA配列を入力し、RNA-seqや相同タンパク質などの外部エビデンスを用いずに遺伝子構造を予測するab initio型の深層学習モデルである。入力された塩基配列は、まず畳み込み型のencoderによって局所的な配列特徴へ変換され、ここに対象種の系統情報を表す特徴量が統合される。続いてBiMamba層が配列を両方向から処理し、スプライス部位のような局所的な特徴だけでなく、離れたexon間の関係や長いintronを含む長距離の配列依存性を捉える。得られた特徴はdecoderによって再び塩基単位の解像度へ戻され、各塩基について遺伝子外領域、CDS、intron、5′ UTR、3′ UTRなどの遺伝子構造に対応する状態の確率が出力される。同じ内部表現からrepeat領域も別の出力headによって同時に予測されるため、遺伝子構造と反復配列を一つのモデル内で扱う構成となっている。
  • 最後にViterbiアルゴリズムによって、これらの確率と遺伝子構造上の制約を同時に満たす最尤の状態列を求め、その状態列からexon、intron、CDS、UTRなどを含む最終的な遺伝子モデルをGTFとして出力する。
  • --gene-filter-mode strictをつけると、厳格な条件を満たした遺伝子モデルのみ出力される。noneだとフィルタリングなしの結果が出力される。
  • 複数GPUを使う場合は、サブコマンドmulti--devicesを指定する。
  • GPUメモリが足りない場合、batch sizeを下げる。またchunkサイズを下げるのも有効 (512の倍数である必要がある)
  • リピート領域も出力する場合は --output-repeat True を指定する。
  • ab initio法のOrionGenoは、ゲノム配列だけから遺伝子予測を行なうことができる(ab initio予測だけで最終版の注釈が完成するわけではない。予測された遺伝子構造は、RNA-seq、タンパク質相同性、既存のアノテーションなどと照合して評価する必要がある。
  • checkpointの系統群を誤ると、結果の精度や解釈に影響する。
  • OrionGenoのコードとモデルウエイトのライセンスはAcademic & Non-Commercial Use Only。
  • OrionGenoの論文では、まさにNCBIにゲノム配列は登録されているものの、遺伝子アノテーションが付いていない真核生物ゲノムを大量にOrionGenoでアノテーションしている(昆虫、植物、魚類、哺乳類、鳥類など)。5,310ゲノムすべてを40台のNVIDIA 5090D GPUで1週間以内に処理できた。結果は良好で、予測タンパク質のBUSCO completeness中央値は97.3%、5,310ゲノムのうち85.9%(4,560ゲノム)が90%以上だった。一方、HydrozoaやTrebouxiophyceaeなど、学習データに近縁種が少ない系統では精度が低下した。この大量アノテーションによって、これまで公開データベースにアノテーション済み代表種が1種も存在しなかった718 familyに新たに遺伝子アノテーションが付いた。結果は中国のCNGB DBに公開されている。
  • 6種についてRNA-seqで確認すると、予測遺伝子の平均93.1%がTPM > 1の転写レベルの発現エビデンスを持っていた。ゲノム配列しか使っていないにもかかわらず、RNA-seq+タンパク質を利用するBRAKER3と比較してBUSCO completenessが4.4%高くなった。またAkebia trifoliataでは60 exonからなる複雑な遺伝子も配列だけから再構築できた。

 

OrionGeno public annotation database:OrionGenoで生成したアノテーションを閲覧・探索するためのデータベース

https://db.cngb.org/genomics/orion_geno?utm_source=chatgpt.com

ログインが必要。クリックしてGTFアノテーションファイルを直接ダウンロードできる (日本だとやや遅め)。

 

引用

Advancing ab initio genome annotation with OrionGeno

Lin Liu, Xudong Cai, Shengfu Wang, Yuan Deng, Yiwen Wu, Youliang Pan, Jieyu Wang, Chao Zhang, Haopeng Xia, Nongzhang Tan, Kui Su, Yang Liu, Xuping Zhou, Longqi Liu, Tong Wei, Yong Zhang, Qiye Li, Yuxiang Li, Peng Yin, Xun Xu

bioRxiv. Posted August 24, 2026.

 

関連

 

RTX5090でもテストした。デフォルト設定だと、VRAM占有量は19GBくらいだった。ランタイムは、1Gbアセンブリで1時間ほどだった。