Skip to content

initial commit to support archaeal genome annotations - #452

Open
xvazquezc wants to merge 6 commits into
oschwengers:mainfrom
xvazquezc:main
Open

initial commit to support archaeal genome annotations#452
xvazquezc wants to merge 6 commits into
oschwengers:mainfrom
xvazquezc:main

Conversation

@xvazquezc

Copy link
Copy Markdown

There is a lot to test, esp. regarding the bakta.db creation and the expert proteins.

From the CLI point of view the main change is the addition of the --organism flag that allows you to chose the set of parameters for bacteria or archaea. For compatibility, the bacteria mode will be run and the code executed should be the same. In a related note, the code should ignore the --gram flag when running with --organism archaea if you indicate it by mistake.

On the side to support archaea annotations, so far:

  • the db scripts so alternate dbs called <dbname>-archaea are created for this purpose (again, the bacterial ones have no suffix for compatibility)
  • dedicated profiles for rRNAs, Rfam, tRNAs (also support for introns in them)
  • ori detection will be through Ori-Finder-Arch, although it mainly works just with complete genomes
  • custom sORF start codons
  • Pyl support in addition to SeC
  • removal of tmRNA check (not proven to exist in archaea)

I tested some of the smaller db creation but I couldn't get some of the Rfam ones to work (the ones that use mysql during creation).

Cheers,
Xabi

…rated arch dbs, rRNA profiles, Rfam, tRNAs (with introns), ori detection with Ori-Finder-Arch, custom sORF start codons, Pyl support (prelim), no tmRNA (not proven to exist in arch)
Copilot AI lite review requested due to automatic review settings September 1, 2026 05:31

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Several DB build scripts use an undefined taxa variable after introducing --taxon, which will cause database construction to fail at runtime.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR introduces an archaeal annotation profile to Bakta by adding a domain selector to the CLI/runtime and wiring domain-specific databases, RNA models, recoding rules, and oriC prediction (Ori-Finder-Arch) while aiming to keep the default bacterial behavior compatible.

Changes:

  • Add domain selection (--domain) and propagate it through configuration, DB checks, and protein/expert-system handling.
  • Add archaeal-specific assets and predictors: rRNA/ncRNA/tRNA profile selection (including tRNA introns), Sec/Pyl recoding, and Ori-Finder-Arch oriC prediction.
  • Update database build scripts and packaging/docs to support a dual-profile database layout and installation of Ori-Finder-Arch.
File summaries
File Description
test/test_organism_profiles.py Adds regression tests for archaeal domain selection and key profile behaviors.
setup.py Updates package description/keywords to include archaea.
scripts/install-ori-finder-arch.sh Adds installer for Ori-Finder-Arch binary with SHA-256 verification.
README.md Updates user-facing documentation for archaeal profile and CLI help snippet.
environment.yml Adds MEME/HMMER dependencies and pytest tooling.
docs/archaeal-support-plan.md Adds tracking/acceptance plan for archaeal support work.
Dockerfile Installs Ori-Finder-Arch during image build.
db-scripts/init-ups-ips.py Extends UPS/IPS init to support multiple root taxa via --taxon.
db-scripts/init-pscc.py Extends PSCC init to support multiple root taxa via --taxon.
db-scripts/init-psc.py Extends PSC init to support multiple root taxa via --taxon.
db-scripts/buid-db.sh Builds dual-profile DB assets (bacteria + archaea) and archaeal expert DB.
db-scripts/annotate-swissprot.py Extends SwissProt annotation to support multiple root taxa via --taxon.
bakta/utils.py Adds --domain CLI option and updates dependency gating for archaeal profile.
bakta/proteins.py Adds --domain handling for protein bulk annotation and domain-aware DB check.
bakta/main.py Routes DB checks and origin prediction/expert systems based on selected domain.
bakta/io/insdc.py Preserves Ori-Finder-Arch provenance/attributes and supports tRNA intron locations.
bakta/io/gff.py Emits tRNA intron features and preserves oriC provenance/attributes in GFF3.
bakta/features/tm_rna.py Makes tmRNA labels domain-aware via domain profile.
bakta/features/t_rna.py Switches tRNAscan-SE mode for archaea and records intron coordinates.
bakta/features/s_orf.py Applies domain-specific sORF start codon policy.
bakta/features/r_rna.py Adds domain-specific rRNA model profiles and selects DB accordingly.
bakta/features/ori_arch.py Introduces Ori-Finder-Arch integration and parsing into Bakta features.
bakta/features/orf.py Selects AntiFam DB by domain.
bakta/features/nc_rna.py Selects ncRNA gene CM DB by domain.
bakta/features/nc_rna_region.py Selects ncRNA region CM DB by domain.
bakta/features/cds.py Extends translational exception handling to support Pyl as well as Sec.
bakta/db.py Makes DB validation domain-aware and adds archaeal required-file set.
bakta/constants.py Adds domain constants and explicit domain profiles for key policies.
bakta/config.py Tracks domain in global config and normalizes gram handling by domain.
.gitignore Ignores local db/ directory artifacts.
Review details
  • Files reviewed: 29/30 changed files
  • Comments generated: 7
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread db-scripts/init-psc.py
Comment thread db-scripts/init-pscc.py
Comment thread db-scripts/init-ups-ips.py
Comment thread db-scripts/annotate-swissprot.py
Comment thread bakta/features/ori_arch.py Outdated
Comment thread bakta/utils.py
Comment thread bakta/features/s_orf.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants