macでインフォマティクス

macでインフォマティクス

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

タンデムリピートなどのゲノムの繰り返し領域をドットプロットで可視化する Mod.Plot

 

レポジトリより

Mod.Plotは、StainedGlassと同様にタンデムリピートを表示するための新しいドットプロット可視化ツールです。Mod.Plotは、配列の同一性を推定するためにJaccard係数を計算するmodimizerを利用している。これにより、これらのプロットを作成するのに必要な計算時間が大幅に短縮され、リアルタイムで更新できる。

 

 

インストール

ubuntu18でテストした。

Github

mamba create -n moddotplot python=3 -y
conda activate moddotplot
git clone https://github.com/marbl/ModDotPlot.git
cd ModDotPlot
python setup.py install

> moddotplot -h

_______  _______  ______                        _______  _        _______ _________

(       )(  ___  )(  __  \                      (  ____ )( \      (  ___  )\__   __/

| () () || (   ) || (  \  )                     | (    )|| (      | (   ) |   ) (   

| || || || |   | || |   ) |                     | (____)|| |      | |   | |   | |   

| |(_)| || |   | || |   | |   ___   ___ _____   |  _____)| |      | |   | |   | |   

| |   | || |   | || |   ) |  |   \ / _ \_   _|  | (      | |      | |   | |   | |   

| )   ( || (___) || (__/  )  | |) | (_) || |    | )      | (____/\| (___) |   | |   

|/     \|(_______)(______/   |___/ \___/ |_|    |/       (_______/(_______)   )_(   

 

 

usage: moddotplot [-h] -i INPUT [INPUT ...] [-k KMER] [-s SPARSITY] [-r RESOLUTION] [-id IDENTITY] [-a ALPHA] [-o OUTPUT_DIR] [-nc NON_CANONICAL] [--no-bed] [--no-plot] [--no-hist] [--width WIDTH] [--height HEIGHT] [--dpi DPI]

                  [--palette PALETTE] [--palette-orientation {+,-}] [--bin-freq] [--compare] [--compare-only] [--interactive] [--port PORT]

 

Mod.Plot, A Rapid and Interactive Visualization of Tandem Repeats.

 

options:

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

 

Required input:

  -i INPUT [INPUT ...], --input INPUT [INPUT ...]

                        Path to input fasta file(s)

 

Mod.Plot distance matrix commands:

  -k KMER, --kmer KMER  k-mer length. Must be < 32 (default: 21)

  -s SPARSITY, --sparsity SPARSITY

                        Modimizer sparsity value. Higher value will reduce the number of modimizers, but will increase performance. Default set to 2 per Mbp of sequence, rounded up to nearest even integer) (default: None)

  -r RESOLUTION, --resolution RESOLUTION

                        Dotplot resolution. (default: 1000)

  -id IDENTITY, --identity IDENTITY

                        Identity cutoff threshold. (default: 80)

  -a ALPHA, --alpha ALPHA

                        Alpha parameter: Fraction of neighboring k-mers to include in identity estimation. (default: 0.01)

  -o OUTPUT_DIR, --output-dir OUTPUT_DIR

                        Name for bed file and plots. Will be set to input fasta file name if not provided. (default: None)

  -nc NON_CANONICAL, --non-canonical NON_CANONICAL

                        Only consider forward strand when computing k-mers. (default: False)

 

Static plotting commands:

  --no-bed              Don't output bed file. (default: False)

  --no-plot             Don't output svg and png image files. (default: False)

  --no-hist             Don't output histogram color legend. (default: False)

  --width WIDTH         Change default plot width. (default: 9)

  --height HEIGHT       Change default plot height. (default: 5)

  --dpi DPI             Change default plot dpi. (default: 300)

  --palette PALETTE     Select color palette. See RColorBrewer for list of accepted palettes. Will default to Spectral_11 if not used. (default: Spectral_11)

  --palette-orientation {+,-}

                        Color palette orientation. + for forward, - for reverse. (default: +)

  --bin-freq            By default, histograms are evenly spaced based on the number of colors and the identity threshold. Select this argument to bin based on the frequency of observed identity values. (default: False)

  --compare             Create a dotplot with two different sequences. (default: False)

  --compare-only        Create a dotplot with two different sequences, skipping self-identity dotplot. (default: False)

 

Interactive plotting commands:

  --interactive         Launch a interactive Dash application on localhost. (default: False)

  --port PORT           Port number for launching interactive mode on localhost. Only used in interactive mode. (default: 8050)

 

 

 

実行方法

ランするには少なくとも1つのFASTA形式の配列が必要。static plot。

moddotplot -i genome.fna
  • -s    Modimizer sparsity value. Higher value will reduce the number of modimizers, but will increase performance. Default set to 2 per Mbp of sequence, rounded up to nearest even integer) (default: None)
  • --identity Identity cutoff threshold. (default: 80)

 

出力例(A.thaliana)

結果は配列ごとにプロットされる。chr1を見てみる。

1_TRI.svg

1_HIST.svg

 

インタラクティブなプロットを得るには"--interactive"をつける。

moddotplot -i genome.fna --interactive

#HPC環境でランしてローカルマシンで閲覧する例はレポジトリ参照
  • --interactive   Launch a interactive Dash application on localhost. (default: False)
  • --port    Port number for launching interactive mode on localhost. Only used in interactive mode. (default: 8050) 

マシンのlocalhost上でDashアプリケーションが起動する。ブラウザでhttp://127.0.0.1:8050にアクセスするとインタラクティブなプロットが表示される。

 

自由に拡大縮小できる。

 

2つの配列の比較

2つの入力配列のa対bのドットプロットを作成することもできる。

moddotplot -i test/chr14_segment.fa test/chr21_segment.fa -id 88 --compare-only
  • --compare-only    Create a dotplot with two different sequences, skipping self-identity dotplot. (default: False)

 

引用

GitHub - marbl/ModDotPlot

 

関連


参考

modimizer

GitHub - richarddurbin/modimizer: a toolset for fast DNA read set matching and assembly using a new type of reduced kmer

"DNA配列のマッチングやデータセット解析のための多くのバイオインフォマティクス手法において、正確なkmerマッチを配列アライメントに与えることは重要な要素である。リードセットに対して全てのkmerを迅速に列挙するツールは存在するが、それらを全てメモリ上に表現するのはコストがかかる。迅速にアクセスするための自然なツールはハッシュテーブルであるが、これはさらに多くの容量を必要とする。最近では、kmerのサブセットのみを使用することでスペースを節約し、速度を向上させるminhashやminimizerのアプローチが導入されている。これらの手法では、kmerは、そのハッシュ値が集合内の他のものに対して低いか(minhash)、シーケンスウィンドウ内の他のものに対して最小か(minimizer)に基づいて保持される。ここでは、ハッシュ値が0モジュロd(an inverse density)であるkmerを保持する。これはkmerの密度を直接制御する簡単な処理で、もしkmerが存在すれば、文脈に関係なく確実に保持されるため、2つの配列にkmerが存在してもマッチングが保証される。"