macでインフォマティクス

macでインフォマティクス

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

MiniprotとAUGUSTUSによるゲノムアノテーションを行う GALBA

2023/09/01 論文引用

 

 アース・バイオゲノムプロジェクトによって、利用可能な真核生物ゲノムの数は急速に増加しているが、公開されたゲノムのほとんどは、タンパク質をコードする遺伝子のアノテーションが不足している。さらに、いくつかのゲノムではトランスクリプトームデータが利用できない。様々な遺伝子アノテーションツールが開発されているが、それぞれに限界がある。ここでは、迅速なタンパク質-ゲノムアライナーであるminiprotとAUGUSTUSを組み合わせて、高精度で遺伝子を予測する完全自動化パイプラインであるGALBAを紹介する。精度の結果から、GALBAは特に大型脊椎動物ゲノムのアノテーションに強いことが示された。また、昆虫、脊椎動物、未アノテーションの陸上植物での使用例も紹介する。GALBAは完全にオープンソースであり、ハイパフォーマンス・コンピューティング環境においてSingularityで簡単に実行できるDockerイメージとして利用可能である。本パイプラインは、新しく配列決定されたゲノムの正確な遺伝子アノテーションの重要なニーズに対応しており、GALBAが多様な生物のゲノムアノテーションを大幅に促進すると信じている。

 

Automated and Accurate Genome Annotation with BRAKER, GALBA, & TSEBRA

https://evomics.org/wp-content/uploads/2023/05/slides_genome_annotation_cesky_krumlov_2023.pdf

 

レポジトリより

ゲノム配列の数が急速に増加しているため、正確な遺伝子構造アノテーションのための完全自動化手法が必要とされている。GALBAは、新規な生物種に対してAUGUSTUSをトレーニングし、その後その生物種のゲノム中のAUGUSTUSを持つ遺伝子を予測する完全自動遺伝子パイプラインを提供する。GALBAは近縁種のタンパク質配列を使用して、miniprotまたはGenomeThreaderでAUGUSTUSのトレーニング遺伝子セットを生成する。トレーニング後、GALBAは遺伝子予測時にタンパク質とゲノムのアライメントから得られた証拠を使用する。

 なお、中小サイズのゲノム(線虫、A. thaliana、D. melanogasterなど)では、一般的なBRAKERRパイプラインの方がGALBAよりも正確な結果が得られる可能性が高い。BRAKERは、1つの近縁種のタンパク質配列のみを使用する代わりに、大規模な配列データベースのタンパク質を使用出来る。BRAKERはRNA-Seqデータも取り込むことができる。GALBAとは対照的に、BRAKERは非常に近縁な生物種のアノテーションがなくても(RNA-Seqデータがなくても)、高い遺伝子予測精度を達成する。しかし、近縁種からのタンパク質を使用する場合、大規模ゲノム(Mus musculus、Gallus gallusなど)ではGALBAの方が明らかに有利である。GALBAの使用を決定する前に、精度のセクションを読んでください(リンク)。

インストール

(簡単なので)singuarlityを使って実行することが推奨されている。レポジトリの説明に従って導入した。

Github

#権限ないならsudoで実行
singularity build galba.sif docker://katharinahoff/galba-notebook:latest
=>カレントにgalba.sifができる。

#実行
singularity exec galba.sif galba.pl

> singularity exec galba.sif galba.pl

$ singularity exec galba.sif galba.pl

 

DESCRIPTION

 

galba.pl   Pipeline for for de novo gene prediction with AUGUSTUS using Miniprot

           or GenomeThreader

 

SYNOPSIS

 

galba.pl [OPTIONS] --genome=genome.fa -prot_seq=prot.fa

 

INPUT FILE OPTIONS

 

--genome=genome.fa                  fasta file with DNA sequences

--prot_seq=prot.fa                  A protein sequence file in multi-fasta

                                    format used to generate protein hints.

--hints=hints.gff                   Alternatively to calling galba.pl with a

                                    protein fasta file, it is possible to

                                    call it with a .gff file that contains

                                    hints that were previously generated by

                                    GALBA or the scripts within GALBA.

                                    This flag also allows the usage of hints

                                    from additional extrinsic sources for gene

                                    prediction with AUGUSTUS. To consider such

                                    additional extrinsic information, you need

                                    to use the flag --extrinsicCfgFiles to

                                    specify parameters for all sources in the

                                    hints file (including the source "P" for

                                    GALBA protein hints)

 

FREQUENTLY USED OPTIONS

 

--species=sname                     Species name. Existing species will not be

                                    overwritten. Uses Sp_1 etc., if no species

                                    is assigned

--AUGUSTUS_ab_initio                output ab initio predictions by AUGUSTUS

                                    in addition to predictions with hints by

                                    AUGUSTUS

--gff3                              Output in GFF3 format (default is gtf

                                    format)

--threads                           Specifies the maximum number of threads that

                                    can be used during computation. Be aware:

                                    optimize_augustus.pl will use max. 8

                                    threads; augustus will use max. nContigs in

                                    --genome=file threads.

--workingdir=/path/to/wd/           Set path to working directory. In the

                                    working directory results and temporary

                                    files are stored

--nice                              Execute all system calls within galba.pl

                                    and its submodules with bash "nice"

                                    (default nice value)

 

--alternatives-from-evidence=true   Output alternative transcripts based on

                                    explicit evidence from hints (default is

                                    true).

--crf                               Execute CRF training for AUGUSTUS;

                                    resulting parameters are only kept for

                                    final predictions if they show higher

                                    accuracy than HMM parameters.

--keepCrf                           keep CRF parameters even if they are not

                                    better than HMM parameters

 

--prg=miniprot|gth                  Specify either miniprot or gth

                                    (GenomeThreader); default is miniprot.

--makehub                           Create track data hub with make_hub.py

                                    for visualizing GALBA results with the

                                    UCSC GenomeBrowser

--email                             E-mail address for creating track data hub

--version                           Print version number of galba.pl

--help                              Print this help message

 

CONFIGURATION OPTIONS (TOOLS CALLED BY GALBA)

 

--AUGUSTUS_CONFIG_PATH=/path/       Set path to config directory of AUGUSTUS

                                    (if not specified as environment

                                    variable). GALBA1 will assume that the

                                    directories ../bin and ../scripts of

                                    AUGUSTUS are located relative to the

                                    AUGUSTUS_CONFIG_PATH. If this is not the

                                    case, please specify AUGUSTUS_BIN_PATH

                                    (and AUGUSTUS_SCRIPTS_PATH if required).

                                    The galba.pl commandline argument

                                    --AUGUSTUS_CONFIG_PATH has higher priority

                                    than the environment variable with the

                                    same name.

--AUGUSTUS_BIN_PATH=/path/          Set path to the AUGUSTUS directory that

                                    contains binaries, i.e. augustus and

                                    etraining. This variable must only be set

                                    if AUGUSTUS_CONFIG_PATH does not have

                                    ../bin and ../scripts of AUGUSTUS relative

                                     to its location i.e. for global AUGUSTUS

                                    installations. GALBA1 will assume that

                                    the directory ../scripts of AUGUSTUS is

                                    located relative to the AUGUSTUS_BIN_PATH.

                                    If this is not the case, please specify

                                    --AUGUSTUS_SCRIPTS_PATH.

--AUGUSTUS_SCRIPTS_PATH=/path/      Set path to AUGUSTUS directory that

                                    contains scripts, i.e. splitMfasta.pl.

                                    This variable must only be set if

                                    AUGUSTUS_CONFIG_PATH or AUGUSTUS_BIN_PATH

                                    do not contains the ../scripts directory

                                    of AUGUSTUS relative to their location,

                                    i.e. for special cases of a global

                                    AUGUSTUS installation.

--MINIPROT_PATH=/path/to/tool       Set path to Miniprot binary

                                    if not specified as environment

                                    MINIPROT_PATH variable. Has higher

                                    priority than environment variable. Only

                                    required if --prg="gth" is not set.

--SCORER_PATH=/path/to/tool         Set path to Miniprot

miniprot_boundary_scorer

                                    if not specified as environment

                                    SCORER_PATH variable. Has higher

                                    priority than environment variable. Only

                                    required if --prg="gth" is not set.

--MINIPROTHINT_PATH=/path/to/tool   Set path to miniprothint.py

                                    if not specified as environment

                                    MINIPROTHINT_PATH variable. Has higher

                                    priority than environment variable. Only

                                    required if --prg="gth" is not set.

--GENOMETHREADER_PATH=/path/to/tool Set path to GenomeThreader binary

                                    if not specified as environment

                                    GENOMETHREADER_PATH variable. Has higher

                                    priority than environment variable. Only

                                    required if --prg="gth"

--DIAMOND_PATH=/path/to/diamond     Set path to diamond, this is an alternative

                                    to NCIB blast; you only need to specify one

                                    out of DIAMOND_PATH.

--PYTHON3_PATH=/path/to             Set path to python3 executable (if not

                                    specified as envirnonment variable and if

                                    executable is not in your $PATH).

--MAKEHUB_PATH=/path/to             Set path to make_hub.py (if option --makehub

                                    is used).

--CDBTOOLS_PATH=/path/to            cdbfasta/cdbyank are required for running

                                    fix_in_frame_stop_codon_genes.py.

 

EXPERT OPTIONS

 

--augustus_args="--some_arg=bla"    One or several command line arguments to

                                    be passed to AUGUSTUS, if several

                                    arguments are given, separate them by

                                    whitespace, i.e.

                                    "--first_arg=sth --second_arg=sth".

--rounds                            The number of optimization rounds used in

                                    optimize_augustus.pl (default 5)

--skipAllTraining                   Skip AUGUSTUS training, only

                                    runs AUGUSTUS with pre-trained and already

                                    existing parameters.

                                    Hints from input are still generated.

--skipOptimize                      Skip optimize parameter step (not

                                    recommended).

--skipGetAnnoFromFasta              Skip calling the python3 script

                                    getAnnoFastaFromJoingenes.py from the

                                    AUGUSTUS tool suite. This script requires

                                    python3, biopython and re (regular

                                    expressions) to be installed. It produces

                                    coding sequence and protein FASTA files

                                    from AUGUSTUS gene predictions and provides

                                    information about genes with in-frame stop

                                    codons. If you enable this flag, these files

                                    will not be produced and python3 and

                                    the required modules will not be necessary

                                    for running galba.pl.

--eval=reference.gtf                Reference set to evaluate predictions

                                    against (using evaluation scripts

from GaTech)

--eval_pseudo=pseudo.gff3           File with pseudogenes that will be excluded

                                    from accuracy evaluation (may be empty file)

--verbosity=n                       0 -> run galba.pl quiet (no log)

                                    1 -> only log warnings

                                    2 -> also log configuration

                                    3 -> log all major steps

                                    4 -> very verbose, log also small steps

--checkSoftware                     Only check whether all required software

                                    is installed, no execution of GALBA

--nocleanup                         Skip deletion of all files that

are typically not

                                    used in an annotation project after

                                    running galba.pl. (For tracking any

                                    problems with a galba.pl run, you

                                    might want to keep these files, therefore

                                    nocleanup can be activated.)

 

 

DEVELOPMENT OPTIONS (PROBABLY STILL DYSFUNCTIONAL)

 

--CfgFiles=file.cfg                 Specify custom extrinsic.cfg file

                                    unless you know what you are doing!

--translation_table=INT             Change translation table from non-standard

                                    to something else.

                                    DOES NOT WORK YET

--traingenes=file.gtf               instead of using Miniprot or GTH to generate

                                    traingenes, provide a gtf file.

 

 

EXAMPLE

 

galba.pl [OPTIONS] --genome=genome.fa --species=speciesname \

    --prot_seq=proteins.fa

 

 

実行方法

ゲノムとタンパク質配列を指定する。ここでは*1の順で実行した。

git clone https://github.com/Gaius-Augustus/GALBA.git
cd GALBA/example/
galba.pl --species=yourSpecies --genome=genome.fa --prot_seq=proteins.fa

デフォルトではMiniprotが使用される。GenomeThreaderに切り替えるには--prg=gthを指定する(GenomeThreaderはSingularityイメージに含まれていない)。

出力例

GALBA.logを開いて、"FINISHED"まで表示されていることを確認する。

出力(レポジトリより)

  • galba.gtf: AUGUSTUSによって予測された遺伝子。遺伝子間領域のサイズが大きい(>40,000 nt)ゲノムでは、TSEBRAを用いてこの遺伝子セットのノイズを減らしている。
  • augustus.ab_initio.gtf: AUGUSTUSによりab initioモードで予測された遺伝子のGTFフォーマット。AUGUSTUSが--esmodeオプション付きで実行された場合、このファイルは常に存在する。そうでない場合は、GALBAが--AUGUSTUS_ab_initioオプション付きで実行された場合のみ存在する。
  • hintsfile.gff: タンパク質データから抽出された外部証拠データ。
  • GTF形式は常に生成される。
  • GALBAに--gff3フラグが指定されている場合は、GFF3-formatが生成される。

 

その他

  • -makehubオプションが使用されている場合(MakeHubが利用可能であること)、hub_という名前で始まるhubディレクトリが作成される。hub.txtファイルがこのディレクトリに含まれる。このファイルをUCSC Genome Browserに提供してアノテーション結果を可視化することが出来る(MakeHubはSingularityイメージに含まれている)。

引用

GALBA: Genome Annotation with Miniprot and AUGUSTUS
Tomáš Brůna,  Heng Li,  Joseph Guhlin,  Daniel Honsel,  Steffen Herbold,  Mario Stanke, Natalia Nenasheva,  Matthis Ebel, Lars Gabriel, Katharina J. Hoff

bioRxiv, Posted April 10, 2023

 

2023/09/01追記

Galba: genome annotation with miniprot and AUGUSTUS
Tomáš Brůna, Heng Li, Joseph Guhlin, Daniel Honsel, Steffen Herbold, Mario Stanke, Natalia Nenasheva, Matthis Ebel, Lars Gabriel & Katharina J. Hoff 
BMC Bioinformatics volume 24, Article number: 327 (2023) 

 

 

関連


*1

 

$ cd <change>/<to>/<data_dir>

$ singularity shell --bind $PWD:/root galba.sif #イメージを指定してラン、shellに入る。

#書き込み禁止のディレクトリを書き込み可能なディレクトリにコピー

> mkdir AUGUSTUS

> cp -r /usr/share/augustus/ AUGUSTUS/

#環境変数AUGUSTUS_CONFIG_PATHをコピーしたディレクトリのconfigに変更

> export AUGUSTUS_CONFIG_PATH=AUGUSTUS/augustus/config/

#GALBAの実行。--AUGUSTUS_CONFIG_PATHオプションでさきほどのパスを指定

> galba.pl --species=mygenome --genome=genome.fasta --prot_seq=protein.faa --AUGUSTUS_CONFIG_PATH=/root/AUGUSTUS/augustus/config/