macでインフォマティクス

macでインフォマティクス

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

研究が十分に進んでいない分岐した真核生物を対象とした自動化核ゲノムアノテーションパイプライン Eukan

 

 本稿では、広範な真核生物において安定して高品質な結果をもたらすよう設計された、新しいアノテーション・パイプライン「Eukan」を紹介する。第一に、実験的証拠を自動的に活用して予測を精緻化する。具体的には、RNA-Seqのリード・カバレッジ情報を一般化隠れマルコフモデル(GHMM)に基づく遺伝子予測に反映させ、イントロン長情報をタンパク質配列アラインメントに利用する。第二に、複数の情報源から得られた遺伝子予測に対し、経験的に最適化された重み付けを行うことでコンセンサス(合意)を生成する。第三に、コンセンサスには含まれていないものの、強力な転写産物による裏付けがあり、かつタンパク質をコードしていると見なされる遺伝子予測を回復させるための事後処理ルーチンを実行する。本著者らは、系統的に多様な17種類のハプロイドおよびディプロイドの核ゲノムを対象に、Eukanと、広く利用されている3つの無料パイプライン(Maker、Braker、Gemoma)の解析結果を比較した。一般的に報告されるアノテーション精度の指標に加え、自動アノテーションで頻繁に見られる重大な欠陥を分類する新たなシステムを定義した。さらに、検証済みの「ゴールドスタンダード」遺伝子の大部分は、テストセット全体において各パイプラインによって正しく同定されたものの、断片化、人工的な融合、あるいは欠落といった遺伝子が、無視できない割合で各パイプライン特有のパターンとして生じていることを示した。そのような状況下でも、Eukanは、原生生物のコンパクトなゲノムなど、他のパイプラインが困難に直面するようなケースにおいて、一貫して良好な性能を示した。

 

インストール

windows11 WSLでテストした(macだと依存ライブラリのインストールでエラーが発生した)。

Github

git clone https://github.com/BFL-lab/eukan.git
cd eukan
mamba config --set channel_priority strict
mamba env create -f environment.yml
conda activate eukan

さらに、GeneMarkが必要。kernel 3.10をダウンロードする。

https://exon.gatech.edu/GeneMark/license_download.cgi

安全でないファイルと出てしまう場合、ファイル名を付けて保存、それから許可でダウンロードできる。プログラムとライセンスキーどちらも取得する。

gmes_linux_64_4.tar.gzとgm_keys.tar.gzをクローンしたeukan/のルートに配置する(解凍不要)。さらにGeneMarkライセンスキーを$HOME/.gm_keyとして登録する (*1)。

それから以下を実行する。このスクリプトは、genemarkとcondaでは入らない補助プログラムをコンパイルして認識できるようにする。

./scripts/install-extras.sh

> eukan check

 7 Python checks OK:

    ✓ module imports                 all 30 modules OK

    ✓ pyhmmer                        phmmer search works

    ✓ gffutils                       in-memory DB works

    ✓ biopython                      sequence I/O works

    ✓ pydantic-settings              config loads OK

    ✓ scipy                          ks_2samp/chi2/BH work

    ✓ tool registry                  38 tools loaded from tools.toml

  38 tools OK:

    ✓ augustus                       AUGUSTUS (3.5.0) is a gene prediction tool.

    ✓ snap                           SNAP - Semi-HMM-based Nucleic Acid Parser (version 2006-07-28)

    ✓ codingquarry                   CodingQuarry v. 2.0

    ✓ genemark                       # -------------------

    ✓ diamond                        diamond version 2.2.4

    ✓ samtools                       samtools 1.23.1

    ✓ minimap2                       2.31-r1302

    ✓ stringtie                      3.0.3

    ✓ rnaspades                      SPAdes genome assembler v4.3.0 [rnaSPAdes mode]

    ✓ trinity                        Trinity version: Trinity-v2.15.2

    ✓ jellyfish                      jellyfish 2.3.1

    ✓ spaln                          *** SPALN_AVX2 version 3.0.8 <260119> ***

    ✓ makdbs                         makdbs Version 2.0.0: format a set of sequences to be quickly addressed

    ✓ fitild                         Usage:

    ✓ combinr                        combinr 0.1.1

    ✓ genomethreader                 gth (GenomeThreader) 1.7.1

    ✓ trf                            Tandem Repeats Finder, Version 4.10.0-rc.2

    ✓ repeatmodeler                  RepeatModeler version 2.0.8

    ✓ builddatabase                  No query sequence file indicated

    ✓ repeatmasker                   RepeatMasker version 4.2.4

    ✓ rmblast                        rmblastn: 2.17.1+

    ✓ gff2gbSmallDNA                 Use of uninitialized value $ARGV in concatenation (.) or string at /home/kazu/miniforge3/envs/eukan/bin/gff2gbSmallDNA.p

    ✓ optimize_augustus              optimize_augustus.pl    train augustus and automatically optimize the meta parameters.

    ✓ bam2wig                        -----------------------------------------------------------------

    ✓ etraining                      AUGUSTUS (3.5.0) is a gene prediction tool.

    ✓ new_species                    /home/kazu/miniforge3/envs/eukan/bin/new_species.pl -- create the parameter files necessary for training AUGUSTUS for a

    ✓ randomSplit                    /home/kazu/miniforge3/envs/eukan/bin/randomSplit.pl: randomly split a genbank file in two subsets of given sizes

    ✓ splitMfasta                    /home/kazu/miniforge3/envs/eukan/bin/splitMfasta.pl -- split a multiple fasta file in smaller multiple fasta files.

    ✓ join_aug_pred                  Unknown option: help

    ✓ gtf2gff                        NAME

    ✓ wig2hints                      Unknown option: help

    ✓ fathom                         FATHOM - sequence and annotation tool (version 2006-07-28)

    ✓ forge                          FORGE - training program for SNAP (version 2006-07-28)

    ✓ hmm-assembler                  usage: hmm-assembler.pl <name> <directory of files from forge>

    ✓ sortgrcd                       sortgrcd version 2.2.2: read binary .?rds and sort them

    ✓ makblk                         Usage: makblk.pl [-Wx.[bkn|bkp|bka] -K[D|P|S]] [options] seq.1 seq.2 ...

    ✓ gthconsensus                   gthconsensus (GenomeThreader) 1.7.1

    ✓ table2asn                      table2asn: 1.28.1094

  Checked 38 external tools total.

 

  4 databases MISSING or INVALID:

    ✗ uniprot                        uniprot_sprot.faa not found in /home/kazu/Documents/eukan/databases

    ✗ pfam                           Pfam-A.hmm not found in /home/kazu/Documents/eukan/databases

    ✗ kofam                          kofam_eukaryote.hmm not found in /home/kazu/Documents/eukan/databases

    ✗ ko_list                        ko_list.tsv not found in /home/kazu/Documents/eukan/databases

      run: eukan db-fetch

 

まだ準備は終わらない。ツールは揃ったが、次はデータベースがないと表示されるので以下を叩く。

eukan db-fetch
eukan db-fetch --homology-db kofam

> eukan db-fetch -h

Usage: eukan db-fetch [OPTIONS]

  Download reference databases (UniProt or KOfam, plus Pfam).

  Without --database, fetches Pfam plus the homology DB selected by

  --homology-db:

    uniprot  → uniprot_sprot.faa  (default; SwissProt phmmer search)

    kofam    → kofam_eukaryote.hmm + ko_list.tsv  (KEGG Orthology HMMs)

  Use --database to fetch an explicit subset (e.g. -d pfam to refresh

  only Pfam, or -d kofam -d ko_list to fetch KOfam without touching Pfam).

Options:

  Pipeline parameters:

    -o, --output-dir PATH         Directory to download databases into.

                                  [default: databases]

    --homology-db [uniprot|kofam]

                                  Which homology DB to fetch alongside Pfam.

                                  'uniprot' downloads SwissProt; 'kofam'

                                  downloads the KOfam HMM profiles + ko_list

                                  and presses an eukaryote-only HMM database.

                                  [default: uniprot]

    -d, --database [uniprot|pfam|kofam|ko_list]

                                  Specific database(s) to fetch. Overrides

                                  --homology-db when given.

    -f, --force                   Re-download even if databases are up to

                                  date.

  -h, --help                      Show this message and exit.

DB取得は10分くらいで終了した。

 

依存再チェック

> eukan check

O.K !

help

> eukan -h

Usage: eukan [OPTIONS] COMMAND [ARGS]...

  Eukan: Eukaryotic nuclear genome annotation pipeline.

  Typical workflow:

    1. eukan check           Verify installation and tools

       eukan db-fetch        Download UniProt + Pfam databases

    2. eukan mask-repeats    Soft-mask repeats (optional but recommended)

    3. eukan assemble        Build transcriptome from RNA-seq (optional but recommended)

    4. eukan annotate        Annotate genome using proteins + assembly (if available)

    5. eukan func-annot      Add functional info to predicted proteins

    6. eukan prep-submission Validate + package for NCBI submission via table2asn

  Helpers:

       eukan compare      Compare annotations against a reference/previous annotation

       eukan gff3toseq    Extract sequences from annotation

       eukan status       View progress of a pipeline run

Options:

  --version      Show the version and exit.

  -v, --verbose  Enable debug logging.

  -q, --quiet    Suppress info logging (warnings only).

  -h, --help     Show this message and exit.

Commands:

  annotate         Run the genome annotation pipeline.

  assemble         Assemble transcriptome from RNA-seq reads.

  check            Verify Python deps, external tools, and databases.

  compare          Compare predicted gene models against a reference GFF3.

  db-fetch         Download reference databases (UniProt or KOfam, plus...

  func-annot       Add functional annotations (UniProt/KOfam + Pfam) to...

  gff3toseq        Extract protein or cDNA sequences from GFF3 + genome.

  mask-repeats     Soft-mask repeats with RepeatModeler + RepeatMasker.

  prep-submission  Validate + package an annotated genome for NCBI...

  status           Show the status of a pipeline run.

 

実行方法

1、リピートマスク - 小文字を含まないゲノムFASTAを入力する (ソフトマスクされたDNAは小文字になる)。

mkdir test_eukan
cd test_eukan
eukan mask-repeats -g genome.fasta -n 20

> eukan mask-repeats -h

Usage: eukan mask-repeats [OPTIONS]

  Soft-mask repeats with RepeatModeler + RepeatMasker.

  Produces, in the working directory:

    <stem>.masked.fasta     soft-masked genome (lower-case in repeats)

    <stem>.repeats.gff      raw RepeatMasker GFF

    hints_repeatmask.gff    AUGUSTUS-format hints (auto-discovered by

                            `eukan annotate`)

  Pass the masked genome to `eukan annotate -g <stem>.masked.fasta`.

Required input:

-g, --genome PATH  Genome sequence in FASTA format.  [required]

Pipeline parameters:

-n, --numcpu INTEGER     Number of CPU threads.  [default: 16]

--engine [rmblast|ncbi]  Search engine for BuildDatabase / RepeatMasker.

                         [default: rmblast]

--lib PATH               Pre-built repeat-family library FASTA. When set,

                         RepeatModeler is skipped.

Re-run steps:

--run-modeler   Force re-run BuildDatabase + RepeatModeler.

--run-masker    Force re-run RepeatMasker.

-f, --force     Force re-run all steps (ignore cached outputs).

-h, --help  Show this message and exit.

RepeatModeler(紹介)で反復配列ライブラリを作成し、RepeatMasker(紹介)でゲノムをソフトマスクする。AUGUSTUSによる遺伝子予測前にマスクすることが推奨されている。

出力例

repeats/

 

2、(任意) RNA-seqデータから転写産物エビデンスの構築 - 1のソフトマスクされたfastaファイルを使う。シングルエンドは"-s"で指定する。"--uniprot"で作った転写産物の向きや融合転写産物を補正するための補助DBを指定する (unstranded RNA-seq のとき、転写産物がどちら向きかをタンパク質相同性で補正できる)。複数RNA seqあるなら、おそらく連結して1つのペアエンドとして使用する (要確認)。strand-specific ライブラリなら -S RF などを追加する。

eukan assemble -g repeats/genome.masked.fasta \
-l R1.fastq.gz -r R2.fastq.gz -n 10 --memory-gb 64\
--uniprot databases/uniprot_sprot.faa

> eukan assemble  -h

Usage: eukan assemble [OPTIONS]

  Assemble transcriptome from RNA-seq reads.

  Provide either paired-end reads (--left and --right together) or

  single-end reads (--single). If using paired-end reads, both --left

  and --right are required.

Required input:

-g, --genome PATH  Genome FASTA file.  [required]

-l, --left PATH    Left paired-end reads.

-r, --right PATH   Right paired-end reads.

-s, --single PATH  Single-end reads.

Pipeline parameters:

-n, --numcpu INTEGER            Number of CPU threads.  [default: 16]

-S, --strand-specific [RF|FR|R|F]

                                Strand-specific library type.

--non-canonical [auto|force|off]

                                Non-canonical splice mapping. minimap2 maps

                                with the splice preset; 'auto' (default) re-

                                maps with the non-canonical flags (-J 0 -C 3

                                --splice-flank=no) when the soft-clip

                                diagnostic finds extensive non-canonical

                                splicing (so hints/assembly aren't biased by

                                the canonical alignment). 'force' always

                                applies them; 'off' never does.  [default:

                                auto]

--diagnose-softclips / --no-diagnose-softclips

                                Run the soft-clip + intron diagnostic after

                                read mapping. Detects trans-splicing (via de

                                novo splice-leader clusters) and non-

                                canonical splice prevalence; surfaces both

                                as INFO/WARNING and gates the --non-

                                canonical auto re-map.  [default: diagnose-

                                softclips]

-c, --code INTEGER              NCBI genetic code table number.  [default:

                                1]

-m, --min-intron INTEGER        Minimum intron length.  [default: 20]

-M, --max-intron INTEGER        Maximum intron length, hard-imposed:

                                transcript models are split at any longer

                                intron (the max_intron_split step) and

                                combinr enforces it, and Trinity genome-

                                guided uses it as

                                --genome_guided_max_intron. Changing it on a

                                resumed run re-runs max_intron_split/combinr

                                automatically; recovering longer introns

                                from the assembly or mapping also needs

                                --run-trinity/--run-map-transcripts. Set 0

                                to disable the model split.  [default: 5000]

--phred [33|64]                 Phred quality score.  [default: 33]

-j, --jaccard-clip / --no-jaccard-clip

                                In-house jaccard clipping of fused Trinity

                                transcripts (both de novo and genome-

                                guided), splitting two adjacent loci joined

                                into one contig. On by default; needs paired

                                reads. --no-jaccard-clip disables; tune via

                                the --jaccard-* knobs below.

--jaccard-greediness FLOAT      Jaccard low-coverage sensitivity (default

                                1.5). Coverage-adaptive slack that lets

                                faint fusion troughs in low-depth regions be

                                split: 0 = Trinity's fixed floor (most

                                stringent), higher = more aggressive in low

                                coverage. Only used with -j.

--jaccard-max-trough FLOAT      Jaccard trough-depth gate (default 0.05): a

                                junction's jaccard must dip to <= this to be

                                cut. LOWER for more stringent clipping (a

                                deeper trough required). Only used with -j.

--jaccard-min-delta FLOAT       Jaccard flanking-hill rise (default 0.35):

                                the jaccard must climb this far above the

                                trough on both sides for a cut. RAISE for

                                more stringent clipping. Only used with -j.

--jaccard-max-adaptive-trough FLOAT

                                Ceiling on the coverage-adaptive trough gate

                                (default 0.30): caps how far --jaccard-

                                greediness can relax --jaccard-max-trough in

                                low coverage. LOWER to keep low-coverage

                                clipping stringent. Only used with -j.

--combinr-stringent-overlap FLOAT

                                combinr --stringent-overlap: two transcripts

                                cluster only when their span overlap is >=

                                this percent of the shorter transcript

                                (default 0 = any overlap). Raise it (e.g.

                                30) to stop short or tip-overlapping

                                transcripts welding collinear neighbours

                                into one model.

--sl-sequence TEXT              Override the spliced-leader sequence for

                                trans-splice acceptor detection (else

                                recovered from the read soft-clip verdict or

                                de novo insertions).

--sl-cluster-window INTEGER     Genomic window (bp) for consolidating SL

                                acceptor sites.  [default: 5]

--adapter-sequence TEXT         Extra sequencing-adapter sequence to exclude

                                from SL detection (repeatable). Added to the

                                built-in Illumina/Nextera set; use for

                                platform-specific adapters (e.g. MGI/BGI).

--sl-adapter-filter / --no-sl-adapter-filter

                                Screen the recovered SL consensus / acceptor

                                candidates against known sequencing adapters

                                so residual Illumina read-through (e.g.

                                AGATCGGAAGAGC) isn't mistaken for a spliced

                                leader. On by default; --no-sl-adapter-

                                filter disables it.

--combinr-path PATH             Path to the combinr binary (else resolved

                                from PATH or $EUKAN_ASSEMBLE_COMBINR_PATH).

--uniprot PATH                  SwissProt FASTA (uniprot_sprot.faa) or

                                prebuilt diamond .dmnd. Enables homology-

                                based splice-strand correction on unstranded

                                libraries (skipped when -S/--strand-specific

                                is given), and homology de-fusion with

                                --defuse. Without it, both are no-ops.

--defuse                        Split chimeric (fused) transcripts using

                                protein homology: an ultra-sensitive diamond

                                blastx vs SwissProt that finds >=2 distinct,

                                non-overlapping hits on one transcript cuts

                                it at the inter-hit gap. Requires --uniprot.

--defuse-overlap-tolerance FLOAT

                                Max fractional query overlap (of the shorter

                                hit) for two protein hits to still count as

                                distinct evidence of separate genes (default

                                0.10).

--memory-gb INTEGER             Assembly memory cap in GiB (Trinity

                                --max_memory / rnaSPAdes -m). Defaults to 60

                                percent of currently-available memory

                                (floored at 4 GiB).

Re-run steps:

-A, --run-minimap2      Force re-run minimap2 read mapping.

-T, --run-trinity       Force re-run Trinity de novo + genome-guided

                        assembly.

--run-jaccard           Force re-run jaccard clipping of fused transcripts.

--run-map-transcripts   Force re-run minimap2 transcript→genome mapping.

--run-strand-correct    Force re-run homology-based splice-strand

                        correction.

--run-defuse            Force re-run homology-based transcript de-fusion.

--run-max-intron-split  Force re-run the max-intron split of transcript

                        models.

--run-sl-detect         Force re-run SL trans-splice acceptor detection.

--run-sl-cut            Force re-run the genomic SL cut of transcript

                        models.

--run-combinr           Force re-run combinr transcript consolidation.

-f, --force             Force re-run all steps (ignore cached outputs).

-h, --help  Show this message and exit.:wq

STAR (紹介)によるアセンブリへのマッピング後、Trinityによるgenome-guided or de novoアセンブリ (紹介)が行われる (Trinityアセンブラ (紹介)にはゲノムガイドモードとde novoアセンブリモードの2つのモードがある)。2つのRNA seqアセンブリは、最後にcombinr (Github) により統合された転写産物エビデンスとなる。

出力例

assemble/

 

3、遺伝子構造の予測 - ゲノムから遺伝子構造を予測して、最終的なGFF3形式アノテーションを作る。1のソフトマスクされたfastaファイルを使う。近縁タンパク質とRNA seqデータをエビデンスとして、 Ab initio gene predictionを改善することができる。2のRNA seqエビデンスフォルダ: annotate/は自動で認識される。"-p"には、対象生物に近縁な生物のタンパク質配列を指定する(必須)。対象に近い10種程度のプロテオームが望ましく、遠縁種を大量に混ぜると、パラログや重複した証拠により、むしろ注釈精度が低下する可能性があると説明されている。近縁種がなければSwiss-Protを使う (マニュアルより)。"-k"でkingdom: fungus/protist/animal/plantを選択できる。

eukan annotate -g repeats/genome.masked.fasta \
-p related_proteins.faa --kingdom fungus -n 20

> eukan annotate -h

Usage: eukan annotate [OPTIONS]

  Run the genome annotation pipeline.

  When run in the same directory as `eukan assemble`, transcript evidence

  (FASTA, GFF3, RNA-seq hints) and strand-specificity are discovered

  automatically. Use the override options to supply your own files or to

  replace the auto-discovered values.

Required input:

-g, --genome PATH    Genome sequence in FASTA format. Must not contain

                     lower-case nucleotides (the pipeline soft-masks repeats

                     by converting to lower-case).  [required]

-p, --proteins PATH  One or more protein FASTA files.  [required]

Pipeline parameters:

-k, --kingdom [fungus|protist|animal|plant]

                                Target organism kingdom (tunes predictor

                                parameters).

-n, --numcpu INTEGER            Number of CPU threads.  [default: 16]

--existing-augustus TEXT        Use pre-trained AUGUSTUS species parameters.

-w, --weights INTEGER           Weights for evidence sources: protein, gene

                                predictions, transcripts.  [default: 2, 1,

                                3]

--combinr-stringent-overlap FLOAT

                                combinr --stringent-overlap for the

                                consensus --alt-splice isoform grouping: two

                                transcript isoforms attach to one gene only

                                when their span overlap is >= this percent

                                of the shorter (default 0 = any overlap).

                                Raise it (e.g. 30) to keep tip-overlapping

                                collinear neighbours separate.

-c, --code INTEGER              NCBI genetic code table number.  [default:

                                11]

Override options:

-tf, --transcripts-fasta PATH  Override auto-discovered transcript FASTA.

-tg, --transcripts-gff PATH    Override auto-discovered transcript GFF3.

-r, --rnaseq-hints PATH        Override auto-discovered RNA-seq hints GFF.

--strand-specific              Transcripts are strand-oriented.

--combinr-path FILE            Path to the combinr binary (default:

                               'combinr' on PATH).

--splice-permissive            Allow non-canonical splice sites (GC-AG, AT-

                               AC). When assembly evidence exists, observed

                               splice types are used automatically;

                               otherwise enables blanket allowance in

                               AUGUSTUS.

Experimental:

--spsp          Build species-specific spaln parameters from transcripts

                (alternative to fitild).

Re-run steps:

--run-genemark    Force re-run GeneMark gene prediction.

--run-prot-align  Force re-run protein alignment (spaln/gth).

--run-augustus    Force re-run AUGUSTUS training and prediction.

--run-snap        Force re-run SNAP (and CodingQuarry) prediction.

--run-consensus   Force re-run consensus model building.

-h, --help  Show this message and exit.

 

2のRNA-seqのエビデンスも使用する場合、mask-repeats、assemble、annotateを同じ作業ディレクトリで実行すると、eukanが前段階の結果を自動検出して使用する。また、下のように手動で指定することもできる。

eukan annotate -g repeats/genome.masked.fasta \
-p related_proteins.faa --kingdom fungus -n 20 \
--transcripts-fasta assemble/nr_transcripts.fasta \
--transcripts-gff assemble/nr_transcripts.gff3 \
--rnaseq-hints assemble/hints_rnaseq.gff

GeneMark、AUGUSTUS、SNAP、CodingQuarry、タンパク質アラインメントなどを統合して遺伝子モデルが構築される。

出力例

annotate/

final.gff3が複数のエビデンスから統廃合されてできた最終的な遺伝子モデルを含むアノテーションファイル。

 

4、機能的アノテーションの付与  - annotateで作った遺伝子モデルにタンパク質の機能的アノテーション、ドメイン情報、KO/Pfamなどを付与する。

4-1、まず、3の最終遺伝子モデルのでGFF3からタンパク質のfaaファイルを作る。

eukan gff3toseq -g repeats/genome.masked.fasta -i annotate/final.gff3 \
--output-format protein -o func-annot/predicted_proteins.faa

=>predicted_proteins.faaができる。

4-2、eukan func-annotコマンドで機能的アノテーションを付与する。predicted_proteins.faaを指定する。ダウンロードしたDBはカレントにdatabases/があれば自動認識される。そうでないなら、下のように明示的にoption指定する。

eukan func-annot \
-p func-annot/predicted_proteins.faa \
--homology-db kofam \
--kofam databases/kofam_eukaryote.hmm \
--ko-list databases/ko_list.tsv \
--pfam databases/Pfam-A.hmm \
--gff3 annotate/final.gff3 \
-n 20

> eukan func-annot -h

Usage: eukan func-annot [OPTIONS]

  Add functional annotations (UniProt/KOfam + Pfam) to proteins.

  When run after `eukan annotate` and `eukan db-fetch`, the predicted

  protein sequences and homology/Pfam databases are discovered

  automatically. Use the override options to point to different files

  or to run functional annotation independently of the main pipeline.

  --homology-db uniprot (default) runs phmmer against UniProt-SwissProt

  and emits inference=similar to AA sequence:UniProtKB:... per hit.

  --homology-db kofam runs hmmscan against KEGG's KOfam HMM database

  and emits product=<KO definition>, ec_number=<EC>, Dbxref=KEGG:K...,

  inference=protein motif:KOFAM:K... when score >= the per-KO threshold.

Pipeline parameters:

-n, --numcpu INTEGER           Number of CPU threads.  [default: 16]

--homology-db [uniprot|kofam]  Homology source: 'uniprot' runs phmmer vs

                               SwissProt (broad coverage); 'kofam' runs

                               hmmscan vs the KOfam HMM database with per-KO

                               bit-score thresholds (KEGG-pathway focused).

                               Pfam hmmscan runs in both modes.  [default:

                               uniprot]

-e, --evalue TEXT              E-value cutoff.  [default: 1e-1]

Override options:

-p, --proteins PATH  Amino acid sequences in FASTA format.

--uniprot PATH       UniProt-SwissProt database FASTA.

--kofam PATH         KOfam pressed HMM database.

--ko-list PATH       KOfam ko_list TSV (per-KO thresholds + definitions).

--pfam PATH          Pfam HMM database.

--gff3 PATH          GFF3 file to annotate with functional info.

-f, --force          Force re-run all steps (ignore cached outputs).

-h, --help  Show this message and exit.

出力例

func-annotate/

final.mod.gff3が機能アノテーションを足した最終gff3ファイル。機能注釈付きのタンパク質faa: predicted_proteins.mod.faaも出力されている。

5、NCBIサブミット用ファイルの作成  - 完成したアノテーションをNCBI/GenBankサブミット用に整形、検証する。 

このコマンドをランするには、サブミットする研究者の情報を記載した.sbtファイルが必要。.sbtファイルはNCBIのこちらでページで作成できる。

https://submit.ncbi.nlm.nih.gov/genbank/template/submission/

 

ダウンロードした.sbtファイルを指定してeukan prep-submissionをランする。"--organism"で対象としている種のscientific nameを指定する。isolate_nameは真菌なら株名となる。--dry-runをつけるとコマンドの挙動を確認できる。

eukan prep-submission -t template.sbt --organism "Genus species" \
--isolate "isolate_name" --locus-tag-prefix "XXXX" --dry-run

> eukan prep-submission -h

Usage: eukan prep-submission [OPTIONS]

  Validate + package an annotated genome for NCBI submission via table2asn.

  Runs the standard NCBI submission recipe (-split-logs -W -J -Z -euk

  -T -V b plus -c/-M/-a) over the genome FASTA and annotated GFF3,

  producing a .sqn file ready for upload along with .val (validator),

  .dr (discrepancy), and .stats reports for iterative GFF3 refinement.

  Auto-discovers inputs from the current working directory:

    - genome:   from eukan-run.json (manifest)

    - gff3:     final.mod.gff3 (preferred) or final.gff3 (fallback)

  The .sbt submission template must be created via NCBI's web form:

    https://submit.ncbi.nlm.nih.gov/genbank/template/submission/

  Use --print-command to inspect the exact table2asn invocation, or

  --extra-args to append flags not exposed here.

Required input:

-t, --template PATH  NCBI submission template (.sbt). Generate one at https:

                     //submit.ncbi.nlm.nih.gov/genbank/template/submission/

                     [required]

Source qualifiers:

--organism TEXT          Organism scientific name (e.g. 'Homo sapiens').

                         Required unless --source-info is given.

--isolate TEXT           Isolate / strain identifier (optional).

--source-info TEXT       Raw -j string for table2asn (e.g. '[organism=Foo]

                         [isolate=Bar] [country=Canada]'). Overrides

                         --organism / --isolate when set.

--locus-tag-prefix TEXT  NCBI-registered locus tag prefix (required for new-

                         genome submissions).

Override options:

-g, --genome PATH   Genome FASTA. Auto-discovered from eukan-run.json when

                    omitted.

-i, --gff3 PATH     Annotated GFF3. Defaults to final.mod.gff3 (or

                    final.gff3) in the working directory.

Pipeline parameters:

--cleanup TEXT                  table2asn -c cleanup flags.  [default: befw]

--mode TEXT                     table2asn -M flatfile mode.  [default: n]

-a, --assembly-type TEXT        table2asn -a assembly type / gap

                                configuration.  [default: r10k]

--extra-args TEXT               Extra table2asn arguments, shell-quoted

                                (e.g. --extra-args '-split-dr -huge').

--cleanup-gff3 / --no-cleanup-gff3

                                Pre-process the GFF3 (strip UniProt cruft,

                                drop CDS-less mRNAs, cap inferences) before

                                handing it to table2asn.  [default: cleanup-

                                gff3]

Output options:

-o, --output-file PATH  Output .sqn path. Defaults to <output-dir>/<genome-

                        stem>.sqn.

-d, --output-dir PATH   Output directory for .sqn and validator reports.

                        Defaults to ./submission.

--print-command         Print the resolved table2asn command and exit (no

                        outputs written).

--dry-run               Print the command and create the output directory,

                        but don't run table2asn.

-h, --help  Show this message and exit.

 

出力例

submission/

 

コメント

アノテーション付きゲノムはNCBI Submission PortalのGenome submissionから提出できますが、DDBJなどと同様、先にBioProjectを作成し、BioSampleを登録し、SRA submissionからゲノムショットガン生リードなどを提出してアクセッション番号を取得しておくのが基本的な流れです。

https://submit.ncbi.nlm.nih.gov/about/genome/#step2

特にアノテーション付きゲノムを提出する場合は、BioProject/BioSampleを事前に作成し、locus_tag prefixを取得してからGenome submissionへ進む必要があります。SRAの生リード、ゲノムアセンブリ、アノテーションは別々のsubmissionになりますが、同じBioProject/BioSample accessionで紐づけます。

また、Eukanが高精度であっても、何もチェックせずに提出するのは避けてください。まずBUSCOなどで、可能な限り狭い分類群のデータセットを使ってゲノムと予測タンパク質それぞれの完全性と重複率を確認します。そのうえで、IGVなどのゲノムビューアにRNA-seq由来の転写産物エビデンス、近縁モデル生物のタンパク質エビデンス、最終GFF3をtrackとして読み込み、最終アノテーションが妥当かじっくり確認してください。特にexon-intron境界、短すぎるexon、分断された遺伝子、融合した遺伝子、UTRや遺伝子の向きに注意します。入力データの品質が低い場合など、遺伝子モデルが不正確になる可能性は十分にあります。

 

その他

  • Eukanでは、まずSpalnによる近縁種タンパク質のゲノムアラインメントと、RNA-seqから推定されたイントロン座標を利用したGeneMark-ETの遺伝子予測を行う。次に、GeneMark-ETの予測、転写産物中のORF、タンパク質アラインメントのうち、少なくとも2種類で構造が一致する遺伝子モデルを用いてAUGUSTUSを訓練する。訓練後のAUGUSTUSには、RNA-seqの転写産物、リードカバレッジ、イントロン、およびタンパク質アラインメント由来のhintを与えて遺伝子予測を行う。対象が真菌の場合は、CodingQuarryとSNAPによる予測も追加される。最終的に、転写産物アラインメント、タンパク質アラインメント、AUGUSTUSなどによる遺伝子予測がEvidenceModelerによって重み付きで統合され、コンセンサス遺伝子モデルが作成される。
  • GeneMark公式のライセンスは無償利用の対象を学術機関、非営利機関、米国政府機関としている点に注意

引用

Eukan: a fully automated nuclear genome annotation pipeline for less studied and divergent eukaryotes 

Matt Sarrasin , Gertraud Burger , B Franz Lang

NAR Genomics and Bioinformatics, Volume 8, Issue 1, March 2026

 

関連

 

*1

cp ~/Downloads/gm_key_64 ~/.gm_key
chmod 600 ~/.gm_key