macでインフォマティクス

macでインフォマティクス

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

アノテーションパイプライン BRAKER3

2023/05/28, 5/30 誤字修正

2023/06/13 プレプリント引用

2024/02/19 ツイート追記

 

 タンパク質配列やRNA-Seqライブラリの形で大量の外部エビデンスを提供するデータベースの利用可能性が高まっており、タンパク質コード遺伝子の遺伝子構造予測手法を改善するための強力な情報源となっている。BRAKERパイプラインは、遺伝子予測ツールGeneMarkとAUGUSTUSを利用することで、新規真核生物ゲノムのアノテーションを完全に自動化し、使いやすいソフトウェアツールを提供する。これまでに発表されたBRAKERパイプラインは、ショートリードRNA-Seq(BRAKER1)またはタンパク質データ(BRAKER2)を、塩基配列の固有情報とともに用いて、ゲノムアノテーションに成功したソリューションを提供してきた。BRAKER3は、ショートリードRNA-Seqと大規模なタンパク質データベースを併用できるBRAKERスイートの新しいパイプラインである。BRAKER3は、GeneMark-ETPツールとBRAKER関連コンバイナーソフトウェアTSEBRAをアノテーションプロトコルに統合している。BRAKER3は、特に大規模で複雑なゲノムに対して、アノテーション精度を大幅に向上させることを6つの生物種で示した。さらに、ショートリードRNA-Seqの前処理ステップを増やすことでゲノムアノテーションワークフローをさらに自動化し、Singularityコンテナを提供することでBRAKERへのアクセスをより容易にした。

 

2024/03/15

 

 

インストール

レポジトリにはcondaなどを使った半手動の導入手順が説明されているが、依存するツールやライブラリが多く時間がかかる。並行して紹介されているdockerイメージを使用した。このイメージには、現在ではGeneMark-ETPも含まれていて便利になっている(注1;root権限の要らないsingularityの使用が推奨されている)(注2;)。

Github

#dockerhub(link
docker pull teambraker/braker3:latest

> braker.pl #v3.0.3

$ braker.pl 

 

DESCRIPTION

 

braker.pl   Pipeline for predicting genes with GeneMark-EX and AUGUSTUS with

            RNA-Seq and/or proteins

 

SYNOPSIS

 

braker.pl [OPTIONS] --genome=genome.fa {--bam=rnaseq.bam | --prot_seq=prot.fa}

 

INPUT FILE OPTIONS

 

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

--bam=rnaseq.bam                    bam file with spliced alignments from

                                    RNA-Seq

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

                                    format used to generate protein hints.

                                    Unless otherwise specified, braker.pl will

                                    run in "EP mode" which uses ProtHint to

                                    generate protein hints and GeneMark-EP+ to

                                    train AUGUSTUS.

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

                                    bam or protein fasta file, it is possible to

                                    call it with a .gff file that contains

                                    introns extracted from RNA-Seq and/or

                                    protein hints (most frequently coming

                                    from ProtHint). If you wish to use the

                                    ProtHint hints, use its

                                    "prothint_augustus.gff" output file.

                                    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 "E" for

                                    intron hints from RNA-Seq).

                                    In ETP mode, this option can be used together

                                    with --geneMarkGtf and --traingenes to provide

                                    BRAKER with results of a previous GeneMark-ETP

                                    run, so that the GeneMark-ETP step can be

                                    skipped. In this case, specify the hintsfile of

                                    a previous BRAKER run here, or generate a

                                    hintsfile from the GeneMark-ETP working

                                    directory with the script get_etp_hints.py.

--rnaseq_sets_ids=SRR1111,SRR1115   IDs of RNA-Seq sets that are either in

                                    one of the directories specified with

                                    --rnaseq_sets_dir, or that can be downloaded

                                    from SRA. If you want to use local files, you

                                    can use unaligned reads in FASTQ format

                                    (they have to be named ID.fastq if unpaired or

                                    ID_1.fastq, ID_2.fastq if paired), or aligned reads

                                    as a BAM file (named ID.bam).

--rnaseq_sets_dir=/path/to/rna_dir1 Locations where the local files of RNA-Seq data

                                    reside that were specified with --rnaseq_sets_ids.

 

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

--softmasking_off                   Turn off softmasking option (enables by 

                                    default, discouraged to disable!)

--esmode                            Run GeneMark-ES (genome sequence only) and

                                    train AUGUSTUS on long genes predicted by

                                    GeneMark-ES. Final predictions are ab initio

--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 braker.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).

--fungus                            GeneMark-EX option: run algorithm with

                                    branch point model (most useful for fungal

                                    genomes)

--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

--makehub                           Create track data hub with make_hub.py

                                    for visualizing BRAKER results with the

                                    UCSC GenomeBrowser

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

--version                           Print version number of braker.pl

--help                              Print this help message

 

CONFIGURATION OPTIONS (TOOLS CALLED BY BRAKER)

 

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

                                    (if not specified as environment

                                    variable). BRAKER1 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 braker.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. BRAKER1 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.

--BAMTOOLS_PATH=/path/to/           Set path to bamtools (if not specified as

                                    environment BAMTOOLS_PATH variable). Has

                                    higher priority than the environment

                                    variable.

--GENEMARK_PATH=/path/to/           Set path to GeneMark-ET (if not specified

                                    as environment GENEMARK_PATH variable).

                                    Has higher priority than environment

                                    variable.

--SAMTOOLS_PATH=/path/to/           Optionally set path to samtools (if not

                                    specified as environment SAMTOOLS_PATH

                                    variable) to fix BAM files automatically,

                                    if necessary. Has higher priority than

                                    environment variable.

--PROTHINT_PATH=/path/to/           Set path to the directory with prothint.py.

                                    (if not specified as PROTHINT_PATH

                                    environment variable). Has higher priority

                                    than environment variable.

--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 or BLAST_PATH, not both.

                                    DIAMOND is a lot faster that BLAST and yields

                                    highly similar results for BRAKER.

--BLAST_PATH=/path/to/blastall      Set path to NCBI blastall and formatdb

                                    executables if not specified as

                                    environment variable. Has higher priority

                                    than environment variable.

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

                                    specified as envirnonment variable and if

                                    executable is not in your $PATH).

--JAVA_PATH=/path/to                Set path to java executable (if not

                                    specified as environment variable and if

                                    executable is not in your $PATH), only

                                    required with flags --UTR=on and --addUTR=on

--GUSHR_PATH=/path/to               Set path to gushr.py exectuable (if not

                                    specified as an environment variable and if

                                    executable is not in your $PATH), only required

                                    with the flags --UTR=on and --addUTR=on

--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. Usage of

                                    that script can be skipped with option

                                    '--skip_fixing_broken_genes'.

 

 

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".

--skipGeneMark-ES                   Skip GeneMark-ES and use provided

                                    GeneMark-ES output (e.g. provided with

                                    --geneMarkGtf=genemark.gtf)

--skipGeneMark-ET                   Skip GeneMark-ET and use provided

                                    GeneMark-ET output (e.g. provided with

                                    --geneMarkGtf=genemark.gtf)

--skipGeneMark-EP                   Skip GeneMark-EP and use provided

                                    GeneMark-EP output (e.g. provided with

                                    --geneMarkGtf=genemark.gtf)

--skipGeneMark-ETP                  Skip GeneMark-ETP and use provided

                                    GeneMark-ETP output (e.g. provided with

                                    --gmetp_results_dir=GeneMark-ETP/)

--geneMarkGtf=file.gtf              If skipGeneMark-ET is used, braker will by

                                    default look in the working directory in

                                    folder GeneMarkET for an already existing

                                    gtf file. Instead, you may provide such a

                                    file from another location. If geneMarkGtf

                                    option is set, skipGeneMark-ES/ET/EP/ETP is

                                    automatically also set. Note that gene and

                                    transcript ids in the final output may not

                                    match the ids in the input genemark.gtf

                                    because BRAKER internally re-assigns these

                                    ids.

                                    In ETP mode, this option hast to be used together

                                    with --traingenes and --hints to provide BRAKER

                                    with results of a previous GeneMark-ETP run.

--gmetp_results_dir                 Location of results from a previous

                                    GeneMark-ETP run, which will be used to

                                    skip the GeneMark-ETP step. This option

                                    can be used instead of --geneMarkGtf,

                                    --traingenes, and --hints to skip GeneMark.

--rounds                            The number of optimization rounds used in

                                    optimize_augustus.pl (default 5)

--skipAllTraining                   Skip GeneMark-EX (training and

                                    prediction), skip AUGUSTUS training, only

                                    runs AUGUSTUS with pre-trained and already

                                    existing parameters (not recommended).

                                    Hints from input are still generated.

                                    This option automatically sets

                                    --useexisting to true.

--useexisting                       Use the present config and parameter files

                                    if they exist for 'species'; will overwrite

                                    original parameters if BRAKER performs

                                    an AUGUSTUS training.

--filterOutShort                    It may happen that a "good" training gene,

                                    i.e. one that has intron support from

                                    RNA-Seq in all introns predicted by

                                    GeneMark-EX, is in fact too short. This flag

                                    will discard such genes that have

                                    supported introns and a neighboring

                                    RNA-Seq supported intron upstream of the

                                    start codon within the range of the

                                    maximum CDS size of that gene and with a

                                    multiplicity that is at least as high as

                                    20% of the average intron multiplicity of

                                    that gene.

--skipOptimize                      Skip optimize parameter step (not

                                    recommended).

--skipIterativePrediction           Skip iterative prediction in --epmode (does

                                    not affect other modes, saves a bit of runtime)

--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 brkaker.pl.

--skip_fixing_broken_genes          If you do not have python3, you can choose

                                    to skip the fixing of stop codon including

                                    genes (not recommended).

--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)

--AUGUSTUS_hints_preds=s            File with AUGUSTUS hints predictions; will

                                    use this file as basis for UTR training;

                                    only UTR training and prediction is

                                    performed if this option is given.

--flanking_DNA=n                    Size of flanking region, must only be

                                    specified if --AUGUSTUS_hints_preds is given

                                    (for UTR training in a separate braker.pl

                                    run that builds on top of an existing run)

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

                                    1 -> only log warnings

                                    2 -> also log configuration

                                    3 -> log all major steps

                                    4 -> very verbose, log also small steps

--downsampling_lambda=d             The distribution of introns in training

                                    gene structures generated by GeneMark-EX

                                    has a huge weight on single-exon and

                                    few-exon genes. Specifying the lambda

                                    parameter of a poisson distribution will

                                    make braker call a script for downsampling

                                    of training gene structures according to

                                    their number of introns distribution, i.e.

                                    genes with none or few exons will be

                                    downsampled, genes with many exons will be

                                    kept. Default value is 2.

                                    If you want to avoid downsampling, you have

                                    to specify 0.

--checkSoftware                     Only check whether all required software

                                    is installed, no execution of BRAKER

--nocleanup                         Skip deletion of all files that are typically not

                                    used in an annotation project after

                                    running braker.pl. (For tracking any

                                    problems with a braker.pl run, you

                                    might want to keep these files, therefore

                                    nocleanup can be activated.)

 

 

DEVELOPMENT OPTIONS (PROBABLY STILL DYSFUNCTIONAL)

 

--splice_sites=patterns             list of splice site patterns for UTR

                                    prediction; default: GTAG, extend like this:

                                    --splice_sites=GTAG,ATAC,...

                                    this option only affects UTR training

                                    example generation, not gene prediction

                                    by AUGUSTUS

--overwrite                         Overwrite existing files (except for

                                    species parameter files) Beware, currently

                                    not implemented properly!

--extrinsicCfgFiles=file1,file2,... Depending on the mode in which braker.pl

                                    is executed, it may require one ore several

                                    extrinsicCfgFiles. Don't use this option

                                    unless you know what you are doing!

--stranded=+,-,+,-,...              If UTRs are trained, i.e.~strand-specific

                                    bam-files are supplied and coverage

                                    information is extracted for gene prediction,

                                    create stranded ep hints. The order of

                                    strand specifications must correspond to the

                                    order of bam files. Possible values are

                                    +, -, .

                                    If stranded data is provided, ONLY coverage

                                    data from the stranded data is used to

                                    generate UTR examples! Coverage data from

                                    unstranded data is used in the prediction

                                    step, only.

                                    The stranded label is applied to coverage

                                    data, only. Intron hints are generated

                                    from all libraries treated as "unstranded"

                                    (because splice site filtering eliminates

                                    intron hints from the wrong strand, anyway).

--optCfgFile=ppx.cfg                Optional custom config file for AUGUSTUS

                                    for running PPX (currently not

                                    implemented)

--grass                             Switch this flag on if you are using braker.pl

                                    for predicting genes in grasses with

                                    GeneMark-EX. The flag will enable

                                    GeneMark-EX to handle GC-heterogenicity

                                    within genes more properly.

                                    NOTHING IMPLEMENTED FOR GRASS YET!

--transmasked_fasta=file.fa         Transmasked genome FASTA file for GeneMark-EX

                                    (to be used instead of the regular genome

                                    FASTA file).

--min_contig=INT                    Minimal contig length for GeneMark-EX, could

                                    for example be set to 10000 if transmasked_fasta

                                    option is used because transmasking might

                                    introduce many very short contigs.

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

                                    to something else.

                                    DOES NOT WORK YET BECAUSE BRAKER DOESNT

                                    SWITCH TRANSLATION TABLE FOR GENEMARK-EX, YET!

--gc_probability=DECIMAL            Probablity for donor splice site pattern GC

                                    for gene prediction with GeneMark-EX,

                                    default value is 0.001

--gm_max_intergenic=INT             Adjust maximum allowed size of intergenic

                                    regions in GeneMark-EX. If not used, the value

                                    is automatically determined by GeneMark-EX.

--traingenes=file.gtf               Training genes that are used instead of training

                                    genes generated with GeneMark.

                                    In ETP mode, this option can be used together

                                    with --geneMarkGtf and --hints to provide BRAKER

                                    with results of a previous GeneMark-ETP run, so

                                    that the GeneMark-ETP step can be skipped.

                                    In this case, use training.gtf from that run as

                                    argument.

--UTR=on                            create UTR training examples from RNA-Seq

                                    coverage data; requires options

                                    --bam=rnaseq.bam.

                                    Alternatively, if UTR parameters already

                                    exist, training step will be skipped and

                                    those pre-existing parameters are used.

    DO NOT USE IN CONTAINER!

    TRY NOT TO USE AT ALL!

--addUTR=on                         Adds UTRs from RNA-Seq coverage data to

                                    augustus.hints.gtf file. Does not perform

                                    training of AUGUSTUS or gene prediction with

                                    AUGUSTUS and UTR parameters.

    DO NOT USE IN CONTAINER!

    TRY NOT TO USE AT ALL!

 

 

EXAMPLE

 

To run with RNA-Seq

 

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

    --bam=accepted_hits.bam

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

    --hints=rnaseq.gff

 

To run with protein sequences

 

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

    --prot_seq=proteins.fa

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

    --hints=prothint_augustus.gff

 

To run with RNA-Seq and protein sequences

 

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

    --prot_seq=proteins.fa --rnaseq_sets_ids=id_rnaseq1,id_rnaseq2 \

    --rnaseq_sets_dir=/path/to/local/rnaseq/files 

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

    --prot_seq=proteins.fa --bam=id_rnaseq1.bam,id_rnaseq2.bam 

 

 

 

 

BRAKERは、教師となる外部エビデンスRNA-Seqやタンパク質のスプライスアライメント)を用いてGeneMarkのトレーニングを行い、その後AUGUSTUSのトレーニングを行い、最終的なアノテーションを行う。提供するエビデンスの種類によってパイプラインのフローは変化し、最終的なアノテーション結果も変化するというのがbrakerの特徴的な部分である。提供可能なエビデンスが増えているため、レポジトリでは代表的な4つのフローチャートについて詳しく説明している。

  1. genome onlyRNA seqもタンパク質も利用できない場合に適している。GeneMark-ESはゲノム配列のみを用いてトレーニングされる。GeneMark-ESによって予測された長い遺伝子は、AUGUSTUSのトレーニングに使用される。AUGUSTUSによるab initio遺伝子予測が最終結果となる。実行にかかる時間は短くなるものの、他のパイプラインよりも予測精度が低くなる可能性があると説明されている。(注;GeneMark-ESは教師なしトレーニングによってパラメータ化されたモデルを利用するアルゴリズムPMCアーカイブ)。
  2. genome & RNA seq;トランスクリプトームを十分にカバーする高いカバレッジのショートリードRNA-Seqデータがある場合に適している。教師なし学習とショートRNA Readsのマッピングによるイントロン位置の情報を利用するGeneMark-ETが使用される。GeneMark-ETによる遺伝子情報とRNA seq情報はAUGUSTUSのトレーニングに使用される。AUGUSTUSによるab initio遺伝子予測が最終結果となる。ロングリードのRNA-Seqデータも認識するが、現時点ではBRAKERはロングリードRNA-Seqデータは正式にはサポートしていない(使用を検討している場合はレポジトリ参照)。
  3. genome & (closely related) proteinRNA-Seqデータはないが対象生物種に近い生物種のタンパク質が存在する場合に適している。ProtHint(紹介)を使ってリファレンスタンパク質配列をスプライシングアラインメントし、目的のゲノムでのヒントを得る(proteinのhintを得るので"ProtHint")。そのヒントファイル.gffを使ってGeneMark-EP/EP+が訓練・実行される。GeneMark-EP/EP+の遺伝子情報と近縁なタンパク質情報はAUGUSTUSのトレーニングに使用される。AUGUSTUSによるab initio遺伝子予測が最終結果となる。BRAKERはOrthoDB R19でテストされている。BRAKER2、BRAKER3で使用するために、OrthoDB v.11から生成したクレード分割ファイルもhttps://bioinf.uni-greifswald.de/bioinf/partitioned_odb11/ からダウンロードできる(より詳しくはProtHintのレポジトリを参照。OrthoDBのセットに手動で近いタンパク質も加えることが提案されている。パイプラインの3と4の方法は、リファレンスとするタンパク質が対象の生物種から進化的距離が遠い場合も精度はほとんど低下しないとされる(要検討)。(注;GeneMark-EPはヒントを用いてモデルパラメータの推定を改善し、最も信頼できるヒントと異なる場合には予測遺伝子の座標を調整する(-EP+モード)。GeneMark-EPと-EP+は、GeneMark-ES(パイプライン1)と比較して遺伝子予測精度の向上が見られ、GeneMark-EP+はGeneMark-ET(パイプライン2)よりも高い精度を示す。PMCアーカイブ)。

  4. genome & RNA seq &  (closely related) proteinRNA-Seqデータと近縁な生物種のタンパク質どちらも利用可能な場合に適している。出来る限り大規模なタンパク質データベースが必要となる。RNA-Seqアラインメントとタンパク質データベースを用いてGeneMark-ETPのトレーニングを行う。その後、GeneMark-ETPの結果と、最初の外部情報を再び用いてAUGUSTUSの学習と予測を行う。最終的な結果は、AUGUSTUSとGeneMark-ETPの結果をTSEBRAによって組み合わせたbraker.gtfとして得られる(注;TSEBRAは遺伝子予測の最適な組み合わせを構築するツール。EVMよりも優れた結果を出すと報告されている。PMCアーカイブ)。(注;GeneMark-ETPはゲノム、トランスクリプトーム、タンパク質由来の証拠を使う。その性能は1種類だけの外部エビデンスを用いるGeneMark-ET、GeneMark-EP+よりも良好な傾向にある。PMCアーカイブ)。

このように、パイプライン1-4ではそれぞれGeneMarkの異なるバージョンが使用される。GeneMarkのGTFファイルも保存され、必要に応じてこちらを利用することも出来るように設計されている。パイプライン4ではGeneMarkとAUGUSTUSのGTF、braker.gtfが全て出力される。IGVなどのゲノムブラウザに結果のGTFと全ての外部証拠のbam、GTF/GFFを読み込んで、アノテーション率とintron-exon境界などの精度が高いアノテーション結果を選んでいく(注;BRAKERはこの目的のためにMakeHubを使ったUCSC Genome Browser用のトラックデータハブ生成をサポートしている)。

 

 

実行方法

1、dockerコンテナ上でシェルを実行して使用

sudo docker run --user 1000:100 --rm -it -v $PWD:/data teambraker/braker3:latest bash
> braker.pl

 

RNA seqのエビデンスが使用できる(bamの代わりにhint.gffファイルやfastq、SRA IDも使用可能)。

#bam file
braker.pl --species=yourSpecies --genome=genome.fasta \
--bam=condition1.bam,condition2.bam --threads 8 --gff3

#bam dir
braker.pl --species=yourSpecies --genome=genome.fasta \
--rnaseq_sets_ids=BAM_ID1,BAM_ID2 \
--rnaseq_sets_dir=/path/to/local/bam/files --threads 8
  • --genome=genome.fa    fasta file with DNA sequences
  • --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.

  • --bam=rnaseq.bam      bam file with spliced alignments from RNA-Seq --prot_seq=prot.fa.  A protein sequence file in multi-fasta format used to generate protein hints. Unless otherwise specified, braker.pl will run in "EP mode" which uses ProtHint to generate protein hints and GeneMark-EP+ to train AUGUSTUS.

  • --species=sname   Species name. Existing species will not be overwritten. Uses Sp_1 etc., if no species is assigned.

  • --rnaseq_sets_ids=SRR1111,SRR1115   IDs of RNA-Seq sets that are either in one of the directories specified with --rnaseq_sets_dir, or that can be downloaded from SRA. If you want to use local files, you can use unaligned reads  in FASTQ format (they have to be named ID.fastq if unpaired or ID_1.fastq, ID_2.fastq if paired), or aligned reads as a BAM file (named ID.bam).

  • --gff3  Output in GFF3 format (default is gtf  format)
  • --rnaseq_sets_dir=/path/to/rna_dir1    Locations where the local files of RNA-Seq data   reside that were specified with --rnaseq_sets_ids.

出力例

braker/

 

 

2、BRAKERワークショップで使われたJupyterNotebook環境で使用。

sudo docker run --rm -it -u 1000:0 -p 8888:8888 teambraker/braker3:latest

 

その他

  • 2023年5月現在、コンテナにはJava/GUSHR/UTRに関しては含まれていない。バグが多く不安定と説明されている。
  • 新規ゲノムの遺伝子を正確に予測するためには、リピートをマスクしておく。このステップはbrakerはサポートしないので予めて行っておく必要がある。デフォルトではsoft maskingがオンになっていてsoft maskを認識する(braker2ではでデフォルトではOFFだった)。入力ゲノムのsoft masking認識機能を無効化するには"--softmasking_off"を付ける。
  • (レポジトリより)RNA-Seqデータをゲノムにマッピングする際にも、リピートのマスキングは必須(HISAT2など他のRNA-Seqマッパーはマスキング情報を無視する)。GeneMark-EXとAUGUSTUSの場合、ソフトマスキング(リピート領域を小文字に、それ以外の領域を大文字にすること)は、ハードマスキング(リピート領域の文字を未知の核酸を表すNに置き換えること)より良い結果につながる。
  • (レポジトリより)ゲノムファイルの配列名はシンプルな名前を使用する(予期せぬバグ防止)。
  • ローカルのFASTQファイルをRNA-seqのbamの代わりに使用することも可能(複数可)。ペアエンドとシングルエンドの混在にも対応。HISAT2が使用される。詳細はレポジトリ参照。
  • (レポジトリより)ETPmode(RNA-Seqとタンパク質データ)でBRAKERを実行する場合、RNA-Seqデータを--hintsで提供することは推奨されない。GeneMark-ETPはこれらのヒントを使用しない。
  • いずれのフローでも、最終出力はbraker.gtf(GFF選択時はbraker.gff3)というファイル名になっている。その遺伝子予測がどの方法に基づいているかは、ファイルを開いて2列目の名前を確認する。

 

コメント

"--addUTR=on"もしくは”--UTR=on”をつけてのUTRのアノテーションはまだサポートされていないようです。braker2でもUTRのアノテーションは軽微なバグが多く見つかり、ユーザー側の努力でとりあえず動かせましたが不安定なことは感じていました。UTRのアノテーションまで含めて可能になるとより便利になると思うので、今後のバージョンアップに期待しています。しかし、修正には関連する多くのコードの調整が必要になる可能性があり、対応するとしてもまとまった時間が必要で、かなり時間が必要やもしれません。

もう1点、brakerを使っているからといって、BUSCOなどの要約統計以外何も調べずにアノテーションが付いたとしてはならない点に注意してください。結果をゲノムブラウザに読み込んで、十分な品質になっているかよく検討する必要があります。brakerでもいきなりベストの結果が得られるのは稀なので、パラメータやエデビンスの種類を変えて何度もランするケースが多い傾向があると言えます。brakerのランだけでも何日も、場合によっては月単位で時間がかかる可能性を考えると、ある程度サイズが大きいゲノムを使用する場合、ゲノムサイズが小さいモデル生物でコツを掴むまで練習するか、訓練が十分に行える数本の染色体レベルコンティグと少なめの外部エビデンスだけでテストを繰り返し、適切な設定を十分に理解後、本当のランを行った方が結果的には時間短縮になるかもしれません(逆にバイアスが増えるかもしれませんが)。

ランタイムに関して言えば、ゲノムサイズ以上にパイプライン1−4のどれを選ぶが大きく影響します。シングルスレッドのプロセスの影響もあり、プロセスが増える4はかなり時間がかかるはずです。そういった意味でも、brakerは比較的ゲノムサイズが小さい真核生物ゲノム向けのアノテーションパイプラインと言えるのもしれません。(少しでもやり直したいステップがあると、大きいゲノムほど最初からやり直すのは時間的に不利になるから)。しかし一般的にプロセスが非常に多く作業量が膨大になってしまう真核生物アノテーションにおいて、ラップして高度に自動化してくれるbrakerが貴重な存在であることは明らかですね(全て個人の非常に主観的な評価)。タンパク質コード遺伝子のStructural annotationが満足いくレベルに達すれば、続いてFunctional annotationを行なって生物学的な情報を得るステップに進むことができます(参考)。

 

引用

The BRAKER3 Genome Annotation Pipeline
January 2023
DOI: 10.13140/RG.2.2.20047.36004
Conference: Plant and Animal Genome Conference XXX

 

2023/06/13追記

BRAKER3: Fully Automated Genome Annotation Using RNA-Seq and Protein Evidence with GeneMark-ETP, AUGUSTUS and TSEBRA
Lars Gabriel, Tomas Bruna, Katharina Jasmin Hoff, Matthis Ebel,  View ORCID ProfileAlexandre Lomsadze, Mark Borodovsky,  View ORCID ProfileMario Stanke

bioRxiv, Posted June 12, 2023

 

関連