Build reproducible scientific documents, presentations, and websites with Quarto supporting R, Python, Julia, and Observable JS. Use when creating reproducible reports with Quarto.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill quarto-reports --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Quarto Reports?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-quarto-reports)More formats (shields.io, HTML) on the badges page.
---
name: bio-reporting-quarto-reports
description: Build reproducible scientific documents, presentations, and websites with Quarto supporting R, Python, Julia, and Observable JS. Use when creating reproducible reports with Quarto.
tool_type: mixed
primary_tool: Quarto
---
## Version Compatibility
Reference examples tested with: Quarto 1.4+, DESeq2 1.42+, ggplot2 3.5+, matplotlib 3.8+, scanpy 1.10+
Before using code patterns, verify installed versions match. If versions differ:
- CLI: `<tool> --version` then `<tool> --help` to confirm flags
If code throws ImportError, AttributeError, or TypeError, introspect the installed
package and adapt the example to match the actual API rather than retrying.
# Quarto Reports
**"Create a Quarto analysis report"** → Write reproducible documents mixing code (Python/R), narrative, and figures that render to HTML/PDF/Word.
- CLI: `quarto render report.qmd --to html`
## Basic Document
```yaml
---
title: "Analysis Report"
author: "Your Name"
date: today
format:
html:
toc: true
code-fold: true
theme: cosmo
---
```
## Python Document
````markdown
---
title: "scRNA-seq Analysis"
format: html
jupyter: python3
---
```{python}
import scanpy as sc
import matplotlib.pyplot as plt
adata = sc.read_h5ad('data.h5ad')
sc.pl.umap(adata, color='leiden')
```
````
## R Document
````markdown
---
title: "DE Analysis"
format: html
---
```{r}
library(DESeq2)
dds <- DESeqDataSetFromMatrix(counts, metadata, ~ condition)
dds <- DESeq(dds)
```
````
## Multiple Formats
```yaml
---
title: "Multi-format Report"
format:
html:
toc: true
pdf:
documentclass: article
docx:
reference-doc: template.docx
---
```
```bash
# Render all formats
quarto render report.qmd
# Render specific format
quarto render report.qmd --to pdf
```
## Parameters
```yaml
---
title: "Parameterized Report"
params:
sample: "sample1"
threshold: 0.05
---
```
```bash
# Render with parameters
quarto render report.qmd -P sample:sample2 -P threshold:0.01
```
## Tabsets
````markdown
::: {.panel-tabset}
## PCA
```{r}
plotPCA(vsd)
```
## Heatmap
```{r}
pheatmap(mat)
```
:::
````
## Callouts
```markdown
::: {.callout-note}
This is an important note about the analysis.
:::
::: {.callout-warning}
Check your input data format before proceeding.
:::
::: {.callout-tip}
Use caching for long computations.
:::
```
## Cross-References
````markdown
See @fig-volcano for the volcano plot.
```{r}
#| label: fig-volcano
#| fig-cap: "Volcano plot showing DE genes"
ggplot(res, aes(log2FC, -log10(pvalue))) + geom_point()
```
Results are summarized in @tbl-summary.
```{r}
#| label: tbl-summary
#| tbl-cap: "Summary statistics"
knitr::kable(summary_df)
```
````
## Code Cell Options
````markdown
```{python}
#| echo: true
#| warning: false
#| fig-width: 10
#| fig-height: 6
#| cache: true
import scanpy as sc
sc.pl.umap(adata, color='leiden')
```
````
## Inline Code
```markdown
We found `{python} len(sig_genes)` significant genes.
We found `{r} nrow(sig)` significant genes.
```
## Presentations
```yaml
---
title: "Analysis Results"
format: revealjs
---
## Slide 1
Content here
## Slide 2 {.smaller}
More content with smaller text
```
## Quarto Projects
```yaml
# _quarto.yml
project:
type: website
output-dir: docs
website:
title: "Analysis Portal"
navbar:
left:
- href: index.qmd
text: Home
- href: methods.qmd
text: Methods
- href: results.qmd
text: Results
```
## Bibliography
```yaml
---
bibliography: references.bib
csl: nature.csl
---
```
```markdown
Gene expression analysis was performed using DESeq2 [@love2014].
## References
```
## Freeze Computations
```yaml
# _quarto.yml
execute:
freeze: auto # Only re-run when source changes
```
## Include Files
```markdown
{{< include _methods.qmd >}}
```
## Diagrams with Mermaid
````markdown
```{mermaid}
flowchart LR
A[Raw Data] --> B[QC]
B --> C[Alignment]
C --> D[Quantification]
D --> E[DE Analysis]
```
````
## Multi-Language Document
````markdown
---
title: "R + Python Analysis"
---
Load in R:
```{r}
library(reticulate)
counts <- read.csv('counts.csv')
```
Process in Python:
```{python}
import pandas as pd
counts_py = r.counts # Access R object
```
````
## Related Skills
- reporting/rmarkdown-reports - R-focused alternative
- data-visualization/ggplot2-fundamentals - R visualizations
- workflow-management/snakemake-workflows - Pipeline integration
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!