レポジトリより
Mod.Plotは、StainedGlassと同様にタンデムリピートを表示するための新しいドットプロット可視化ツールです。Mod.Plotは、配列の同一性を推定するためにJaccard係数を計算するmodimizerを利用している。これにより、これらのプロットを作成するのに必要な計算時間が大幅に短縮され、リアルタイムで更新できる。
I'll be presenting Mod.Plot, a fast and fully interactive dot plot viewer, today at the @RECOMBseq poster session! https://t.co/lJ8wPFA5DW
— Alex Sweeten (@alexsweeten) April 14, 2023
インストール
ubuntu18でテストした。
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)
引用
関連
参考
modimizer
"DNA配列のマッチングやデータセット解析のための多くのバイオインフォマティクス手法において、正確なkmerマッチを配列アライメントに与えることは重要な要素である。リードセットに対して全てのkmerを迅速に列挙するツールは存在するが、それらを全てメモリ上に表現するのはコストがかかる。迅速にアクセスするための自然なツールはハッシュテーブルであるが、これはさらに多くの容量を必要とする。最近では、kmerのサブセットのみを使用することでスペースを節約し、速度を向上させるminhashやminimizerのアプローチが導入されている。これらの手法では、kmerは、そのハッシュ値が集合内の他のものに対して低いか(minhash)、シーケンスウィンドウ内の他のものに対して最小か(minimizer)に基づいて保持される。ここでは、ハッシュ値が0モジュロd(an inverse density)であるkmerを保持する。これはkmerの密度を直接制御する簡単な処理で、もしkmerが存在すれば、文脈に関係なく確実に保持されるため、2つの配列にkmerが存在してもマッチングが保証される。"