macでインフォマティクス

macでインフォマティクス

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

バクテリアやアーキアの遺伝子を予測するProdigal(メタゲノムデータセットにも対応)

2019 5/8 インストール追記

2021 7/13 help更新

2022/07/20 追記

2023/08/23 追記

 

ProdigalはDynamic Programmingの方法論により効率的にバクテリアアーキアの遺伝子を探すツール。既存の方法は様々存在するが、本手法はまずインプットゲノムを分析してモデルを構築し、それから遺伝子を予測することで、false positiveを抑えtrue callを増やすよう工夫されている。

Prodicalはドラフトゲノムやメタゲノムを扱うことが可能である。動作が非常に高速なのも特徴で、E.coliゲノムだと10秒程度で解析することが可能である。2010年に論文が発表され、2014年時点で600以上引用されている。

本手法はイントロンを含む遺伝子の予測やアノテーションは行われない。また、挿入や欠損によるフレームシフトは考慮されないので、高精度な予測を行うためには、予測に使うゲノムのエラーは入念に取り除かれていなければならない。ウィルスでの動作は検証されていないが、動作はするとされる。最新版はProdigal2で、今後Prodigal3へのアップデートが予定されている。

 

 

公式サイト

http://prodigal.ornl.gov

マニュアル

https://github.com/hyattpd/prodigal/wiki

 

インストール

Github

brewでProdigal2が導入できる。condaでも導入できる。

brew install Prodigal

conda install -c bioconda -y prodigal

prodigal -h

$ prodigal -h

 

Usage:  prodigal [-a trans_file] [-c] [-d nuc_file] [-f output_type]

                 [-g tr_table] [-h] [-i input_file] [-m] [-n] [-o output_file]

                 [-p mode] [-q] [-s start_file] [-t training_file] [-v]

 

         -a:  Write protein translations to the selected file.

         -c:  Closed ends.  Do not allow genes to run off edges.

         -d:  Write nucleotide sequences of genes to the selected file.

         -f:  Select output format (gbk, gff, or sco).  Default is gbk.

         -g:  Specify a translation table to use (default 11).

         -h:  Print help menu and exit.

         -i:  Specify FASTA/Genbank input file (default reads from stdin).

         -m:  Treat runs of N as masked sequence; don't build genes across them.

         -n:  Bypass Shine-Dalgarno trainer and force a full motif scan.

         -o:  Specify output file (default writes to stdout).

         -p:  Select procedure (single or meta).  Default is single.

         -q:  Run quietly (suppress normal stderr output).

         -s:  Write all potential genes (with scores) to the selected file.

         -t:  Write a training file (if none exists); otherwise, read and use

              the specified training file.

         -v:  Print version number and exit.

 

 

ラン

ランには3つのモードがある。詳細は公式マニュアルの説明を確認する。

 

フィニッシュしたゲノム(一本になっておりNがないゲノム)や巨大ウィルスはノーマルモードでランする。ノーマルモードはまずゲノムを分析し、それからコード領域を予測する。ハイクオリティなモデル構築のため、ゲノムは100-kb (3') ~ 500-kb (5') の長さ以上である事が推奨されている。

ノーマルモード

prodigal -i my.genome.fna -o gene.coords.gbk -a protein.faa -d nucleotide.fna
  • -i Specify FASTA/Genbank input file (fasta推奨).
  • -o Specify output file (default writes to stdout).
  • -a Write protein translations to the selected file.
  • -d Specify nucleotide sequences file.
  • -c Closed ends. Do not allow partial genes at edges of sequence.
  • -f Specify output format.

    gbk: Genbank-like format (Default)

    gff: GFF format

    sqn: Sequin feature table format

    sco: Simple coordinate output

出力はfaa、fna、genbank like、gtfなどから選択する。 genbankライクな出力は以下のようになっている。

f:id:kazumaxneo:20170901133923j:plain

アセンブルして作ったcontigの状態でもノーマルモードを利用できる。ノーマルモードでは、1本でも長いcontigがあれば、そこからモデルを構築し遺伝子を予測することが可能である。ただし、あまりにもバラバラだとエラーが出る。その場合は、近縁種の情報からモデルを構築してランできるトレーニングモードを使う。

 

 

ノーマルモードは同じプロファイルを入力に対して当てはめるので、メタゲノムのデータに対してそのまま使ってはならない。通常、メタゲノムアセンブルした全配列データはアノニマスモードでランする。アノニマスモードではプリセットのデータを使い解析される。100-kb以下のプラスミド、ファージ、ウィルスもアノニマスモード使用が推奨される。

 アノニマスモード(Prodigal2ではmetagenome)。

prodigal -i metagenome.fna -o coords.gbk -a proteins.faa -p meta
  • -p Select procedure (single or meta). Default is single.  

ノーマルモードでランすれば自分の配列で訓練するので精度が上がる。ノーマルモードを使いたいなら、contigをbinningしてMAGs配列を個々に指定する。アノニマスモードはsmall plasmidやlow qualityなゲノムにも使えるとされる。

追記

20-kbなど短い配列もアノニマスモードで実行するとノーマルモードより精度が上が流傾向が見られる。特にどこを開始コドンをするかなどは影響を受けやすい。アノニマスモードを使いたくないなら、20-kbなど短い配列に元のゲノム配列をcatなどで結合してノーマルモードで実行し、十分な訓練が行えるように工夫する(あとでアノテーションから分離する。)。このtipsは、prokkaやDFASTでも同様に使える。

 

 

フィニッシュした近縁種のゲノム情報が利用できるなら、ドラフトゲノムの予測はトレーニングモードが利用できる。トレーニングモードは、近縁種のゲノムでトレーニングデータを作成し、それを元にゲノム予測を行う方法である。ドラフトゲノムのクオリティが不十分な時に使う。

レーニングモード

1、ゲノム1を使い、トレーニングデータを出力する(-p trainは認識しないので使わない。よく似たゲノムを使わないと性能が出ない)。

prodigal -i genome1.fna -t genome1.trn 
  • -t Write a training file (if none exists); otherwise, read and use the specified training file.

2、ゲノム1のトレーニングデータを使い、ゲノム2の遺伝子を予測。

prodigal -i genome2.fna -t genome1.trn -o genome2.gbk -a genome2.faa

 

大抵のバクテリアアーキアはgenetic code11を使うが、code11で遺伝子が短すぎる場合、自動で他のcodeに切り替えるように設計されている(詳細)。

  • -g Specify a translation table to use (default 11).

-mをつけると、Nがある領域の遺伝子が予測されなくなる。

  • -m: Treat runs of N as masked sequence; don't build genes across them.

 

その他

GNU parallelsで並列化。singleモード。

mkdir gbk #.gff保存dir
mkdir Protein #.faa保存dir
#40 parallel (問題なければ--dry-runを外す)
ls *.fna | parallel -j 40 --dry-run 'prodigal -i {} -o {.}.gbk -a {.}.faa -p single && mv {.}.gbk GFF/ && mv {.}.faa Protein/'

 

Pyrodigal : Cython bindings and Python interface to Prodigal

https://pyrodigal.readthedocs.io/en/stable/index.html

 

公式マニュアルには使い方やターゲットについて丁寧に説明されています。ぜひ一度確認してみてください(リンク)。

引用 

Prodigal: prokaryotic gene recognition and translation initiation site identification

Doug HyattEmail author, Gwo-Liang Chen, Philip F LoCascio, Miriam L Land, Frank W Larimer and Loren J Hauser

BMC Bioinformatics 2010 11:119 

 

関連