bio-reporting-quarto-reports — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited bio-reporting-quarto-reports (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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:
<tool> --version then <tool> --help to confirm flagsIf code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
"Create a Quarto analysis report" → Write reproducible documents mixing code (Python/R), narrative, and figures that render to HTML/PDF/Word.
quarto render report.qmd --to html---
title: "Analysis Report"
author: "Your Name"
date: today
format:
html:
toc: true
code-fold: true
theme: cosmo
------
title: "scRNA-seq Analysis"
format: html
jupyter: python3
---
import scanpy as sc import matplotlib.pyplot as plt
adata = sc.read_h5ad('data.h5ad') sc.pl.umap(adata, color='leiden')
---
title: "DE Analysis"
format: html
---
library(DESeq2) dds <- DESeqDataSetFromMatrix(counts, metadata, ~ condition) dds <- DESeq(dds)
---
title: "Multi-format Report"
format:
html:
toc: true
pdf:
documentclass: article
docx:
reference-doc: template.docx
---# Render all formats
quarto render report.qmd
# Render specific format
quarto render report.qmd --to pdf---
title: "Parameterized Report"
params:
sample: "sample1"
threshold: 0.05
---# Render with parameters
quarto render report.qmd -P sample:sample2 -P threshold:0.01::: {.panel-tabset}
## PCAplotPCA(vsd)
## Heatmappheatmap(mat)
:::::: {.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.
:::See @fig-volcano for the volcano plot.
#| label: fig-volcano #| fig-cap: "Volcano plot showing DE genes" ggplot(res, aes(log2FC, -log10(pvalue))) + geom_point()
Results are summarized in @tbl-summary.
#| label: tbl-summary #| tbl-cap: "Summary statistics" knitr::kable(summary_df)
#| echo: true #| warning: false #| fig-width: 10 #| fig-height: 6 #| cache: true
import scanpy as sc sc.pl.umap(adata, color='leiden')
We found `{python} len(sig_genes)` significant genes.
We found `{r} nrow(sig)` significant genes.---
title: "Analysis Results"
format: revealjs
---
## Slide 1
Content here
## Slide 2 {.smaller}
More content with smaller text# _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: references.bib
csl: nature.csl
---Gene expression analysis was performed using DESeq2 [@love2014].
## References# _quarto.yml
execute:
freeze: auto # Only re-run when source changes{{< include _methods.qmd >}}flowchart LR A[Raw Data] --> B[QC] B --> C[Alignment] C --> D[Quantification] D --> E[DE Analysis]
---
title: "R + Python Analysis"
---
Load in R:library(reticulate) counts <- read.csv('counts.csv')
Process in Python:import pandas as pd counts_py = r.counts # Access R object
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.