vampire-tr 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vampire_tr-0.3.0/LICENSE +21 -0
- vampire_tr-0.3.0/PKG-INFO +223 -0
- vampire_tr-0.3.0/README.md +193 -0
- vampire_tr-0.3.0/pyproject.toml +57 -0
- vampire_tr-0.3.0/setup.cfg +4 -0
- vampire_tr-0.3.0/src/vampire/__init__.py +0 -0
- vampire_tr-0.3.0/src/vampire/anno.py +967 -0
- vampire_tr-0.3.0/src/vampire/decomposeString.py +373 -0
- vampire_tr-0.3.0/src/vampire/estimateParameters.py +288 -0
- vampire_tr-0.3.0/src/vampire/evaluate.py +142 -0
- vampire_tr-0.3.0/src/vampire/generator.py +25 -0
- vampire_tr-0.3.0/src/vampire/generator_utils/__init__.py +5 -0
- vampire_tr-0.3.0/src/vampire/generator_utils/multiMotifTR.py +187 -0
- vampire_tr-0.3.0/src/vampire/generator_utils/singleMotifTR.py +111 -0
- vampire_tr-0.3.0/src/vampire/identity.py +455 -0
- vampire_tr-0.3.0/src/vampire/logo.py +207 -0
- vampire_tr-0.3.0/src/vampire/main.py +225 -0
- vampire_tr-0.3.0/src/vampire/mkref.py +19 -0
- vampire_tr-0.3.0/src/vampire/refine.py +376 -0
- vampire_tr-0.3.0/src/vampire/resources/__init__.py +0 -0
- vampire_tr-0.3.0/src/vampire/resources/refMotif.fa +80 -0
- vampire_tr-0.3.0/src/vampire_tr.egg-info/PKG-INFO +223 -0
- vampire_tr-0.3.0/src/vampire_tr.egg-info/SOURCES.txt +25 -0
- vampire_tr-0.3.0/src/vampire_tr.egg-info/dependency_links.txt +1 -0
- vampire_tr-0.3.0/src/vampire_tr.egg-info/entry_points.txt +2 -0
- vampire_tr-0.3.0/src/vampire_tr.egg-info/requires.txt +16 -0
- vampire_tr-0.3.0/src/vampire_tr.egg-info/top_level.txt +1 -0
vampire_tr-0.3.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 ZikunYang
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vampire-tr
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: An integrated tool for annotating the motif variation and complex patterns in tandem repeats.
|
|
5
|
+
Author-email: Zikun Yang <ericyangzk@gmail.com>, Shilong Zhang <shilong.zhang.cn@gmail.com>, Yafei Mao <yafmao@gmail.com>
|
|
6
|
+
Maintainer-email: Zikun Yang <ericyangzk@gmail.com>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://zikun-yang.github.io/VAMPIRE_Cookbook/
|
|
9
|
+
Keywords: tandem repeat,kmer,de bruijn graph
|
|
10
|
+
Requires-Python: >=3.10
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: numpy
|
|
14
|
+
Requires-Dist: pandas
|
|
15
|
+
Requires-Dist: edlib
|
|
16
|
+
Requires-Dist: tqdm
|
|
17
|
+
Requires-Dist: matplotlib
|
|
18
|
+
Requires-Dist: seaborn
|
|
19
|
+
Requires-Dist: scipy
|
|
20
|
+
Requires-Dist: resource
|
|
21
|
+
Requires-Dist: pybktree
|
|
22
|
+
Requires-Dist: Levenshtein
|
|
23
|
+
Requires-Dist: Bio
|
|
24
|
+
Requires-Dist: rich
|
|
25
|
+
Requires-Dist: sourmash
|
|
26
|
+
Requires-Dist: networkx
|
|
27
|
+
Requires-Dist: scikit-learn
|
|
28
|
+
Requires-Dist: logomaker
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
# VAMPIRE
|
|
32
|
+
|
|
33
|
+
## <a name="started"></a>Getting Started
|
|
34
|
+
```sh
|
|
35
|
+
# Install VAMPIRE
|
|
36
|
+
pip install vampire
|
|
37
|
+
|
|
38
|
+
# Annotate STRs with
|
|
39
|
+
vampire anno tests/001-anno_STR.fa tests/001-anno_STR
|
|
40
|
+
|
|
41
|
+
# Generate simulated TR sequences
|
|
42
|
+
vampire generator -m GGC -l 1000 -r 0.01 -p tests/002-generator_reference
|
|
43
|
+
vampire generator -m GGC GGT -l 1000 -r 0.01 -p tests/002-generator_reference
|
|
44
|
+
|
|
45
|
+
# Create reference motifset from VAMPIRE annotation files
|
|
46
|
+
vampire mkref tests/003-mkref_data tests/003-mkref_reference.fa
|
|
47
|
+
|
|
48
|
+
# Evaluate the quality of annotation
|
|
49
|
+
vampire evaluate tests/001-anno_STR tests/004-evaluate
|
|
50
|
+
|
|
51
|
+
# Refine the annotation
|
|
52
|
+
vampire refine tests/001-anno_STR tests/005-refine_action.tsv -o tests/005-anno_STR.revised
|
|
53
|
+
|
|
54
|
+
# Plotting sequence logos to visualize motif variation
|
|
55
|
+
vampire logo tests/001-anno_STR tests/006-anno_STR_motif
|
|
56
|
+
vampire logo --type annotation tests/001-anno_STR tests/006-anno_STR_annotation
|
|
57
|
+
|
|
58
|
+
# Calculate the identity matrix for TR sequences
|
|
59
|
+
vampire identity -w 5 tests/001-anno_STR tests/007-anno_STR
|
|
60
|
+
```
|
|
61
|
+
See [Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/) for more details.
|
|
62
|
+
|
|
63
|
+
## <a name="toc"></a>Table of Contents
|
|
64
|
+
|
|
65
|
+
- [Getting Started](#started)
|
|
66
|
+
- [Introduction](#intro)
|
|
67
|
+
- [Why VAMPIRE?](#why)
|
|
68
|
+
- [Installation](#install)
|
|
69
|
+
- [Usage](#usage)
|
|
70
|
+
- [Annotate TR sequences](#anno)
|
|
71
|
+
- [Generate simulated TR sequences](#generator)
|
|
72
|
+
- [Create reference motifset](#mkref)
|
|
73
|
+
- [Evaluate annotation quality](#evaluate)
|
|
74
|
+
- [Refine annotation](#refine)
|
|
75
|
+
- [Plotting sequence logos to visualize motif variation](#logo)
|
|
76
|
+
- [Calculate identity matrix](#identity)
|
|
77
|
+
- [Results](#results)
|
|
78
|
+
- [Getting Help](#help)
|
|
79
|
+
- [Limitations](#limitations)
|
|
80
|
+
- [Citing VAMPIRE](#cite)
|
|
81
|
+
|
|
82
|
+
## <a name="intro"></a>Introduction
|
|
83
|
+
|
|
84
|
+
VAMPIRE is a unified framework for *de novo* TR motif annotation, structural decomposition, and variation profiling.
|
|
85
|
+
|
|
86
|
+
## <a name="why"></a>Why VAMPIRE?
|
|
87
|
+
|
|
88
|
+
- VAMPIRE reveals tandem repeat (TR) variation beyond simple copy number differences.
|
|
89
|
+
- VAMPIRE's flexible parameter settings allow annotation of TRs with diverse characteristics, ranging from STRs, VNTRs to Megabase-scale satellites.
|
|
90
|
+
- VAMPIRE produces detailed results in standard `.tsv` format, enabling seamless integration with custom analyses and in-depth research.
|
|
91
|
+
|
|
92
|
+
## <a name="install"></a>Installation
|
|
93
|
+
|
|
94
|
+
```sh
|
|
95
|
+
# Use singularity (recommended)
|
|
96
|
+
singularity pull docker://zikun-yang/vampire:latest
|
|
97
|
+
|
|
98
|
+
# Install by pip
|
|
99
|
+
pip install vampire # need to install mafft for using logo #######################################################################
|
|
100
|
+
|
|
101
|
+
# Install by conda
|
|
102
|
+
conda install vampire #######################################################################
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## <a name="usage"></a>Usage
|
|
106
|
+
|
|
107
|
+
VAMPIRE now contains 7 subcommands: `anno`, `generator`, `mkref`, `evaluate`, `refine`, `logo`, and `identity`.
|
|
108
|
+
|
|
109
|
+
### <a name="anno"></a>anno - Annotate TR sequences
|
|
110
|
+
|
|
111
|
+
One basic use of VAMPIRE is to annotate TR sequences in FASTA format. A typical command is as follows:
|
|
112
|
+
```sh
|
|
113
|
+
# de novo annotate TR sequences
|
|
114
|
+
vampire anno -t 8 tests/001-anno_STR.fa tests/001-anno_STR
|
|
115
|
+
```
|
|
116
|
+
where `-t` sets the number of threads, `tests/001-anno_STR.fa` is the input sequences, and `tests/001-anno_STR` is the output prefix. By default, VAMPIRE use the built-in `base` motif database to refine and label motifs. This database includes pCht/StSat in *Pan* and human alpha-satellite mononers from the paper:
|
|
117
|
+
> Altemose N, Logsdon G A, Bzikadze A V, et al.
|
|
118
|
+
> Complete genomic and epigenetic maps of human centromeres[J].
|
|
119
|
+
> Science, 2022, 376(6588): eabl4178.
|
|
120
|
+
|
|
121
|
+
To use a custom motif database, specify it with the `-m` option.
|
|
122
|
+
|
|
123
|
+
This command will generate five output files:
|
|
124
|
+
- `tests/001-anno_STR.settings.json`: annotation parameters used.
|
|
125
|
+
- `tests/001-anno_STR.anno.tsv`: detailed annotation, including motif, strand, and actual sequence.
|
|
126
|
+
- `tests/001-anno_STR.concise.tsv`: brief annotation results.
|
|
127
|
+
- `tests/001-anno_STR.motif.tsv`: motif statistics.
|
|
128
|
+
- `tests/001-anno_STR.dist.tsv`: motif distance in plus and minus strands.
|
|
129
|
+
|
|
130
|
+
Besides, VAMPIRE also supports adding motif database into motif set to annotate TR sequences in both de novo and non-de novo modes.
|
|
131
|
+
```sh
|
|
132
|
+
# Use motifs from database to annotate (combined with de novo annotation)
|
|
133
|
+
vampire anno -f -t 8 [prefix] [output_prefix]
|
|
134
|
+
|
|
135
|
+
# Only use motifs from database to annotate (without de novo annotation)
|
|
136
|
+
vampire anno -f --no-denovo -t 8 [prefix] [output_prefix]
|
|
137
|
+
```
|
|
138
|
+
For more detailed instructions and examples, refer to [the VAMPIRE Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/).
|
|
139
|
+
|
|
140
|
+
### <a name="generator"></a>generator - Generate simulated TR sequences
|
|
141
|
+
VAMPIRE can generate simulated TR sequences with single or multiple given motif(s), user-defined length and mutation rate. The default random seed is 42. To change the random seed, use the `-s` option.
|
|
142
|
+
```sh
|
|
143
|
+
# Generate simulated TR sequences
|
|
144
|
+
vampire generator -m GGC -l 1000 -r 0.01 -p tests/002-generator_reference
|
|
145
|
+
vampire generator -m GGC GGT -l 1000 -r 0.01 -p tests/002-generator_reference
|
|
146
|
+
```
|
|
147
|
+
This command will output three files:
|
|
148
|
+
- `tests/002-generator_reference.fa`: the simulated TR sequences in FASTA format.
|
|
149
|
+
- `tests/002-generator_reference.anno.tsv`: the annotation results with mutations.
|
|
150
|
+
- `tests/002-generator_reference.fa.anno_woMut.tsv`: the annotation results without mutations.
|
|
151
|
+
|
|
152
|
+
### <a name="mkref"></a>mkref - Create reference motifset
|
|
153
|
+
|
|
154
|
+
The `mkref` function can generate motif database (in FASTA format) from VAMPIRE annotation results. It can corporate with the `anno` function to annotate TR sequences in a two-step approach: firstly, use `anno` to annotate TR sequences, then use `mkref` to generate motif database from the annotation results. Then, the `anno` function can use this motif database in non-de novo mode to annotate TR sequences. This two-step approach can generate a motif database on population level and annotate TR sequences with high accuracy.
|
|
155
|
+
```sh
|
|
156
|
+
# Create reference motif set from annotation results
|
|
157
|
+
vampire mkref tests/003-mkref_data tests/003-mkref_reference.fa
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
### <a name="evaluate"></a>Evaluate annotation quality
|
|
162
|
+
VAMPIRE evaluates the quality of annotation in a edit distance matrix method. See [the VAMPIRE Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/) for more details.
|
|
163
|
+
```sh
|
|
164
|
+
# Evaluate the quality of annotation
|
|
165
|
+
vampire evaluate tests/001-anno_STR tests/004-evaluate
|
|
166
|
+
```
|
|
167
|
+
Four figures will be generated, combining two modes (`raw` and `normalized`) with strand options (`merge` and `seperate`). For detailed machanisms, usage and interpretation of the `raw` and `normalized` modes as well as the `merge` and `seperate` strand settings, please refer to [the VAMPIRE Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/).
|
|
168
|
+
|
|
169
|
+
### <a name="refine"></a>refine - Refine annotation
|
|
170
|
+
|
|
171
|
+
This refinement process will generate a new annotation file with the same format as the input with the refinement action provided by user. Three operations (`MERGE`, `REPLACE` and `DELETE`) are supported.
|
|
172
|
+
```sh
|
|
173
|
+
# Refine the annotation
|
|
174
|
+
vampire refine tests/001-anno_STR tests/005-refine_action.tsv -o tests/005-anno_STR.revised
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### <a name="logo"></a>logo - Plotting sequence logos to visualize motif variation
|
|
178
|
+
|
|
179
|
+
VAMPIRE plots sequence logos in three types: count, probability, and information score. By default, VAMPIRE plot sequence logos using the motif statistics file `*.motif.tsv`. If you want to plot sequence logos using the annotation file `*.anno.tsv` to show the true motif variation, use the `--type annotation` option.
|
|
180
|
+
```sh
|
|
181
|
+
# Plotting sequence logos to visualize motif variation
|
|
182
|
+
vampire logo tests/001-anno_STR tests/006-anno_STR_motif
|
|
183
|
+
vampire logo --type annotation tests/001-anno_STR tests/006-anno_STR_annotation
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
### <a name="identity"></a>identity - Calculate the identity matrix for TR sequences
|
|
188
|
+
|
|
189
|
+
VAMPIRE uses alignment-based method to calculate the identity matrix for TR sequences.
|
|
190
|
+
```sh
|
|
191
|
+
# Calculate the identity matrix for TR sequences
|
|
192
|
+
vampire identity -t 20 -w 30 tests/001-anno_STR tests/007-anno_STR
|
|
193
|
+
```
|
|
194
|
+
By default, VAMPIRE do not account for insertion and deletion events when generating the identity matrix. To include such events within a specific length range, use the `--max-indel` and `--min-indel` options to set the maximum and minimum indel lengths to consider.
|
|
195
|
+
|
|
196
|
+
After generating the identity matrix, you can visualize the heatmap with repeatmasker annotation and TR strand information using this command:
|
|
197
|
+
```sh
|
|
198
|
+
python scripts/get_visualization_data.py --prefix [annotation_prefix] --repeat [repeatmasker_annotation] --output [output_prefix]
|
|
199
|
+
Rscript scripts/SG_aln_plot.R -t 30 -b [identity_bed_file] -a [visualization_data] -p [figure_output_prefix]
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## <a name="results"></a>Results
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
heatmap
|
|
207
|
+
####################################################################################
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
## <a name="help"></a>Getting Help
|
|
211
|
+
|
|
212
|
+
For detailed description of options, please see [the VAMPIRE Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/). If you have further questions, want to report a bug, or suggest a new feature, please raise an issue at the [issue page](https://github.com/zikun-yang/VAMPIRE/issues).
|
|
213
|
+
|
|
214
|
+
## <a name="limitations"></a>Limitations
|
|
215
|
+
|
|
216
|
+
- VAMPIRE is designed for annotating the variation of TRs. While it can be used for genome-wide TR annotation with basic information, it can be time-consuming due to the additional data it processes. To address this, we plan to develop a `scan` function optimized for whole-genome TR annotation.
|
|
217
|
+
- TRs with very low copy numbers may be challenging to annotate accurately due to the limited availability of k-mers.
|
|
218
|
+
|
|
219
|
+
## <a name="cite"></a>Citating VAMPIRE
|
|
220
|
+
|
|
221
|
+
If you use VAMPIRE in your work, please cite:
|
|
222
|
+
> To be updated
|
|
223
|
+
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# VAMPIRE
|
|
2
|
+
|
|
3
|
+
## <a name="started"></a>Getting Started
|
|
4
|
+
```sh
|
|
5
|
+
# Install VAMPIRE
|
|
6
|
+
pip install vampire
|
|
7
|
+
|
|
8
|
+
# Annotate STRs with
|
|
9
|
+
vampire anno tests/001-anno_STR.fa tests/001-anno_STR
|
|
10
|
+
|
|
11
|
+
# Generate simulated TR sequences
|
|
12
|
+
vampire generator -m GGC -l 1000 -r 0.01 -p tests/002-generator_reference
|
|
13
|
+
vampire generator -m GGC GGT -l 1000 -r 0.01 -p tests/002-generator_reference
|
|
14
|
+
|
|
15
|
+
# Create reference motifset from VAMPIRE annotation files
|
|
16
|
+
vampire mkref tests/003-mkref_data tests/003-mkref_reference.fa
|
|
17
|
+
|
|
18
|
+
# Evaluate the quality of annotation
|
|
19
|
+
vampire evaluate tests/001-anno_STR tests/004-evaluate
|
|
20
|
+
|
|
21
|
+
# Refine the annotation
|
|
22
|
+
vampire refine tests/001-anno_STR tests/005-refine_action.tsv -o tests/005-anno_STR.revised
|
|
23
|
+
|
|
24
|
+
# Plotting sequence logos to visualize motif variation
|
|
25
|
+
vampire logo tests/001-anno_STR tests/006-anno_STR_motif
|
|
26
|
+
vampire logo --type annotation tests/001-anno_STR tests/006-anno_STR_annotation
|
|
27
|
+
|
|
28
|
+
# Calculate the identity matrix for TR sequences
|
|
29
|
+
vampire identity -w 5 tests/001-anno_STR tests/007-anno_STR
|
|
30
|
+
```
|
|
31
|
+
See [Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/) for more details.
|
|
32
|
+
|
|
33
|
+
## <a name="toc"></a>Table of Contents
|
|
34
|
+
|
|
35
|
+
- [Getting Started](#started)
|
|
36
|
+
- [Introduction](#intro)
|
|
37
|
+
- [Why VAMPIRE?](#why)
|
|
38
|
+
- [Installation](#install)
|
|
39
|
+
- [Usage](#usage)
|
|
40
|
+
- [Annotate TR sequences](#anno)
|
|
41
|
+
- [Generate simulated TR sequences](#generator)
|
|
42
|
+
- [Create reference motifset](#mkref)
|
|
43
|
+
- [Evaluate annotation quality](#evaluate)
|
|
44
|
+
- [Refine annotation](#refine)
|
|
45
|
+
- [Plotting sequence logos to visualize motif variation](#logo)
|
|
46
|
+
- [Calculate identity matrix](#identity)
|
|
47
|
+
- [Results](#results)
|
|
48
|
+
- [Getting Help](#help)
|
|
49
|
+
- [Limitations](#limitations)
|
|
50
|
+
- [Citing VAMPIRE](#cite)
|
|
51
|
+
|
|
52
|
+
## <a name="intro"></a>Introduction
|
|
53
|
+
|
|
54
|
+
VAMPIRE is a unified framework for *de novo* TR motif annotation, structural decomposition, and variation profiling.
|
|
55
|
+
|
|
56
|
+
## <a name="why"></a>Why VAMPIRE?
|
|
57
|
+
|
|
58
|
+
- VAMPIRE reveals tandem repeat (TR) variation beyond simple copy number differences.
|
|
59
|
+
- VAMPIRE's flexible parameter settings allow annotation of TRs with diverse characteristics, ranging from STRs, VNTRs to Megabase-scale satellites.
|
|
60
|
+
- VAMPIRE produces detailed results in standard `.tsv` format, enabling seamless integration with custom analyses and in-depth research.
|
|
61
|
+
|
|
62
|
+
## <a name="install"></a>Installation
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
# Use singularity (recommended)
|
|
66
|
+
singularity pull docker://zikun-yang/vampire:latest
|
|
67
|
+
|
|
68
|
+
# Install by pip
|
|
69
|
+
pip install vampire # need to install mafft for using logo #######################################################################
|
|
70
|
+
|
|
71
|
+
# Install by conda
|
|
72
|
+
conda install vampire #######################################################################
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## <a name="usage"></a>Usage
|
|
76
|
+
|
|
77
|
+
VAMPIRE now contains 7 subcommands: `anno`, `generator`, `mkref`, `evaluate`, `refine`, `logo`, and `identity`.
|
|
78
|
+
|
|
79
|
+
### <a name="anno"></a>anno - Annotate TR sequences
|
|
80
|
+
|
|
81
|
+
One basic use of VAMPIRE is to annotate TR sequences in FASTA format. A typical command is as follows:
|
|
82
|
+
```sh
|
|
83
|
+
# de novo annotate TR sequences
|
|
84
|
+
vampire anno -t 8 tests/001-anno_STR.fa tests/001-anno_STR
|
|
85
|
+
```
|
|
86
|
+
where `-t` sets the number of threads, `tests/001-anno_STR.fa` is the input sequences, and `tests/001-anno_STR` is the output prefix. By default, VAMPIRE use the built-in `base` motif database to refine and label motifs. This database includes pCht/StSat in *Pan* and human alpha-satellite mononers from the paper:
|
|
87
|
+
> Altemose N, Logsdon G A, Bzikadze A V, et al.
|
|
88
|
+
> Complete genomic and epigenetic maps of human centromeres[J].
|
|
89
|
+
> Science, 2022, 376(6588): eabl4178.
|
|
90
|
+
|
|
91
|
+
To use a custom motif database, specify it with the `-m` option.
|
|
92
|
+
|
|
93
|
+
This command will generate five output files:
|
|
94
|
+
- `tests/001-anno_STR.settings.json`: annotation parameters used.
|
|
95
|
+
- `tests/001-anno_STR.anno.tsv`: detailed annotation, including motif, strand, and actual sequence.
|
|
96
|
+
- `tests/001-anno_STR.concise.tsv`: brief annotation results.
|
|
97
|
+
- `tests/001-anno_STR.motif.tsv`: motif statistics.
|
|
98
|
+
- `tests/001-anno_STR.dist.tsv`: motif distance in plus and minus strands.
|
|
99
|
+
|
|
100
|
+
Besides, VAMPIRE also supports adding motif database into motif set to annotate TR sequences in both de novo and non-de novo modes.
|
|
101
|
+
```sh
|
|
102
|
+
# Use motifs from database to annotate (combined with de novo annotation)
|
|
103
|
+
vampire anno -f -t 8 [prefix] [output_prefix]
|
|
104
|
+
|
|
105
|
+
# Only use motifs from database to annotate (without de novo annotation)
|
|
106
|
+
vampire anno -f --no-denovo -t 8 [prefix] [output_prefix]
|
|
107
|
+
```
|
|
108
|
+
For more detailed instructions and examples, refer to [the VAMPIRE Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/).
|
|
109
|
+
|
|
110
|
+
### <a name="generator"></a>generator - Generate simulated TR sequences
|
|
111
|
+
VAMPIRE can generate simulated TR sequences with single or multiple given motif(s), user-defined length and mutation rate. The default random seed is 42. To change the random seed, use the `-s` option.
|
|
112
|
+
```sh
|
|
113
|
+
# Generate simulated TR sequences
|
|
114
|
+
vampire generator -m GGC -l 1000 -r 0.01 -p tests/002-generator_reference
|
|
115
|
+
vampire generator -m GGC GGT -l 1000 -r 0.01 -p tests/002-generator_reference
|
|
116
|
+
```
|
|
117
|
+
This command will output three files:
|
|
118
|
+
- `tests/002-generator_reference.fa`: the simulated TR sequences in FASTA format.
|
|
119
|
+
- `tests/002-generator_reference.anno.tsv`: the annotation results with mutations.
|
|
120
|
+
- `tests/002-generator_reference.fa.anno_woMut.tsv`: the annotation results without mutations.
|
|
121
|
+
|
|
122
|
+
### <a name="mkref"></a>mkref - Create reference motifset
|
|
123
|
+
|
|
124
|
+
The `mkref` function can generate motif database (in FASTA format) from VAMPIRE annotation results. It can corporate with the `anno` function to annotate TR sequences in a two-step approach: firstly, use `anno` to annotate TR sequences, then use `mkref` to generate motif database from the annotation results. Then, the `anno` function can use this motif database in non-de novo mode to annotate TR sequences. This two-step approach can generate a motif database on population level and annotate TR sequences with high accuracy.
|
|
125
|
+
```sh
|
|
126
|
+
# Create reference motif set from annotation results
|
|
127
|
+
vampire mkref tests/003-mkref_data tests/003-mkref_reference.fa
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
### <a name="evaluate"></a>Evaluate annotation quality
|
|
132
|
+
VAMPIRE evaluates the quality of annotation in a edit distance matrix method. See [the VAMPIRE Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/) for more details.
|
|
133
|
+
```sh
|
|
134
|
+
# Evaluate the quality of annotation
|
|
135
|
+
vampire evaluate tests/001-anno_STR tests/004-evaluate
|
|
136
|
+
```
|
|
137
|
+
Four figures will be generated, combining two modes (`raw` and `normalized`) with strand options (`merge` and `seperate`). For detailed machanisms, usage and interpretation of the `raw` and `normalized` modes as well as the `merge` and `seperate` strand settings, please refer to [the VAMPIRE Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/).
|
|
138
|
+
|
|
139
|
+
### <a name="refine"></a>refine - Refine annotation
|
|
140
|
+
|
|
141
|
+
This refinement process will generate a new annotation file with the same format as the input with the refinement action provided by user. Three operations (`MERGE`, `REPLACE` and `DELETE`) are supported.
|
|
142
|
+
```sh
|
|
143
|
+
# Refine the annotation
|
|
144
|
+
vampire refine tests/001-anno_STR tests/005-refine_action.tsv -o tests/005-anno_STR.revised
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### <a name="logo"></a>logo - Plotting sequence logos to visualize motif variation
|
|
148
|
+
|
|
149
|
+
VAMPIRE plots sequence logos in three types: count, probability, and information score. By default, VAMPIRE plot sequence logos using the motif statistics file `*.motif.tsv`. If you want to plot sequence logos using the annotation file `*.anno.tsv` to show the true motif variation, use the `--type annotation` option.
|
|
150
|
+
```sh
|
|
151
|
+
# Plotting sequence logos to visualize motif variation
|
|
152
|
+
vampire logo tests/001-anno_STR tests/006-anno_STR_motif
|
|
153
|
+
vampire logo --type annotation tests/001-anno_STR tests/006-anno_STR_annotation
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
### <a name="identity"></a>identity - Calculate the identity matrix for TR sequences
|
|
158
|
+
|
|
159
|
+
VAMPIRE uses alignment-based method to calculate the identity matrix for TR sequences.
|
|
160
|
+
```sh
|
|
161
|
+
# Calculate the identity matrix for TR sequences
|
|
162
|
+
vampire identity -t 20 -w 30 tests/001-anno_STR tests/007-anno_STR
|
|
163
|
+
```
|
|
164
|
+
By default, VAMPIRE do not account for insertion and deletion events when generating the identity matrix. To include such events within a specific length range, use the `--max-indel` and `--min-indel` options to set the maximum and minimum indel lengths to consider.
|
|
165
|
+
|
|
166
|
+
After generating the identity matrix, you can visualize the heatmap with repeatmasker annotation and TR strand information using this command:
|
|
167
|
+
```sh
|
|
168
|
+
python scripts/get_visualization_data.py --prefix [annotation_prefix] --repeat [repeatmasker_annotation] --output [output_prefix]
|
|
169
|
+
Rscript scripts/SG_aln_plot.R -t 30 -b [identity_bed_file] -a [visualization_data] -p [figure_output_prefix]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## <a name="results"></a>Results
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
heatmap
|
|
177
|
+
####################################################################################
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
## <a name="help"></a>Getting Help
|
|
181
|
+
|
|
182
|
+
For detailed description of options, please see [the VAMPIRE Cookbook](https://zikun-yang.github.io/VAMPIRE_Cookbook/). If you have further questions, want to report a bug, or suggest a new feature, please raise an issue at the [issue page](https://github.com/zikun-yang/VAMPIRE/issues).
|
|
183
|
+
|
|
184
|
+
## <a name="limitations"></a>Limitations
|
|
185
|
+
|
|
186
|
+
- VAMPIRE is designed for annotating the variation of TRs. While it can be used for genome-wide TR annotation with basic information, it can be time-consuming due to the additional data it processes. To address this, we plan to develop a `scan` function optimized for whole-genome TR annotation.
|
|
187
|
+
- TRs with very low copy numbers may be challenging to annotate accurately due to the limited availability of k-mers.
|
|
188
|
+
|
|
189
|
+
## <a name="cite"></a>Citating VAMPIRE
|
|
190
|
+
|
|
191
|
+
If you use VAMPIRE in your work, please cite:
|
|
192
|
+
> To be updated
|
|
193
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "vampire-tr"
|
|
7
|
+
version = "0.3.0"
|
|
8
|
+
readme = "README.md"
|
|
9
|
+
license = "MIT"
|
|
10
|
+
license-files = ["LICENSE"]
|
|
11
|
+
keywords = ["tandem repeat", "kmer", "de bruijn graph"]
|
|
12
|
+
description = "An integrated tool for annotating the motif variation and complex patterns in tandem repeats."
|
|
13
|
+
authors = [
|
|
14
|
+
{name = "Zikun Yang", email = "ericyangzk@gmail.com"},
|
|
15
|
+
{name = "Shilong Zhang", email = "shilong.zhang.cn@gmail.com"},
|
|
16
|
+
{name = "Yafei Mao", email = "yafmao@gmail.com"}
|
|
17
|
+
]
|
|
18
|
+
maintainers = [
|
|
19
|
+
{name = "Zikun Yang", email = "ericyangzk@gmail.com"}
|
|
20
|
+
]
|
|
21
|
+
dependencies = [
|
|
22
|
+
"numpy",
|
|
23
|
+
"pandas",
|
|
24
|
+
"edlib",
|
|
25
|
+
"tqdm",
|
|
26
|
+
"matplotlib",
|
|
27
|
+
"seaborn",
|
|
28
|
+
"scipy",
|
|
29
|
+
"resource",
|
|
30
|
+
"pybktree",
|
|
31
|
+
"Levenshtein",
|
|
32
|
+
"Bio",
|
|
33
|
+
"rich",
|
|
34
|
+
"sourmash",
|
|
35
|
+
"networkx",
|
|
36
|
+
"scikit-learn",
|
|
37
|
+
"logomaker"
|
|
38
|
+
|
|
39
|
+
]
|
|
40
|
+
requires-python = ">=3.10"
|
|
41
|
+
|
|
42
|
+
[project.urls]
|
|
43
|
+
Homepage = "https://zikun-yang.github.io/VAMPIRE_Cookbook/"
|
|
44
|
+
|
|
45
|
+
[project.scripts]
|
|
46
|
+
vampire = "vampire.main:main"
|
|
47
|
+
|
|
48
|
+
[tool.setuptools]
|
|
49
|
+
package-dir = {"" = "src"}
|
|
50
|
+
include-package-data = true
|
|
51
|
+
|
|
52
|
+
[tool.setuptools.packages.find]
|
|
53
|
+
where = ["src"]
|
|
54
|
+
|
|
55
|
+
[tool.setuptools.package-data]
|
|
56
|
+
"vampire.resources" = ["refMotif.fa"]
|
|
57
|
+
|
|
File without changes
|