Snakemake workflow to generate QC metric tables for gff3 or gtf formatted genome annotation files.
-
Completeness (BUSCO) — assessed with compleasm at both the protein and transcript level. The completeness score is
busco_score = 1 - (missing / total)where
missingis the number of Missing BUSCOs andtotalis the number of BUSCOs in the lineage database. Protein level runscompleasm protein; transcript level runscompleasm runon the extracted transcript FASTA (miniprot aligns the BUSCO orthologs to the transcripts).
Additional metric families (structural counts, feature-length distributions, coding-integrity / UTR checks) will be added as sibling rule files.
config/config.yaml workflow settings
annotations.tsv samplesheet: annotations to QC (+ their genomes)
workflow/Snakefile entry point
workflow/rules/*.smk rules (extract_sequences, compleasm)
workflow/envs/*.yml per-tool conda environments
workflow/scripts/ helper scripts
profiles/slurm/config.yaml per-rule threads/resources
my_runner.sh SLURM submission script (Cannon)
-
annotations.tsv— one row per annotation, tab-separated:column meaning annotation_idshort unique label (used in output) annotation_pathpath to the gff3 or gtf annotation genome_pathgenome FASTA the annotation was built on Protein-level BUSCO requires CDS features in the annotation.
-
config/config.yamlbusco_lineage— BUSCO clade name, e.g.tetrapoda(seecompleasm list --remote)compleasm_odb— OrthoDB release (compleasm 0.2.8 default:odb12)extract_tool—gffread(default) oragatbusco_downloads_dir— where the lineage database is stored/reused
Requires a global cannon Snakemake profile in $HOME/.config/snakemake/cannon/
and a conda environment containing Snakemake (referenced in my_runner.sh).
sbatch my_runner.shresults/qc/busco_completeness.tsv — one row per annotation_id × level:
annotation_id level lineage N_total S D F I M complete_frac missing_frac busco_score