Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
93c49c9
Create new_file.R
Kwan-Jenny Aug 21, 2026
0aea131
Add files via upload
Kwan-Jenny Aug 21, 2026
5dc7375
Create new_file.R
Kwan-Jenny Aug 21, 2026
46a934b
Create new_fIle.R
Kwan-Jenny Aug 21, 2026
de200af
Create ch3
Kwan-Jenny Aug 21, 2026
48c330c
Delete inst/scripts/ch3
Kwan-Jenny Aug 21, 2026
90581dd
Create new_file.R
Kwan-Jenny Aug 21, 2026
b4534bf
Delete inst/scripts/new_file.R
Kwan-Jenny Aug 21, 2026
021f93b
Add files via upload
Kwan-Jenny Aug 21, 2026
3a560ca
Delete inst/scripts/ch3/new_file.R
Kwan-Jenny Aug 21, 2026
6968a8c
Create newfile.R
Kwan-Jenny Aug 21, 2026
3a0b209
Add files via upload
Kwan-Jenny Aug 21, 2026
44bc95a
Delete inst/scripts/ch3/newfile.R
Kwan-Jenny Aug 21, 2026
7d54266
Create newfile.R
Kwan-Jenny Aug 21, 2026
ea0181c
Add files via upload
Kwan-Jenny Aug 21, 2026
e2e498a
Delete thesis directory
Kwan-Jenny Aug 21, 2026
4f5b27c
Delete vignettes/articles/thesis/newfile.R
Kwan-Jenny Aug 21, 2026
b88d04d
Create newfile.R
Kwan-Jenny Aug 21, 2026
4aa4bff
Create newfile.R
Kwan-Jenny Aug 21, 2026
4d41ae4
Add dissertation draft and the two chapter manuscripts
Kwan-Jenny Aug 24, 2026
9c5093e
Add workflow to render thesis and upload documents
Kwan-Jenny Aug 24, 2026
4d19fba
Update package metadata for thesis draft
Kwan-Jenny Aug 24, 2026
9f2e9d9
update WORDLIST
Kwan-Jenny Aug 24, 2026
0050e4e
Potential fix for pull request finding
Kwan-Jenny Aug 24, 2026
4bee732
Potential fix for pull request finding
Kwan-Jenny Aug 24, 2026
67b7485
Potential fix for pull request finding
Kwan-Jenny Aug 24, 2026
e1df45e
Apply remaining changes
Copilot Aug 24, 2026
268a67c
Apply remaining changes
Copilot Aug 24, 2026
f3938c7
Revise chapters 2 and 3
Kwan-Jenny Aug 28, 2026
d5a2af1
update WORDLIST
Kwan-Jenny Aug 28, 2026
7470d0e
Merge main into thesis-draft
d-morrison Aug 28, 2026
88d1f9c
Add a typos config so check-typos passes on the thesis sources
d-morrison Aug 28, 2026
9276819
Merge main into thesis-draft
Kwan-Jenny Aug 29, 2026
528b1e4
Merge remote-tracking branch 'origin/main' into thesis-draft
claude Aug 29, 2026
5bd6128
# update chapter2 qmd based claude bot review
Kwan-Jenny Aug 29, 2026
e6d1b4f
update chapter3
Kwan-Jenny Aug 29, 2026
0856775
# update chapter2,3 qmd
Kwan-Jenny Aug 30, 2026
6bfeebd
Fix the rho_c prior claim and the "fit" overload in the two chapters
claude Aug 30, 2026
3057f34
# update chapter2,3 qmd files
Kwan-Jenny Aug 30, 2026
fd29c72
Add the three serocalculator words to WORDLIST and a .gitattributes
claude Aug 30, 2026
b278213
# update 2 qmd files
Kwan-Jenny Aug 30, 2026
e4c5ced
update qmd files
Kwan-Jenny Aug 30, 2026
c089474
Fix the scheme lookup, two sentences, a caption, and trailing newlines
claude Aug 30, 2026
1b43c6d
Name the forms in tbl-cov, guard its row pairing, and six prose fixes
claude Aug 30, 2026
aa74a4c
Say what tbl-collect counts, name the sites in full, and four prose f…
claude Aug 30, 2026
d0827ca
# update thesis qmd
Kwan-Jenny Aug 31, 2026
0c6b7cd
update thesis qmd and add few figures and csv file
Kwan-Jenny Sep 1, 2026
f9455d0
Add the two chapter manuscript entries to the thesis bibliography
claude Sep 1, 2026
35d3056
Nest the two chapter appendices like the first, and number four level…
claude Sep 2, 2026
0ddeed8
Restore the SEES ethics and funding sections, and let two headings parse
claude Sep 2, 2026
98d256b
Correct the serocalculator attribution and trim the introduction
claude Sep 2, 2026
76464ff
Name the product form, break three sections onto a new page
claude Sep 2, 2026
fab133c
Submission mechanics: roman preliminaries, no blank page, front lists
claude Sep 2, 2026
fcef1bd
Repair the two list fields, keep captions with their tables, size thr…
claude Sep 2, 2026
15c3800
Replace the abstract and centre its heading
claude Sep 2, 2026
cfb0e69
Front matter: abstract first, own pages for the lists, Fig. for figures
claude Sep 2, 2026
6fc32df
Chapter 3: thirteen edits from Kristen's review
claude Sep 3, 2026
8111f75
add writing standard guideline file
Kwan-Jenny Sep 3, 2026
0db1789
chapter 3: HlyE placement, genus italics, redundant sentence, appendi…
claude Sep 3, 2026
8584cc6
chapter 3: subjective wording, ELISA expansion, duplicate values, uns…
claude Sep 3, 2026
647de62
# update guideline
Kwan-Jenny Sep 3, 2026
a1ed0d5
chapter 3: correct serocalculator attribution in methods and reproduc…
claude Sep 3, 2026
b7ba47c
chapter 3: antecedents, adjacent repetitions, and one duplicated sent…
claude Sep 4, 2026
514734c
writing standard: record decided items and two extractor caveats
claude Sep 4, 2026
fdca5ee
chapter 3: record deferred review items
claude Sep 4, 2026
9b2d382
chapters 2 and 3: correct the SEES expansion and separate it from SEAP
claude Sep 4, 2026
009a465
chapter 2: restore statistical terminology and the two-source display
claude Sep 4, 2026
9a4145e
chore: ignore the local Claude settings override
claude Sep 4, 2026
9e86b91
# update
Kwan-Jenny Sep 4, 2026
65426a4
update
Kwan-Jenny Sep 4, 2026
61c6a2e
chapter 3: correct the reproducibility attribution and unify the nami…
claude Sep 4, 2026
a91dfdb
chapter 3: one name for the pair of codebases
claude Sep 4, 2026
326d72d
chapter 3: one name for the pair of codebases, everywhere
claude Sep 4, 2026
bf48cc7
chapter 3: name the estimator each sentence means
claude Sep 4, 2026
7846f48
update
Kwan-Jenny Sep 4, 2026
da4c7ca
chapter 2: define the null/alternative pair, align the decay bound, e…
claude Sep 4, 2026
9f4f107
chapter 2: remove the unreported Shigella comparison and state the da…
claude Sep 4, 2026
51694e8
chapter 2: drop a forward promise the sensitivity analysis does not keep
claude Sep 4, 2026
6134d7e
chapter 2: one name for the alternative condition in both captions
claude Sep 4, 2026
800fde7
chapter 2: drop an objective the chapter no longer reports
claude Sep 5, 2026
06c1cda
consolidate the deferred items for chapters 2 and 3 into one file
claude Sep 5, 2026
a925bdf
chapter 2: one name for the model-free correlations
claude Sep 5, 2026
a889b09
record the ch2 L1012 repetition as deferred
claude Sep 5, 2026
19cd0e1
Appendix D: serocalculator is also used for the reference comparison
claude Sep 5, 2026
2c35082
Appendix D: chapter 3 fits no models
claude Sep 5, 2026
b683da9
bring chapters 2 and 3 up to date from the standalone manuscripts
claude Sep 5, 2026
628f67d
chapters 3 and thesis: the product form averages, it does not take me…
claude Sep 5, 2026
621a8c9
Appendix D: say what chapter 3 does instead of fitting
claude Sep 5, 2026
d999234
Introduction and Conclusion: cite what the chapters say about cohort …
claude Sep 5, 2026
582b2e5
bridge: explain the pathogen change from what the model requires
claude Sep 5, 2026
599b546
Introduction: summarise the bridge rather than assert what chapter 2 …
claude Sep 5, 2026
4f2f432
chore: record the current chapter and dissertation hashes
claude Sep 5, 2026
5e27707
abstract: state chapter 1's pooling result as chapter 1 states it
claude Sep 5, 2026
43fe2a9
add acknowledgments
claude Sep 5, 2026
57e595a
acknowledgments: correct the course number
claude Sep 6, 2026
3ee77d0
reduce emphasis to marked misreadings and unify the front matter
claude Sep 6, 2026
36f8c68
dissertation: correct the tooling statement, split the chapter 1 abst…
claude Sep 6, 2026
6d31d7c
conclusion: drop an intensifier the numbers already carry
claude Sep 7, 2026
026d25b
record the last deferred items and remove the working standard
claude Sep 7, 2026
4953b76
set the table font for non-ASCII characters and restore the heading s…
claude Sep 7, 2026
366c4db
centre the front matter headings
claude Sep 7, 2026
38ef248
deferred.md: one sentence per line
claude Sep 7, 2026
d103e52
add acknowledgment names and two terms to the spellcheck dictionary
claude Sep 7, 2026
f810ecc
thesis: add figure alt text for accessibility
claude Sep 7, 2026
0a56921
chapter 2: apply Kristen's review
claude Sep 9, 2026
f5f10fc
dissertation: bring chapter 2's body back in step after Kristen's review
claude Sep 9, 2026
880a577
dissertation abstract: name the biomarker and the assumption chapter …
claude Sep 9, 2026
bc8fd64
chapter 3: apply Kristen's tracked changes
claude Sep 9, 2026
cde69d6
chapter 3: two sentences from Kristen's tracked changes
claude Sep 9, 2026
6b92059
deferred.md: record the four notes we could not close, and how the fi…
claude Sep 9, 2026
ce32284
dissertation: bring chapter 3 back in step after Kristen's tracked ch…
claude Sep 9, 2026
e7dfc22
dissertation abstract: define the product form and fix what censoring…
claude Sep 9, 2026
21d6d0f
reference.docx: pull the caption rule inside the margin
claude Sep 10, 2026
cc6c98d
deferred.md: record why the dissertation's reference.docx differs
claude Sep 10, 2026
4eef524
chapter 1: resolve references to supplementary material the dissertat…
claude Sep 11, 2026
1b94125
deferred.md: record the broken B5 reference in the submitted chapter 1
claude Sep 11, 2026
6bec844
chapter 3: apply Kristen's second-round edits and her heading and tit…
claude Sep 11, 2026
7929d6d
deferred.md: record what the second round cost and the one choice tha…
claude Sep 11, 2026
0c783ed
chapter 3: complete three edits Kristen left unfinished
claude Sep 11, 2026
22b4386
deferred.md: record the content requests from the second round
claude Sep 11, 2026
dd1b987
chapter 3: state the pre-specification her replacement displaced
claude Sep 11, 2026
c2582cc
chapter 3: two sentences from the guide's specification column
claude Sep 11, 2026
a1e3829
deferred.md: record what the guide asks for that is judgment rather t…
claude Sep 11, 2026
1da7e81
deferred.md: record that the tracked-change extractor mishandles nest…
claude Sep 11, 2026
747c633
chapter 3: drop the reservation she removed twice, keeping its findings
claude Sep 11, 2026
c013293
deferred.md: close the abstract disagreement and say what stayed
claude Sep 11, 2026
9efd991
dissertation: bring chapter 3 back in step after Kristen's second round
claude Sep 11, 2026
8ceabd1
dissertation abstract: follow her chapter 3 abstract on the ranking a…
claude Sep 11, 2026
3a97c6e
dissertation abstract: drop the unexplained-observation paragraph
claude Sep 11, 2026
0d0cbdf
deferred.md: record why the abstract no longer previews the discordance
claude Sep 11, 2026
a3154dd
deferred.md: update the header to HEAD
claude Sep 11, 2026
1cd3b22
fix_submission.py: cap figure width at 6.35 in for the margin rule
claude Sep 11, 2026
880a167
Merge branch 'main' into thesis-draft
d-morrison Sep 12, 2026
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
7 changes: 4 additions & 3 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
^README\.Rmd$
^\.lintr\.R$
^_quarto\.yml$
^AGENTS\.md$
^CLAUDE\.md$
^\.claude$
^_typos\.toml$
^.*\.qmd$
^.*\.png$
^Vary.*\.r$
Expand All @@ -23,3 +21,6 @@
^shigella\.Rcheck$
^shigella.*\.tar\.gz$
^shigella.*\.tgz$
^AGENTS\.md$
^CLAUDE\.md$
^\.claude$
41 changes: 41 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Line-ending normalisation.
#
# Without this file git stores whatever the working tree contains, so an editor
# configured for Windows line endings can commit CRLF into a repository that is
# otherwise LF throughout. That happened to chapter2.qmd, where the conversion
# rewrote all 1,285 lines and buried seven real edits in a whole-file diff.
#
# `text=auto` makes git normalise to LF in the repository for anything it
# detects as text. The `eol=lf` entries go further and keep LF in the working
# tree as well, on every platform, so an editor never sees CRLF to preserve.

* text=auto

# Prose and analysis sources
*.qmd text eol=lf
*.Rmd text eol=lf
*.md text eol=lf

# Code
*.R text eol=lf
*.r text eol=lf
*.stan text eol=lf
*.py text eol=lf

# Data and bibliography. The CSVs are written by the analysis scripts and read
# back by read.csv, which accepts either ending; pinning LF keeps regenerated
# tables diffable line by line. None contains an embedded newline in a quoted
# field, so forcing the ending is safe.
*.csv text eol=lf
*.bib text eol=lf
*.csl text eol=lf

# Configuration
*.yml text eol=lf
*.yaml text eol=lf
*.toml text eol=lf
*.json text eol=lf

# Binary: excluded from normalisation so text=auto can never mis-detect them.
*.png binary
*.docx binary
81 changes: 81 additions & 0 deletions .github/workflows/render-thesis-vignettes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Renders the dissertation and the two manuscripts to docx, on every push to the
# branch and every pull request that touches them, and uploads the results as
# artifacts.
#
# THE POINT. A reviewer — bot or human — can read the rendered documents without
# installing anything, and a render failure shows up as a red check before
# anyone spends time on the prose.
#
# WHY THIS IS CHEAP. The chunks in all three documents only read CSVs and build
# flextables: no Stan, no JAGS, no model fitting. flextable and officer are the
# whole dependency set, so the job finishes in a couple of minutes.

name: Render thesis

on:
push:
branches: [thesis-draft]
paths:
- 'vignettes/articles/thesis/**'
- '.github/workflows/render-thesis-vignettes.yaml'
pull_request:
paths:
- 'vignettes/articles/thesis/**'
workflow_dispatch:

permissions:
contents: read

jobs:
render:
runs-on: ubuntu-latest
defaults:
run:
working-directory: vignettes/articles/thesis

steps:
- uses: actions/checkout@v4

- uses: quarto-dev/quarto-actions/setup@v2

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
working-directory: vignettes/articles/thesis
packages: |
any::flextable
any::officer

# Renders the three documents named in thesis/_quarto.yml. Each lands
# beside its own .qmd.
- name: Render
run: quarto render

# Quarto wraps each captioned table in an outer single-row table, and
# flextable's own options reach only the inner one, so tables were
# breaking across pages. Setting cantSplit on every row moves a whole
# table to the next page instead of splitting it.
- name: Keep tables whole
run: |
python3 fix_table_breaks.py thesis_ch1_ch2_ch3.docx
python3 fix_table_breaks.py chapter2/chapter2.docx
python3 fix_table_breaks.py chapter3/chapter3.docx

- name: Upload dissertation
uses: actions/upload-artifact@v4
with:
name: dissertation
path: vignettes/articles/thesis/thesis_ch1_ch2_ch3.docx
retention-days: 30

- name: Upload manuscripts
uses: actions/upload-artifact@v4
with:
name: manuscripts
path: |
vignettes/articles/thesis/chapter2/chapter2.docx
vignettes/articles/thesis/chapter3/chapter3.docx
retention-days: 30
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ shigella.Rcheck/
shigella*.tar.gz
shigella*.tgz
.DS_Store
.claude/settings.local.json
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
* Recorded the roxygen2 version in `Config/roxygen2/version`, which roxygen2
8.1.0 uses in place of `RoxygenNote` (#32)

* Added dissertation and standalone chapter manuscript source files with automated DOCX rendering (#31)
* Pinned `use-ai-config: true` explicitly on the Claude and Claude-review
`Morrison-Lab/gha@v2` callers (#36).
The reusable workflows already default that input to true,
Expand Down
25 changes: 25 additions & 0 deletions _typos.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Configuration for crate-ci/typos, consumed by
# .github/workflows/check-typos.yml.
#
# Every entry below is a term this repository uses deliberately, not an
# accepted misspelling. Keep it that way: a real typo belongs fixed in the
# source, not listed here.

[files]
extend-exclude = [
# Bibliographies are exported from reference managers and carry author
# surnames and non-English titles. "Leroux-Roels" alone accounts for three
# findings, and none of it is prose anyone wrote here.
"*.bib",
# {spelling}'s own accept-list. A file whose entire purpose is to hold
# unusual words cannot be spellchecked.
"inst/WORDLIST",
]

[default.extend-words]
# Abbreviations used in Stan model code, analysis scripts, and figure labels.
lik = "lik" # likelihood: log_lik, .lik(), the LIK_FORM environment variable
lod = "lod" # limit of detection: fig-lod, the LOD covariate in ch3
mis = "mis" # the prefix, as in mis-centered / mis-extracted
nd = "nd" # per-chain draw count, inst/scripts/ch2/run_ch2_461.R
pn = "pn" # par_new summary, inst/scripts/ch2 and ch3
190 changes: 190 additions & 0 deletions inst/WORDLIST
Original file line number Diff line number Diff line change
@@ -1,28 +1,218 @@
AKU
Aiemjoy
Bernshtein
CMD
Centre
Cheng
Chisenga
Codecov
Cov
CrI
DOCX
Diarrhoeal
FIC
Farzam
Fogarty
GMMA
GitHub
HlyE
INV
IgA
IgG
IpaB
Iso
Isotype
Jiang
Jiming
Jong
KA
LKJ
LMICs
Lai
Longrightarrow
Luminex
MCSE
MFI
MacConkey
MassGeneral
Mirpur
NIAID
Ndungo
ORCID
OSP
PHI
PLOS
Paratyphi
Postprocess
Pre
RLDT
Richelle
SEAP
SERG
SOSAR
Schildhauer
Schur
Schwarz's
Seon
Seroepidemiology
Seroincidence
Serological
Seroprevalence
Seroresponse
Serotype
TTHc
TW
Tae
Typhi
UCD
Unif
Vaidya
Yoon
al
allowlist
altSonflex
analyte
antigenically
bacteremic
biomarker
biomarkers
boldsymbol
boydii
changelog
codebase
codebases
comparator
computable
de
dec
df
diag
diarrheal
dichotomization
dichotomizes
dt
dy
dysenteriae
dysenteric
eightfold
elpd
endemicity
enterica
estimand
et
fivefold
flexneri
frac
funders
ge
generalizability
ggplot
gha
glucosyl
hemolysin
heterologous
humoral
hyp
hyperprior
hyperpriors
icddr
iint
ij
ik
immunoaffinity
immunoassay
immunologically
immunoreactive
immunosorbent
infty
interpretability
io
iok
ipaH
ipab
isolable
isotype
isotype's
isotypes
jj
le
licensure
ln
logarithmically
lp
lpd
mapsto
mathbb
mathbf
mathcal
mathrm
mis
misspecified
mucoid
mucosal
multimodality
ne
newperson
operatorname
organismal
pagebreak
plasmid
pmatrix
polysaccharides
pre
precisions
presentational
qquad
quadrivalent
reparameterization
repo
reweight
reweighting
reweights
roxygen
rvert
scalable
sera
sero
serocalculator
seroconversion
serodiagnostic
serodynamics
seroepidemiologic
seroepidemiology
seroincidence
serologic
serological
seroresponse
seroresponses
serosurveillance
serosurvey
serosurveys
serotype
serotype's
serotypes
serotyping
serovars
shigellosis
sonnei
spp
subclinical
sublinearly
succ
tetrasaccharide
textbf
textstyle
tfrac
th
thirtyfold
tibble
titers
underbrace
underpowered
uninterpretable
unstratified
untypeable
varepsilon
varrho
widehat
xrightarrow
Loading
Loading