scientific-presentations
Skill1 starsChanged 3 months agoMITView on GitHub
Design and deliver scientific talks and posters with one-idea-per-slide layouts, visual hierarchy, and large high-contrast figures. Use Quarto revealjs, Beamer, Marp markdown, and matplotlib for talk figures, plus A0 poster layouts. Covers conference timing, accessibility (alt text, captions), and recording/export. Triggers include "slides", "talk", "Quarto revealjs", "Beamer", "Marp", "poster A0", "conference talk", "matplotlib talk figure".
- Installs packages
2 other projects use a version of this.
Adopted by
Most recently taken up by
- Gilles86/gilles-claude-skillstheir own version, first seen Nov 1, 2026
- Pratikrishi97/sciagent-skillsword for word, first seen Aug 29, 2026
Other versions2 projects use a version of this.
Word for word · 1
- Pratikrishi97/sciagent-skills★ 1100% same
Edited · 0
None found.
Wrote their own version · 1
- Gilles86/gilles-claude-skills★ 3same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository41 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- admet-predictionSkill
- astrophysicsSkill
- biostatisticsSkill
- cheminformaticsSkill
- citation-managementSkill
- climate-scienceSkill
- clinical-nlpSkill
- clinical-researchSkill
- computational-chemistrySkill
- computational-physicsSkill
- data-visualizationSkill
- deep-learningSkill
- drug-discoverySkill
- epidemiologySkill
- evolutionary-biologySkill
- experimental-designSkill
- genomicsSkill
- geospatial-analysisSkill
- grant-writingSkill
- hpc-computingSkill
- instrument-integrationSkill
- lab-automationSkill
- literature-reviewSkill
- materials-scienceSkill
- medical-imagingSkill
- ml-for-scienceSkill
- notebook-best-practicesSkill
- protein-analysisSkill
- proteomicsSkill
- quantum-computingSkill
- reaction-modelingSkill
- remote-sensingSkill
- reproducible-environmentsSkill
- reproducible-researchSkill
- retrosynthesisSkill
- scientific-computingSkill
- scientific-data-managementSkill
- scientific-writingSkill
- transcriptomicsSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 8 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 47
Do NOT use this skill for manuscripts (use scientific-writing) or grant applications (use grant-writing).
- Distinctive: line 209
One idea per slide: If you find yourself writing "and also" on a slide, split it.
- Distinctive: line 234
Default matplotlibrc fonts that look fine in a paper render unreadable on a projector — bump font sizes to 18+ pt and DPI to 150+.
- Distinctive: line 242
No alt text or no captions.
- Distinctive: line 245
No PDF export; a venue without HDMI for the live web app crashes the talk.
- Distinctive: line 357
Plagiarism / image theft: Every figure that is not yours needs a citation and (usually) permission.
- Distinctive: line 363
Confidentiality: If preliminary or patient data is shown, obtain IRB approval for the dissemination and anonymize per your protocol.
- Distinctive: line 365
Data integrity: Do not crop axes, splice gels, or filter outliers to make the slide cleaner.
- Distinctive: line 373
AI use disclosure: If generative AI helped draft slides, figures, or speech, disclose per conference policy.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Scientific Presentations
Overview
A scientific talk is a deliberately narrow argument for a deliberately narrow audience, expressed in pictures more than words. A poster is the same idea in static print, designed for walking readers who spend 30-90 seconds before deciding to stop. This skill covers the pipeline:
- Plan the talk around a single takeaway sentence, then build a narrative arc (motivation -> question -> data -> result -> conclusion).
- Choose a stack: Quarto
revealjsfor the web, Beamer for academic PDFs, Marp for fast markdown-to-PDF, plain HTML/CSS for fully custom. - Make figures for the talk, not the paper: bigger fonts, fewer panels, higher contrast, single-message plots.
- Design posters on A0 with a multi-column layout and a "hero figure" up top.
- Rehearse timing: 1 slide per 30-90 s for a talk, no more than 1 slide per minute for unfamiliar audiences.
- Add accessibility throughout: alt text on every figure, captions on videos, color-blind-safe palettes, contrast-checked colors.
- Export and record: PDF for the venue, MP4 for sharing, subtitles for social and accessibility.
When to use this skill
- You are preparing a conference talk (15/20/30 min + Q&A).
- You are preparing a poster for a session.
- You need a lecture deck for a course or workshop.
- You need a keynote or plenary talk.
- You need to record a talk for an online conference.
- You need to make accessible slides (alt text, captions, contrast).
- You need to regenerate figures for the talk that differ from the paper figures (larger fonts, fewer panels).
Do NOT use this skill for manuscripts (use scientific-writing) or
grant applications (use grant-writing).
Prerequisites
- Python 3.10 or newer.
- Libraries:
pip install matplotlib jinja2 - Quarto CLI 1.5+ (https://quarto.org/docs/download/) for
revealjs. - TeX distribution with
beamer(intexlive-fullortexlive-latex-extra). - Pandoc 3+ for format conversion.
- (Optional) Marp CLI:
npm i -g @marp-team/marp-cli. - (Optional) Chromium for HTML-to-PDF export of revealjs/Marp.
Core workflows
1. Quarto revealjs skeleton (web-talk)
---
title: "Effect of X on Y"
author: "Ada Lovelace"
format:
revealjs:
theme: simple
transition: slide
slide-number: true
width: 1280
height: 720
footer: "Lovelace et al. 2025"
chalkboard: true
preview-link: true
bibliography: refs.bib
execute: { echo: false, warning: false }
---# One takeaway sentence
## {{< frag >}}Add one sentence the audience repeats next week.{{</ frag >}}
# Why this matters
- Gap in the field
- Cost of the gap
- Who pays
# The question
{.r-stretch}
# Data
```{python}
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(8, 5))
ax.bar(['Control', 'X'], [4.1, 6.2]); plt.savefig("figures/main.png")Result
One sentence. One figure.
Conclusion
- What we know now
- What we still don't know
- What's next
Render: `quarto render talk.qmd --to revealjs` (HTML5) or
`quarto render talk.qmd --to pdf` (PDF via Chromium).
### 2. Beamer (academic PDF)
```python
from pylatex import Document, Section
doc = Document("talk", documentclass="beamer",
document_options=["aspectratio=169","11pt"],
preamble=r"\usetheme{metropolis}\usepackage{graphicx}")
with doc.create(Section("One takeaway")):
doc.append("The audience should leave with this sentence.")
doc.generate_pdf("talk", clean=False)3. Marp markdown to PDF
---
marp: true
theme: default
size: 16:9
paginate: true
footer: "Lovelace 2025"
---
# One takeaway sentence
---
# Why this matters
- Gap
- Cost
- Who pays
---
# Result
Render: marp talk.md -o talk.pdf --pdf (needs Chromium) or
marp talk.md -o talk.pptx.
4. matplotlib talk figure (large fonts, high contrast)
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams.update({
"font.size": 22, "axes.titlesize": 22, "axes.labelsize": 20,
"xtick.labelsize": 18, "ytick.labelsize": 18,
"figure.figsize": (10, 6), "figure.dpi": 150,
"axes.spines.top": False, "axes.spines.right": False,
"axes.prop_cycle": mpl.cycler(
color=["#1b9e77", "#d95f02", "#7570b3"]) # ColorBrewer Set2
})
fig, ax = plt.subplots()
ax.bar(["Control", "Drug X"], [4.1, 6.2],
yerr=[0.3, 0.4], capsize=8, color=["#7570b3", "#d95f02"])
ax.set_ylabel("Outcome (a.u.)")
ax.set_title("Drug X improves outcome")
fig.tight_layout()
fig.savefig("figures/main.png", dpi=200, bbox_inches="tight")5. A0 poster layout (Python + HTML/CSS or LaTeX)
from jinja2 import Template
tpl = Template("""<!doctype html><html><head><style>
@page { size: 841mm 1189mm; margin: 0; }
body { width: 841mm; height: 1189mm; margin: 0;
font-family: 'Helvetica'; font-size: 36pt; }
header { background:#1b3a4b; color:#fff; padding:30mm 20mm; }
.grid { display:grid; grid-template-columns:1fr 1fr 1fr;
gap:20mm; padding:20mm; }
img { width:100%; }
</style></head><body>
<header><h1>{{ title }}</h1>
<p>{{ authors }} - {{ affiliations }}</p></header>
<div class="grid">
<section><h2>Background</h2><p>{{ bg }}</p>
<img src="figures/hero.png" alt="Hero figure: ..."></section>
<section><h2>Methods</h2><p>{{ methods }}</p></section>
<section><h2>Results</h2><p>{{ results }}</p>
<img src="figures/main.png" alt="Main result bar chart"></section>
</div>
</body></html>""")
open("poster.html","w").write(tpl.render(
title="Effect of X on Y",
authors="Lovelace A., Turing A., Curie M.",
affiliations="Example University, MIT, Sorbonne",
bg="...", methods="...", results="..."))
# Render to PDF: chromium --headless --disable-gpu \
# --print-to-pdf=poster.pdf poster.htmlBest practices
- One idea per slide. If you find yourself writing "and also" on a slide, split it.
- Takeaway sentence first. Decide the single sentence your audience should repeat next week; build every slide to defend it.
- Figures first, words second. A talk is slides plus speech, not slides with speech.
- Bigger fonts. Title 36 pt+, body 24 pt+, axis labels 18 pt+. If it cannot be read from the back row, it does not exist.
- Use a color-blind-safe palette (e.g., ColorBrewer Set2, Okabe-Ito) and check contrast against the background (WCAG AA: 4.5:1 for body, 3:1 for large text).
- Alt text on every figure ("Bar chart of outcome by treatment; Drug X mean 6.2, control 4.1"). It is required for accessibility and helps the speaker prepare.
- Time yourself. A 30 min slot has ~25 min of talk + 5 of Q&A; rehearse with a timer and cut 20%.
- Slide count rule: 1 slide per 1-1.5 min for unfamiliar audiences; up to 1 per 30 s for friendly ones.
- Posters: hero figure on top third, ~250-400 words total, QR code to a 1-page PDF for walk-up readers.
- Record and post. Record the talk with OBS or Zoom, burn subtitles with Whisper, post on the lab website and a CC-BY license.
Common pitfalls
- Default matplotlibrc fonts that look fine in a paper render unreadable on a projector — bump font sizes to 18+ pt and DPI to 150+.
- Paper figures copy-pasted into slides: too many panels, axes illegible, no takeaway sentence.
- Animations that "fly in" every bullet: distracting and slow.
- "Don't read the slide" violated by slides that are paragraphs.
- Color choices like red/green that are unreadable for ~5% of men (deuteranopia).
- No alt text or no captions; inaccessible to screen readers and to the room's audio listeners.
- 60 slides for a 15 min talk; the speaker races through the last 20.
- No PDF export; a venue without HDMI for the live web app crashes the talk. Always export a PDF backup.
- Tiny QR codes that the audience cannot scan from the back row.
- Forgetting to test on the projector: colors render very differently than on a laptop screen.
Worked example
A 20 min conference talk: "Microglial senescence in early Alzheimer's disease." Built with Quarto revealjs, with one matplotlib talk figure and one poster derived from the same data.
# make_figure.py
import matplotlib as mpl, matplotlib.pyplot as plt
mpl.rcParams.update({"font.size": 22, "axes.spines.top": False,
"axes.spines.right": False})
fig, ax = plt.subplots(figsize=(10, 6))
ax.bar(["Ctrl", "TREM2-/-"], [4.1, 7.8], yerr=[0.4, 0.6], capsize=10,
color=["#7570b3", "#d95f02"])
ax.set_ylabel("Senescent microglia (%)\n")
ax.set_title("TREM2 loss drives senescence")
fig.tight_layout()
fig.savefig("figures/main.png", dpi=200, bbox_inches="tight")---
title: "Microglial senescence in early Alzheimer's disease"
author: "Ada Lovelace"
format:
revealjs:
theme: simple
transition: slide
slide-number: true
width: 1280
height: 720
bibliography: refs.bib
---
# Takeaway
## Microglia enter a senescent state years before symptoms, and TREM2 is the switch.
# Why it matters
- AD is silent for decades
- Current drugs target the wrong window
- A 5-year-earlier biomarker could change trials
# The question
{.r-stretch}
Are senescent microglia enriched in early-stage human brain?
# Data
```{python}
#| echo: false
import matplotlib.pyplot as plt
plt.bar(["Ctrl", "TREM2-/-"], [4.1, 7.8])
plt.title("TREM2 loss drives senescence")
plt.savefig("figures/main.png", dpi=150)Result
TREM2 loss doubles senescent microglia.
Conclusion
- Senescence is an early-AD phenomenon
- TREM2 is a candidate mechanistic switch
- A CSF biomarker is the next step
Thanks
- Lab, funders, brain banks
- (QR code to PDF + code)
Render: `quarto render talk.qmd --to revealjs` (HTML) and
`quarto render talk.qmd --to pdf` (PDF backup). Time the talk: 13 slides
at 20 min = ~1.5 min/slide — feasible.
For the poster, reuse the figure with smaller fonts via a second
matplotlib run, and render the HTML poster to PDF for printing.
## Tools & libraries
| Tool | Purpose | Install |
|---|---|---|
| Quarto (revealjs) | Markdown -> web slides | https://quarto.org |
| Beamer (LaTeX) | Academic PDF slides | `apt install texlive-latex-extra` |
| Marp CLI | Fast markdown -> PDF/PPTX | `npm i -g @marp-team/marp-cli` |
| matplotlib | Talk-grade figures | `pip install matplotlib` |
| pylatex | Generate Beamer from Python | `pip install pylatex` |
| jinja2 | HTML poster templating | `pip install jinja2` |
| Chromium | HTML/PDF export for revealjs and Marp | https://www.chromium.org |
| OBS Studio | Record talks with camera + slides | https://obsproject.com |
| Whisper (openai) | Auto-subtitle recordings | `pip install openai-whisper` |
| ColorBrewer / Okabe-Ito | Color-blind-safe palettes | matplotlib built-in |
| Inkscape | Edit SVG figures for slides | https://inkscape.org |
| a11y contrast checkers | WAVE, axe, Color Contrast Analyser | https://webaim.org/resources/contrastchecker |
## References
- Quarto presentations docs: https://quarto.org/docs/presentations/
- Beamer documentation: https://www.overleaf.com/learn/latex/Beamer
- Marp CLI docs: https://github.com/marp-team/marp-cli
- ColorBrewer 2.0 (color-blind palettes): https://colorbrewer2.org
- Okabe-Ito palette: https://jfly.uni-koeln.de/color/
- WCAG 2.2 contrast (success criterion 1.4.3): https://www.w3.org/TR/WCAG22/
- Reynolds & Edwards "Presentation Zen" / Duarte "Slide:ology" — design
principles for one-idea-per-slide.
- Michael Alley "The Craft of Scientific Presentations" — talk design.
## Ethics & safety
- **Plagiarism / image theft.** Every figure that is not yours needs a
citation and (usually) permission. Use CC-licensed images and credit
the source on the slide.
- **Authorship and credit.** Co-authors must consent to be listed on the
title slide and agree with the slides' claims; do not show unpublished
collaborators' data without their approval.
- **Confidentiality.** If preliminary or patient data is shown, obtain
IRB approval for the dissemination and anonymize per your protocol.
- **Data integrity.** Do not crop axes, splice gels, or filter outliers
to make the slide cleaner; the slide's figure must match the
manuscript's figure.
- **Accessibility.** Alt text on every figure, captions on every video,
color-blind-safe palette, contrast-checked colors — required for any
public talk and best practice for any talk.
- **Conflicts of interest.** Disclose funding sources and conflicts on
the title or disclosure slide.
- **AI use disclosure.** If generative AI helped draft slides, figures,
or speech, disclose per conference policy; AI cannot be a co-author or
speaker.
- **Recording consent.** Obtain consent from the audience (and any
identifiable people in figures) before recording or live-streaming.Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

