macでインフォマティクス

macでインフォマティクス

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

GO enrichmet解析結果を視覚化する MonaGO

2020 11/10 誤字修正

2022/02/16 論文引用

 

 MonaGOは、遺伝子オントロジー(GO)エンリッチメント解析を実行し、結果を可視化するための直感的でインタラクティブな応答性の高いインターフェイスを提供する、新しいウェブベースの可視化システムである。MonaGOは、ダイナミックなクラスタリングインタラクティブな可視化、およびカスタマイズオプションを組み合わせており、生物学者が過剰に表現されたGOの語彙の意味のある表現を得るのを支援し、偏りのない方法で簡略化された出力を生成する。MonaGOは、入力としてGO termだけでなく、遺伝子リストもサポートしている。可視化結果は、高解像度画像としてエクスポートしたり、新しいセッションで復元したりすることができるため、解析の再現性を高めることができる。MonaGOと9つの機能に基づいた11の最先端のGOエンリッチメント可視化ツールとの広範な比較から、MonaGOは、1つの出力ページ内で同時にインタラクティブな可視化を可能にする唯一のプラットフォームであり、カスタマイズ可能な表示オプションを備えたウェブブラウザから直接アクセス可能であることが明らかになった。要約すると、MonaGOはGO分析の解釈を容易にし、結果の表現において生物学者を支援する。

 

help

https://monago.erc.monash.edu/help

 

webサービス

https://monago.erc.monash.eduにアクセスする。

f:id:kazumaxneo:20201109231130p:plain

GO termのリストを持っている場合は、1. Submit enriched GO terms ~を選択する。ManaGの結果の再解析を行う場合は2. Submit file ~を選択する。3. Submit to DAVID ~ を選んだ場合は遺伝子リストをアップロードする。DAVIDを通してGO enrichment解析が行われ、結果がMonaGOで視覚化される。

 

1を選択した場合、エンリッチしたGO termのリストを入力する。

f:id:kazumaxneo:20201109231744p:plain

 

1を選択した場合、視覚化には、GO termのほか、p-value、遺伝子名が必要。

f:id:kazumaxneo:20201109232639p:plain

(demo.csvより)

 

3のSubmit to DAVID ~ の場合は遺伝子名だけを指定すればよい。

f:id:kazumaxneo:20201109232846p:plain

遺伝子名を指定する。

f:id:kazumaxneo:20201109233104p:plain

(demo.csvより)

 

識別子の種類を指定する。

f:id:kazumaxneo:20201110001457p:plain

 

さらに、GOのカテゴリ、P valueなどを指定できる。

f:id:kazumaxneo:20201110002117p:plain

 

視覚化された。画面はマウスなどで自由に拡大縮小やスクロールができる。

f:id:kazumaxneo:20201110002325p:plain

 

ダイアグラムの各要素はGO termのクラスタを表している。要素の長さは関連する遺伝子の数に比例している。2つの要素間の内側のエッジ(灰色)は、それらの間に共通の遺伝子が存在することを示しており、数が多いほど太くなる。また最も低いp値を持つGO  termの名前が画面に表示される。

 

f:id:kazumaxneo:20201110003221p:plain

 

共通遺伝子の割合または意味的類似度が高いGO termが互いに近くになるよう順序付けられている。

 

灰色のエッジにカーソルを移動すると、共有する共通遺伝子のリストが表示される。

f:id:kazumaxneo:20201110010633p:plain

 

 

左上のスライダーでは、共通遺伝子の最小数、またはクラスタ内の GO  term間の平均/最小/最大の意味的類似度のいずれかのしきい値に基づいて、GO  termを体系的にクラスタリングすることができるようになっている。

f:id:kazumaxneo:20201110004507p:plain

 

繰り返しになるが、標準では情報過多にならないように代表的なGO termだけがコードダイアグラムに表示されている。要素をクリックすると折り畳まれているGO  termのクラスターを展開表示できる。

f:id:kazumaxneo:20201110004205p:plain

 

 

要素をクリックするとGO hierachyが表示される。

f:id:kazumaxneo:20201110010821p:plain

 

より詳細についてはプレプリントとhelpを確認して下さい。

引用

MonaGO: a novel Gene Ontology enrichment analysis visualisation system

Ziyin Xin, Yujun Cai, Louis T. Dang, Hannah M.S. Burke, Jerico Revote, Hieu T. Nim, Yuan-Fang Li, Mirana Ramialison

bioRxiv, Posted September 29, 2020

 

2022/02/16

MonaGO: a novel gene ontology enrichment analysis visualisation system

Ziyin Xin, Yujun Cai, Louis T. Dang, Hannah M. S. Burke, Jerico Revote, Natalie Charitakis, Denis Bienroth, Hieu T. Nim, Yuan-Fang Li & Mirana Ramialison 
BMC Bioinformatics volume 23, Article number: 69 (2022)

 

関連


 

バクテリアの遺伝子配列を比較する LS-BSR

2021 1/18 わかりにくい説明を修正

 

 細菌単離株からの全ゲノム配列データが安価に入手できるようになるにつれ、配列データと生物学的観察結果を相関させる計算手法が必要とされている。ここでは、数百から数千の細菌ゲノムの遺伝的内容を迅速に比較し、調査した全ゲノムの全コーディング配列(CDS)の関連性を記述したマトリックスを返す large-scale BLAST score ratio (LS-BSR) パイプラインを紹介する。このマトリックスは、細菌ゲノム間の遺伝的関係を特定するために簡単に解析することができる。配列類似度によってペプチドをグループ化するパイプラインは公開されているが、LS-BSRで実施されているような迅速で大規模なフルゲノム比較解析を行うソフトウェアは他にない。

 この方法の有用性を実証するために、LS-BSRパイプラインを96のEscherichia coliおよびShigellaゲノム上でテストしたところ、16プロセッサを用いて163分で実行された。各CDSのBSR値は、相対的な関連性のレベルを示すもので、独立したコアゲノム一塩基多型(SNP)ベースの系統樹に基づいて各ゲノムにマッピングされた。この比較により、クレード特異的なCDSマーカーを同定し、古典的な大腸菌病原性バリアント(病原性バリアント)指定を区別する分子マーカーに基づいてLS-BSRパイプラインを検証した。スケーラビリティ試験の結果、LS-BSRパイプラインは、アライメント方法にもよるが、16プロセッサを用いて1,000個の大腸菌ゲノムを27~57時間で処理できることが実証された。

 LS-BSRはオープンソースのBSRアルゴリズムの並列実装であり、大量のゲノムの遺伝的内容を迅速に比較することができる。パイプラインの結果は、ユーザーが定義した系統群間で特定のマーカーを識別したり、細菌分離株間での遺伝情報の喪失および/または獲得を識別するために使用することができる。分類群特異的な遺伝マーカーは、その後、臨床診断に変換することができ、また、広く保存されている治療候補を特定するために使用することができる。

 LS-BSR法は、定義された遺伝子セットを使用するか、またはクエリゲノムのセットからCDSをProdigal (Hyatt et al., 2010)で予測して実行することができる。Prodigalを使用する場合、すべてのCDSは連結され、その後0.9(同一性のしきい値は、ユーザーによって変更することができる)のペアワイズ同一性でUSEARCH(エドガー、2010)を使用してデレプリケートされる。それぞれのユニークなCDSは、次にBioPython (www.biopython.org)で翻訳され、参照ビットスコアを計算するためにTBLASTN (Altschul et al., 1997)でそのヌクレオチド配列に対してアラインメントされる; BLASTNまたはBLAT (Kent, 2002)が呼び出された場合、ヌクレオチド配列はアラインメントされる。次に、各クエリ配列は、BLAT、BLASTN、またはTBLASTNを用いて各ゲノムに対してアラインメントされ、クエリビットスコアが集計される。BSR値は、クエリビットスコアを参照ビットスコアで割って算出し、0.0~1.0の間のBSR値が得られる(TBLASTNで得られたビットスコア値が変動するため、1.0よりも若干高い値が観測される)。LS-BSRパイプラインの結果には、調査した各ゲノムに固有のCDS名とBSR値を含むマトリックスが含まれている。少なくとも1つのゲノムに1つ以上の有意なBSR値を持つCDSもまた、出力で識別される。少なくとも1つのゲノムにおいて、1つの重複が他の重複と有意に異なるCDSについては、別のファイルが生成される;これらの領域はパラログを表している可能性があり、さらに詳細な調査が必要な場合がある。LS-BSRマトリックスが生成されると、結果はMultiple Experiment Viewer (MeV) (Saeed et al., 2006)やR (R Core Team, 2013)を使ってヒートマップやクラスタとして簡単に可視化することができる。Interactive Tree Of Life project (Bork et al., 2008)を使用して、LS-BSRの出力からヒートマップを生成し、ヒートマップデータを提供された系統図と相関させることもできる。LS-BSRには、CDSの有無に応じて設定されたBSRしきい値の範囲を使って、ユーザー定義のサブグループ間でCDSを迅速に比較するためのスクリプト(compare_BSR.py)が含まれている。識別されたCDSアノテーションは、RAST (Aziz et al., 2008) や prokka (http://www.vicbioinformatics.com/software.prokka.shtml) などのツールを使用して適用することができる。LS-BSRのソースコードユニットテスト、テストデータは、GNU GPL v3ライセンスのもと、https://github.com/jasonsahl/LS-BSR で自由に入手できる。

 

インストール

依存

Minimum requirements, see manual.md for version information

  • Python >2.7 and <=3.5 (higher versions still work but tests may fail)
  • BioPython
  • Prodigal - Required for de novo gene prediction only
  • VSEARCH - Optional
  • mmseqs2- Optional
  • CD-HIT - Optional
  • Blast+ - Optional
  • Blat - Optional
  • Diamond - Optional

Github

#仮想環境の作成と依存ツールの導入
mamba create -n ls_bsr python=3.5 -y
conda activate ls_bsr
mamba install -c bioconda blast vsearch cd-hit prodigal ucsc-blat diamond biopython mmseqs2

git clone https://github.com/jasonsahl/LS-BSR.git
cd LS-BSR/
python setup.py install

>python ls_bsr.py

$ python ls_bsr.py 

 

Must provide directory.

 

Usage: ls_bsr.py [options]

 

Options:

  --version             show program's version number and exit

  -h, --help            show this help message and exit

  -d DIRECTORY, --directory=DIRECTORY

                        /path/to/fasta_directory [REQUIRED]

  -i ID, --identity=ID  clustering id threshold (0.0-1.0), defaults to 0.9

  -f FILTER, --filter=FILTER

                        to use blast filtering or not, default is F or filter,

                        change to T to turn off filtering

  -p PROCESSORS, --parallel_workers=PROCESSORS

                        How much work to do in parallel, defaults to 2

  -g GENES, --genes=GENES

                        predicted genes (nucleotide) to screen against

                        genomes, will not use prodigal, must end in fasta (nt)

                        or pep (aa)

  -c CLUSTER_METHOD, --cluster_method=CLUSTER_METHOD

                        Clustering method to use: choose from mmseqs, mmseqs-

                        lin, vsearch, cd-hit

  -b BLAST, --blast=BLAST

                        use tblastn, blastn, blastp, blastn-short, diamond, or

                        blat (nucleotide search only), default is tblastn

  -l LENGTH, --length=LENGTH

                        minimum BSR value to be called a duplicate, defaults

                        to 0.7

  -m MAX_PLOG, --max_plog=MAX_PLOG

                        maximum value to be called a paralog, defaults to 0.85

  -n MIN_HLOG, --min_hlog=MIN_HLOG

                        minimum BLAST ID to be called a homolog, defaults to

                        75

  -t F_PLOG, --f_plog=F_PLOG

                        filter ORFs with a paralog from BSR matrix? Default is

                        F, values can be T or F

  -k KEEP, --keep=KEEP  keep or remove temp files, choose from T or F,

                        defaults to F

  -s FILTER_PEPS, --filter_short_peps=FILTER_PEPS

                        remove short peptides, smaller than 50AA?  Defaults to

                        F

  -e FILTER_SCAFFOLDS, --filter_scaffolds=FILTER_SCAFFOLDS

                        Filter any contig that contains an N? Defaults to F

  -x PREFIX, --prefix=PREFIX

                        prefix for naming output files, defaults to time/date

  -y INTERGENICS, --intergenics=INTERGENICS

                        Incoporate intergenic regions? T or F; Defaults to F

  --ml=MIN_LEN, --min_len=MIN_LEN

                        value for 's' flag in cd-hit, defaults to '-i' flag in

                        LS-BSR (float)

  -z DUP_TOGGLE, --dup_toggle=DUP_TOGGLE

                        Perform duplicate searching? T or F; Defaults to F

 

 

テストラン

python ls_bsr.py --version
python tests/test_all_functions.py

 

実行方法

fastaf配列が置かれているディレクトリを指定する。ここではテストデータを使う。LS-BSR/test_data/に移動。ゲノムファイルの拡張子は.fastaを認識する。

cd LS-BSR/test_data/

test_data/genomesを使う。

f:id:kazumaxneo:20201109134631p:plain

 

移動したらランする。上の画像のゲノムとクエリの遺伝子を指定する。クエリの遺伝子ecoli_markers.fastaには5つの遺伝子がmulti-fasta形式で記載されている。

python ../ls_bsr.py -d genomes/ -g genes/ecoli_markers.fasta
  • -g    predicted genes (nucleotide) to screen against genomes, will not use prodigal, must end in fasta (nt) or pep (aa)

 

出力

bsr_matrix.txtを見てみる。タブをコンマに置換してtty-table(紹介)で整形表示する。

> sed s/$'\t'/','/g bsr_matrix.txt |tty-table 

$ sed s/$'\t'/','/g bsr_matrix.txt |tty-table 

 

 

  ┌───────┬──────────────┬───────────────────┬────────────┬──────────────┐

        │ E2348_69_all │ O157_H7_sakai_all │ H10407_all │ SSON_046_all │

  ├───────┼──────────────┼───────────────────┼────────────┼──────────────┤

  │ IpaH3 │    0.0000          0.1034         0.0529       0.9970   

  ├───────┼──────────────┼───────────────────┼────────────┼──────────────┤

    LT       0.0000          0.0000         1.0000       0.0000   

  ├───────┼──────────────┼───────────────────┼────────────┼──────────────┤

    ST2      0.0000          0.0000         0.9342       0.0000   

  ├───────┼──────────────┼───────────────────┼────────────┼──────────────┤

  │ bfpB      1.0000          0.0329         0.0000       0.0000   

  ├───────┼──────────────┼───────────────────┼────────────┼──────────────┤

  │ stx2a │    0.0000          0.0000         0.0000       0.0000   

  └───────┴──────────────┴───────────────────┴────────────┴──────────────┘

他にもランパラメータlogや遺伝子名のファイルが出力される。

 

クエリを指定しないと、de novoで遺伝子予測が行われ、それから翻訳されたタンパク質配列を使って比較が実行される。入力ゲノム数に比例して相応の時間がかかる。

python ../ls_bsr.py -d genomes -c mmseqs
  • d    /path/to/fasta_directory [REQUIRED]
  • -c    Clustering method to use: choose from mmseqs, mmseqs-
    lin, vsearch,

出力されるmatrixファイルの先頭

f:id:kazumaxneo:20201109142912p:plain

GET HOMOLOGUESのcompare_clusters.plでも似た出力を得られる(GET HOMOLOGUESでは閾値を満たしたコア遺伝子のみ対象)。 

 

ヒートマップで可視化する例は伊藤さんが書かれたQiitaの記事を参考にして下さい。丁寧に説明されています。

 

追記

パラログは除く。20並列。クエリはプロテイン。タンパク質配列ファイルの拡張子は.pepを認識する。

python ls_bsr.py -d genomes/ -g query.pep -s T -t T -l 0.7 -p 20 -b tblastn
  • -t    filter ORFs with a paralog from BSR matrix? Default is F, values can be T or F
  • -s    remove short peptides, smaller than 50AA?  Defaults to F
  • -l     minimum BSR value to be called a duplicate, defaults to 0.7
  • -m   maximum value to be called a paralog, defaults to 0.85
  • -n    minimum BLAST ID to be called a homolog, defaults to 75
  • -p    How much work to do in parallel, defaults to 2
  • -b    use tblastn, blastn, blastp, blastn-short, diamond, or blat (nucleotide search only), default is tblastn
     
     

引用
The large-scale blast score ratio (LS-BSR) pipeline: a method to rapidly compare genetic content between bacterial genomes

Jason W Sahl, J Gregory Caporaso, David A Rasko, Paul Keim

PeerJ. 2014 Apr 1;2:e332

 

関連

 

 

 

 

遺伝子クラスターを比較してインタラクティブな図で視覚化する clinker(clustermap.js含む)

2020 11/8 誤字修正、11/10 preprint引用追加、12/15 追記

2021 1/19 論文引用、11/8 ヘルプ更新

2022/11/24 コメント追記

2023/03/31 追記

 

 生物学的パスウェイに関与する遺伝子は、多くの場合、遺伝子クラスターに集まっており、それらを比較することで、その機能や進化の歴史についての貴重な洞察を得ることができる。しかし、遺伝子クラスターの相同性の比較と可視化は、特に多くのクラスターを比較する場合には面倒な作業である。ここでは、Pythonベースのツールであるclinkerと、それに付随するJavaScriptビジュアライゼーションライブラリであるclustermap.jsを紹介する。これらのツールを併用することで、配列ファイルから直接、正確でインタラクティブな出版品質の遺伝子クラスタ比較図を自動的に生成することができる。clinkerとclustermap.jsのソースコードとドキュメントはGitHub (github.com/gamcil/clinkerとgithub.com/gamcil/clustermap.js)でMITライセンスのもとに公開されている。

 

タイトルの通りのツール。簡単に導入でき、ハイクオリティなシンテニー解析図を出力できる。

2021 1/19

2020 12/15

2020 11/27

 11/5

 

 

インストール

condaでpython3.8の環境を作って導入、テストした(conda create -n clinker python=3.8 && conda activate clinker)。

Github

pip install clinker

 

> clinker -h

# clinker -h

usage: clinker [-h] [--version] [-r RANGES [RANGES ...]] [-gf GENE_FUNCTIONS] [-na] [-i IDENTITY] [-j JOBS] [-s SESSION] [-ji JSON_INDENT] [-f] [-o OUTPUT] [-p [PLOT]] [-dl DELIMITER] [-dc DECIMALS] [-hl]

               [-ha] [-mo MATRIX_OUT] [-ufo]

               [files ...]

 

clinker: Automatic creation of publication-ready gene cluster comparison figures.

 

clinker generates gene cluster comparison figures from GenBank files. It performs pairwise local or global alignments between every sequence in every unique pair of clusters and generates interactive, to-scale comparison figures using the clustermap.js library.

 

optional arguments:

  -h, --help            show this help message and exit

  --version             show program's version number and exit

 

Input options:

  files                 Gene cluster GenBank files

  -r RANGES [RANGES ...], --ranges RANGES [RANGES ...]

                        Scaffold extraction ranges. If a range is specified, only features within the range will be extracted from the scaffold. Ranges should be formatted like: scaffold:start-end (e.g.

                        scaffold_1:15000-40000)

  -gf GENE_FUNCTIONS, --gene_functions GENE_FUNCTIONS

                        2-column CSV file containing gene functions, used to build gene groups from same function instead of sequence similarity (e.g. GENE_001,PKS-NRPS).

 

Alignment options:

  -na, --no_align       Do not align clusters

  -i IDENTITY, --identity IDENTITY

                        Minimum alignment sequence identity [default: 0.3]

  -j JOBS, --jobs JOBS  Number of alignments to run in parallel (0 to use the number of CPUs) [default: 0]

 

Output options:

  -s SESSION, --session SESSION

                        Path to clinker session

  -ji JSON_INDENT, --json_indent JSON_INDENT

                        Number of spaces to indent JSON [default: none]

  -f, --force           Overwrite previous output file

  -o OUTPUT, --output OUTPUT

                        Save alignments to file

  -p [PLOT], --plot [PLOT]

                        Plot cluster alignments using clustermap.js. If a path is given, clinker will generate a portable HTML file at that path. Otherwise, the plot will be served dynamically using Python's

                        HTTP server.

  -dl DELIMITER, --delimiter DELIMITER

                        Character to delimit output by [default: human readable]

  -dc DECIMALS, --decimals DECIMALS

                        Number of decimal places in output [default: 2]

  -hl, --hide_link_headers

                        Hide alignment column headers

  -ha, --hide_aln_headers

                        Hide alignment cluster name headers

  -mo MATRIX_OUT, --matrix_out MATRIX_OUT

                        Save cluster similarity matrix to file

 

Visualisation options:

  -ufo, --use_file_order

                        Display clusters in order of input files

 

Example usage

-------------

Align clusters, plot results and print scores to screen:

  $ clinker files/*.gbk

 

Only save gene-gene links when identity is over 50%:

  $ clinker files/*.gbk -i 0.5

 

Save an alignment session for later:

  $ clinker files/*.gbk -s session.json

 

Save alignments to file, in comma-delimited format, with 4 decimal places:

  $ clinker files/*.gbk -o alignments.csv -dl "," -dc 4

 

Generate visualisation:

  $ clinker files/*.gbk -p

 

Save visualisation as a static HTML document:

  $ clinker files/*.gbk -p plot.html

 

Cameron Gilchrist, 2020

 

 

テストラン

5つの小さなgenbankファイルを比較する。

f:id:kazumaxneo:20201108002408p:plain

git clone https://github.com/gamcil/clinker.git
cd clinker/examples/
#defaultブラウザに出力(.gbkや.gbffを入力)
clinker *gbk -p

#またはファイルに保存
clinker *gbk -p out.html

#GFFファイル
clinker *gff -p out.html
  •  -p    Plot cluster alignments using clustermap.js. If a path is given, clinker will generate a portable HTML file at that path. Otherwise, the plot will be served
    dynamically using Python's HTTP server.

f:id:kazumaxneo:20201108002138p:plain

配列比較はコード領域のタンパク質間で行われる。遺伝子間領域は対象ではない。

 

操作方法は右端に表示される。

f:id:kazumaxneo:20201108002253p:plain



画面をドラッグして図をスクロールできる。また、マウスホイール/trackpadで拡大縮小できる。

f:id:kazumaxneo:20201108002833p:plain

 

all versus allで比較するため、ドラッグする事でゲノムの上下位置を自由に入れ替えできる(defaut表示はクラスタリング済み)。

f:id:kazumaxneo:20201108003037p:plain

 

ORFをクリックする事でそのORFの位置が整列される(アラインされる)。

f:id:kazumaxneo:20201108003251p:plain

黄色の長いORFをクリックしてこのORFが整列されるようにした。

 

ORF名をクリックするとリネームできる。

f:id:kazumaxneo:20201108003448p:plain

 

表示パラメータは右下のウィンドウで変更可能。

Show gene labels: ON

vertical spacing: 100

Align labels: OFF

Label rotation (degrees): 45

f:id:kazumaxneo:20201108003840p:plain

 

他にも同名のツールがあるので注意して下さい。

 

2022/11/24追記

調べたい領域をゲノムごとに正確に取ってくるのは意外に骨が折れます。

色々試行錯誤しましが、以下のような流れが効率的でした。

1、クエリの配列で他のゲノムに対してBLASTnサーチし、相同な領域を絞る。

2、その領域をsamtools faidx なので取り出す。この時、余分に10~20kbほど両外まで取り出す。

3、取り出した全ての領域について、prokkaなどで一律にアノテーションをつける。

4、GFFをつかいclinkerで視覚化。どの領域まで視覚化するか考える。

5、端のORFを決めたら、そのORF情報をマウスホバーして取得する。該当するGFFファイルを開いてそのORFより手前のORFを消す。この作業を両端に対して行う(GFFファイルは、両末端数中kbくらいの領域ではORFが1つも存在しないファイルとなる)。

6、編集したORFを再びclinkerで比較する。この時点で端のORFが揃っている状態になっているはず。

7、比較したい遺伝子で揃えてSVGかPDFで書き出す。

8、illustatorなどで端のORFがない領域をトリムするか、ORFの領域だけマスキングで残す。

追記

この方法には問題があることに気づきました。指定したゲノムが小さいと、アノテーションツールの学習が不十分になって小さなORFの予測に失敗する可能性があるからです。小さなゲノム領域だけでアノテーションを行うと、結果として全ゲノムでのアノテーションと結果が微妙に変わってしまう可能性があります。以下のように修正しました。

1、クエリの配列で他のゲノムに対してBLASTnサーチし、比較したい領域を確認する。

2、gbkファイルを開いて、目的の領域を十分に含むようにして不要な遺伝子レコードを消す。ただしgbkファイル下の配列レコードは消さない。ポジションも修正しない。比較したい全てのgbkファイルについてこれを行う。

3、clinkerで視覚化。関心のある領域が含まれていることを確認する。

4、手動でトリミングする。ORFがないゲノム領域は下の画像中央のように横向きの線状になっている。clinkerでは、遺伝子部分にカーソルを合わせると帯がついて移動できるようになるが、この時に選択状態の領域の一番端の黒い縦の線部分が確認できる。この線を左右に移動させると不要なORFをマスクできる。この機能はORF1つごとにトリミングするので、gbkで不要なORFを削っておけば、ゲノムのORFがない領域(横線の非常に長い領域)は一度にマスクできる。

5、整形し、SVGで書き出す。

 

4のマスク前

中央のORFがない領域をマスクした後(横線がなくなっている)。上の作業では、この横線がずっと長いわけですが、摘まんで横に少しだけ動かすと、長い横線部分はORFが1つもないので一度にトリミングできます。

この方法ならアノテーションは全ゲノムで行なっているので結果に差異はないはずです。ソフトトリミングするなら全部の領域で進めても同じですが、全領域を使うと計算に時間がかかり(数が10くらいあるとメモリも100GB以上使う。)、目的の領域の視認性も悪くなります。上の方が効率的に進められれるんじゃないかと思います。

 

もう1つtipsです。ORFにラベルを付けるオプションが用意されています。初期はIDがラベルに付きます。ORFをクリックしてメニューを表示し、変更したいアノテーションをクリックすればラベルを変更できます。以下はORF1つを選んで遺伝子IDをprodigalのアノテーションに変更した画像です。

 

引用

2020 11/10追加

clinker & clustermap.js: Automatic generation of gene cluster comparison figures

Cameron Laurence Mathison Gilchrist, Yit-Heng Heng Chooi

bioRxiv, posted November 09, 2020

 

Clinker & clustermap.js: Automatic generation of gene cluster comparison figures
Cameron L M Gilchrist, Yit-Heng Chooi
Bioinformatics, Published: 18 January 2021

 

関連


 

このツールはPhilipp Bayerさんのツイートで知りました。Thank you so much !

 

 

 

 

 

 

LTRレトロトランスポゾンを識別可能な割合でゲノムアセンブリを評価するIndex LAI

2020 11/7 タイトル修正

2020 11/8 感想追加

2020 11/11 誤字修正, タイトル修正(”主に植物”を削除)

 

 構造的特徴に基づくコンピュータプログラムを用いたLTR要素の同定は効率的であるが(10,11)、多数の偽陽性(4)に悩まされている。最近、インタクトなLTRレトロトランスポゾンの正確なde novo同定のために、LTR_retrieverソフトウェアが開発された(4)。このツールは、入力品質に関係なく LTR の偽陽性を排除し、非常に低い偽発見率で超高感度・高精度を実証している(4)。植物ゲノムからインタクトな LTR 要素を検索している間に、ドラフトゲノムと比較して、より多くの完成したゲノムアセンブリからより多くのインタクトな要素が同定されることが観察された。例えば、イネの標準ゲノム「日本晴」(MSUv7 版)からは 2,052 個のインタクトな LTR-RT が得られたが、次世代シークエンシング(NGS)技術を用いた同一ゲノムからは 239 個のインタクトな LTR-RT のみが同定された((12)から得られたもの)。Jiaoらは、PacBioのロングリード技術を用いて配列決定された新しいトウモロコシ(Zea mays)のリファレンスゲノム(v4)でも同様の結果を報告している(13)。また、Al-Dousらは、ショートリード法によるゲノムシークエンシングでは、ナツメヤシPhoenix dactylifera)ゲノムのLTR-RTのような長いリピートのごく一部しか解決できないことを示している(14)。これらの知見は、より連続的なゲノムアセンブリを行えば、より多くの無傷のLTR要素が同定されることを示唆している。このように、識別可能なインタクトなLTR要素の量は、ひいては、遺伝子間および反復配列空間のアセンブリ品質を示すことができる。

 LTRレトロトランスポゾン(LTR-RT)は、ドラフトゲノムでは貧弱にしかアセンブリされていないリピートであることが知られている。ここでは、LTR-RTを用いてアセンブリの連続性を評価するLTR Assembly Index (LAI)と呼ばれるリファレンス不要のゲノム指標を提案する。LTR-RTの増幅ダイナミクスを補正した後、LAIはゲノムサイズ、ゲノムLTR-RT含有量、遺伝子空間評価指標(BUSCOやCEGMA)に依存しないことを示す。

  LAIは、ほとんどの植物ゲノムにおいて最大のゲノム構成要素を占めるLTRレトロトランスポゾンに基づいて標準化された指標である(raw LAI定義はResult sectionに記述されている)。 定義中の"Intact LTR-RT length"sは、完全なLTR、LTR領域に隣接するジヌクレオチド末端(通常5′-TG...CA-3′)、要素に隣接する4-6 bpの標的部位の重複、および内部領域のタンパク質配列のアラインメントなど、多くの配列特徴を認識するLTR_retriever(4)によって同定される。分母の"Total LTR sequence length"の推定には、LTR_retrieverで生成した非冗長LTR-RTライブラリ(exemplars)を用いて、相同性ベースのRepeatMaskerプログラムでゲノムを検索し、ゲノム内の全アノテーション配列の長さを合計したものとした。LTR レトロトランスポゾンの分解により認識できない配列断片が残っている場合には、この推定値の把握が困難な場合がある。ゲノム内のすべてのLTR配列を同定するために、RepeatMaskerを用いた相同性検索において、発散閾値を段階的に上げていった。イネとシロイヌナズナの両方のLTR-RTアノテーションにおいて、配列発散率が40%まで上昇すると、生のLAIスコアは安定化した(補足図S2)。したがって、本研究では、40%の発散率をLTR-RTの総含有量の推定に用いている。

 

 raw LAIスコアは、LTR-RTの増幅および除去などのLTR-RTの活性(結果参照)と相関しているので、これらの影響を補正するために、一倍体(1×)ゲノムの LTR配列の平均同一性を使用した。LTRの平均同一性を推定するために、LTR領域としてアノテーションされたゲノム配列を抽出し、all vs all BLASTを行った。最も高いクエリカバレッジ(自己アラインメントを除く)を持つ各配列ヒットの同一性を、全ゲノムのLTR同一性を推定するために使用した。20の高品質ゲノムを用いて推定した補正係数2.8138を用いて、raw LAIスコアをadjusted LAI = raw LAI + 2.8138 × (94 - 全ゲノムLTR同一性)の式で補正した。raw  LAI = 0、または調整により負の値が得られた場合は adjusted LAI を 0 とした。LTR同一性の推定およびraw LAIの補正は、LAIプログラムによっても行われた。LTR_retrieverによって推定されたintact LTR-RTの平均年齢もLTR-RT活性の指標として使用されたが、若いLTR-RTはアセンブリの悪いものの一つであるため、ドラフトゲノムでは年齢が過大評価される可能性がある。LAIは総LTR-RT含有量とは無関係であるが、総LTR-RT含有量が5%未満、intact LTR-RT含有量が0.1%未満の場合、LAIの推定は経験的に正確ではない。異常に高い LAI スコアを制御するために、全ゲノムおよびローカルな LAI 推定において、LTR-RT 含有量の合計が 1%未満の場合、ローカルな LAI は元のスコアの 10%にダウンスケールされる。LAIはバージョン1.5以降のLTR_retrieverのデフォルト出力であり、GNU General Public License v3.0 (https://github.com/oushujun/LTR_retriever)の下、GitHubを通じて自由に利用できる。

 

 

 

インストール

ubuntu18.04でテストした。

Github

#以下3つはltr_retrieverで使用するファイルを作成するために必要
#genometools
sudo apt-get install -y genometools
conda install -c bioconda ltr_finder -y
git clone https://github.com/oushujun/LTR_FINDER_parallel.git


#bioconda (link)
conda create -n ltr_retriever python=3.7 -y
conda activate ltr_retriever
conda install -c bioconda ltr_retriever -y

LAI

$ LAI

Input file(s) not exist!

 

The LTR Assembly Index (LAI) is developed to evaluate the assembly continunity of repetitive sequences

 

Usage: ./LAI -genome genome.fa -intact intact.pass.list -all genome.out [options]

Options:

-genome [file] The genome file that is used to generate everything.

-intact [file] A list of intact LTR-RTs generated by LTR_retriever (genome.fa.pass.list).

-all [file] RepeatMasker annotation of all LTR sequences in the genome (genome.fa.out).

-window [int] Window size for LAI estimation. Default: 3000000 (3 Mb)

-step [int] Step size for the estimation window to move forward. Default: 300000 (300 Kb)

Set step size = window size if prefer non-overlapping outputs.

-q Quick estimation of LTR identity (much faster for large genomes, may sacrifice ~0.5% of accuracy).

-qq No estimation of LTR identity, only output raw LAI for within species comparison (very quick).

-mono [file] This parameter is mainly for ployploid genomes. User provides a list of sequence names that represent a monoploid (1x).

LAI will calculated only on these sequences if provided. So user can also specify sequence of interest for LAI calculation.

-iden [0-100] Mean LTR identity (%) in the monoploid (1x) genome. This parameter will inactivate de novo estimation (same speed to -qq).

-totLTR [0-100] Specify the total LTR sequence content (%) in the genome instead of estimating from the -all RepeatMasker file.

-blast [path] The path to the blastn program. If left unspecified, then blastn must be accessible via shell ENV.

-t [number] Number of threads to run blastn.

-h Display this help info.

 

 

実行方法

1、create a suffix array index 

#最初に必要なインデックス等を作成
gt suffixerator -db genome.fa -indexname genome_index -tis -suf -lcp -des -ssp -sds -dna

#ゲノム配列中のLTRレトロトランスポゾンをde novoで予測(manual)
gt ltrharvest -index genome_index -minlenltr 100 -maxlenltr 7000 -mintsd 4 -maxtsd 6 -motif TGCA -motifmis 1 -similar 85 -vic 10 -seed 20 -seqids yes > genome.fa.harvest.scn

#ゲノム配列中の完全長LTRレトロトランスポンソンを見つけるLTR_FINDER(開発終了)のparallel版をラン
perl LTR_FINDER_parallel/LTR_FINDER_parallel -seq genome.fa -threads 10 -harvest_out -size 1000000 -time 300

#2つのscnを結合
cat genome.fa.harvest.scn genome.fa.finder.combine.scn > genome.fa.rawLTR.scn

LTR_FINDER_parallelのランにより、genome.fa.rawLTR.scnが出力される。

 

2、LTR_retrieverの実行

LTR_retriever -genome genome.fa -inharvest genome.fa.rawLTR.scn -threads 20

 

 3、LAIの実行

LAI -genome genome.fa -intact genome.fa.pass.list -all genome.fa.out

 

テスト

P.patensのゲノムアセンブリEnsembl plantに2020/11/06にアクセスして取得)を使ってLAIを算出してみた(*1)。

f:id:kazumaxneo:20201107163854p:plain

LAIは、raw LAIが9.86、adjusted LAIが15.49だった。

f:id:kazumaxneo:20201107163402p:plain

良好なスコアだった。

 

感想

このLAIスコアは、LTRレトロトランスポゾンがゲノム中に一定数あれば利用できる指標です。ショートリードアセンブリなどで、ゲノム中のLTRレトロトランスポゾンの再構成できている割合が低ければ小さく(5前後)、ロングリードやHi-C技術などの併用でLTRレトロトランスポゾンの再構成できている割合が高ければ大きくなります(15前後)。raw LAIは種内比較のみに利用でき(アセンブラ間の比較など)、adjusted LAIは種間比較もできる測定基準です。不完全かつ長いリピートを対象にした厳しい評価方法のため、他のアセンブリ評価手法では飽和してしまって何とも言えないようなアセンブリ(例えば飽和量ロングリードでシーケンスしたデータのアセンブリ)にも適用することができます。Hi-Cなどの技術が商用キットでも利用できるようになってきており、今後は植物でもより(Pseudo)chromosome length genome assemblyの報告が増えてくると予想されますが、そのような時代において、アセンブリ品質を客観的に判断するために重要な指標になると感じました。

引用

Assessing genome assembly quality using the LTR Assembly Index (LAI)

Shujun Ou, Jinfeng Chen, Ning Jiang

Nucleic Acids Res. 2018 Nov 30;46(21) 

 

関連


 

 

*1

論文中ではシロイヌナズナゲノムも評価しているが、Github記載の設定でシロイヌナズナの公開ゲノムをテストすると、LTRレトロトランスポゾンが少なすぎて評価できなかった。ゲノムによってLTRレトロトランスポゾン探索のパラメータ設定最適化が必要と思われる。

 

ゲノムアセンブリからLTR-RTを同定する LTR_retriever

2020 11/6 追記

2023/01/010. 01/11 インストール手順修正

 

Long terminal repeat retrotransposons (LTR-RT)は植物ゲノムに多く存在する。LTR-RTの同定は、高品質な遺伝子アノテーションを実現するために重要である。しかし、これらのプログラムは特異性が低く、偽発見率が高いという問題があった。ここでは、LTR-RTを同定し、ゲノム配列から高品質のLTRライブラリを生成するマルチスレッド対応のPerlプログラムであるLTR_retrieverについて報告する。LTR_retrieverは、イネ(Oryza sativa)において、感度(91%)、特異度(97%)、精度(96%)、精度(90%)の高いレベルを達成し、大幅な改善を示した。LTR_retrieverは、ロングシークエンシングリードにも対応している。シロイヌナズナ(Arabidopsis thaliana)の4.5×ゲノムカバレッジに相当する40kの自己補正PacBioリードで、構築されたLTRライブラリは優れた感度と特異性を示した。LTR_retrieverは、5'-TG...CA-3'末端を持つcanonical LTR-RTに加えて、これまでゲノムワイドな研究ではほとんど無視されてきたnoncanonical LTR-RT(non-TGCA)も同定した。そして植物ゲノム50個の中の42個から7種類のnoncanonical LTRを同定した。noncanonical LTRの大部分は Copia elementsであり、そのLTRは他の Copia elementsに比べて4倍も短く、これは標的特異性の結果であると考えられる。驚くべきことに、非TGCA Copia elementsは、多くの場合、遺伝子領域に位置し、近くまたは遺伝子内に優先的に挿入し、遺伝子の進化に影響を与え、突然変異誘発ツールとしての可能性を示している。

 

LTR_retrieverは、LTRharvest、LTR_FINDER、MGEScan 3.0.0、LTR_STRUC、LtrDetectorの出力からLTRレトロトランスポゾン(LTR-RT)を正確に同定し、ゲノムアノテーション用の非冗長LTR-RTライブラリを生成するためのコマンドラインプログラム(Perl)である。

 

インストール

ubuntu18.04でテストした。

Github

#以下3つはltr_retrieverで使用するファイルを作成するために必要
#genometools
sudo apt-get install -y genometools
mamba install -c bioconda ltr_finder -y
git clone https://github.com/oushujun/LTR_FINDER_parallel.git

#最後に本体
#bioconda (link)
mamba install -c bioconda ltr_retriever -y

LTR_retriever -h

$ LTR_retriever -h

 

##########################

### LTR_retriever v2.9.0 ###

##########################

 

A program for accurate identification of LTR-RTs from outputs of LTRharvest and

LTR_FINDER, generates non-redundant LTR-RT library for genome annotations.

 

Shujun Ou (shujun.ou.1@gmail.com) 03/26/2019

 

Usage: LTR_retriever -genome genomefile -inharvest LTRharvest_input [options]

 

【Input Options】

-genome      [File] Specify the genome sequence file (FASTA)

-inharvest   [File] LTR-RT candidates from LTRharvest

-infinder    [File] LTR-RT candidates from LTR_FINDER

-inmgescan   [File] LTR-RT candidates from MGEScan_LTR

-nonTGCA     [File] Non-canonical LTR-RT candidates from LTRharvest

 

【Output options】

-verbose/-v Retain intermediate outputs (developer mode)

-noanno Disable whole genome LTR-RT annotation (no GFF3 output)

 

【Filter options】

-misschar    [CHR] Specify the ambiguous character (default N)

-Nscreen Disable filtering ambiguous sequence in candidates

-missmax     [INT] Maximum number of ambiguous bp allowed in a candidate (default 10)

-missrate    [0-1] Maximum percentage of ambiguous bp allowed in a candidate (default 0.8)

-minlen      [INT] Minimum bp of the LTR region (default 100)

-max_ratio   [FLOAT] Maximum length ratio of internal region/LTR region (default 50)

-minscore    [INT] Minimum alignment length (INT/2) to identify tandem repeats (default 1000)

-flankmiss   [1-60] Maximum ambiguous length (bp) allowed in 60bp-flanking sequences (default 25)

-flanksim    [0-100] Minimum percentage of identity for flanking sequence alignment (default 60)

-flankaln    [0-1] Maximum alignment portion allowed for 60bp-flanking sequences (default 0.6)

-motif       STRING Specify non-canonical motifs to search for

(default -motif [TCCA TGCT TACA TACT TGGA TATA TGTA TGCA])

-notrunc Discard truncated LTR-RTs and nested LTR-RTs (will dampen sensitivity)

-procovTE    [0-1] Maximum portion of allowed for cumulated DNA TE database and LINE database

lignments (default 0.7)

-procovPL    [0-1] Maximum portion allowed for cumulated plant protein database alignments (default 0.7)

-prolensig   [INT] Minimum alignment length (aa) for LINE/DNA transposase/plant protein alignment (default 30)

 

【Library options】

-blastclust  STRING Trigger to use blastclust and customize parameters

(default -blastclust [-L .9 -b T -S 80])

-cdhit       STRING Trigger to use cd-hit-est (default) and customize parameters

(default -cdhit [-c 0.8 -G 0.8 -s 0.9 -aL 0.9 -aS 0.9 -M 0])

-linelib     [FASTA] Provide LINE transposase database for LINE TE exclusion

(default /database/Tpases020812LINE)

-dnalib      [FASTA] Provide DNA TE transposase database for DNA TE exclusion

(default /database/Tpases020812DNA)

-plantprolib [FASTA] Provide plant protein database for coding sequence exclusion

(default /database/alluniRefprexp082813)

-TEhmm       [Pfam] Provide Pfam database for TE identification

(default /database/TEfam.hmm)

 

【Dependencies】

-repeatmasker [path] Path to the RepeatMasker program. (default: find from ENV)

-blastplus   [path] Path to the BLAST+ program. (default: find from ENV)

-blast       [path] Path to the BLAST program. Required if -blastclust is used. (default: find from ENV)

-cdhit_path  [path] Path to the CD-HIT program. Required if -cdhit is used. (default: find from ENV)

-hmmer       [path] Path to the HMMER program. (default: find from ENV)

-trf_path    [path] Path to the trf program. (default: find from ENV)

 

【Miscellaneous】

-u           [FLOAT] Neutral mutation rate (per bp per ya) (default 1.3e-8 (from rice))

-step     [STRING] Restart the program from a particular step. Existing outputs will be overwritten. Options:

Init (default, from the beginning);

Major (Tandem repeat cleanup finished, structrual analyses next)

Trunc (Structural analyses finished, truncated LTR recycle next)

Promask (Truncated LTR recycle finished, protein contamination cleanup next)

Library (Protein contamination cleanup finished, initial library construction next)

Next (Initial library construction finished, non-TGCA analyses next)

-threads     [INT] Number of threads (≤ total available threads, default 4)

-help/-h Display this help information

 

###### For Questions and Issues Please See: https://github.com/oushujun/LTR_retriever ######

perl ../LTR_FINDER_parallel/LTR_FINDER_parallel

$ perl ../LTR_FINDER_parallel/LTR_FINDER_parallel

 

Using this LTR_FINDER: /home/kazu/miniconda3/envs/ltr_retriever/bin/

At least 1 parameter mandatory:

1) Input fasta file: -seq

 

~ ~ ~ Run LTR_FINDER in parallel ~ ~ ~

 

Author: Shujun Ou (shujun.ou.1@gmail.com)

Date: 09/19/2018

Update: 01/28/2020

Version: v1.1

 

Usage: perl LTR_FINDER_parallel -seq [file] -size [int] -threads [int]

Options: -seq [file] Specify the sequence file.

-size [int] Specify the size you want to split the genome sequence.

Please make it large enough to avoid spliting too many LTR elements. Default 5000000 (bp)

-time [int] Specify the maximum time to run a subregion (a thread).

This helps to skip simple repeat regions that take a substantial of time to run. Default: 1500 (seconds).

Suggestion: 300 for -size 1000000. Increase -time when -size increased.

-try1 [0|1] If a region requires more time than the specified -time (timeout), decide:

0, discard the entire region.

1, further split to 50 Kb regions to salvage LTR candidates (default);

-harvest_out Output LTRharvest format if specified. Default: output LTR_FINDER table format.

-next Only summarize the results for previous jobs without rerunning LTR_FINDER (for -v).

-verbose|-v Retain LTR_FINDER outputs for each sequence piece.

-finder [file] The path to the program LTR_FINDER (default v1.0.7, included in this package).

-threads|-t [int] Indicate how many CPU/threads you want to run LTR_FINDER.

-check_dependencies Check if dependencies are fullfiled and quit

-help|-h Display this help information.

 

 

 

実行方法 

1、create a suffix array index 

#最初に必要なインデックス等を作成
gt suffixerator -db genome.fa -indexname genome_index -tis -suf -lcp -des -ssp -sds -dna

#ゲノム配列中のLTRレトロトランスポゾンをde novoで予測(manual)
gt ltrharvest -index genome_index -minlenltr 100 -maxlenltr 7000 -mintsd 4 -maxtsd 6 -motif TGCA -motifmis 1 -similar 85 -vic 10 -seed 20 -seqids yes > genome.fa.harvest.scn

#ゲノム配列中の完全長LTRレトロトランスポンソンを見つけるLTR_FINDER(開発終了)のparallel版をラン
perl LTR_FINDER_parallel/LTR_FINDER_parallel -seq genome.fa -threads 10 -harvest_out -size 1000000 -time 300

#2つのscnを結合
cat genome.fa.harvest.scn genome.fa.finder.combine.scn > genome.fa.rawLTR.scn

LTR_FINDER_parallelのランにより、genome.fa.rawLTR.scnが出力される。

 

2、genome.fa.rawLTR.scnとゲノムを指定する。

LTR_retriever -genome genome.fa -inharvest genome.fa.rawLTR.scn -threads 20

#時間のかかるアノテーションは行わないなら-noannoをつける
LTR_retriever -genome genome.fa -inharvest genome.fa.rawLTR.scn -threads 20 -noanno
  • -noanno   Disable whole genome LTR-RT annotation (no GFF3 output)

 

 

テストラン

Chlamydomonas_reinhardtiiのv5,5アセンブリを使ってテストする。パラメータはオーサーらの例に従う。ゲノムアセンブリfastaのヘッダー名やファイル名は、特殊文字や空白が残らないようにあらかじめ置き換えている。

gt suffixerator -db C.reinhardtii.fa -indexname genome_index -tis -suf -lcp -des -ssp -sds -dna

gt ltrharvest -index genome_index -minlenltr 100 -maxlenltr 7000 -mintsd 4 -maxtsd 6 -motif TGCA -motifmis 1 -similar 85 -vic 10 -seed 20 -seqids yes > C.reinhardtii.harvest.scn

perl ../LTR_FINDER_parallel/LTR_FINDER_parallel -seq C.reinhardtii.fa -threads 20 -harvest_out -size 1000000 -time 300

cat C.reinhardtii.harvest.scn C.reinhardtii.fa.finder.combine.scn > genome.fa.rawLTR.scn

LTR_retriever -genome C.reinhardtii.fa -inharvest genome.fa.rawLTR.scn -threads 20

出力

f:id:kazumaxneo:20201106113812p:plain

LTR_retriever の出力には、以下のものが含まれる。

  • 座標および構造情報を持つインタクトな LTR-RT
  • サマリーテーブル (.pass.list)
  • GFF3 形式の出力 (.pass.list.gff3)
  • LTR-RTライブラリ
  • すべての冗長でない LTR-RT (.LTRlib.fa)
  • すべての非TGCA LTR-RT (.nmtf.LTRlib.fa)
  • 冗長性のあるすべての LTR-RT (.LTRlib.redundant.fa)
  • 非冗長ライブラリによる全ゲノムLTR-RTアノテーション
  • GFF フォーマット出力 (.out.gff)
  • LTR ファミリー要約 (.out.fam.size.list)
  • LTR スーパーファミリー要約 (.out.superfam.size.list)
  • 各染色体におけるLTRの分布 (.out.LTR.distribution.txt)
  • LTR アセンブリインデックス (.out.LAI)

 

引用

LTR_retriever: A Highly Accurate and Sensitive Program for Identification of Long Terminal Repeat Retrotransposons

Shujun Ou, Ning Jiang

Plant Physiol. 2018 Feb;176(2):1410-1422

 

関連


genometoolsのgtサブコマンドのヘルプ(link

> gt suffixerator -help

$ gt suffixerator -help

Usage: gt suffixerator [option ...] (-db file [...] | -ii index)

Compute enhanced suffix array.

 

-ssp          output sequence separator positions to file

              default: yes

-des          output sequence descriptions to file

              default: yes

-sds          output sequence description separator positions to file

              default: yes

-md5          output MD5 sums to file

              default: yes

-clipdesc     clip descriptions after first whitespace

              default: no

-sat          specify kind of sequence representation

              by one of the keywords direct, bytecompress, eqlen, bit, uchar,

              ushort, uint32

              default: undefined

-dna          input is DNA sequence

              default: no

-protein      input is protein sequence

              default: no

-indexname    specify name for index to be generated

              default: undefined

-db           specify database files

-smap         specify file containing a symbol mapping

              default: undefined

-lossless     allow lossless original sequence retrieval

              default: no

-mirrored     virtually append the reverse complement of each sequence

              default: no

-pl           specify prefix length for bucket sort

              recommendation: use without argument;

              then a reasonable prefix length is automatically determined.

              default: 0

-dc           specify difference cover value

              default: 0

-spmopt       optimize esa-construction for suffix-prefix matching

              default: 0

-memlimit     specify maximal amount of memory to be used during index

              construction (in bytes, the keywords 'MB' and 'GB' are allowed)

              default: undefined

-kys          output/sort according to keys of the form |key| in fasta header

              default: nosort

-dir          specify reading direction (fwd, cpl, rev, rcl)

              default: fwd

-suf          output suffix array (suftab) to file

              default: no

-lcp          output lcp table (lcptab) to file

              default: no

-bwt          output Burrows-Wheeler Transformation (bwttab) to file

              default: no

-bck          output bucket table to file

              default: no

-v            be verbose

              default: no

-showprogress show a progress bar

              default: no

-ii           specify existing encoded sequence

              default: undefined

-help         display help for basic options and exit

-help+        display help for all options and exit

-version      display version information and exit

 

 

 

 

 

バクテリアの高精度なアセンブリツール Platanus_B

2020 11/6 誤字修正

 

 ショート DNA リードのデノボアセンブリは、特に大規模プロジェクトや疫学における高解像度の変異解析に不可欠な技術であり続けている。しかし、既存のツールでは、近縁の菌株を比較するのに必要な十分な精度が得られないことが多い。このような細菌ゲノムの研究を容易にするために、著者らは複数のエラー除去アルゴリズムの繰り返しを採用したデノボアセンブラであるPlatanus_Bを開発した。ベンチマークでは、Platanus_Bの優れた精度と高いコンティギュイティが実証され、さらにショートリードとナノポアロングリードの両方のハイブリッドアセンブリを強化する能力も実証された。ショートリードとロングリードのハイブリッド戦略は、ほぼ完全長のゲノムを達成するのに有効であったが、Platanus_Bで生成されたショートリードのみのアセンブリは、ほとんどの場合、90%以上の正確なコーディング配列を得るのに十分であることがわかった。また、ナノポアのロングリードオンリーアセンブリでは微細な精度が不足していたが、ショートリードを含めることで精度を向上させることができた。したがって、Platanus_Bは、細菌病原体の包括的なゲノム調査や、広範囲の細菌の高分解能系統図解析に使用することができる。

 

Platanus HP

http://platanus.bio.titech.ac.jp/platanus-b

 

インストール

ubuntu18.04のdockerイメージでテストした。オーサーらが提供しているpre-buildのバイナリを使った。

依存

  • OpenMP

    To compile the source code.

  • Minimap2

    https://github.com/lh3/minimap2
    Included in this package.
    Only required to use Oxford-Nanopore/PacBio long reads.

  • Perl

    To execute the scripts in this package, which .

Github

git clone https://github.com/rkajitani/Platanus_B.git
cd Platanus_B/
make

./platanus_b

# ./platanus_b   

platanus_b version: 1.3.2

./platanus_b 

 

Usage: platanus_b Command [options]

 

Command: assemble, iterate, combine (solve_DBG, gap_close, divide, kmer_divide)

./platanus_b assemble -h

# ./platanus_b assemble -h

platanus_b version: 1.3.2

./platanus_b assemble -h 

 

 

Usage platanus_b assemble [Options]

Options:

    -o STR               : prefix of output files (default out, length <= 200)

    -f FILE1 [FILE2 ...] : reads file (fasta or fastq, number <= 100)

    -k INT               : initial k-mer size (default 32)

    -K FLOAT             : maximum-k-mer factor (maximum-k = FLOAT*read-length, default  0.5)

    -s INT               : step size of k-mer extension (>= 1, default 10)

    -n INT               : initial k-mer coverage cutoff (default 0, 0 means auto)

    -c INT               : minimun k-mer coverage (default 1)

    -a FLOAT             : k-mer extension safety level (default 10.0)

    -u FLOAT             : maximum difference for bubble crush (identity, default 0)

    -d FLOAT             : maximum difference for branch cutting (coverage ratio, default 0.5)

    -e FLOAT             : k-mer coverage depth (k = initial k-mer size specified by -k) of homozygous region (default auto)

    -t INT               : number of threads (<= 100, default 1)

    -m INT               : memory limit for making kmer distribution (GB, >=1, default 16)

    -tmp DIR             : directory for temporary files (default .)

    -kmer_occ_only       : only output k-mer occurrence table (out_kmer_occ.bin; default off) 

    -repeat              : mode to assemble repetitive sequences (e.g. 16s rRNA))

 

 

Input format:

    Uncompressed and compressed (gzip or bzip2) files are accepted for -f option.

 

 

Outputs:

    PREFIX_contig.fa

    PREFIX_kmerFrq.tsv

 

Note, PREFIX is specified by -o

./platanus_b iterate -h

# ./platanus_b iterate -h

platanus_b version: 1.3.2

./platanus_b iterate -h 

 

 

Usage: platanus_b iterate [Options]

Options:

    -o STR                             : prefix of output file and directory (do not use "/", default out, length <= 200)

    -c FILE1 [FILE2 ...]               : contig (or scaffold) file (fasta format)

    -i INT                             : number of iterations (default 6)

    -l INT                             : -l value of "scaffold" step

    -u FLOAT                           : maximum difference for bubble crush (identity, default 0)

    -ip{INT} PAIR1 [PAIR2 ...]         : lib_id inward_pair_file (reads in 1 file, fasta or fastq)

    -IP{INT} FWD1 REV1 [FWD2 REV2 ...] : lib_id inward_pair_files (reads in 2 files, fasta or fastq)

    -op{INT} PAIR1 [PAIR2 ...]         : lib_id outward_pair_file (reads in 1 file, fasta or fastq)

    -OP{INT} FWD1 REV1 [FWD2 REV2 ...] : lib_id outward_pair_files (reads in 2 files, fasta or fastq)

    -ont FILE1 [FILE2 ...]             : Oxford Nanopore long-read file (fasta or fastq)

    -p FILE1 [FILE2 ...]               : PacBio long-read file (fasta or fastq)

    -gc FILE1 [FILE2 ...]              : Guiding contig file; i.e. other assemblies, synthetic long-reads or corrected reads (fasta or fastq)

    -t INT                             : number of threads (default 1)

    -m INT                             : memory limit for making kmer distribution (GB, >=1, default 1)

    -tmp DIR                           : directory for temporary files (default .)

    -sub_bin DIR                       : directory for binary files which platanus_b use internally (e.g. minimap2) (default /data/Platanus_B/sub_bin)

    -keep_file                         : keep intermediate files (default, off)

    -trim_overlap                      : trim overlapping edges of scaffolds (default, off)

 

Input format:

    Uncompressed and compressed (gzip or bzip2) files are accepted for -c, -ip, -IP, -op, -OP, -ont, -p and -gc options.

 

 

Outputs:

    PREFIX_iterativeAssembly.fa

./platanus_b combine -h

# ./platanus_b combine -h

platanus_b version: 1.3.2

./platanus_b combine -h 

 

 

Usage: platanus_b combine [Options]

Options:

    -o STR                             : prefix of output file and directory (do not use "/", default out, length <= 200)

    -c FILE1 [FILE2 ...]               : contig (or scaffold) file (fasta format)

    -gc FILE1 [FILE2 ...]              : Guiding contig file; i.e. other assemblies, synthetic long-reads or corrected reads (fasta or fastq)

    -p FILE1 [FILE2 ...]               : PacBio long-read file (fasta or fastq)

    -ont FILE1 [FILE2 ...]             : Oxford Nanopore long-read file (fasta or fastq)

    -t INT                             : number of threads (default 1)

    -tmp DIR                           : directory for temporary files (default .)

    -sub_bin DIR                       : directory for binary files which platanus_b use internally (e.g. minimap2) (default /data/Platanus_B/sub_bin)

    -no_gap_close                      : not close gaps by guiding contigs (default, false)

    -keep_file                         : keep intermediate files (default, off)

 

Input format:

    Uncompressed and compressed (gzip or bzip2) files are accepted for -c, -gc, -ont and -p options.

 

 

Outputs:

    PREFIX_combined.fa

 

 

実行方法 

1、assemble

非圧縮、またはgzip | bzip2 圧縮のペアエンドfastqファイルを指定する。

platanus_b assemble -f R1.fastq R2.fastq -t 8 -o out

#logを保存
platanus_b assemble -f R1.fastq R2.fastq -t 8 -o out 2>log

#respetitive sequencesのアセンブリ
platanus_b assemble -f R1.fastq R2.fastq -t 8 -o out -repeat 2>log
  • -f FILE1 [FILE2 ...] : reads file (fasta or fastq, number <= 100)
  • -o <STR> : prefix of output files (default out, length <= 200)
  • -k <INT>  : initial k-mer size (default 32)
  • -K <FLOAT> : maximum-k-mer factor (maximum-k = FLOAT*read-length, default  0.5)
  • -s <INT> : step size of k-mer extension (>= 1, default 10)  
  • -repeat : mode to assemble repetitive sequences (e.g. 16s rRNA) (default off)

最後にout_contig.faが出力される。

 

2、iterate - 配列の拡張、ギャップクロージング、エラー除去の繰り返し

1の出力であるout_contig.faとペアエンドfastqを指定する。

platanus_b iterate -c out_contig.fa -IP1 PE_1.fq PE_2.fq -t 8 -ont ONT.fq 2>iterate.log
  • -i <INT>: number of iterations (default 6)

デフォルトでは6回繰り返されるため、6つのディレクトリができる。

出力

f:id:kazumaxneo:20201105165039p:plain

 

iterateモードではONT | Pacbioのロングリードも使ってより連続性の高い配列を構築できる。

platanus_b iterate -c out_contig.fa -IP1 PE_1.fq PE_2.fq -t 8 -ont ONT.fq 2>iterate.log

Platanus version: 1.1.0の配布版では"-ont"オプションを利用できなかった(2020/11/5時点での最新はv.1.3.2。v.1.3.2では"-ont"オプションを利用できる。*1)。

 

他に consensus配列を出すコマンド とエラーの可能性がある領域をカットするコマンドがありますが、まだよく理解できていないので掲載は控えます。

引用

Platanus_B: an accurate de novo assembler for bacterial genomes using an iterative error-removal process
Rei Kajitani, Dai Yoshimura, Yoshitoshi Ogura, Yasuhiro Gotoh, Tetsuya Hayashi, Takehiko Itoh
DNA Research, Volume 27, Issue 3, June 2020

 

関連


 

*1 実際に試しています。 

16S rRNA OTUピッキングと視覚化を行うデータベース OTUX

 

 多くのマイクロバイオーム研究では、リファレンスベースのoperational taxonomic unit (OTU)picking法を採用しているが、一般的には、完全長16S rRNA遺伝子のクラスタリングによって同定されたリファレンスOTUをカタログ化したデータベースに依存している。突然変異の蓄積率が16S rRNA遺伝子の長さ全体にわたって一様ではないことを考えると、(次世代シーケンシングプラットフォームによって生成された)「ショートリード」シーケンスクエリを使用して得られたOTUの同定または分類学的分類の結果は一貫性がなく、最適ではない精度である可能性がある。また、de novo OTUクラスタリングの結果も、シーケンスの対象とする超可変領域内(V領域)によって大きく異なる可能性がある。その結果、異なる科学研究でプロファイリングされたマイクロバイオームを比較することが困難になり、しばしば先行知識との関連で新しい知見を分析することが課題となっている。リファレンスベースのOTUピッキングのOTUXアプローチは、異なる16S V領域に対応するショートリード配列の異なるセットに対応できる「カスタマイズされた」OTUリファレンスデータベースを使用することで、これらの制限を克服することを提案する。OTUX-アプローチで得られた結果(OTUX-OTU識別子の観点から)は、他のOTUデータベース識別子/分類法、例えばGreengenesなどの観点からも「マップバック」したり、表現したりすることができ、研究間の比較を容易にすることができる。シミュレーションされたデータセットを用いた検証では、従来の方法と比較して、OTUX-アプローチを用いて得られたより効率的、正確、一貫性のある分類が示されている。

 

manual

https://web.rniapps.net/otux/manual.html

 

webサービス

safariを使うと選択ボタンなどが表示されなかった。chromeを使用した(macos10.14.6使用)。

 

ここでは視覚化の手順のみ簡単に紹介します。

https://web.rniapps.net/otux/にアクセスする。

f:id:kazumaxneo:20201103184501p:plain

 

上から3つ目のvisualzizeに移動する。

f:id:kazumaxneo:20201103184835p:plain

OTU pickingのJSONファイルをアップロードする。

f:id:kazumaxneo:20201103185053p:plain

Qiime出力の.txtしか持っていない場合、biom convertコマンドを使って.jsonに変換する(*1)。

https://biom-format.org/documentation/biom_conversion.html

biom convert -i table.txt -o table.from_txt_json.biom --table-type="OTU table" --to-json

 

 

1、Hierarchical Bar Chart(階層的バーチャート)

f:id:kazumaxneo:20201103185344p:plain

各バーは分類学的レベルを表し、バーの長さはその分類群の豊富さを表している。初期は最高レベルであるphylumのレベルだが、バーをクリックすると下の階級に変更できる。図の白い部分をクリックすると1つ上の階級に戻る。

2、Zoomable Circle Packing

f:id:kazumaxneo:20201103185542p:plain

各分類レベルは円で表現されている。

 

バブルをクリックすると拡大される。

f:id:kazumaxneo:20201103185731p:plain

 

3、Zoomable Sunburst

f:id:kazumaxneo:20201103185810p:plain

kronaと同様の表示形式で各分類のレベルが同心円で表示される。一番内側の円が最も高い分類階級で、外に向かうほど低い分類階級になっている。クリックすることでズームインできる。戻る際は一番内側の円をクリックする。

 

マニュアルではmothurを使ってOTU pickingを行い、OTUXで視覚化する流れがまとめられています。確認して下さい。

引用

OTUX: V-region specific OTU database for improved 16S rRNA OTU picking and efficient cross-study taxonomic comparison of microbiomes
Deepak Yadav, Anirban Dutta, Sharmila S Mande Author Notes
DNA Research, Volume 26, Issue 2, April 2019, Pages 147–156

 

*1

変換するにはbiom-formatをインストールする。condaで導入可能。

conda install -c bioconda biom-format -y