2019 5/8 インストール追記
2021 7/13 help更新
2022/07/20 追記
2023/08/23 追記
2024/08/28 追記、09/03 -s追記
ProdigalはDynamic Programmingの方法論により効率的にバクテリアやアーキアの遺伝子を探すツール。既存の方法は様々存在するが、本手法はまずインプットゲノムを分析してモデルを構築し、それから遺伝子を予測することで、false positiveを抑えtrue callを増やすよう工夫されている。
Prodicalはドラフトゲノムやメタゲノムを扱うことが可能である。動作が非常に高速なのも特徴で、E.coliゲノムだと10秒程度で解析することが可能である。2010年に論文が発表され、2014年時点で600以上引用されている。
本手法はイントロンを含む遺伝子の予測やアノテーションは行われない。また、挿入や欠損によるフレームシフトは考慮されないので、高精度な予測を行うためには、予測に使うゲノムのエラーは入念に取り除かれていなければならない。ウィルスでの動作は検証されていないが、動作はするとされる。最新版はProdigal2で、今後Prodigal3へのアップデートが予定されている。
公式サイト
マニュアル
https://github.com/hyattpd/prodigal/wiki
インストール
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ライクな出力は以下のようになっている。
アセンブルして作った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など短い配列もアノニマスモードで実行するとノーマルモードより精度が上が流傾向が見られる。特に開始コドンの位置は影響を受けやすい。また、Prodigalのメタゲノムモードは断片化された遺伝子に対して機能するため、MAGで使用することでコア遺伝子予測精度が上がる可能性がある(link)。
短い配列でもアノニマスモードを使いたくないなら、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.
潜在的な全てのORFと遺伝子予測のconfidence scoreを示したテーブルも出力する(micropanではこれを使ってprodigalの最終的な予測から品質の低いORFをフィルタリングしている)。
prodigal -i my.genome.fna -o gene.coords.gbk -a protein.faa -d nucleotide.fna -s ORFscore.txt
- -s Write all potential genes (with scores) to the selected file.
その他
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は、バクテリアと一部の古細菌には存在するが、真核生物には存在しないShine-Dalgarno配列(リボソーム結合部位配列)を利用するため、原核生物の遺伝子判定に適している(Jose L Figueroa et al, 2024)。
引用
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
関連