phagemine 1.3.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.
Files changed (196) hide show
  1. phagemine-1.3.1/.dockerignore +15 -0
  2. phagemine-1.3.1/.zenodo.json +21 -0
  3. phagemine-1.3.1/CHANGELOG.md +252 -0
  4. phagemine-1.3.1/CITATION.cff +18 -0
  5. phagemine-1.3.1/Dockerfile +27 -0
  6. phagemine-1.3.1/LICENSE +21 -0
  7. phagemine-1.3.1/MANIFEST.in +9 -0
  8. phagemine-1.3.1/PKG-INFO +171 -0
  9. phagemine-1.3.1/README.md +114 -0
  10. phagemine-1.3.1/RELEASE_VALIDATION.md +43 -0
  11. phagemine-1.3.1/RESEARCHER_VALIDATION.md +81 -0
  12. phagemine-1.3.1/docs/BENCHMARK.md +75 -0
  13. phagemine-1.3.1/docs/FUNCTIONAL_BENCHMARK.md +102 -0
  14. phagemine-1.3.1/docs/INPHARED.md +79 -0
  15. phagemine-1.3.1/docs/annotation-naming.md +118 -0
  16. phagemine-1.3.1/docs/annotation-workflows.md +103 -0
  17. phagemine-1.3.1/docs/architecture-phase-a.md +13 -0
  18. phagemine-1.3.1/docs/benchmark_v1.2/README.md +39 -0
  19. phagemine-1.3.1/docs/benchmark_v1.2/figures/functional_yield.pdf +0 -0
  20. phagemine-1.3.1/docs/benchmark_v1.2/figures/functional_yield.png +0 -0
  21. phagemine-1.3.1/docs/benchmark_v1.2/figures/functional_yield.svg +1052 -0
  22. phagemine-1.3.1/docs/benchmark_v1.2/figures/per_genome_strict_f1.pdf +0 -0
  23. phagemine-1.3.1/docs/benchmark_v1.2/figures/per_genome_strict_f1.png +0 -0
  24. phagemine-1.3.1/docs/benchmark_v1.2/figures/per_genome_strict_f1.svg +1350 -0
  25. phagemine-1.3.1/docs/benchmark_v1.2/figures/prediction_category_composition.pdf +0 -0
  26. phagemine-1.3.1/docs/benchmark_v1.2/figures/prediction_category_composition.png +0 -0
  27. phagemine-1.3.1/docs/benchmark_v1.2/figures/prediction_category_composition.svg +1662 -0
  28. phagemine-1.3.1/docs/benchmark_v1.2/figures/strict_vs_relaxed_f1.pdf +0 -0
  29. phagemine-1.3.1/docs/benchmark_v1.2/figures/strict_vs_relaxed_f1.png +0 -0
  30. phagemine-1.3.1/docs/benchmark_v1.2/figures/strict_vs_relaxed_f1.svg +1116 -0
  31. phagemine-1.3.1/docs/benchmark_v1.2/scripts/make_figures.py +42 -0
  32. phagemine-1.3.1/docs/benchmark_v1.2/tables/functional_yield_by_genome.tsv +22 -0
  33. phagemine-1.3.1/docs/benchmark_v1.2/tables/functional_yield_totals.tsv +4 -0
  34. phagemine-1.3.1/docs/benchmark_v1.2/tables/phagemine_vs_prokka_count_difference.tsv +8 -0
  35. phagemine-1.3.1/docs/benchmark_v1.2/tables/prediction_category_counts.tsv +22 -0
  36. phagemine-1.3.1/docs/benchmark_v1.2/tables/reference_provenance.tsv +8 -0
  37. phagemine-1.3.1/docs/benchmark_v1.2/tables/strict_relaxed_metrics.tsv +22 -0
  38. phagemine-1.3.1/docs/database-policy.md +19 -0
  39. phagemine-1.3.1/docs/databases.md +100 -0
  40. phagemine-1.3.1/docs/evidence-framework.md +7 -0
  41. phagemine-1.3.1/docs/genbank-submission.md +24 -0
  42. phagemine-1.3.1/docs/gui.md +69 -0
  43. phagemine-1.3.1/docs/images/phagemine-gui/annotation-development.png +0 -0
  44. phagemine-1.3.1/docs/images/phagemine-gui/home-development.png +0 -0
  45. phagemine-1.3.1/docs/installation.md +127 -0
  46. phagemine-1.3.1/docs/limitations.md +57 -0
  47. phagemine-1.3.1/docs/next-generation-evidence-engine.md +31 -0
  48. phagemine-1.3.1/docs/release-checklist.md +40 -0
  49. phagemine-1.3.1/docs/releases/v1.3.0.md +30 -0
  50. phagemine-1.3.1/docs/releases/v1.3.1.md +15 -0
  51. phagemine-1.3.1/docs/researcher-readiness.md +69 -0
  52. phagemine-1.3.1/docs/v1.2-biological-feature-freeze.md +23 -0
  53. phagemine-1.3.1/docs/v1.2-consensus-gene-model-policy.md +54 -0
  54. phagemine-1.3.1/docs/v1.2-development-environment.md +40 -0
  55. phagemine-1.3.1/docs/v1.2-finalization-policy.md +37 -0
  56. phagemine-1.3.1/docs/v1.2-gene-model-adjudication.md +29 -0
  57. phagemine-1.3.1/docs/v1.2-gene-model-provider-architecture.md +49 -0
  58. phagemine-1.3.1/docs/v1.2-prodigal-gv-provider.md +23 -0
  59. phagemine-1.3.1/docs/v1.2-pyrodigal-provider.md +31 -0
  60. phagemine-1.3.1/docs/v1.2-reconciliation-policy.md +29 -0
  61. phagemine-1.3.1/docs/v1.2-rna-phage-support.md +26 -0
  62. phagemine-1.3.1/docs/v1.2-segmented-performance-analysis.md +25 -0
  63. phagemine-1.3.1/docs/validation-protocol.md +35 -0
  64. phagemine-1.3.1/environment.yml +26 -0
  65. phagemine-1.3.1/examples/demo_phage.fasta +2 -0
  66. phagemine-1.3.1/examples/sequencing_provenance_ont.json +13 -0
  67. phagemine-1.3.1/examples/submission_metadata.json +13 -0
  68. phagemine-1.3.1/packaging/bioconda/post-link.sh +16 -0
  69. phagemine-1.3.1/packaging/bioconda/recipe/meta.yaml +63 -0
  70. phagemine-1.3.1/pyproject.toml +70 -0
  71. phagemine-1.3.1/setup.cfg +4 -0
  72. phagemine-1.3.1/setup.py +3 -0
  73. phagemine-1.3.1/src/phagemine/__init__.py +3 -0
  74. phagemine-1.3.1/src/phagemine/__main__.py +4 -0
  75. phagemine-1.3.1/src/phagemine/adjudication.py +49 -0
  76. phagemine-1.3.1/src/phagemine/alternative_evidence.py +171 -0
  77. phagemine-1.3.1/src/phagemine/annotation.py +46 -0
  78. phagemine-1.3.1/src/phagemine/annotation_labels.py +35 -0
  79. phagemine-1.3.1/src/phagemine/artifact_ops.py +87 -0
  80. phagemine-1.3.1/src/phagemine/batch.py +540 -0
  81. phagemine-1.3.1/src/phagemine/benchmark.py +229 -0
  82. phagemine-1.3.1/src/phagemine/cli.py +423 -0
  83. phagemine-1.3.1/src/phagemine/compare.py +105 -0
  84. phagemine-1.3.1/src/phagemine/conflict_review.py +45 -0
  85. phagemine-1.3.1/src/phagemine/context.py +95 -0
  86. phagemine-1.3.1/src/phagemine/curated_benchmark.py +97 -0
  87. phagemine-1.3.1/src/phagemine/curation.py +188 -0
  88. phagemine-1.3.1/src/phagemine/database_health.py +61 -0
  89. phagemine-1.3.1/src/phagemine/database_installer.py +723 -0
  90. phagemine-1.3.1/src/phagemine/discovery.py +314 -0
  91. phagemine-1.3.1/src/phagemine/evidence.py +53 -0
  92. phagemine-1.3.1/src/phagemine/evidence_engine.py +269 -0
  93. phagemine-1.3.1/src/phagemine/external_annotation.py +88 -0
  94. phagemine-1.3.1/src/phagemine/family.py +143 -0
  95. phagemine-1.3.1/src/phagemine/family_compare.py +64 -0
  96. phagemine-1.3.1/src/phagemine/family_enrichment.py +58 -0
  97. phagemine-1.3.1/src/phagemine/family_external.py +113 -0
  98. phagemine-1.3.1/src/phagemine/family_priority.py +20 -0
  99. phagemine-1.3.1/src/phagemine/figures.py +174 -0
  100. phagemine-1.3.1/src/phagemine/functional_benchmark.py +152 -0
  101. phagemine-1.3.1/src/phagemine/fusion.py +810 -0
  102. phagemine-1.3.1/src/phagemine/genbank.py +166 -0
  103. phagemine-1.3.1/src/phagemine/gene_callers.py +630 -0
  104. phagemine-1.3.1/src/phagemine/gene_model_selection.py +232 -0
  105. phagemine-1.3.1/src/phagemine/gene_models.py +107 -0
  106. phagemine-1.3.1/src/phagemine/gene_prediction.py +151 -0
  107. phagemine-1.3.1/src/phagemine/genome.py +31 -0
  108. phagemine-1.3.1/src/phagemine/genome_representation.py +108 -0
  109. phagemine-1.3.1/src/phagemine/gui/__init__.py +9 -0
  110. phagemine-1.3.1/src/phagemine/gui/app.py +226 -0
  111. phagemine-1.3.1/src/phagemine/gui/launcher.py +19 -0
  112. phagemine-1.3.1/src/phagemine/gui/services/__init__.py +1 -0
  113. phagemine-1.3.1/src/phagemine/gui/services/execution.py +107 -0
  114. phagemine-1.3.1/src/phagemine/gui/services/results.py +101 -0
  115. phagemine-1.3.1/src/phagemine/gui/services/status.py +101 -0
  116. phagemine-1.3.1/src/phagemine/hallmarks.py +58 -0
  117. phagemine-1.3.1/src/phagemine/hmmer_chunking.py +41 -0
  118. phagemine-1.3.1/src/phagemine/inphared.py +695 -0
  119. phagemine-1.3.1/src/phagemine/io.py +88 -0
  120. phagemine-1.3.1/src/phagemine/mining.py +78 -0
  121. phagemine-1.3.1/src/phagemine/model_adjudication.py +206 -0
  122. phagemine-1.3.1/src/phagemine/models.py +100 -0
  123. phagemine-1.3.1/src/phagemine/operational_validation.py +94 -0
  124. phagemine-1.3.1/src/phagemine/pfam.py +120 -0
  125. phagemine-1.3.1/src/phagemine/phrogs.py +412 -0
  126. phagemine-1.3.1/src/phagemine/pipeline.py +1004 -0
  127. phagemine-1.3.1/src/phagemine/pooled.py +41 -0
  128. phagemine-1.3.1/src/phagemine/preflight.py +303 -0
  129. phagemine-1.3.1/src/phagemine/progress.py +69 -0
  130. phagemine-1.3.1/src/phagemine/quality.py +83 -0
  131. phagemine-1.3.1/src/phagemine/reconciliation.py +148 -0
  132. phagemine-1.3.1/src/phagemine/reconciliation_engine.py +380 -0
  133. phagemine-1.3.1/src/phagemine/reporting.py +327 -0
  134. phagemine-1.3.1/src/phagemine/reproducibility.py +71 -0
  135. phagemine-1.3.1/src/phagemine/resources.py +333 -0
  136. phagemine-1.3.1/src/phagemine/resume.py +362 -0
  137. phagemine-1.3.1/src/phagemine/review.py +35 -0
  138. phagemine-1.3.1/src/phagemine/review_priority.py +32 -0
  139. phagemine-1.3.1/src/phagemine/rna_features.py +186 -0
  140. phagemine-1.3.1/src/phagemine/search_cache.py +113 -0
  141. phagemine-1.3.1/src/phagemine/sentinel_diagnostic.py +112 -0
  142. phagemine-1.3.1/src/phagemine/sequencing_provenance.py +47 -0
  143. phagemine-1.3.1/src/phagemine/stage_dag.py +62 -0
  144. phagemine-1.3.1/src/phagemine/stage_resume.py +91 -0
  145. phagemine-1.3.1/src/phagemine/submission_revision.py +71 -0
  146. phagemine-1.3.1/src/phagemine/swissprot.py +253 -0
  147. phagemine-1.3.1/src/phagemine/triage.py +55 -0
  148. phagemine-1.3.1/src/phagemine/validation.py +203 -0
  149. phagemine-1.3.1/src/phagemine/vog.py +139 -0
  150. phagemine-1.3.1/src/phagemine/workflow_cli.py +86 -0
  151. phagemine-1.3.1/src/phagemine.egg-info/PKG-INFO +171 -0
  152. phagemine-1.3.1/src/phagemine.egg-info/SOURCES.txt +194 -0
  153. phagemine-1.3.1/src/phagemine.egg-info/dependency_links.txt +1 -0
  154. phagemine-1.3.1/src/phagemine.egg-info/entry_points.txt +3 -0
  155. phagemine-1.3.1/src/phagemine.egg-info/requires.txt +18 -0
  156. phagemine-1.3.1/src/phagemine.egg-info/top_level.txt +1 -0
  157. phagemine-1.3.1/tests/test_accuracy_review.py +65 -0
  158. phagemine-1.3.1/tests/test_annotation_workflows.py +197 -0
  159. phagemine-1.3.1/tests/test_automatic_pyrodigal_gv.py +66 -0
  160. phagemine-1.3.1/tests/test_batch_failure_reporting.py +36 -0
  161. phagemine-1.3.1/tests/test_benchmark_integrity.py +145 -0
  162. phagemine-1.3.1/tests/test_database_installer.py +282 -0
  163. phagemine-1.3.1/tests/test_evidence_engine.py +60 -0
  164. phagemine-1.3.1/tests/test_fresh_benchmark.py +82 -0
  165. phagemine-1.3.1/tests/test_full_system_benchmark.py +40 -0
  166. phagemine-1.3.1/tests/test_functional_benchmark.py +198 -0
  167. phagemine-1.3.1/tests/test_gene_callers.py +130 -0
  168. phagemine-1.3.1/tests/test_gene_model_selection.py +88 -0
  169. phagemine-1.3.1/tests/test_gene_models.py +45 -0
  170. phagemine-1.3.1/tests/test_gui.py +190 -0
  171. phagemine-1.3.1/tests/test_gui_app.py +31 -0
  172. phagemine-1.3.1/tests/test_inphared.py +254 -0
  173. phagemine-1.3.1/tests/test_model_adjudication.py +84 -0
  174. phagemine-1.3.1/tests/test_naming_policy.py +250 -0
  175. phagemine-1.3.1/tests/test_ncbi_presubmission.py +38 -0
  176. phagemine-1.3.1/tests/test_next_steps.py +137 -0
  177. phagemine-1.3.1/tests/test_packaging_pyrodigal_gv.py +51 -0
  178. phagemine-1.3.1/tests/test_phagemine.py +1957 -0
  179. phagemine-1.3.1/tests/test_phrogs_pyhmmer.py +102 -0
  180. phagemine-1.3.1/tests/test_preflight.py +159 -0
  181. phagemine-1.3.1/tests/test_python_compatibility.py +22 -0
  182. phagemine-1.3.1/tests/test_reconciliation_engine.py +89 -0
  183. phagemine-1.3.1/tests/test_release_metadata.py +23 -0
  184. phagemine-1.3.1/tests/test_release_publication.py +54 -0
  185. phagemine-1.3.1/tests/test_release_v12.py +36 -0
  186. phagemine-1.3.1/tests/test_sentinel_diagnostic.py +23 -0
  187. phagemine-1.3.1/tests/test_small_genome_fallback.py +43 -0
  188. phagemine-1.3.1/tests/test_stage_dag_pooled.py +41 -0
  189. phagemine-1.3.1/tests/test_step7b_provider_policy.py +11 -0
  190. phagemine-1.3.1/tests/test_step8_rna.py +50 -0
  191. phagemine-1.3.1/tests/test_step9a_performance.py +42 -0
  192. phagemine-1.3.1/tests/test_swissprot_metadata_cache.py +39 -0
  193. phagemine-1.3.1/tests/test_triage_report.py +17 -0
  194. phagemine-1.3.1/tests/test_validation.py +89 -0
  195. phagemine-1.3.1/tools/publish_verified_release.py +115 -0
  196. phagemine-1.3.1/tools/smoke_installed.py +72 -0
@@ -0,0 +1,15 @@
1
+ .git
2
+ .venv
3
+ .validation
4
+ .pytest_cache
5
+ **/__pycache__
6
+ **/*.pyc
7
+ dist
8
+ build
9
+ *.egg-info
10
+ evaluation
11
+ automated_benchmark_results
12
+ benchmark
13
+ diagnostics
14
+ results
15
+ scratch*
@@ -0,0 +1,21 @@
1
+ {
2
+ "title": "PhageMine",
3
+ "version": "1.3.1",
4
+ "upload_type": "software",
5
+ "license": "MIT",
6
+ "creators": [
7
+ {
8
+ "name": "Nnaemeka Emmanuel Nnadi",
9
+ "orcid": "https://orcid.org/0000-0002-8424-4859",
10
+ "affiliation": "Department of Microbiology, Plateau State University, Bokkos, Plateau State, Nigeria; Centre for Phage Biology and Therapeutics LTD/GTE, Jos, Plateau State, Nigeria"
11
+ }
12
+ ],
13
+ "keywords": [
14
+ "bacteriophage",
15
+ "genome annotation",
16
+ "comparative genomics",
17
+ "bioinformatics",
18
+ "INPHARED",
19
+ "PHANOTATE"
20
+ ]
21
+ }
@@ -0,0 +1,252 @@
1
+ # Changelog
2
+
3
+ ## 1.3.1 — 2026-10-07
4
+
5
+ - Add the PyPI publishing workflow, refresh the Bioconda recipe, and surface
6
+ packaged install paths in the README. No functional changes to annotation,
7
+ gene calling or evidence handling.
8
+
9
+ ## 1.3.0 — 2026-10-04
10
+
11
+ - Return a failing exit status for failed batch samples, reject empty inputs,
12
+ and stop Both before discovery when its annotation cohort is incomplete.
13
+
14
+ - Correct GUI completion checks, Both result loading and sample protein
15
+ selection; expose operational Doctor checks and provider readiness.
16
+ - Validate input types, reject duplicate uploads, support home paths, bind
17
+ the launcher to localhost and prepare symlink-free exports on demand.
18
+ - Add built-wheel execution, application-level GUI and real-caller Core
19
+ smoke checks to CI; include installation resources in source distributions.
20
+ - Retain the PHANOTATE pkg_resources compatibility dependency and document
21
+ Core-first onboarding and outstanding independent-validation gates.
22
+
23
+ - Improve multi-resource product naming, suppress identifier-only labels, and
24
+ prioritize complete 100%-identity reviewed alignments while retaining alternatives.
25
+ - Publish ten-genome full-system benchmarking and a sequence-bound Prokka naming
26
+ review; retain unresolved cases and avoid claims of accuracy superiority.
27
+
28
+ - Optional tRNAscan-SE and validated noncoding-RNA GFF3 imports with feature exports.
29
+ - Sequence-validated external GenBank annotation proposals with source/database provenance.
30
+ - Audited manual product, gene and note review in CLI and GUI with regenerated exports.
31
+ - Streaming reproducibility bundles, artifact consistency checks and sampled runtime profiling.
32
+ - Correct cross-genome, negative-strand and CDS-only benchmark imports.
33
+ - Docker build workflow and local development Bioconda recipe.
34
+ - Core-only GUI launcher test isolation.
35
+
36
+ - Offline database health/version/freshness diagnostics and per-run health reports.
37
+ - Explicit evidence-conflict and external-label review reports, including a GUI filter.
38
+ - Opt-in checksum-validated persistent reuse for single-genome evidence searches.
39
+ - Curator-provenance-bearing benchmark CLI with unresolved review queues and auditable adjudication.
40
+ - Correct tRNAscan-SE help-banner probe and modern-Python container dependency cleanup.
41
+
42
+ - Accept empty zero-hit tRNAscan-SE tables only with explicit successful-scan statistics.
43
+
44
+ ## 1.2.0 (finalization)
45
+
46
+ - Fixed IUPAC ambiguity-code handling and provider-specific sequence
47
+ normalization with auditable provenance and controlled provider outcomes.
48
+ - Established PHANOTATE as the sole primary DNA caller; Pyrodigal and
49
+ Prodigal-gv remain available for corroboration and conflict detection only.
50
+ - Added deterministic NO_REVIEW, LOW_PRIORITY_REVIEW,
51
+ MODERATE_REVIEW, and HIGH_PRIORITY_REVIEW tiers while retaining detailed
52
+ underlying conflict fields.
53
+ - Added a reproducible PHANOTATE-versus-PhageMine structural benchmark.
54
+ - Integrated validated INPHARED nearest-reference genomic context into
55
+ single-genome and cohort workflows, with Mash screening, optional
56
+ bidirectional BLASTN similarity, resource manifests, and conservative
57
+ taxonomy interpretation.
58
+
59
+ ## 1.1.0
60
+
61
+ - Promote the scientifically hardened development line to the PhageMine 1.1.0
62
+ package release while retaining functional-fusion rules version 1.8 as an
63
+ independent annotation-rule version.
64
+
65
+ - Refine conservative phage functional evidence fusion, including stronger
66
+ source agreement requirements, safer product normalization, curated phage
67
+ anchors, conflict handling, and explicit review states.
68
+
69
+ - Prevent organism-specific or source-phage locus labels from being
70
+ transferred unsafely into final product names while preserving supporting
71
+ homolog and family evidence.
72
+
73
+ - Harden mining and quality-control evidence accounting so short-ORF QC
74
+ records are idempotent and annotation-evidence totals remain reproducible
75
+ and auditable.
76
+
77
+ - Run validated INPHARED nearest-reference whole-genome comparison
78
+ automatically in `annotate`, `run`, and batch annotation workflows when the
79
+ INPHARED resource is READY.
80
+
81
+ - Preserve the existing cohort-level INPHARED comparison in batch discovery
82
+ workflows while keeping PMFDB/discovery analysis separate from ordinary
83
+ `annotate`.
84
+
85
+ - Add an explicit INPHARED pipeline stage and report unavailable resources as
86
+ SKIPPED rather than silently omitting the comparison.
87
+
88
+ - Make INPHARED comparative-report insertion idempotent so resumed or repeated
89
+ report updates do not duplicate the nearest-reference section.
90
+
91
+ - Correct ordinary batch annotation to invoke the annotation workflow rather
92
+ than the broader single-genome `run` workflow.
93
+
94
+ - Extend regression coverage for INPHARED workflow consumption, batch command
95
+ semantics, comparative-report idempotency, and progress reporting.
96
+
97
+ ## 1.0.6
98
+
99
+ - Separate domain evidence notes from final product names; organism-specific
100
+ Pfam descriptions remain in raw evidence and cannot become phage products.
101
+ - Label functional strength as rule-based and explicitly uncalibrated.
102
+ - Remove the universal 70% genus rule, abstain from numerical-taxonomy
103
+ interpretation for partial/poorly aligned sequences, and stop describing the
104
+ internal BLASTN calculation as VIRIDIC output.
105
+ - Mark hallmark results as annotation-text screening rather than independent
106
+ profile validation or genome-completeness estimates.
107
+ - Add truth-set benchmark inputs and calibration-ready performance outputs.
108
+ - Add reproducible environment metadata, declared plotting/test dependencies,
109
+ package metadata, and automated multi-platform checks.
110
+
111
+ ## 1.0.5
112
+
113
+ - Isolate tests from the persistent user database registry and make registry
114
+ writes atomic with a recoverable backup.
115
+ - Add `phagemine doctor --deep` to open and validate the registered PHROGs
116
+ MMseqs2 and PyHMMER databases, rather than inferring readiness from filenames.
117
+ - Report MMseqs2 and PyHMMER PHROGs backend status in normal run progress.
118
+ - Promote repeated, concordant, high-coverage annotated PHROGs profile hits
119
+ over a single unannotated profile and add Ijeoma-derived HNH/terminase
120
+ regression cases.
121
+ - Keep functional uncertainty separate from gene-call confidence; exact
122
+ PHANOTATE/Prodigal coordinate and strand agreement is now reported
123
+ consistently and is never converted into a possible-false-ORF flag.
124
+ - Add gene-call confidence and independent functional/gene-call review fields
125
+ to researcher-facing annotation tables.
126
+ - Propagate `--threads` from `phagemine batch` into every single-genome run and
127
+ repair nested progress-stage reporting.
128
+
129
+ ## 1.0.4
130
+
131
+ - Add sensitive PHROGs profile-HMM searching through PyHMMER while retaining
132
+ the existing MMseqs2 search.
133
+ - Extract and register the existing `all_phrogs.h3m` from the checksum-pinned
134
+ Pharokka PHROGs distribution; no additional database download is required.
135
+ - Deduplicate identical PHROG calls across MMseqs2 and PyHMMER so one
136
+ biological source cannot be counted twice, while recording backend
137
+ corroboration and search-specific statistics.
138
+ - Add `phagemine databases attach-phrogs-hmm` for attaching an already
139
+ installed Pharokka `all_phrogs.h3m` to an existing PHROGs registration.
140
+ - Extend PHROGs refresh/resume to replace older PHROGs evidence rather than
141
+ silently duplicating it, and allow targeted profile-HMM refreshes without
142
+ rerunning gene prediction or unrelated database searches.
143
+ - Report PyHMMER and sensitive PHROGs profile-search readiness explicitly in
144
+ `phagemine doctor`.
145
+
146
+ ## 1.0.3
147
+
148
+ - Replace the invalid `1 - Mash distance` pseudo-similarity with Mash-only
149
+ candidate screening followed by VIRIDIC-compatible bidirectional BLASTN
150
+ whole-genome intergenomic similarity.
151
+ - Report query/reference aligned fractions, genome-length ratio, explicit
152
+ species/genus thresholds, threshold provenance, and cautious numerical-
153
+ taxonomy interpretations.
154
+ - Add the completed INPHARED numerical-taxonomy table and downloads to the
155
+ primary `report.html` after comparative discovery finishes.
156
+ - Add simple Prokka-style `gene`, `product`, `EC_number`, evidence-source and
157
+ biotechnology-relevance columns. Gene symbols and EC numbers are transferred
158
+ only from explicit, strong, non-conflicting evidence.
159
+ - Normalize defensible phage terms including major capsid, Hoc-like head
160
+ decoration, head-scaffolding, terminase, endolysin and helicase products;
161
+ suppress unsupported fungal, apoptosis and bacterial-envelope labels.
162
+ - Identify Hoc-like decoration proteins as potential capsid-display candidates
163
+ in a separate application note that explicitly requires experimental
164
+ confirmation.
165
+ - Correct the progress denominator for runs that include PHANOTATE/Prodigal
166
+ reconciliation and alternative-ORF adjudication.
167
+ - Allow Core `run` to complete without invoking MMseqs2 discovery when no
168
+ comparative resources are registered.
169
+
170
+ ## 1.0.2
171
+
172
+ - Simplify the primary annotation table to protein ID, coordinates, strand,
173
+ length, plain-language classification, proposed function, confidence, best
174
+ evidence, and a review flag. Detailed evidence remains in the dedicated
175
+ classification and protein-detail outputs.
176
+ - Add `annotated_proteins.faa` with the proposed product, coordinates, strand,
177
+ and confidence in every FASTA header.
178
+ - Make full single-genome `run` perform PHANOTATE/Prodigal comparison and write
179
+ explicit gene-call confidence and review tables without silently deleting
180
+ caller-specific ORFs.
181
+ - Place results in `./<input stem>_phagemine_results` when `--output` is not
182
+ supplied; an explicit output path continues to take precedence.
183
+ - Add a duplicate-collapsed INPHARED summary and distinguish exact sketch
184
+ matches from nearest-neighbour screens while retaining the accession-level
185
+ audit table.
186
+ - Extend annotation comparison imports to Pharokka, Phold, multiPhATE2, and
187
+ Prokka, with separate gene-model and product-name comparisons.
188
+ - Add an explicit six-tier evidence hierarchy to the detailed classification
189
+ output; the hierarchy contains no structural-search dependency.
190
+ - Add conservative hallmark-system checks and a single prioritized
191
+ `annotation_review.tsv` combining function conflicts, disputed gene calls,
192
+ and hallmark components not established by current evidence.
193
+ - Confirm zero-distance INPHARED matches by built-in exact nucleotide,
194
+ reverse-complement, and rotation-equivalence checks when the reference
195
+ sequence is available; do not infer ANI or taxonomy from Mash.
196
+ - Record checksummed external-tool inputs and hallmark-name comparisons in the
197
+ reproducible annotation benchmark output.
198
+ - Do not infer or report phage lifestyle.
199
+
200
+ ## 1.0.1
201
+
202
+ - Synchronize the release version with the post-1.0.0 database installer and
203
+ INPHARED functionality published on GitHub.
204
+ - Make executable validation fail closed: a binary is `READY` only when its
205
+ version/help probe exits successfully. Dynamic-linker failures and other
206
+ runtime errors are now reported as `BROKEN` with their diagnostic text.
207
+ - Make `phagemine doctor` return a non-zero process status when a required
208
+ production executable is missing or broken; Prodigal and table2asn remain
209
+ optional for the normal annotation and pre-submission workflows.
210
+ - Distinguish an installed-but-blocked database from a database that is not
211
+ installed, and recommend executable repair instead of unnecessary database
212
+ reinstallation.
213
+ - Load unknown future registry resource types without crashing access to all
214
+ existing registered databases.
215
+ - Require Mash in the Bioconda run dependencies for whole-genome INPHARED
216
+ comparison.
217
+
218
+ - Add `phagemine databases install pfam`, `vogdb`, `swissprot`, `phrogs`,
219
+ `pmfdb`, and `inphared`.
220
+ - Add `phagemine databases install --all` with resumable downloads, published
221
+ checksum verification, database preparation, manifests, registration, and
222
+ fail-closed readiness validation.
223
+ - Add post-install database guidance to top-level help, the Bioconda post-link
224
+ template, and `phagemine doctor` recommendations.
225
+ - Build PMFDB and the whole-genome Mash resource from the checksum-pinned
226
+ INPHARED 7 April 2026 release, with conservative annotation semantics,
227
+ resource QC, provenance, automatic discovery use, and nearest-phage outputs.
228
+
229
+ ## 1.0.0
230
+
231
+ The first stable public release. This release provides evidence-based
232
+ single-genome annotation, batch annotation, Discovery Mode, and Both Mode;
233
+ PHANOTATE integration; Pfam/VOGDB/Swiss-Prot/PHROGs evidence; conservative
234
+ evidence fusion and classification; genomic context/modules; candidate
235
+ ranking; PMF clustering and recurrence; PMFDB validation; discovery ranking;
236
+ publication figures with source data; HTML reports; protein/CDS retrieval;
237
+ GenBank pre-submission packaging; resume/checkpointing; and evidence reuse
238
+ with provenance.
239
+
240
+ The release does not bundle external evidence databases, PMFDB, or research
241
+ datasets. Unknown and no-match states are not interpreted as novelty.
242
+
243
+ ## 1.0.0rc1 (historical)
244
+
245
+ This release candidate freezes the v1.0 computational workflow. It provides
246
+ the lightweight PhageMine Core FASTA-to-report workflow, optional evidence
247
+ integration, PMF/PMFDB integration when explicitly requested, local GenBank
248
+ pre-submission validation, and submission revision from an explicit correction
249
+ file without rerunning biological analysis.
250
+
251
+ The release does not bundle external evidence databases, PMFDB, or research
252
+ datasets. See `docs/limitations.md` for interpretation and validation limits.
@@ -0,0 +1,18 @@
1
+ cff-version: 1.2.0
2
+ title: PhageMine
3
+ version: 1.3.1
4
+ type: software
5
+ message: "If you use PhageMine, please cite this release."
6
+ authors:
7
+ - family-names: Nnadi
8
+ given-names: Nnaemeka Emmanuel
9
+ orcid: https://orcid.org/0000-0002-8424-4859
10
+ affiliation: Department of Microbiology, Plateau State University, Bokkos, Plateau State, Nigeria; Centre for Phage Biology and Therapeutics LTD/GTE, Jos, Plateau State, Nigeria
11
+ license: MIT
12
+ repository-code: "https://github.com/emmannaemeka/PhageMine"
13
+ url: "https://github.com/emmannaemeka/PhageMine"
14
+ keywords:
15
+ - bacteriophage
16
+ - genome annotation
17
+ - bioinformatics
18
+ date-released: 2026-10-07
@@ -0,0 +1,27 @@
1
+ # syntax=docker/dockerfile:1.7
2
+ FROM mambaorg/micromamba:2.3.2
3
+
4
+ LABEL org.opencontainers.image.title="PhageMine" \
5
+ org.opencontainers.image.source="https://github.com/emmannaemeka/PhageMine" \
6
+ org.opencontainers.image.version="1.3.0.dev0"
7
+
8
+ COPY --chown=$MAMBA_USER:$MAMBA_USER environment.yml /tmp/environment.yml
9
+ # The optional CA secret is for managed environments with a trusted proxy.
10
+ # Ordinary Docker builds use the base image's public CA store.
11
+ RUN --mount=type=secret,id=proxy_ca \
12
+ if [ -f /run/secrets/proxy_ca ]; then export SSL_CERT_FILE=/run/secrets/proxy_ca PIP_CERT=/run/secrets/proxy_ca CURL_CA_BUNDLE=/run/secrets/proxy_ca CONDA_SSL_VERIFY=/run/secrets/proxy_ca; fi; \
13
+ micromamba install --yes --name base --file /tmp/environment.yml && \
14
+ micromamba clean --all --yes
15
+
16
+ COPY --chown=$MAMBA_USER:$MAMBA_USER . /opt/phagemine
17
+ WORKDIR /opt/phagemine
18
+ ARG MAMBA_DOCKERFILE_ACTIVATE=1
19
+ RUN --mount=type=secret,id=proxy_ca \
20
+ if [ -f /run/secrets/proxy_ca ]; then export PIP_CERT=/run/secrets/proxy_ca; fi; \
21
+ python -m pip install --no-cache-dir . && \
22
+ python -m pip uninstall --yes textwrap3 backports.tempfile && python -m pip check
23
+
24
+ ENV PHAGEMINE_REGISTRY_PATH=/data/resources.json
25
+ WORKDIR /data
26
+ ENTRYPOINT ["/usr/local/bin/_entrypoint.sh", "phagemine"]
27
+ CMD ["--help"]
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 PhageMine contributors
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,9 @@
1
+ include environment.yml CITATION.cff CHANGELOG.md RELEASE_VALIDATION.md
2
+ include .zenodo.json
3
+ include Dockerfile .dockerignore
4
+ recursive-include packaging *.yaml *.sh
5
+ recursive-include examples *.fasta *.json
6
+ recursive-include docs *.md *.png *.svg *.pdf *.tsv *.py
7
+ include RESEARCHER_VALIDATION.md
8
+ include tools/smoke_installed.py
9
+ include tools/publish_verified_release.py
@@ -0,0 +1,171 @@
1
+ Metadata-Version: 2.4
2
+ Name: phagemine
3
+ Version: 1.3.1
4
+ Summary: Evidence-first phage annotation and discovery mining
5
+ Author: Nnaemeka Emmanuel Nnadi
6
+ License: MIT License
7
+
8
+ Copyright (c) 2026 PhageMine contributors
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/emmannaemeka/PhageMine
29
+ Project-URL: Repository, https://github.com/emmannaemeka/PhageMine
30
+ Project-URL: Issues, https://github.com/emmannaemeka/PhageMine/issues
31
+ Project-URL: Changelog, https://github.com/emmannaemeka/PhageMine/blob/main/CHANGELOG.md
32
+ Project-URL: Documentation, https://github.com/emmannaemeka/PhageMine/blob/main/docs/installation.md
33
+ Keywords: bacteriophage,phage,genome annotation,comparative genomics,bioinformatics,viral genomics,PHANOTATE,PHROGs,INPHARED
34
+ Classifier: Development Status :: 5 - Production/Stable
35
+ Classifier: Intended Audience :: Science/Research
36
+ Classifier: License :: OSI Approved :: MIT License
37
+ Classifier: Programming Language :: Python :: 3
38
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
39
+ Requires-Python: >=3.10
40
+ Description-Content-Type: text/markdown
41
+ License-File: LICENSE
42
+ Requires-Dist: biopython<2,>=1.85
43
+ Requires-Dist: psutil<8,>=5
44
+ Requires-Dist: matplotlib<4,>=3.7
45
+ Requires-Dist: pyhmmer<0.13,>=0.10
46
+ Requires-Dist: pyrodigal==3.7.1
47
+ Requires-Dist: pyrodigal-gv==0.3.2
48
+ Requires-Dist: pyrodigal-rv==0.1.0
49
+ Provides-Extra: gui
50
+ Requires-Dist: streamlit<2,>=1.49; extra == "gui"
51
+ Provides-Extra: test
52
+ Requires-Dist: biopython<2,>=1.85; extra == "test"
53
+ Requires-Dist: build<2,>=1; extra == "test"
54
+ Requires-Dist: pytest<10,>=8; extra == "test"
55
+ Requires-Dist: tomli; python_version < "3.11" and extra == "test"
56
+ Dynamic: license-file
57
+
58
+ # PhageMine: Bacteriophage Genome Annotation and Comparative Genomics
59
+
60
+ [![CI](https://github.com/emmannaemeka/PhageMine/actions/workflows/ci.yml/badge.svg)](https://github.com/emmannaemeka/PhageMine/actions/workflows/ci.yml)
61
+ [![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg)](https://bioconda.github.io/recipes/phagemine/README.html)
62
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.22794629.svg)](https://doi.org/10.5281/zenodo.22794629)
63
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
64
+
65
+ **PhageMine** is an open-source bioinformatics pipeline for bacteriophage genome
66
+ annotation, functional evidence integration and comparative genomics. It combines
67
+ phage-focused gene prediction with protein sequence and profile searches, links
68
+ functional assignments to their supporting evidence, and produces annotated
69
+ sequences, evidence tables and an HTML report.
70
+
71
+ PhageMine uses PHANOTATE for protein-coding gene prediction; PHROGs, VOGDB, Pfam
72
+ and Swiss-Prot for functional evidence; and INPHARED references for comparative
73
+ genomic context. It is designed for researchers working in phage genomics,
74
+ bacteriophage genome annotation, viral genomics and related bioinformatics
75
+ workflows.
76
+
77
+ ## What it does
78
+
79
+ - Predicts protein-coding genes with PHANOTATE.
80
+ - Uses PHROGs, VOGDB, Pfam and Swiss-Prot to assess protein function.
81
+ - Reports supporting evidence, conflicting assignments and unknown functions.
82
+ - Processes individual genomes or genome collections.
83
+ - Groups related proteins into families and compares genomes with INPHARED references.
84
+ - Exports GFF3, protein FASTA and GenBank preparation files.
85
+
86
+ ## Install
87
+
88
+ The current stable release is [v1.3.1](https://github.com/emmannaemeka/PhageMine/releases/tag/v1.3.1).
89
+ Python 3.10 or later is required.
90
+
91
+ Install from Bioconda, which brings the external analysis tools with it:
92
+
93
+ ```bash
94
+ conda create --name phagemine --channel conda-forge --channel bioconda phagemine
95
+ conda activate phagemine
96
+ phagemine doctor
97
+ ```
98
+
99
+ Or from PyPI, with the external tools installed separately:
100
+
101
+ ```bash
102
+ pip install phagemine
103
+ ```
104
+
105
+ To install from source instead:
106
+
107
+ ```bash
108
+ git clone --branch v1.3.1 --depth 1 https://github.com/emmannaemeka/PhageMine.git
109
+ cd PhageMine
110
+ conda env create --file environment.yml
111
+ conda activate phagemine
112
+ python -m pip install .
113
+ phagemine doctor
114
+ ```
115
+
116
+ Install the databases before running functional annotation:
117
+
118
+ ```bash
119
+ phagemine databases install --all
120
+ ```
121
+
122
+ This installs PHROGs, Swiss-Prot, Pfam and VOGDB, plus PMFDB and INPHARED
123
+ comparative references. Prepared databases require additional disk space beyond
124
+ the download sizes.
125
+
126
+ See the [installation guide](docs/installation.md) for platform requirements
127
+ and troubleshooting.
128
+
129
+ ## Annotate a genome
130
+
131
+ Supply a single-genome nucleotide FASTA file:
132
+
133
+ ```bash
134
+ phagemine run genome.fasta --output results/genome --threads 8
135
+ ```
136
+
137
+ Open `results/genome/report.html` to browse the results. The output directory
138
+ also contains `annotation.tsv`, `genes.gff3`, `proteins.faa` and supporting
139
+ evidence files.
140
+
141
+ To check the installation with the bundled example:
142
+
143
+ ```bash
144
+ phagemine run examples/demo_phage.fasta --output results/example
145
+ ```
146
+
147
+ Installed databases are detected automatically. Without them, the example
148
+ checks gene prediction and report generation; functional evidence is unavailable.
149
+
150
+ Run `phagemine --help` for all commands and `phagemine run --help` for annotation
151
+ options.
152
+
153
+ ## Reading the results
154
+
155
+ Product names describe the function supported by the available evidence.
156
+ Proteins without a supported function remain hypothetical or are identified as
157
+ conserved proteins of unknown function. Gene symbols, protein products and
158
+ locus identifiers are reported separately.
159
+
160
+ PhageMine is research software. Functional predictions require review,
161
+ and confidence labels describe evidence strength rather than calibrated
162
+ probabilities. See the [limitations](docs/limitations.md) for interpretation.
163
+
164
+ ## Citation and support
165
+
166
+ Citation information is available in [CITATION.cff](CITATION.cff) and the
167
+ [archived release](https://doi.org/10.5281/zenodo.22794629).
168
+
169
+ Report bugs or request features through
170
+ [GitHub Issues](https://github.com/emmannaemeka/PhageMine/issues).
171
+ PhageMine is distributed under the [MIT licence](LICENSE).
@@ -0,0 +1,114 @@
1
+ # PhageMine: Bacteriophage Genome Annotation and Comparative Genomics
2
+
3
+ [![CI](https://github.com/emmannaemeka/PhageMine/actions/workflows/ci.yml/badge.svg)](https://github.com/emmannaemeka/PhageMine/actions/workflows/ci.yml)
4
+ [![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg)](https://bioconda.github.io/recipes/phagemine/README.html)
5
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.22794629.svg)](https://doi.org/10.5281/zenodo.22794629)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7
+
8
+ **PhageMine** is an open-source bioinformatics pipeline for bacteriophage genome
9
+ annotation, functional evidence integration and comparative genomics. It combines
10
+ phage-focused gene prediction with protein sequence and profile searches, links
11
+ functional assignments to their supporting evidence, and produces annotated
12
+ sequences, evidence tables and an HTML report.
13
+
14
+ PhageMine uses PHANOTATE for protein-coding gene prediction; PHROGs, VOGDB, Pfam
15
+ and Swiss-Prot for functional evidence; and INPHARED references for comparative
16
+ genomic context. It is designed for researchers working in phage genomics,
17
+ bacteriophage genome annotation, viral genomics and related bioinformatics
18
+ workflows.
19
+
20
+ ## What it does
21
+
22
+ - Predicts protein-coding genes with PHANOTATE.
23
+ - Uses PHROGs, VOGDB, Pfam and Swiss-Prot to assess protein function.
24
+ - Reports supporting evidence, conflicting assignments and unknown functions.
25
+ - Processes individual genomes or genome collections.
26
+ - Groups related proteins into families and compares genomes with INPHARED references.
27
+ - Exports GFF3, protein FASTA and GenBank preparation files.
28
+
29
+ ## Install
30
+
31
+ The current stable release is [v1.3.1](https://github.com/emmannaemeka/PhageMine/releases/tag/v1.3.1).
32
+ Python 3.10 or later is required.
33
+
34
+ Install from Bioconda, which brings the external analysis tools with it:
35
+
36
+ ```bash
37
+ conda create --name phagemine --channel conda-forge --channel bioconda phagemine
38
+ conda activate phagemine
39
+ phagemine doctor
40
+ ```
41
+
42
+ Or from PyPI, with the external tools installed separately:
43
+
44
+ ```bash
45
+ pip install phagemine
46
+ ```
47
+
48
+ To install from source instead:
49
+
50
+ ```bash
51
+ git clone --branch v1.3.1 --depth 1 https://github.com/emmannaemeka/PhageMine.git
52
+ cd PhageMine
53
+ conda env create --file environment.yml
54
+ conda activate phagemine
55
+ python -m pip install .
56
+ phagemine doctor
57
+ ```
58
+
59
+ Install the databases before running functional annotation:
60
+
61
+ ```bash
62
+ phagemine databases install --all
63
+ ```
64
+
65
+ This installs PHROGs, Swiss-Prot, Pfam and VOGDB, plus PMFDB and INPHARED
66
+ comparative references. Prepared databases require additional disk space beyond
67
+ the download sizes.
68
+
69
+ See the [installation guide](docs/installation.md) for platform requirements
70
+ and troubleshooting.
71
+
72
+ ## Annotate a genome
73
+
74
+ Supply a single-genome nucleotide FASTA file:
75
+
76
+ ```bash
77
+ phagemine run genome.fasta --output results/genome --threads 8
78
+ ```
79
+
80
+ Open `results/genome/report.html` to browse the results. The output directory
81
+ also contains `annotation.tsv`, `genes.gff3`, `proteins.faa` and supporting
82
+ evidence files.
83
+
84
+ To check the installation with the bundled example:
85
+
86
+ ```bash
87
+ phagemine run examples/demo_phage.fasta --output results/example
88
+ ```
89
+
90
+ Installed databases are detected automatically. Without them, the example
91
+ checks gene prediction and report generation; functional evidence is unavailable.
92
+
93
+ Run `phagemine --help` for all commands and `phagemine run --help` for annotation
94
+ options.
95
+
96
+ ## Reading the results
97
+
98
+ Product names describe the function supported by the available evidence.
99
+ Proteins without a supported function remain hypothetical or are identified as
100
+ conserved proteins of unknown function. Gene symbols, protein products and
101
+ locus identifiers are reported separately.
102
+
103
+ PhageMine is research software. Functional predictions require review,
104
+ and confidence labels describe evidence strength rather than calibrated
105
+ probabilities. See the [limitations](docs/limitations.md) for interpretation.
106
+
107
+ ## Citation and support
108
+
109
+ Citation information is available in [CITATION.cff](CITATION.cff) and the
110
+ [archived release](https://doi.org/10.5281/zenodo.22794629).
111
+
112
+ Report bugs or request features through
113
+ [GitHub Issues](https://github.com/emmannaemeka/PhageMine/issues).
114
+ PhageMine is distributed under the [MIT licence](LICENSE).