CLAUDE.md — Project Guide for AI Assistants
About the Owner
Christopher B. Boyer, PhD - Assistant Professor, Cleveland Clinic Lerner College of Medicine of Case Western Reserve University - Staff Biostatistician, Lerner Research Institute, Cleveland Clinic - ORCID: 0000-0002-1101-2045 - Website: https://christopherbboyer.com (also https://boyercb.github.io) - GitHub: https://github.com/boyercb - Google Scholar: https://scholar.google.com/citations?user=MRTAUFwAAAAJ - Bluesky: https://bsky.app/profile/cboyer.bsky.social
Education
- PhD Epidemiology, Harvard University (2023)
- MPH Epidemiology, Columbia University (2015)
- BS Mechanical Engineering, Wright State University (2010)
Research Interests
- Causal inference methods for observational and randomized studies
- Counterfactual prediction models
- Postmarket vaccine evaluation (test-negative designs, target trial emulation)
- Interference/spillover and placebo effects in RCTs
- Comparative effectiveness research using electronic medical records
- Infectious disease dynamics and mathematical modeling
Collaborations
- Center for Value Based Care Research at Cleveland Clinic
- Previously with Marc Lipsitch (Harvard), Issa Dahabreh, Jon Steingrimsson
Repository Structure
This is a Quarto website (project type: website) deployed to GitHub Pages.
Build System
- Framework: Quarto
- Config:
_quarto.yml - Output directory:
docs/(for GitHub Pages) - Theme: cosmo (Bootstrap) with custom
styles.css - Custom domain:
christopherbboyer.com(viaCNAME) - Analytics: Google Analytics (G-1D051HLKQD)
- Extensions:
mcanouil/iconify(for icon rendering)
Key Files
| File | Purpose |
|---|---|
_quarto.yml |
Site-wide Quarto configuration (navbar, theme, output) |
index.qmd |
Homepage with bio, photo, education, and social links |
about.qmd |
About page (same content as index, different template) |
blog.qmd |
Blog listing page (auto-lists from posts/) |
research.qmd |
Publications page with categorized listings |
publications.yaml |
Structured data for all publications |
ejs/citation.ejs |
EJS template for rendering publication entries |
talks.qmd |
Talks listing page (grid layout) |
talks.yaml |
Structured data for talks |
teaching.qmd |
Teaching experience page |
software.qmd |
Software/packages page |
styles.css |
Custom CSS (currently minimal) |
CNAME |
Custom domain for GitHub Pages |
posts/_metadata.yml |
Default metadata for all blog posts |
Directory Layout
├── _quarto.yml # Main config
├── index.qmd # Homepage
├── about.qmd # About page
├── blog.qmd # Blog listing
├── research.qmd # Publications listing (uses EJS template)
├── publications.yaml # Publication data
├── software.qmd # Software listing
├── talks.qmd # Talks listing
├── talks.yaml # Talk data
├── teaching.qmd # Teaching page
├── styles.css # Custom CSS
├── CNAME # Custom domain
│
├── ejs/
│ └── citation.ejs # EJS template for publication entries
│
├── _extensions/
│ └── mcanouil/iconify/ # Iconify extension for icons
│
├── posts/ # Blog posts (each in its own directory)
│ ├── _metadata.yml # Shared post defaults (freeze, license, author)
│ ├── 2024-02-17-the-many-faces-of-the-g-formula/
│ ├── 2024-02-17-the-reasons-to-start-treatment-are-not-the-same-as-to-stop/
│ ├── 2024-02-18-m-estimation-for-causal-inference/
│ ├── 2024-02-26-bayesian-measurement-error-models/
│ ├── 2025-12-11-parallel-test-negative-design/
│ └── 2025-12-20-testing-negative-proxy/
│
├── talks/ # Talk slides (PDF + snapshot images)
│ ├── 2024-06-13/ # SER 2024 – TND & equi-confounding
│ ├── 2025-04-07/ # Joint Biostats Symposium – counterfactual prediction
│ ├── 2025-05-07/ # ISPE Vaccine SIG – post-exposure vaccines
│ ├── 2025-06-11a/ # SER 2025 – transporting intervention effects
│ └── 2025-06-11b/ # SER 2025 – TND & scalar immune measures
│
├── files/ # Static files (teaching materials, PDFs)
│ └── teaching/ # Slides, code, handouts for courses
│
├── _freeze/ # Quarto freeze cache (computational outputs)
│
└── docs/ # Rendered site output (GitHub Pages serves from here)
Publications Data Format
Publications are stored in publications.yaml. Each entry has:
- title: "Paper title"
author: Last, F., <strong>Boyer, C.</strong>, ... # Bold marks Chris
date: '2025' # Year string (NOTE: EJS adds +1, see below)
categories:
- Pre-print | Methodological | Randomized Trials | Applied/Collaborative | Dissertation
subtitle: Journal Name # Journal/venue
volume: 36
issue: 3
pages: 363-373
path: https://doi.org/... # Primary link
doi: https://doi.org/... # DOI URL
url_preprint: https://... # Optional links
url_repo: https://...
url_pdf: files/...
url_slides: ...
url_pap: ... # Pre-analysis planImportant quirk: The EJS template (ejs/citation.ejs) adds +1 to the year extracted from the date field due to a JavaScript Date timezone issue. This means the date field in publications.yaml should be set to one year before the actual publication year (e.g., date: '2025' renders as “2026”). This is a workaround — be aware of it when adding new entries.
Publication Categories
- Pre-print: Working papers and preprints (arXiv, medRxiv, etc.)
- Methodological: Methods-focused peer-reviewed papers
- Randomized Trials: Papers reporting RCT results
- Applied/Collaborative: Collaborative applied research
- Dissertation: Doctoral dissertation
Blog Posts
Posts live in posts/YYYY-MM-DD-slug/index.qmd. Shared defaults are in posts/_metadata.yml: - Freeze enabled (computational outputs cached) - CC BY license - TOC on left - Default author: Christopher Boyer, Cleveland Clinic
Current Posts
- The many faces of the g-formula (2024-02-16, draft) — Overview of g-formula forms with R implementation
- The reasons people start treatment are not the same as the reasons they stop (2024-02-16, draft) — Treatment initiation vs. discontinuation in causal inference
- M-estimation for causal inference in R (2024-02-16) — Tutorial on sandwich/M-estimation for IPW, outcome modeling, doubly-robust estimators
- Bayesian measurement error models for longitudinal data (2024-02-26) — Bayesian approaches in Stan for measurement error
- Parallel test-negative designs: a quick simulation tour (2025-12-11, draft) — Simulations for equi-confounding paper
- Can test-negative results correct hidden confounding? (2025-12-20) — Negative control outcomes for vaccine effectiveness
Talks Data Format
Talks are in talks.yaml:
- title: "Talk title"
description: |
Venue/conference short description
author:
- name: Christopher B. Boyer
date: 'YYYY-MM-DD'
subtitle: Full venue description
image: talks/YYYY-MM-DD/snapshot.png
path: talks/YYYY-MM-DD/slides.pdfEach talk directory contains a snapshot.png (thumbnail) and slides.pdf.
Software Projects
Listed in software.qmd (static markdown, not data-driven):
R Packages
- cfperformance — Prediction model performance under counterfactual interventions
- globorisk — CVD risk calculation using Globorisk
Stata Packages
- ipacheck — High-frequency checks on survey data for field experiments
- bcstats — Back check/field audit data analysis
- surveycto_api — Automate SurveyCTO data downloads via API
- photobook — Create formatted photobooks from image files
Teaching History
All at Harvard (as Teaching Fellow): - EPI207 (Fall 2020, 2021) — Advanced Epidemiologic Methods (James Robins). 🏆 Excellence in Teaching 2021 - PHS2000 (Fall 2019, Spring 2020, Fall 2021) — Quantitative Research Methods. 🏆 Distinction in Teaching 2019-2021 - EPI260 (Spring 2023) — Mathematical Modeling of Infectious Diseases (Marc Lipsitch)
Common Tasks
Render the site locally
quarto renderPreview the site locally
quarto previewAdd a new blog post
- Create directory:
posts/YYYY-MM-DD-slug/ - Create
index.qmdwith front matter (title, date, categories, description) - Write content with code chunks if needed
- Run
quarto render(orquarto preview)
Add a new publication
- Add entry to
publications.yaml - Set
dateto one year before actual year (due to EJS +1 quirk) - Choose category: Pre-print, Methodological, Randomized Trials, Applied/Collaborative, Dissertation
- Bold the author name with
<strong>Boyer, C.</strong>
Add a new talk
- Create directory:
talks/YYYY-MM-DD/ - Add
slides.pdfandsnapshot.png - Add entry to
talks.yaml
Style Notes
- Theme: Cosmo (Bootstrap)
- Icons via Iconify extension (
) and inline<iconify-icon>tags - Publications use a custom EJS listing template, not Quarto’s built-in listings
- The navbar has: Blog, Research, Talks, Teaching, Software, GitHub icon, CV link
- Homepage uses the “trestles” about template