Recore searches every empty cell of a pangenome matrix in the assemblies,
puts back the genes that are really there, and keeps the evidence for each one.
Install · Your command · Try it · How it works · Docs · Reference
For Panaroo, Roary, PPanGGOLiN, PanTA and PIRATE · pure Rust · Linux and macOS
Paula Ruiz-Rodriguez1
and Mireia Coscolla1
1. I2SysBio, University of Valencia-CSIC, FISABIO Joint Research Unit Infection and Public Health, Valencia, Spain
One empty cell, seven steps. The interactive version lets you pick what the search finds.
Two commands. Recore uses minimap2 to search.
conda install -c bioconda minimap2 # or: brew install minimap2 / sudo apt install minimap2
cargo install --git https://github.com/PathoGenOmics-Lab/recore --lockedNeeds Rust 1.85 or newer (rustup.rs), about a minute to
build. Check with recore --version. From a clone, cargo build --release
puts the binary at target/release/recore.
Give it what your pangenome tool wrote and one assembly per genome, named like the matrix columns.
recore \
-p gene_presence_absence.csv \
-r pan_genome_reference.fa \
-g genomes/ \
-a annotations/ --synteny \
--write-html-report \
-t 8 -o recore_output/That is Panaroo with GFF files. The website writes it for your tool and the files you have, and Inputs says how the names have to match.
Twelve genomes with eleven false absences planted in them. About a minute.
curl -sO https://raw.githubusercontent.com/PathoGenOmics-Lab/recore/main/benchmarks/make_tutorial_dataset.py
python3 make_tutorial_dataset.py --out tutorial_data
recore -p tutorial_data/gene_presence_absence.csv \
-r tutorial_data/pan_genome_reference.fa \
-g tutorial_data/genomes -a tutorial_data/annotations --synteny \
--tree tutorial_data/species.tree --write-html-report -o tutorial_outtutorial_out/summary.txt should read:
Rescued: 11 every planted absence found
Matrix-corrected: 8 the other 3 are pseudogenes: kept out, with the reason
Then open tutorial_out/recore_report.html. The
tutorial tells the story behind each number.
Four files answer most questions. All of them.
| File | What it is |
|---|---|
gene_presence_absence_recore.csv |
The corrected matrix, in the input's format (and as .Rtab). Feed it to your next tool. |
gene_presence_absence_recore_states.csv |
The same matrix with a state in every cell: input, put back, kept out and why. For figures. |
orthology_evidence.tsv |
One row per change: the evidence, the decision, and wording you can use in a paper. |
recore_report.html |
The whole run in one page that works offline. Open it in any browser. |
Explore an example report, the one the example run writes from synthetic data.
--matrix-policy picks which evidence reaches the corrected matrix. All of it
stays in the audit files.
| Policy | What reaches the corrected matrix |
|---|---|
strict |
Only genes tied to the same locus by the annotation or by their neighbours. Fewest changes. |
balanced (default) |
Adds full-length genes found by sequence. Pseudogenes and partial copies stay out. Use it for papers. |
sensitive |
Also puts back partial and disrupted copies that pass the quality guard. For exploring. |
Matrix policies has the rules and the quality guard.
The first questions people ask are answered on the website. Still stuck? Ask in Discussions; Issues are for crashes and plainly wrong results.
The website is plain HTML in docs/, so it also opens from a clone,
offline: open docs/index.html. Every page of its Docs tab is a markdown file
here as well:
- Start: Tutorial · Inputs
- Guide: Parameters · Matrix policies · Output files · Run report
- How it works: Algorithm · Evidence states · Rescue types · Evolutionary events · Limits and comparisons
- Project: Changelog · Benchmarks · Contributing, with the tests and the checks CI runs
Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. In preparation.
The software itself is archived on Zenodo: doi:10.5281/zenodo.23448590 for every version, or doi:10.5281/zenodo.23448591 for 1.0.0.
AGPL-3.0, see LICENSE · PathoGenOmics Lab · Paula Ruiz-Rodriguez, paula.ruiz.rodriguez@csic.es
|
Paula Ruiz-Rodriguez 💻 🔬 🤔 🔣 🎨 🔧 |
Mireia Coscolla 🔍 🤔 🧑🏫 🔬 📓 |
This project follows the all-contributors specification (emoji key).