rare-quickprot 1.10.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.
- rare_quickprot-1.10.0/LICENSE.txt +23 -0
- rare_quickprot-1.10.0/PKG-INFO +151 -0
- rare_quickprot-1.10.0/README.md +134 -0
- rare_quickprot-1.10.0/pyproject.toml +54 -0
- rare_quickprot-1.10.0/rare_quickprot.egg-info/PKG-INFO +151 -0
- rare_quickprot-1.10.0/rare_quickprot.egg-info/SOURCES.txt +31 -0
- rare_quickprot-1.10.0/rare_quickprot.egg-info/dependency_links.txt +1 -0
- rare_quickprot-1.10.0/rare_quickprot.egg-info/entry_points.txt +2 -0
- rare_quickprot-1.10.0/rare_quickprot.egg-info/requires.txt +2 -0
- rare_quickprot-1.10.0/rare_quickprot.egg-info/top_level.txt +1 -0
- rare_quickprot-1.10.0/setup.cfg +4 -0
- rare_quickprot-1.10.0/src/quickprot/Fasta_reader.pm +169 -0
- rare_quickprot-1.10.0/src/quickprot/GFF3_utils2.pm +249 -0
- rare_quickprot-1.10.0/src/quickprot/Gene_obj.pm +5604 -0
- rare_quickprot-1.10.0/src/quickprot/Longest_orf.pm +371 -0
- rare_quickprot-1.10.0/src/quickprot/Nuc_translator.pm +647 -0
- rare_quickprot-1.10.0/src/quickprot/__init__.py +1 -0
- rare_quickprot-1.10.0/src/quickprot/add_type_gff3.py +66 -0
- rare_quickprot-1.10.0/src/quickprot/cdna_alignment_orf_to_genome_orf.pl +411 -0
- rare_quickprot-1.10.0/src/quickprot/extract_sequence_from_gff3.py +207 -0
- rare_quickprot-1.10.0/src/quickprot/filter_repeatPeps_from_gff3.py +187 -0
- rare_quickprot-1.10.0/src/quickprot/get_intron_from_gff3.py +105 -0
- rare_quickprot-1.10.0/src/quickprot/get_longest_transcript_gff3.py +114 -0
- rare_quickprot-1.10.0/src/quickprot/gtf_genome_to_cdna_fasta.py +82 -0
- rare_quickprot-1.10.0/src/quickprot/gtf_to_alignment_gff3.pl +100 -0
- rare_quickprot-1.10.0/src/quickprot/quickprot.py +667 -0
- rare_quickprot-1.10.0/src/quickprot/rename_gff3.py +94 -0
- rare_quickprot-1.10.0/src/quickprot/sm2rmForFasta.py +39 -0
- rare_quickprot-1.10.0/src/quickprot/sort_gff3.py +95 -0
- rare_quickprot-1.10.0/src/quickprot/split_and_filter_gene_model.py +174 -0
- rare_quickprot-1.10.0/src/quickprot/stat_gff3.py +181 -0
- rare_quickprot-1.10.0/src/quickprot/update_gff3_from_minibusco.py +230 -0
- rare_quickprot-1.10.0/src/quickprot/version.py +1 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
The MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024- School of Life and Health Sciences, Hainan University
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
|
20
|
+
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
21
|
+
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
22
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: rare-quickprot
|
|
3
|
+
Version: 1.10.0
|
|
4
|
+
Summary: homology-based method for predicting gene models across entire genomes
|
|
5
|
+
Author-email: Anthony Aylward <anthony.aylward@protonmail.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/anthony-aylward/quickprot
|
|
7
|
+
Project-URL: Documentation, https://github.com/anthony-aylward/quickprot
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Requires-Python: >=3.11
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE.txt
|
|
14
|
+
Requires-Dist: biopython
|
|
15
|
+
Requires-Dist: TD2
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
conda create -n quickprot -c conda-forge -c bioconda \
|
|
20
|
+
biopython perl perl-uri miniprot td2 pip
|
|
21
|
+
conda activate quickprot
|
|
22
|
+
pip install rare-quickprot
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
alternatively using the `conda-environment.yml` file included in this repo:
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
conda env create -f conda-environment.yml
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# QuickProt User Guide
|
|
33
|
+
|
|
34
|
+
## Update
|
|
35
|
+
|
|
36
|
+
- 2026/04/28
|
|
37
|
+
1. Major Update: The version number has been updated to 1.9.0
|
|
38
|
+
2. **BUSCO results have improved significantly!!!**
|
|
39
|
+
3. The runtime logic and results have been optimized, resulting in more comprehensive gene predictions.
|
|
40
|
+
4. Partially overlapping genes (<0.2 overlap) are now permitted.
|
|
41
|
+
5. Compatibility with newer versions of Python has been improved.
|
|
42
|
+
- 2026/04/13
|
|
43
|
+
1. extract_sequence_from_gff3.py now supports GFF3 file from NCBI. Some gene models in NCBI GFF3 contain in-frame stop codons; when translated into proteins, these are now converted to X (using the -cx option).
|
|
44
|
+
- 2025/09/16
|
|
45
|
+
1. Added add_type_gff3.py script.
|
|
46
|
+
2. Optimized prediction of stop codon.
|
|
47
|
+
3. Four new options have been added, namely "-c", "-ps", "-ms", and "-an", for quality control of protein mapping, rational use to reduce pseudogenes.
|
|
48
|
+
- 2025/09/08
|
|
49
|
+
1. Added gtf_genome_to_cdna_fasta.py and gtf_genome_to_cdna_fasta.py script.
|
|
50
|
+
2. Input files now support .gz compressed files.
|
|
51
|
+
3. Now QuickProt can output more running details.
|
|
52
|
+
- 2025/09/06
|
|
53
|
+
1. Provides information about the running process.
|
|
54
|
+
2. Added filter_repeatPeps_from_gff3.py script for removing repeat proteins from gff3 file.
|
|
55
|
+
- 2025/05/28
|
|
56
|
+
1. Provide -ORFSoftware TD2 option, you can use TD2 as a tool for ORF prediction.
|
|
57
|
+
2. Optimization of genetic code options.
|
|
58
|
+
|
|
59
|
+
## What is QuickProt?
|
|
60
|
+
|
|
61
|
+
The QuickProt algorithm is a homology-based method for predicting gene models across entire genomes, designed to rapidly construct a non-redundant set of gene models. As illustrated in Figure 1, its core principle is analogous to the blotting method. It primarily employs [miniprot](https://github.com/lh3/miniprot/) (v0.18), to align homologous protein sequences to the genome, delineates high-alignment regions to assemble pseudo-transcripts (lacking UTR regions), and predicts coding regions within these pseudo-transcripts using [TransDecoder](https://github.com/TransDecoder/TransDecoder) (v5.7.1). Subsequently, low-quality gene models are filtered out and chimeric gene models are dissected, ultimately generating a high-accuracy, non-redundant gene set.
|
|
62
|
+
|
|
63
|
+

|
|
64
|
+
|
|
65
|
+
<center>Fig1. Schema of QuickProt algorithm</center>
|
|
66
|
+
|
|
67
|
+
## Installation:
|
|
68
|
+
|
|
69
|
+
Before use, you need to install Perl, Python, and biopython.
|
|
70
|
+
|
|
71
|
+
Python3 >= 3.8, perl >= 5
|
|
72
|
+
|
|
73
|
+
For ease of use, [miniprot](https://github.com/lh3/miniprot/) (v0.18) and [TransDecoder](https://github.com/TransDecoder/TransDecoder) (v5.7.1) software are integrated into QuickProt.
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
wget https://github.com/thecgs/quickprot/archive/refs/tags/quickprot-v1.8.0.tar.gz
|
|
77
|
+
tar -zxvf quickprot-v1.8.0.tar.gz
|
|
78
|
+
cd quickprot-v1.8.0
|
|
79
|
+
./quickprot -h
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Note:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
# if you need to use --mask optional of qucikprot.py script, and you need to install biopython
|
|
86
|
+
pip install biopython
|
|
87
|
+
|
|
88
|
+
# if you need to use sort_gff3.py script, and you need to install natsort.
|
|
89
|
+
pip install natsort
|
|
90
|
+
|
|
91
|
+
# if you need to use -ORFSoftware TD2, and you need to install TD2
|
|
92
|
+
pip install TD2
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Usage:
|
|
96
|
+
|
|
97
|
+
To quickly run QuickProt software. like this,
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
./quickprot -q protein.fasta -g genome.fasta
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
This pipeline can improve busco missing result, but you need to download [compleasm](https://github.com/huangnengCSU/compleasm) software.
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
## step1. running quickprot software
|
|
107
|
+
./quickprot.py -q protein.fasta -g genome.fasta -p quickprot.raw
|
|
108
|
+
|
|
109
|
+
## step2. running compleasm software
|
|
110
|
+
compleasm.py run -a genome.fasta -o ./ -l your_lineage
|
|
111
|
+
|
|
112
|
+
## step3. to update raw gff3 of step1 from compleasm result
|
|
113
|
+
./script/update_gff3_from_minibusco.py -r quickprot.raw.longest.gff3 -m ./your_lineage/miniprot_output.gff -g genome.fasta -o improve_busco.gff3
|
|
114
|
+
|
|
115
|
+
## step4. merge step1 and step3 gff3 result
|
|
116
|
+
cat quickprot.raw.longest.gff3 improve_busco.gff3 > genome.longest.gff.tmp
|
|
117
|
+
|
|
118
|
+
## step5. to sort by chromosomes or scaffold and gene start position and to rename gff3
|
|
119
|
+
./script/sort_gff3.py genome.longest.gff.tmp | ./script/rename_gff3.py - -o genome.longest.gff3 -p QUICKPROT; rm genome.longest.gff.tmp
|
|
120
|
+
|
|
121
|
+
## step6. extract protein sequence from genome and gff file
|
|
122
|
+
./bin/TransDecoder-5.7.1/util/gff3_file_to_proteins.pl --gff3 genome.longest.gff3 --fasta genome.fasta --seqType prot > genome.longest.pep.fasta
|
|
123
|
+
|
|
124
|
+
## step7. extract CDS sequence from genome and gff file
|
|
125
|
+
./bin/TransDecoder-5.7.1/util/gff3_file_to_proteins.pl --gff3 genome.longest.gff3 --fasta genome.fasta --seqType CDS > genome.longest.cds.fasta
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
This step can help you remove repeat proteins (e.g. ENV, Gag, Pol, RT, RH, INT, etc.), but you need to download [diamond](https://github.com/bbuchfink/diamond).
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
./script/filter_repeatPeps_from_gff3.py -q genome.longest.pep.fasta -g genome.longest.gff3
|
|
132
|
+
|
|
133
|
+
## results
|
|
134
|
+
## retain.gff3 —— Gene model without repeat proteins
|
|
135
|
+
## discard.gff3 —— Gene model of repeat proteins
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Run with Singularity
|
|
139
|
+
|
|
140
|
+
Download the Singularity image [here](https://zenodo.org/records/21103261/files/quickprot.v1.9.0.sif?download=1)
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
singularity exec -B PATH -e quickprot.v1.9.0.sif quickprot.py -q protein.fasta -g genome.fasta
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Cite QuickProt:
|
|
147
|
+
|
|
148
|
+
If you use QuickProt, please cite:
|
|
149
|
+
|
|
150
|
+
> Guisen Chen, Hehe Du, Zhenjie Cao, Ying Wu, Chen Zhang, Yongcan Zhou, Jingqun Ao, Yun Sun, Zihao Yuan. 2026. “ QuickProt: A Fast and Accurate Homology-Based Protein Annotation Tool for Non-Model Organisms to Advance Comparative Genomics.” Molecular Ecology Resources 26, no. 2: e70097. https://doi.org/10.1111/1755-0998.70097.
|
|
151
|
+
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
```sh
|
|
2
|
+
conda create -n quickprot -c conda-forge -c bioconda \
|
|
3
|
+
biopython perl perl-uri miniprot td2 pip
|
|
4
|
+
conda activate quickprot
|
|
5
|
+
pip install rare-quickprot
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
alternatively using the `conda-environment.yml` file included in this repo:
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
conda env create -f conda-environment.yml
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# QuickProt User Guide
|
|
16
|
+
|
|
17
|
+
## Update
|
|
18
|
+
|
|
19
|
+
- 2026/04/28
|
|
20
|
+
1. Major Update: The version number has been updated to 1.9.0
|
|
21
|
+
2. **BUSCO results have improved significantly!!!**
|
|
22
|
+
3. The runtime logic and results have been optimized, resulting in more comprehensive gene predictions.
|
|
23
|
+
4. Partially overlapping genes (<0.2 overlap) are now permitted.
|
|
24
|
+
5. Compatibility with newer versions of Python has been improved.
|
|
25
|
+
- 2026/04/13
|
|
26
|
+
1. extract_sequence_from_gff3.py now supports GFF3 file from NCBI. Some gene models in NCBI GFF3 contain in-frame stop codons; when translated into proteins, these are now converted to X (using the -cx option).
|
|
27
|
+
- 2025/09/16
|
|
28
|
+
1. Added add_type_gff3.py script.
|
|
29
|
+
2. Optimized prediction of stop codon.
|
|
30
|
+
3. Four new options have been added, namely "-c", "-ps", "-ms", and "-an", for quality control of protein mapping, rational use to reduce pseudogenes.
|
|
31
|
+
- 2025/09/08
|
|
32
|
+
1. Added gtf_genome_to_cdna_fasta.py and gtf_genome_to_cdna_fasta.py script.
|
|
33
|
+
2. Input files now support .gz compressed files.
|
|
34
|
+
3. Now QuickProt can output more running details.
|
|
35
|
+
- 2025/09/06
|
|
36
|
+
1. Provides information about the running process.
|
|
37
|
+
2. Added filter_repeatPeps_from_gff3.py script for removing repeat proteins from gff3 file.
|
|
38
|
+
- 2025/05/28
|
|
39
|
+
1. Provide -ORFSoftware TD2 option, you can use TD2 as a tool for ORF prediction.
|
|
40
|
+
2. Optimization of genetic code options.
|
|
41
|
+
|
|
42
|
+
## What is QuickProt?
|
|
43
|
+
|
|
44
|
+
The QuickProt algorithm is a homology-based method for predicting gene models across entire genomes, designed to rapidly construct a non-redundant set of gene models. As illustrated in Figure 1, its core principle is analogous to the blotting method. It primarily employs [miniprot](https://github.com/lh3/miniprot/) (v0.18), to align homologous protein sequences to the genome, delineates high-alignment regions to assemble pseudo-transcripts (lacking UTR regions), and predicts coding regions within these pseudo-transcripts using [TransDecoder](https://github.com/TransDecoder/TransDecoder) (v5.7.1). Subsequently, low-quality gene models are filtered out and chimeric gene models are dissected, ultimately generating a high-accuracy, non-redundant gene set.
|
|
45
|
+
|
|
46
|
+

|
|
47
|
+
|
|
48
|
+
<center>Fig1. Schema of QuickProt algorithm</center>
|
|
49
|
+
|
|
50
|
+
## Installation:
|
|
51
|
+
|
|
52
|
+
Before use, you need to install Perl, Python, and biopython.
|
|
53
|
+
|
|
54
|
+
Python3 >= 3.8, perl >= 5
|
|
55
|
+
|
|
56
|
+
For ease of use, [miniprot](https://github.com/lh3/miniprot/) (v0.18) and [TransDecoder](https://github.com/TransDecoder/TransDecoder) (v5.7.1) software are integrated into QuickProt.
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
wget https://github.com/thecgs/quickprot/archive/refs/tags/quickprot-v1.8.0.tar.gz
|
|
60
|
+
tar -zxvf quickprot-v1.8.0.tar.gz
|
|
61
|
+
cd quickprot-v1.8.0
|
|
62
|
+
./quickprot -h
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Note:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
# if you need to use --mask optional of qucikprot.py script, and you need to install biopython
|
|
69
|
+
pip install biopython
|
|
70
|
+
|
|
71
|
+
# if you need to use sort_gff3.py script, and you need to install natsort.
|
|
72
|
+
pip install natsort
|
|
73
|
+
|
|
74
|
+
# if you need to use -ORFSoftware TD2, and you need to install TD2
|
|
75
|
+
pip install TD2
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Usage:
|
|
79
|
+
|
|
80
|
+
To quickly run QuickProt software. like this,
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
./quickprot -q protein.fasta -g genome.fasta
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
This pipeline can improve busco missing result, but you need to download [compleasm](https://github.com/huangnengCSU/compleasm) software.
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
## step1. running quickprot software
|
|
90
|
+
./quickprot.py -q protein.fasta -g genome.fasta -p quickprot.raw
|
|
91
|
+
|
|
92
|
+
## step2. running compleasm software
|
|
93
|
+
compleasm.py run -a genome.fasta -o ./ -l your_lineage
|
|
94
|
+
|
|
95
|
+
## step3. to update raw gff3 of step1 from compleasm result
|
|
96
|
+
./script/update_gff3_from_minibusco.py -r quickprot.raw.longest.gff3 -m ./your_lineage/miniprot_output.gff -g genome.fasta -o improve_busco.gff3
|
|
97
|
+
|
|
98
|
+
## step4. merge step1 and step3 gff3 result
|
|
99
|
+
cat quickprot.raw.longest.gff3 improve_busco.gff3 > genome.longest.gff.tmp
|
|
100
|
+
|
|
101
|
+
## step5. to sort by chromosomes or scaffold and gene start position and to rename gff3
|
|
102
|
+
./script/sort_gff3.py genome.longest.gff.tmp | ./script/rename_gff3.py - -o genome.longest.gff3 -p QUICKPROT; rm genome.longest.gff.tmp
|
|
103
|
+
|
|
104
|
+
## step6. extract protein sequence from genome and gff file
|
|
105
|
+
./bin/TransDecoder-5.7.1/util/gff3_file_to_proteins.pl --gff3 genome.longest.gff3 --fasta genome.fasta --seqType prot > genome.longest.pep.fasta
|
|
106
|
+
|
|
107
|
+
## step7. extract CDS sequence from genome and gff file
|
|
108
|
+
./bin/TransDecoder-5.7.1/util/gff3_file_to_proteins.pl --gff3 genome.longest.gff3 --fasta genome.fasta --seqType CDS > genome.longest.cds.fasta
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
This step can help you remove repeat proteins (e.g. ENV, Gag, Pol, RT, RH, INT, etc.), but you need to download [diamond](https://github.com/bbuchfink/diamond).
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
./script/filter_repeatPeps_from_gff3.py -q genome.longest.pep.fasta -g genome.longest.gff3
|
|
115
|
+
|
|
116
|
+
## results
|
|
117
|
+
## retain.gff3 —— Gene model without repeat proteins
|
|
118
|
+
## discard.gff3 —— Gene model of repeat proteins
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Run with Singularity
|
|
122
|
+
|
|
123
|
+
Download the Singularity image [here](https://zenodo.org/records/21103261/files/quickprot.v1.9.0.sif?download=1)
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
singularity exec -B PATH -e quickprot.v1.9.0.sif quickprot.py -q protein.fasta -g genome.fasta
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Cite QuickProt:
|
|
130
|
+
|
|
131
|
+
If you use QuickProt, please cite:
|
|
132
|
+
|
|
133
|
+
> Guisen Chen, Hehe Du, Zhenjie Cao, Ying Wu, Chen Zhang, Yongcan Zhou, Jingqun Ao, Yun Sun, Zihao Yuan. 2026. “ QuickProt: A Fast and Accurate Homology-Based Protein Annotation Tool for Non-Model Organisms to Advance Comparative Genomics.” Molecular Ecology Resources 26, no. 2: e70097. https://doi.org/10.1111/1755-0998.70097.
|
|
134
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "rare-quickprot"
|
|
7
|
+
version = "1.10.0" # Don't forget to match with version.py
|
|
8
|
+
authors = [
|
|
9
|
+
{ name="Anthony Aylward", email="anthony.aylward@protonmail.com" },
|
|
10
|
+
]
|
|
11
|
+
description = "homology-based method for predicting gene models across entire genomes"
|
|
12
|
+
readme = "README.md"
|
|
13
|
+
requires-python = ">=3.11"
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Programming Language :: Python :: 3",
|
|
16
|
+
"Operating System :: OS Independent",
|
|
17
|
+
"License :: OSI Approved :: MIT License",
|
|
18
|
+
]
|
|
19
|
+
dependencies = [
|
|
20
|
+
"biopython",
|
|
21
|
+
"TD2"
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
[project.urls]
|
|
25
|
+
"Homepage" = "https://github.com/anthony-aylward/quickprot"
|
|
26
|
+
"Documentation" = "https://github.com/anthony-aylward/quickprot"
|
|
27
|
+
|
|
28
|
+
[project.scripts]
|
|
29
|
+
quickprot = "quickprot:main"
|
|
30
|
+
|
|
31
|
+
[tool.setuptools]
|
|
32
|
+
package-dir = {quickprot="src/quickprot"}
|
|
33
|
+
script-files = [
|
|
34
|
+
"src/quickprot/quickprot.py",
|
|
35
|
+
"src/quickprot/add_type_gff3.py",
|
|
36
|
+
"src/quickprot/extract_sequence_from_gff3.py",
|
|
37
|
+
"src/quickprot/filter_repeatPeps_from_gff3.py",
|
|
38
|
+
"src/quickprot/get_intron_from_gff3.py",
|
|
39
|
+
"src/quickprot/get_longest_transcript_gff3.py",
|
|
40
|
+
"src/quickprot/gtf_genome_to_cdna_fasta.py",
|
|
41
|
+
"src/quickprot/rename_gff3.py",
|
|
42
|
+
"src/quickprot/sm2rmForFasta.py",
|
|
43
|
+
"src/quickprot/sort_gff3.py",
|
|
44
|
+
"src/quickprot/split_and_filter_gene_model.py",
|
|
45
|
+
"src/quickprot/stat_gff3.py",
|
|
46
|
+
"src/quickprot/update_gff3_from_minibusco.py",
|
|
47
|
+
"src/quickprot/gtf_to_alignment_gff3.pl",
|
|
48
|
+
"src/quickprot/cdna_alignment_orf_to_genome_orf.pl",
|
|
49
|
+
"src/quickprot/Fasta_reader.pm",
|
|
50
|
+
"src/quickprot/Gene_obj.pm",
|
|
51
|
+
"src/quickprot/GFF3_utils2.pm",
|
|
52
|
+
"src/quickprot/Nuc_translator.pm",
|
|
53
|
+
"src/quickprot/Longest_orf.pm"
|
|
54
|
+
]
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: rare-quickprot
|
|
3
|
+
Version: 1.10.0
|
|
4
|
+
Summary: homology-based method for predicting gene models across entire genomes
|
|
5
|
+
Author-email: Anthony Aylward <anthony.aylward@protonmail.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/anthony-aylward/quickprot
|
|
7
|
+
Project-URL: Documentation, https://github.com/anthony-aylward/quickprot
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Requires-Python: >=3.11
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE.txt
|
|
14
|
+
Requires-Dist: biopython
|
|
15
|
+
Requires-Dist: TD2
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
conda create -n quickprot -c conda-forge -c bioconda \
|
|
20
|
+
biopython perl perl-uri miniprot td2 pip
|
|
21
|
+
conda activate quickprot
|
|
22
|
+
pip install rare-quickprot
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
alternatively using the `conda-environment.yml` file included in this repo:
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
conda env create -f conda-environment.yml
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# QuickProt User Guide
|
|
33
|
+
|
|
34
|
+
## Update
|
|
35
|
+
|
|
36
|
+
- 2026/04/28
|
|
37
|
+
1. Major Update: The version number has been updated to 1.9.0
|
|
38
|
+
2. **BUSCO results have improved significantly!!!**
|
|
39
|
+
3. The runtime logic and results have been optimized, resulting in more comprehensive gene predictions.
|
|
40
|
+
4. Partially overlapping genes (<0.2 overlap) are now permitted.
|
|
41
|
+
5. Compatibility with newer versions of Python has been improved.
|
|
42
|
+
- 2026/04/13
|
|
43
|
+
1. extract_sequence_from_gff3.py now supports GFF3 file from NCBI. Some gene models in NCBI GFF3 contain in-frame stop codons; when translated into proteins, these are now converted to X (using the -cx option).
|
|
44
|
+
- 2025/09/16
|
|
45
|
+
1. Added add_type_gff3.py script.
|
|
46
|
+
2. Optimized prediction of stop codon.
|
|
47
|
+
3. Four new options have been added, namely "-c", "-ps", "-ms", and "-an", for quality control of protein mapping, rational use to reduce pseudogenes.
|
|
48
|
+
- 2025/09/08
|
|
49
|
+
1. Added gtf_genome_to_cdna_fasta.py and gtf_genome_to_cdna_fasta.py script.
|
|
50
|
+
2. Input files now support .gz compressed files.
|
|
51
|
+
3. Now QuickProt can output more running details.
|
|
52
|
+
- 2025/09/06
|
|
53
|
+
1. Provides information about the running process.
|
|
54
|
+
2. Added filter_repeatPeps_from_gff3.py script for removing repeat proteins from gff3 file.
|
|
55
|
+
- 2025/05/28
|
|
56
|
+
1. Provide -ORFSoftware TD2 option, you can use TD2 as a tool for ORF prediction.
|
|
57
|
+
2. Optimization of genetic code options.
|
|
58
|
+
|
|
59
|
+
## What is QuickProt?
|
|
60
|
+
|
|
61
|
+
The QuickProt algorithm is a homology-based method for predicting gene models across entire genomes, designed to rapidly construct a non-redundant set of gene models. As illustrated in Figure 1, its core principle is analogous to the blotting method. It primarily employs [miniprot](https://github.com/lh3/miniprot/) (v0.18), to align homologous protein sequences to the genome, delineates high-alignment regions to assemble pseudo-transcripts (lacking UTR regions), and predicts coding regions within these pseudo-transcripts using [TransDecoder](https://github.com/TransDecoder/TransDecoder) (v5.7.1). Subsequently, low-quality gene models are filtered out and chimeric gene models are dissected, ultimately generating a high-accuracy, non-redundant gene set.
|
|
62
|
+
|
|
63
|
+

|
|
64
|
+
|
|
65
|
+
<center>Fig1. Schema of QuickProt algorithm</center>
|
|
66
|
+
|
|
67
|
+
## Installation:
|
|
68
|
+
|
|
69
|
+
Before use, you need to install Perl, Python, and biopython.
|
|
70
|
+
|
|
71
|
+
Python3 >= 3.8, perl >= 5
|
|
72
|
+
|
|
73
|
+
For ease of use, [miniprot](https://github.com/lh3/miniprot/) (v0.18) and [TransDecoder](https://github.com/TransDecoder/TransDecoder) (v5.7.1) software are integrated into QuickProt.
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
wget https://github.com/thecgs/quickprot/archive/refs/tags/quickprot-v1.8.0.tar.gz
|
|
77
|
+
tar -zxvf quickprot-v1.8.0.tar.gz
|
|
78
|
+
cd quickprot-v1.8.0
|
|
79
|
+
./quickprot -h
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Note:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
# if you need to use --mask optional of qucikprot.py script, and you need to install biopython
|
|
86
|
+
pip install biopython
|
|
87
|
+
|
|
88
|
+
# if you need to use sort_gff3.py script, and you need to install natsort.
|
|
89
|
+
pip install natsort
|
|
90
|
+
|
|
91
|
+
# if you need to use -ORFSoftware TD2, and you need to install TD2
|
|
92
|
+
pip install TD2
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Usage:
|
|
96
|
+
|
|
97
|
+
To quickly run QuickProt software. like this,
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
./quickprot -q protein.fasta -g genome.fasta
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
This pipeline can improve busco missing result, but you need to download [compleasm](https://github.com/huangnengCSU/compleasm) software.
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
## step1. running quickprot software
|
|
107
|
+
./quickprot.py -q protein.fasta -g genome.fasta -p quickprot.raw
|
|
108
|
+
|
|
109
|
+
## step2. running compleasm software
|
|
110
|
+
compleasm.py run -a genome.fasta -o ./ -l your_lineage
|
|
111
|
+
|
|
112
|
+
## step3. to update raw gff3 of step1 from compleasm result
|
|
113
|
+
./script/update_gff3_from_minibusco.py -r quickprot.raw.longest.gff3 -m ./your_lineage/miniprot_output.gff -g genome.fasta -o improve_busco.gff3
|
|
114
|
+
|
|
115
|
+
## step4. merge step1 and step3 gff3 result
|
|
116
|
+
cat quickprot.raw.longest.gff3 improve_busco.gff3 > genome.longest.gff.tmp
|
|
117
|
+
|
|
118
|
+
## step5. to sort by chromosomes or scaffold and gene start position and to rename gff3
|
|
119
|
+
./script/sort_gff3.py genome.longest.gff.tmp | ./script/rename_gff3.py - -o genome.longest.gff3 -p QUICKPROT; rm genome.longest.gff.tmp
|
|
120
|
+
|
|
121
|
+
## step6. extract protein sequence from genome and gff file
|
|
122
|
+
./bin/TransDecoder-5.7.1/util/gff3_file_to_proteins.pl --gff3 genome.longest.gff3 --fasta genome.fasta --seqType prot > genome.longest.pep.fasta
|
|
123
|
+
|
|
124
|
+
## step7. extract CDS sequence from genome and gff file
|
|
125
|
+
./bin/TransDecoder-5.7.1/util/gff3_file_to_proteins.pl --gff3 genome.longest.gff3 --fasta genome.fasta --seqType CDS > genome.longest.cds.fasta
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
This step can help you remove repeat proteins (e.g. ENV, Gag, Pol, RT, RH, INT, etc.), but you need to download [diamond](https://github.com/bbuchfink/diamond).
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
./script/filter_repeatPeps_from_gff3.py -q genome.longest.pep.fasta -g genome.longest.gff3
|
|
132
|
+
|
|
133
|
+
## results
|
|
134
|
+
## retain.gff3 —— Gene model without repeat proteins
|
|
135
|
+
## discard.gff3 —— Gene model of repeat proteins
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Run with Singularity
|
|
139
|
+
|
|
140
|
+
Download the Singularity image [here](https://zenodo.org/records/21103261/files/quickprot.v1.9.0.sif?download=1)
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
singularity exec -B PATH -e quickprot.v1.9.0.sif quickprot.py -q protein.fasta -g genome.fasta
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Cite QuickProt:
|
|
147
|
+
|
|
148
|
+
If you use QuickProt, please cite:
|
|
149
|
+
|
|
150
|
+
> Guisen Chen, Hehe Du, Zhenjie Cao, Ying Wu, Chen Zhang, Yongcan Zhou, Jingqun Ao, Yun Sun, Zihao Yuan. 2026. “ QuickProt: A Fast and Accurate Homology-Based Protein Annotation Tool for Non-Model Organisms to Advance Comparative Genomics.” Molecular Ecology Resources 26, no. 2: e70097. https://doi.org/10.1111/1755-0998.70097.
|
|
151
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
LICENSE.txt
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
rare_quickprot.egg-info/PKG-INFO
|
|
5
|
+
rare_quickprot.egg-info/SOURCES.txt
|
|
6
|
+
rare_quickprot.egg-info/dependency_links.txt
|
|
7
|
+
rare_quickprot.egg-info/entry_points.txt
|
|
8
|
+
rare_quickprot.egg-info/requires.txt
|
|
9
|
+
rare_quickprot.egg-info/top_level.txt
|
|
10
|
+
src/quickprot/Fasta_reader.pm
|
|
11
|
+
src/quickprot/GFF3_utils2.pm
|
|
12
|
+
src/quickprot/Gene_obj.pm
|
|
13
|
+
src/quickprot/Longest_orf.pm
|
|
14
|
+
src/quickprot/Nuc_translator.pm
|
|
15
|
+
src/quickprot/__init__.py
|
|
16
|
+
src/quickprot/add_type_gff3.py
|
|
17
|
+
src/quickprot/cdna_alignment_orf_to_genome_orf.pl
|
|
18
|
+
src/quickprot/extract_sequence_from_gff3.py
|
|
19
|
+
src/quickprot/filter_repeatPeps_from_gff3.py
|
|
20
|
+
src/quickprot/get_intron_from_gff3.py
|
|
21
|
+
src/quickprot/get_longest_transcript_gff3.py
|
|
22
|
+
src/quickprot/gtf_genome_to_cdna_fasta.py
|
|
23
|
+
src/quickprot/gtf_to_alignment_gff3.pl
|
|
24
|
+
src/quickprot/quickprot.py
|
|
25
|
+
src/quickprot/rename_gff3.py
|
|
26
|
+
src/quickprot/sm2rmForFasta.py
|
|
27
|
+
src/quickprot/sort_gff3.py
|
|
28
|
+
src/quickprot/split_and_filter_gene_model.py
|
|
29
|
+
src/quickprot/stat_gff3.py
|
|
30
|
+
src/quickprot/update_gff3_from_minibusco.py
|
|
31
|
+
src/quickprot/version.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
quickprot
|