Skip to main content
ClaudeWave
EN, English
Skill382 repo starsupdated 5d ago

busco-status-interpretation

This skill provides guidance on interpreting BUSCO completeness assessment results, including why duplicated orthologs count toward completeness, how to parse output files, and strategies for comparing completeness across different proteomes and genomes. Use when running BUSCO quality control assessments, comparing genome or transcriptome assemblies, or preparing completeness metrics for publication, particularly when working with polyploid organisms or genomes with legitimate gene duplications that require correct interpretation.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/jaechang-hits/SciAgent-Skills /tmp/busco-status-interpretation && cp -r /tmp/busco-status-interpretation/skills/genomics-bioinformatics/qc/busco-status-interpretation ~/.claude/skills/busco-status-interpretation
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# BUSCO Status Interpretation Guide

## Overview

BUSCO (Benchmarking Universal Single-Copy Orthologs) is the standard tool for assessing genome, transcriptome, and proteome completeness by searching for conserved single-copy orthologs from the OrthoDB database. Correct interpretation of BUSCO output is essential for genome quality assessment, comparative genomics, and publication-ready reporting. The most common analytical error is excluding Duplicated BUSCOs from completeness counts, which artificially penalizes polyploid organisms and assemblies with legitimate gene duplications.

This guide covers BUSCO status categories, output file formats, parsing strategies, cross-proteome comparisons, lineage dataset selection, and common pitfalls in BUSCO interpretation.

---

## Key Concepts

### BUSCO Status Categories

BUSCO assigns each searched ortholog one of four statuses:

| Status | Abbreviation | Meaning | Count as Complete? |
|---|---|---|---|
| **Complete (single-copy)** | S | Found exactly once in the genome/proteome | YES |
| **Duplicated** | D | Found more than once (multiple copies) | YES |
| **Fragmented** | F | Partial match, likely incomplete gene model | NO |
| **Missing** | M | Not detected at all | NO |

The headline completeness percentage (C%) reported by BUSCO is always S + D combined. Individual category counts (S, D, F, M) are reported for transparency and should be included in publications.

### Why Duplicated Equals Complete

A Duplicated BUSCO means the ortholog IS present and fully intact in the genome or proteome -- it simply exists in more than one copy. This can occur through:

- Whole-genome duplication (common in plants, fish, and amphibians)
- Tandem or segmental duplication events
- Recent polyploidy
- Proteomes containing multiple isoforms per gene

The gene is not incomplete or absent. Excluding Duplicated BUSCOs from completeness counts would incorrectly penalize polyploid organisms, recently duplicated genomes, or proteomes that include isoform-level annotations. The correct completeness formula is always:

```
Completeness (%) = (Complete_single_copy + Duplicated) / Total_BUSCOs * 100
```

A high Duplicated fraction is not inherently problematic -- it is biologically informative. For example, the zebrafish genome (a teleost with an ancient whole-genome duplication) routinely shows 15-25% Duplicated BUSCOs, and this is expected.

### BUSCO Output Formats

BUSCO produces two primary output formats relevant to downstream analysis:

**Short summary format** -- a single-line notation found in `short_summary.*.txt`:

```
C:95.0%[S:90.0%,D:5.0%],F:3.0%,M:2.0%,n:255
```

Where C = Complete (S + D), S = Single-copy, D = Duplicated, F = Fragmented, M = Missing, and n = total BUSCO groups searched.

**Full table format** -- a TSV file (`full_table.tsv`) with per-ortholog results containing columns for BUSCO ID, Status, Sequence, Score, and Length. This file enables detailed per-gene analysis, filtering, and cross-species comparisons.

---

## Decision Framework

When deciding whether and how to use BUSCO for quality assessment:

```
Question: What are you assessing?
├── Genome assembly completeness
│   ├── Draft assembly → Run BUSCO in genome mode
│   └── Polished/final assembly → Run BUSCO in genome mode, report in publication
├── Transcriptome completeness
│   └── De novo assembly → Run BUSCO in transcriptome mode (expect higher D%)
├── Proteome / annotation completeness
│   └── Predicted proteins → Run BUSCO in protein mode
└── Comparing multiple assemblies
    └── Same lineage dataset across all → Use compare_proteome_completeness pattern
```

### Lineage Dataset Selection

| Organism type | Recommended lineage | Example dataset | Notes |
|---|---|---|---|
| Broad eukaryotic screen | eukaryota | `eukaryota_odb10` | Low resolution, useful for initial checks |
| Vertebrate | vertebrata or class-level | `mammalia_odb10`, `actinopterygii_odb10` | Class-level gives better resolution |
| Insect | insecta or order-level | `diptera_odb10`, `hymenoptera_odb10` | Order-level preferred when available |
| Plant | viridiplantae or more specific | `embryophyta_odb10`, `eudicots_odb10` | Plants often show high D% due to polyploidy |
| Fungus | fungi or division-level | `ascomycota_odb10`, `basidiomycota_odb10` | Match to known phylogenetic placement |
| Bacterium | bacteria or phylum-level | `proteobacteria_odb10` | Use `--auto-lineage-prok` for unknown bacteria |

**General rule**: Use the most specific lineage dataset that encompasses your organism. More specific datasets contain more BUSCOs and provide higher resolution, but using a dataset that does not include your organism will produce misleadingly low scores.

---

## Best Practices

1. **Always report all four categories (S, D, F, M)**: Do not report only the headline C% value. Reviewers and readers need the breakdown to assess whether high completeness comes from single-copy genes (expected for haploid organisms) or duplicated genes (expected for polyploids). This is now a standard expectation in genome papers.

2. **Use the same lineage dataset for all comparisons**: When comparing assemblies or proteomes, every run must use the identical lineage dataset and BUSCO version. Mixing lineage datasets (e.g., comparing one assembly run with `eukaryota_odb10` against another with `metazoa_odb10`) produces incomparable results.

3. **Choose the most specific lineage available**: More specific lineage datasets provide more BUSCO markers and finer resolution. A vertebrate genome assessed with `eukaryota_odb10` (255 markers) gives a much coarser picture than one assessed with `mammalia_odb10` (9,226 markers).

4. **Interpret Duplicated percentage in biological context**: High D% in plants, teleost fish, or salmonids is expected due to known whole-genome duplication events. High D% in a haploid bacterium, however, may indicate assembly artifacts (e.g., uncollapsed haplotypes or contamination).

5. **Run BUSCO on the correct
anndata-data-structureSkill

Annotated matrices for single-cell genomics. Stores X with obs/var metadata, layers, embeddings (obsm/varm), graphs (obsp/varp), uns. Use for .h5ad/.zarr I/O, concatenation, scverse integration. For analysis use scanpy; for probabilistic models use scvi-tools.

arboreto-grn-inferenceSkill

GRN inference from expression via GRNBoost2 (gradient boosting) or GENIE3 (Random Forest). Load matrix, filter by TFs, infer TF-target-importance links, save network. Dask-parallelized to single-cell scale. Core SCENIC component.

archs4-databaseSkill

Query ARCHS4 REST API for uniformly processed RNA-seq expression, tissue patterns, co-expression across 1M+ human/mouse samples. Retrieve z-scores, co-expressed genes, samples by metadata, HDF5 matrices. For variant population genetics use gnomad-database; for pathway enrichment use gget-genomic-databases (Enrichr).

bakta-genome-annotationSkill

Annotate bacterial and archaeal genomes and plasmids with Bakta's Prodigal/HMM/diamond pipeline. Identifies CDS, ncRNA, tRNA, rRNA, tmRNA, sORFs, CRISPR arrays, oriC/oriV/oriT, and gaps against a curated UniRef-derived database. Produces NCBI-compatible GFF3, GenBank, EMBL, JSON, FASTA, TSV, and a circular genome plot. Use Prokka for legacy pipelines or non-bacterial kingdoms; PGAP for NCBI GenBank submission.

bcftools-variant-manipulationSkill

CLI for VCF/BCF: filter, merge, annotate, query, normalize, compute stats. Core post-variant-calling: quality filtering, multi-sample merging, rsID annotation, genotype extraction. Samtools companion in HTSlib. Use GATK for complex indel realignment during calling; use VCFtools for population genetics stats.

bedtools-genomic-intervalsSkill

Genomic interval ops on BED/BAM/GFF/VCF. Find overlaps, merge intervals, compute coverage, extract FASTA, find nearest features. Core for ChIP-seq peak annotation, region filtering, genome arithmetic. Use tabix for indexed single-region queries; use deeptools for normalized bigWig coverage.

biopython-molecular-biologySkill

Molecular biology toolkit: sequence manipulation, FASTA/GenBank/PDB I/O, NCBI Entrez, BLAST automation, pairwise/MSA alignment, Bio.PDB, phylogenetic trees. Use for batch processing, custom pipelines, format conversion, PubMed/GenBank queries. For quick gene lookups use gget; for multi-service REST APIs use bioservices.

biopython-sequence-analysisSkill

Biopython sequence analysis: parse FASTA/FASTQ/GenBank/GFF (SeqIO), NCBI Entrez (esearch/efetch/elink), remote/local BLAST, pairwise/MSA alignment (PairwiseAligner, MUSCLE/ClustalW), phylogenetic trees (Phylo). Use for gene family studies, phylogenomics, comparative genomics, NCBI pipelines. For PCR/restriction/cloning use biopython-molecular-biology; for SAM/BAM use pysam.