funannotate2 25.7.1__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.
@@ -0,0 +1,22 @@
1
+ # Git Hooks for CITATION.cff Management
2
+
3
+ This directory contains Git hooks to help manage the CITATION.cff file in the repository.
4
+
5
+ ## Pre-commit Hook
6
+
7
+ The pre-commit hook automatically updates the CITATION.cff file when changes to version information in pyproject.toml are committed.
8
+
9
+ ### Installation
10
+
11
+ To install the pre-commit hook, run:
12
+
13
+ ```bash
14
+ git config core.hooksPath .githooks
15
+ chmod +x .githooks/pre-commit
16
+ ```
17
+
18
+ This will configure Git to use the hooks in this directory and make the pre-commit hook executable.
19
+
20
+ ## Manual Update
21
+
22
+ If you need to manually update the CITATION.cff file, you can use the GitHub Actions workflow by creating a new release/tag, or modify the file directly.
@@ -0,0 +1,11 @@
1
+ .DS_Store
2
+ build/*
3
+ funannotate2.egg-info/*
4
+ funannotate2/__pycache*
5
+ local_tests/*
6
+ tests/unit/__pycache__*
7
+ tests/__pycache__*
8
+ tests/integration/__pycache__*
9
+ output.json
10
+ .coverage
11
+ annotations.txt
@@ -0,0 +1,24 @@
1
+ BSD 2-Clause License
2
+
3
+ Copyright (c) 2023, Jon Palmer
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
19
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,203 @@
1
+ Metadata-Version: 2.4
2
+ Name: funannotate2
3
+ Version: 25.7.1
4
+ Summary: Funannotate2: eukarytoic genome annotation pipeline
5
+ Project-URL: Homepage, https://github.com/nextgenusfs/funannotate2
6
+ Project-URL: Repository, https://github.com/nextgenusfs/funannotate2.git
7
+ Author-email: Jon Palmer <nextgenusfs@gmail.com>
8
+ License: BSD 2-Clause License
9
+
10
+ Copyright (c) 2023, Jon Palmer
11
+
12
+ Redistribution and use in source and binary forms, with or without
13
+ modification, are permitted provided that the following conditions are met:
14
+
15
+ 1. Redistributions of source code must retain the above copyright notice, this
16
+ list of conditions and the following disclaimer.
17
+
18
+ 2. Redistributions in binary form must reproduce the above copyright notice,
19
+ this list of conditions and the following disclaimer in the documentation
20
+ and/or other materials provided with the distribution.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
+ License-File: LICENSE
33
+ Keywords: annotation,bioinformatics,genome
34
+ Classifier: Development Status :: 4 - Beta
35
+ Classifier: Intended Audience :: Science/Research
36
+ Classifier: License :: OSI Approved :: BSD License
37
+ Classifier: Operating System :: Unix
38
+ Classifier: Programming Language :: Python
39
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
40
+ Requires-Python: >=3.7.0
41
+ Requires-Dist: buscolite>=25.4.24
42
+ Requires-Dist: gapmm2>=25.4.13
43
+ Requires-Dist: gb-io>=0.3.2
44
+ Requires-Dist: gfftk>=25.6.10
45
+ Requires-Dist: json-repair
46
+ Requires-Dist: mappy
47
+ Requires-Dist: natsort
48
+ Requires-Dist: numpy
49
+ Requires-Dist: pyfastx>=2.0.0
50
+ Requires-Dist: pyhmmer>=0.10.15
51
+ Requires-Dist: pytantan
52
+ Requires-Dist: requests
53
+ Description-Content-Type: text/markdown
54
+
55
+ [![Latest Github release](https://img.shields.io/github/release/nextgenusfs/funannotate2.svg)](https://github.com/nextgenusfs/funannotate2/releases/latest)
56
+ ![Conda](https://img.shields.io/conda/dn/bioconda/funannotate2)
57
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
58
+ [![Tests](https://github.com/nextgenusfs/funannotate2/actions/workflows/tests.yml/badge.svg)](https://github.com/nextgenusfs/funannotate2/actions/workflows/tests.yml)
59
+
60
+ # funannotate2: eukaryotic genome annotation pipeline
61
+
62
+ Funannotate2 is a comprehensive eukaryotic genome annotation pipeline that provides a complete workflow for annotating
63
+ eukaryotic genomes. It integrates various tools and databases to produce high-quality gene predictions and functional annotations.
64
+
65
+
66
+ ### Quick start: Installation
67
+
68
+ #### Linux systems
69
+
70
+ Unit this gets pushed to bioconda, can try this:
71
+ ```shell
72
+ mamba create -n funannotate2 gfftk gapmm2 minimap2 miniprot snap "augustus==3.5.0" glimmerhmm diamond trnascan-se table2asn gb-io buscolite
73
+ conda activate funannotate2
74
+ python -m pip install git+https://github.com/nextgenusfs/funannotate2.git
75
+ ```
76
+
77
+ #### Apple Silicon (M series)
78
+ Installation on apple silicon (M series) is a little bit more involved due to some dependency issues and non-native builds of some software. I've not been able to find or build a version of `augustus` that will run, so instead I've been running `augustus` and `genemark` locally with Docker. I've setup two repos with instructions on how to get this working (Need Docker Desktop installed) and then will need to put the bash wrapper files in your PATH to mimic the CLI interface.
79
+
80
+ https://github.com/nextgenusfs/dockerized-augustus
81
+
82
+ https://github.com/nextgenusfs/dockerized-genemark
83
+
84
+ Once that is working, you can then install most of the remaining dependencies with conda, although we need to leave out both `buscolite` and `funannotate2` because they have `augustus` as a dependency, instead we will install those python packages with pip. The conda mkl<2022 is to avoid an annoying warning on apple silicon with the intel mkl package.
85
+
86
+ ```shell
87
+ # first install most of the dependencies
88
+ mamba create -n funannotate2 --platform osx-64 "python>=3.7,<3.13" gfftk gapmm2 minimap2 miniprot snap glimmerhmm diamond trnascan-se gb-io pyhmmer pyfastx requests json-repair pytantan "mkl<2022"
89
+
90
+ # we can then add the required FUNANNOTATE2_DB env variable to the conda environment, note need to reactivate to use it
91
+ conda activate funannotate2
92
+ conda env config vars set FUNANNOTATE2_DB=/path/to/funannotate2-db
93
+ conda env config vars set AUGUSTUS_CONFIG_PATH=/path/to/augustus-3.5.0/config
94
+ conda deactivate
95
+
96
+ # now reactivate environment, and install the remaining python dependencies with pip
97
+ conda activate funannotate2
98
+ python -m pip install buscolite git+https://github.com/nextgenusfs/funannotate2.git
99
+
100
+ # now we can install the databases
101
+ funannotate2 install -d all
102
+ ```
103
+
104
+ #### Other/Manual Installation
105
+
106
+ Additional tools like genemarkHMM must be installed manually due to licensing.
107
+
108
+ `funannotate2` is a python package, to install release versions use the pip package manager, like so:
109
+
110
+ ```shell
111
+ pip install funannotate2
112
+ ```
113
+ Or to install the bleeding edge version from github repo:
114
+
115
+ ```shell
116
+ python -m pip install git+https://github.com/nextgenusfs/funannotate2.git
117
+ ```
118
+
119
+ ## Development
120
+
121
+ ### Testing
122
+
123
+ Funannotate2 includes both unit tests and integration tests to ensure the code works correctly.
124
+
125
+ #### Running Tests
126
+
127
+ To run the tests, you need to install pytest and the package in development mode:
128
+
129
+ ```bash
130
+ # Install pytest and coverage tools
131
+ pip install pytest pytest-cov
132
+
133
+ # Install funannotate2 in development mode
134
+ pip install -e .
135
+
136
+ # Run all tests
137
+ pytest
138
+
139
+ # Run with coverage report
140
+ pytest --cov=funannotate2
141
+
142
+ # Generate HTML coverage report
143
+ python scripts/run_coverage.py
144
+ ```
145
+
146
+ For more information about testing, see the [TESTING.md](TESTING.md) file.
147
+
148
+ ### Development Dependencies
149
+
150
+ To work on funannotate2 development, you'll need to install the development dependencies:
151
+
152
+ ```shell
153
+ pip install pytest pytest-cov
154
+ ```
155
+
156
+ ### Documentation
157
+
158
+ Funannotate2 includes comprehensive documentation that covers installation, usage, API reference, and more. To build the documentation:
159
+
160
+ ```bash
161
+ # Install Sphinx and the theme
162
+ pip install sphinx sphinx_rtd_theme
163
+
164
+ # Build the documentation
165
+ cd docs
166
+ make html
167
+ ```
168
+
169
+ The built documentation will be in the `docs/_build/html` directory.
170
+
171
+ For more information about the documentation, see the [docs/README.md](docs/README.md) file.
172
+
173
+ ### Running Tests
174
+
175
+ After installing the development dependencies, you can run the tests with:
176
+
177
+ ```shell
178
+ python -m pytest
179
+ ```
180
+
181
+ To run tests with coverage reporting:
182
+
183
+ ```shell
184
+ python -m pytest --cov=funannotate2 --cov-report=term-missing
185
+ ```
186
+
187
+ Or use the provided script to generate an HTML coverage report:
188
+
189
+ ```shell
190
+ python scripts/run_coverage.py
191
+ ```
192
+
193
+ To install the most up to date code from this repo, you can run:
194
+ ```
195
+ python -m pip install git+https://github.com/nextgenusfs/funannotate2.git --upgrade --force --no-deps
196
+ ```
197
+
198
+ ### Citation
199
+
200
+ Funannotate2 includes a CITATION.cff file that provides citation information for the software. The version and release date in this file are automatically updated when a new release is created.
201
+
202
+ To cite funannotate2 in your work, you can use the citation information from the CITATION.cff file or generate a citation in your preferred format using tools like [citeas.org](https://citeas.org/).
203
+
@@ -0,0 +1,149 @@
1
+ [![Latest Github release](https://img.shields.io/github/release/nextgenusfs/funannotate2.svg)](https://github.com/nextgenusfs/funannotate2/releases/latest)
2
+ ![Conda](https://img.shields.io/conda/dn/bioconda/funannotate2)
3
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
4
+ [![Tests](https://github.com/nextgenusfs/funannotate2/actions/workflows/tests.yml/badge.svg)](https://github.com/nextgenusfs/funannotate2/actions/workflows/tests.yml)
5
+
6
+ # funannotate2: eukaryotic genome annotation pipeline
7
+
8
+ Funannotate2 is a comprehensive eukaryotic genome annotation pipeline that provides a complete workflow for annotating
9
+ eukaryotic genomes. It integrates various tools and databases to produce high-quality gene predictions and functional annotations.
10
+
11
+
12
+ ### Quick start: Installation
13
+
14
+ #### Linux systems
15
+
16
+ Unit this gets pushed to bioconda, can try this:
17
+ ```shell
18
+ mamba create -n funannotate2 gfftk gapmm2 minimap2 miniprot snap "augustus==3.5.0" glimmerhmm diamond trnascan-se table2asn gb-io buscolite
19
+ conda activate funannotate2
20
+ python -m pip install git+https://github.com/nextgenusfs/funannotate2.git
21
+ ```
22
+
23
+ #### Apple Silicon (M series)
24
+ Installation on apple silicon (M series) is a little bit more involved due to some dependency issues and non-native builds of some software. I've not been able to find or build a version of `augustus` that will run, so instead I've been running `augustus` and `genemark` locally with Docker. I've setup two repos with instructions on how to get this working (Need Docker Desktop installed) and then will need to put the bash wrapper files in your PATH to mimic the CLI interface.
25
+
26
+ https://github.com/nextgenusfs/dockerized-augustus
27
+
28
+ https://github.com/nextgenusfs/dockerized-genemark
29
+
30
+ Once that is working, you can then install most of the remaining dependencies with conda, although we need to leave out both `buscolite` and `funannotate2` because they have `augustus` as a dependency, instead we will install those python packages with pip. The conda mkl<2022 is to avoid an annoying warning on apple silicon with the intel mkl package.
31
+
32
+ ```shell
33
+ # first install most of the dependencies
34
+ mamba create -n funannotate2 --platform osx-64 "python>=3.7,<3.13" gfftk gapmm2 minimap2 miniprot snap glimmerhmm diamond trnascan-se gb-io pyhmmer pyfastx requests json-repair pytantan "mkl<2022"
35
+
36
+ # we can then add the required FUNANNOTATE2_DB env variable to the conda environment, note need to reactivate to use it
37
+ conda activate funannotate2
38
+ conda env config vars set FUNANNOTATE2_DB=/path/to/funannotate2-db
39
+ conda env config vars set AUGUSTUS_CONFIG_PATH=/path/to/augustus-3.5.0/config
40
+ conda deactivate
41
+
42
+ # now reactivate environment, and install the remaining python dependencies with pip
43
+ conda activate funannotate2
44
+ python -m pip install buscolite git+https://github.com/nextgenusfs/funannotate2.git
45
+
46
+ # now we can install the databases
47
+ funannotate2 install -d all
48
+ ```
49
+
50
+ #### Other/Manual Installation
51
+
52
+ Additional tools like genemarkHMM must be installed manually due to licensing.
53
+
54
+ `funannotate2` is a python package, to install release versions use the pip package manager, like so:
55
+
56
+ ```shell
57
+ pip install funannotate2
58
+ ```
59
+ Or to install the bleeding edge version from github repo:
60
+
61
+ ```shell
62
+ python -m pip install git+https://github.com/nextgenusfs/funannotate2.git
63
+ ```
64
+
65
+ ## Development
66
+
67
+ ### Testing
68
+
69
+ Funannotate2 includes both unit tests and integration tests to ensure the code works correctly.
70
+
71
+ #### Running Tests
72
+
73
+ To run the tests, you need to install pytest and the package in development mode:
74
+
75
+ ```bash
76
+ # Install pytest and coverage tools
77
+ pip install pytest pytest-cov
78
+
79
+ # Install funannotate2 in development mode
80
+ pip install -e .
81
+
82
+ # Run all tests
83
+ pytest
84
+
85
+ # Run with coverage report
86
+ pytest --cov=funannotate2
87
+
88
+ # Generate HTML coverage report
89
+ python scripts/run_coverage.py
90
+ ```
91
+
92
+ For more information about testing, see the [TESTING.md](TESTING.md) file.
93
+
94
+ ### Development Dependencies
95
+
96
+ To work on funannotate2 development, you'll need to install the development dependencies:
97
+
98
+ ```shell
99
+ pip install pytest pytest-cov
100
+ ```
101
+
102
+ ### Documentation
103
+
104
+ Funannotate2 includes comprehensive documentation that covers installation, usage, API reference, and more. To build the documentation:
105
+
106
+ ```bash
107
+ # Install Sphinx and the theme
108
+ pip install sphinx sphinx_rtd_theme
109
+
110
+ # Build the documentation
111
+ cd docs
112
+ make html
113
+ ```
114
+
115
+ The built documentation will be in the `docs/_build/html` directory.
116
+
117
+ For more information about the documentation, see the [docs/README.md](docs/README.md) file.
118
+
119
+ ### Running Tests
120
+
121
+ After installing the development dependencies, you can run the tests with:
122
+
123
+ ```shell
124
+ python -m pytest
125
+ ```
126
+
127
+ To run tests with coverage reporting:
128
+
129
+ ```shell
130
+ python -m pytest --cov=funannotate2 --cov-report=term-missing
131
+ ```
132
+
133
+ Or use the provided script to generate an HTML coverage report:
134
+
135
+ ```shell
136
+ python scripts/run_coverage.py
137
+ ```
138
+
139
+ To install the most up to date code from this repo, you can run:
140
+ ```
141
+ python -m pip install git+https://github.com/nextgenusfs/funannotate2.git --upgrade --force --no-deps
142
+ ```
143
+
144
+ ### Citation
145
+
146
+ Funannotate2 includes a CITATION.cff file that provides citation information for the software. The version and release date in this file are automatically updated when a new release is created.
147
+
148
+ To cite funannotate2 in your work, you can use the citation information from the CITATION.cff file or generate a citation in your preferred format using tools like [citeas.org](https://citeas.org/).
149
+
@@ -0,0 +1,39 @@
1
+ # Funannotate2 Documentation
2
+
3
+ This directory contains the documentation for Funannotate2.
4
+
5
+ ## Building the Documentation
6
+
7
+ To build the documentation, you need to have Sphinx installed:
8
+
9
+ ```bash
10
+ pip install sphinx sphinx_rtd_theme
11
+ ```
12
+
13
+ Then, you can build the documentation:
14
+
15
+ ```bash
16
+ cd docs
17
+ make html
18
+ ```
19
+
20
+ The built documentation will be in the `_build/html` directory.
21
+
22
+ ## Documentation Structure
23
+
24
+ - `index.rst`: Main index file
25
+ - `installation.rst`: Installation instructions
26
+ - `usage.rst`: Usage guide
27
+ - `modules.rst`: Module reference
28
+ - `API.rst`: API reference
29
+ - `tutorial.rst`: Tutorial
30
+ - `faq.rst`: Frequently asked questions
31
+ - `changelog.rst`: Changelog
32
+ - `API/`: Directory containing API documentation for each module
33
+ - `clean.rst`: Documentation for the clean module
34
+ - `predict.rst`: Documentation for the predict module
35
+ - `annotate.rst`: Documentation for the annotate module
36
+ - `compare.rst`: Documentation for the compare module
37
+ - `search.rst`: Documentation for the search module
38
+ - `utilities.rst`: Documentation for the utilities module
39
+ - `log.rst`: Documentation for the log module
@@ -0,0 +1,3 @@
1
+ import importlib.metadata
2
+
3
+ __version__ = importlib.metadata.version("funannotate2")