# K10 control – brink2005 (Brink et al., Br J Cancer 2005;92:1310-20, NLCS case-cohort, K-ras)

Source: historisk/brink2005.txt (PMC XML-derived, complete). Page per table is not available, so the article range is acceptable.
Rows checked: 492 (all).

## Method
I parsed Tables 2, 3 and 4 programmatically from the text (each cell is on its own line in the XML-derived file) and compared every estimates.csv row against them. The script is at /home/claude/k10_in/s/brinkcmp.py. The comparison covered:
- point, ci_low, ci_high, n_cases and p_trend, plus person-years for Table 2
- all 9 exposures × 2 outcomes, in 6 model/subgroup panels: Table 2 age-sex (c) and multivariate (d); Table 3 K-ras−/K-ras+; Table 4 G>A / G>T,G>C

Of 108 parsed panels, all 108 are matched by database sets, and none is missing.

## Discrepancies
Numeric: **none**. The only flagged differences are 4 person-year values written "10 421" in the paper and 10421 in the database (_337, _340, _343, _346). These are identical.

| estimate_id | field | in database | in paper | severity |
|---|---|---|---|---|
| total fresh meat sets (_001–_060) | exposure | total_meat (includes_processed = no) | "fresh meat" = beef, pork, minced meat, chicken, liver and other meat (sausages), all unpreserved. It includes chicken and excludes meat products (Methods). The row notes say so, but the vocabulary code total_meat suggests all meat. This is the same issue as Goldbohm 1994: do not pool as total meat including processed, or as red meat. | major (exposure definition flag) |
| other meat sets (_337–_372) | exposure | red_undefined / unclear | "other meat (i.e. sausages)", classed by the paper as fresh (unpreserved) meat. Coding is acceptable; is_main_model = no is correct. | – |
| minced meat (_181–_240) | exposure | red_unprocessed, main = no | minced meat = beef + pork, unpreserved. Coding is correct, and the reason given for not making it main is sound. | – |
| chicken (_287–_290) | dose_low/high | from text bounds | Table 2 "median" row prints 0/5.3/13.2/22.8, which equal the category bounds in Methods. Already noted. | – |

## Re-derivations
- Table 2 cases sum to 448 colon and 160 rectum for every exposure (= totals). Person-years match.
- Per-SD rows: the SD values (42.2, 22.5, 30.3, 17.3, 4.4, 15.6, 6.4, 15.0, 15.0 g/day) equal the subcohort SDs in Table 1.
- Table 3 sums: colon 290/144 and rectum 89/65, against Table 1 N of 297/151 and 93/67. The differences come from the 100 subcohort and some cases excluded for missing QI.
- Model m2 (Table 2 fn d: age, sex, QI, smoking, energy, family history) applies to Tables 2–4.

## Internal inconsistency in the paper
Table 4 rectal case sums are 34/31 (G>A / G>T,G>C) for total fresh meat but 33/32 for every other exposure. One case appears to be classified differently in the total fresh meat row. The database reproduces the printed numbers.

## Missing estimates
None.

## Confirmed
All 492 rows numerically; adjustment sets m1/m2; studies.csv: case-cohort; 448 colon / 160 rectum cases with K-ras status; subcohort 2,948 analysed; 7.3 years of follow-up; Spearman r for fresh meat 0.46. NLCS is the same cohort as goldbohm1994, and cohort_id = nlcs for both. The cases are restricted to those with tissue available, so this is not a full-cohort meat analysis.

## Verdict
Numerically fully verified. Fit for use as a secondary NLCS source, but not for main pooling: it is the same cohort as Goldbohm 1994 (and later NLCS papers), uses a tissue-available case subset, and has no red-meat aggregate.
