Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ and Recore uses semantic versioning.

## [Unreleased]

### Added

- Recore is archived on Zenodo. The README carries the DOI badge and both DOIs
(10.5281/zenodo.23448590 for every version, 10.5281/zenodo.23448591 for 1.0.0), `CITATION.cff` holds
them, the citation page has a BibTeX entry for the software, and the
website's footer links the archive. `tools/check_site.py` fails if the DOI in
`CITATION.cff` is missing from the README, the citation page or the footer.

## [1.0.0] - 2026-10-18

The first public release, under the GNU Affero General Public License v3.0.
Expand Down
8 changes: 8 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@ authors:
repository-code: "https://github.com/PathoGenOmics-Lab/recore"
url: "https://pathogenomics-lab.github.io/recore/"
version: 1.0.0
doi: 10.5281/zenodo.23448590
identifiers:
- type: doi
value: 10.5281/zenodo.23448590
description: "Every version; resolves to the latest"
- type: doi
value: 10.5281/zenodo.23448591
description: "Version 1.0.0"
date-released: "2026-10-18"
license: AGPL-3.0-only
keywords:
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ puts back the genes that are really there, and keeps the evidence for each one.
<a href="https://github.com/PathoGenOmics-Lab/recore/actions/workflows/ci.yml"><img src="https://github.com/PathoGenOmics-Lab/recore/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-AGPLv3-blue.svg" alt="License: AGPLv3"></a>
<img src="https://img.shields.io/badge/Rust-1.85%2B-orange.svg" alt="Rust 1.85+">
<a href="https://doi.org/10.5281/zenodo.23448590"><img src="https://img.shields.io/badge/doi-10.5281%2Fzenodo.23448590-%23ff0077" alt="DOI 10.5281/zenodo.23448590"></a>

</div>

Expand Down Expand Up @@ -146,6 +147,9 @@ here as well:
> 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](https://doi.org/10.5281/zenodo.23448590)
for every version, or [doi:10.5281/zenodo.23448591](https://doi.org/10.5281/zenodo.23448591) for 1.0.0.

<sub>AGPL-3.0, see [LICENSE](LICENSE) · [PathoGenOmics Lab](https://github.com/PathoGenOmics-Lab) · Paula Ruiz-Rodriguez, paula.ruiz.rodriguez@csic.es</sub>

---
Expand Down
11 changes: 11 additions & 0 deletions docs/about/citation.html
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,16 @@ <h1 id="citation">Citation</h1>
note = {In preparation},
howpublished = {\url{https://github.com/PathoGenOmics-Lab/recore}}
}</pre></div>
<p>The software is archived on Zenodo. Cite <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a> for Recore in general (it resolves to the latest version), or the version you ran, such as <a href="https://doi.org/10.5281/zenodo.23448591">doi:10.5281/zenodo.23448591</a> for 1.0.0:</p>
<div class="code" data-lang="bibtex"><pre>@software{recore_software,
author = {Ruiz-Rodriguez, Paula and Coscolla, Mireia},
title = {Recore},
version = {1.0.0},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.23448591},
url = {https://doi.org/10.5281/zenodo.23448591}
}</pre></div>
<p>Please also cite the tools Recore depends on for the run you report:</p>
<ul><li><strong>minimap2</strong>, for every sequence search: Li H. (2018). Minimap2: pairwise alignment for nucleotide sequences. <em>Bioinformatics</em> 34(18):3094-3100.</li><li><strong>MMseqs2</strong>, if you used <code>--nsc-engine mmseqs2</code>: Steinegger M, Soeding J. (2017). MMseqs2 enables sensitive protein sequence searching for the analysis of massive data sets. <em>Nature Biotechnology</em> 35:1026-1028.</li><li>the pangenome tool that produced the input matrix, for example <strong>Panaroo</strong>: Tonkin-Hill G, et al. (2020). Producing polished prokaryotic pangenomes with the Panaroo pipeline. <em>Genome Biology</em> 21:180.</li></ul>
<h2 id="contact">Contact<a class="anchor" href="#contact" aria-label="Link to this section">#</a></h2>
Expand All @@ -98,6 +108,7 @@ <h2 id="license">License<a class="anchor" href="#license" aria-label="Link to th
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
17 changes: 17 additions & 0 deletions docs/about/citation.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,23 @@ If you use Recore, please cite:
}
```

The software is archived on Zenodo. Cite
[doi:10.5281/zenodo.23448590](https://doi.org/10.5281/zenodo.23448590) for Recore in general (it
resolves to the latest version), or the version you ran, such as
[doi:10.5281/zenodo.23448591](https://doi.org/10.5281/zenodo.23448591) for 1.0.0:

```bibtex
@software{recore_software,
author = {Ruiz-Rodriguez, Paula and Coscolla, Mireia},
title = {Recore},
version = {1.0.0},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.23448591},
url = {https://doi.org/10.5281/zenodo.23448591}
}
```

Please also cite the tools Recore depends on for the run you report:

- **minimap2**, for every sequence search:
Expand Down
1 change: 1 addition & 0 deletions docs/about/contributing.html
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ <h2 id="reporting-a-problem">Reporting a problem<a class="anchor" href="#reporti
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
2 changes: 1 addition & 1 deletion docs/assets/search-index.js
Original file line number Diff line number Diff line change
Expand Up @@ -982,7 +982,7 @@ window.RECORE_DOCS_INDEX = [
"page": "Citation",
"section": "",
"url": "about/citation.html",
"text": "If you use Recore, please cite: Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. In preparation. Please also cite the tools Recore depends on for the run you report: minimap2, for every sequence search: Li H. (2018). Minimap2: pairwise alignment for nucleotide sequences. Bioinformatics 34(18):3094-3100. MMseqs2, if you used --nsc-engine mmseqs2: Steinegger M, Soeding J. (2017). MMseqs2 enables sensitive protein sequence searching for the analysis of massive data sets. Nature Biotechnology 35:1026-1028. the pangenome tool "
"text": "If you use Recore, please cite: Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. In preparation. The software is archived on Zenodo. Cite doi:10.5281/zenodo.23448590 for Recore in general (it resolves to the latest version), or the version you ran, such as doi:10.5281/zenodo.23448591 for 1.0.0: Please also cite the tools Recore depends on for the run you report: minimap2, for every sequence search: Li H. (2018). Minimap2: pairwise alignment for nucleotide sequences. Bioinformatics 34(18):3094-3100. MMseqs2, if you used --"
},
{
"page": "Citation",
Expand Down
4 changes: 4 additions & 0 deletions docs/assets/site.css
Original file line number Diff line number Diff line change
Expand Up @@ -1504,6 +1504,10 @@ kbd {
color: var(--ink-soft);
}

.foot .doi {
margin: 10px 0 0;
}

@media (max-width: 760px) {
.foot .wrap {
grid-template-columns: minmax(0, 1fr);
Expand Down
1 change: 1 addition & 0 deletions docs/documentation.html
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ <h2 class="docs-group">About</h2>
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/getting-started/inputs.html
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ <h2 id="choosing-the-optional-inputs">Choosing the optional inputs<a class="anch
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/getting-started/tutorial.html
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ <h2 id="next">Next<a class="anchor" href="#next" aria-label="Link to this sectio
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/guide/matrix-policies.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ <h2 id="reporting-it">Reporting it<a class="anchor" href="#reporting-it" aria-la
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/guide/outputs.html
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,7 @@ <h3 id="common-debug-messages-and-their-meaning">Common debug messages and their
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/guide/parameters.html
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ <h3 id="--nsc-threshold-nsc-similarity"><code>--nsc-threshold</code> (NSC simila
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/guide/report.html
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ <h2 id="if-you-did-not-use---write-html-report">If you did not use <code>--write
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/how-it-works.html
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ <h2>Go deeper</h2>
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/how-it-works/algorithm.html
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ <h2 id="computational-complexity">Computational Complexity<a class="anchor" href
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/how-it-works/evidence-states.html
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ <h2 id="which-policy-corrects-which-state">Which policy corrects which state<a c
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/how-it-works/evolutionary-events.html
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ <h2 id="where-the-fields-live">Where the fields live<a class="anchor" href="#whe
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/how-it-works/limits.html
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ <h2 id="reproducible-review">Reproducible review<a class="anchor" href="#reprodu
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/how-it-works/rescue-types.html
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ <h2 id="rescue-type-priority-in-conflict-resolution">Rescue Type Priority in Con
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,7 @@ <h2>Open source, on GitHub</h2>
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
1 change: 1 addition & 0 deletions docs/reference.html
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ <h2>Go deeper</h2>
<div>
<h3>Cite</h3>
<blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome presence/absence matrices. <i>In preparation.</i></blockquote>
<p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>
</div>
<div>
<h3>Learn more</h3>
Expand Down
3 changes: 2 additions & 1 deletion tools/build_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,8 @@ def footer(root: str) -> str:
return (
'<footer class="foot">\n <div class="wrap">\n <div>\n <h3>Cite</h3>\n'
" <blockquote>Ruiz-Rodriguez P, Coscolla M. (2026). Recore: post-hoc rescue and quality control of pangenome "
"presence/absence matrices. <i>In preparation.</i></blockquote>\n </div>\n"
"presence/absence matrices. <i>In preparation.</i></blockquote>\n"
' <p class="doi">Software: <a href="https://doi.org/10.5281/zenodo.23448590">doi:10.5281/zenodo.23448590</a></p>\n </div>\n'
" <div>\n <h3>Learn more</h3>\n <ul>\n"
f' <li><a href="{root}index.html">Get started</a></li>\n'
f' <li><a href="{root}{INDEX}">Documentation</a></li>\n'
Expand Down
12 changes: 11 additions & 1 deletion tools/check_site.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
synthetic the example report says its data are made up, next to its title,
and so does every link to it;
version the version in Cargo.toml is the one CITATION.cff and the example
report carry, and the CHANGELOG has a section and a link for it;
report carry, the CHANGELOG has a section and a link for it, and the
DOI in CITATION.cff is shown in the README, on the citation page and
in the footer;
dashes no em-dashes;
try with --run-tutorial, the "Try it" commands are run as written and
summary.txt must give the numbers the page promises.
Expand Down Expand Up @@ -478,6 +480,14 @@ def check_versions() -> list[str]:
problems.append(f"CHANGELOG.md: no dated '## [{version}]' section for the version in Cargo.toml")
if not re.search(rf"^\[{re.escape(version)}\]: https://", changelog, flags=re.M):
problems.append(f"CHANGELOG.md: no link line for [{version}] at the bottom")
# The archive's DOI, once there is one, is the same everywhere it is shown.
doi = re.search(r"^doi:\s*(\S+)", Path("CITATION.cff").read_text(encoding="utf-8"), flags=re.M)
if doi:
for place, text in (("README.md", README.read_text(encoding="utf-8")),
("docs/about/citation.md", (SITE / "about" / "citation.md").read_text(encoding="utf-8")),
("docs/index.html footer", (SITE / "index.html").read_text(encoding="utf-8"))):
if doi.group(1) not in text:
problems.append(f"{place}: does not show the DOI {doi.group(1)} that CITATION.cff holds")
shown = re.search(r"<meta name='generator' content='Recore v([^']+)'>", EXAMPLE_REPORT.read_text(encoding="utf-8"))
if not shown or shown.group(1) != version:
problems.append(
Expand Down
Loading