# Tracing NCI funding to shared data and its reuse by outside teams: analysis code and results

Version 1.0.0

Code and results from two linked studies of the research data produced with National Cancer Institute (NCI) funding. Everything was built from public sources.

1. **The FY2026 portfolio.** Each of the 6,514 core projects NCI funds in fiscal year 2026 ($4,132,427,741 in total) is followed to the datasets public records tie to it. Two routes are used: records that tie a dataset to the award (DataCite and CCDI Data Catalog records that name it, and the Index of NCI Studies), and the award's own papers (NIH RePORTER links the award to its papers, and a paper names a deposit in its MEDLINE databank field or through NCBI's PubMed-to-GEO link). A seeded audit checks 100 of the paper-route links against the source records.
2. **The 2014 to 2025 reuse sample.** A week-stratified random sample of 36,000 NCI-funded papers published from 2014 to 2025 yields 1,419 datasets that those papers produced, not merely cited. Every later paper naming each dataset is found. The analyses measure when outside teams use the data, what they do with it, where they work, what collecting the data again would cost, and which signals at deposit or at year two point to later use.

An **outside team** is one whose paper shares no author surname with the paper that produced the data. The result files call this "independent" use. `METHODS.md` describes each analysis, its inputs and its checks.

## Main results

The FY2026 portfolio:

- Records that tie data to an award (DataCite, the CCDI Data Catalog and the Index of NCI Studies) show data for 16.1% of FY2026 dollars ($665,829,504; 389 projects). The awards' papers find data for another 26.3% ($1,086,713,111; 1,679 projects). The other 57.6% has no data these public routes can trace, which is not the same as no data shared.
- Of 100 randomly drawn paper-route links behind the 26.3%, 95 are correct (95% interval 88.8% to 97.8%). All 50 randomly drawn awards keep at least one correct link, and all 91 sampled links that come from NCBI's curated PubMed-to-GEO link are correct.

The 2014 to 2025 reuse sample:

- Of the datasets NCI-funded papers produced in 2014 to 2016, 42.4% have now been used by an outside team (154 of 363; 95% interval 37.5% to 47.6%). At five years old, 25.1% had been (20.9% to 29.8%). A review at year five would have seen 59% of today's outside-team use and 39% of today's papers naming the data.
- Across all twelve years, outside-team use reaches 4.7% of datasets by one year, 16.8% by three, 24.1% by five and 39.7% by 11.5 years (Kaplan-Meier estimates).
- Old data keeps finding users: 18.9% of the 565 datasets at least eight years old gained a new paper naming them in the 24 months to September 23, 2026.
- Early use is the clearest signal. Datasets an outside team used within two years drew new outside teams in years three to five 60.4% of the time, against 15.3% for the rest (risk ratio 3.95; 3.13 to 4.99). A simple model fitted on even publication years ranks the odd years' datasets with an area under the curve of 0.75 (0.70 to 0.81).
- The 1,557 outside-team papers come from 43 US states and DC and from 91 countries and territories. Of the 1,552 with a research topic, 1,193 (77%) are about something other than cancer.
- In a random sample of 545 outside uses of GEO series and PDB structures whose production was confirmed against the repository's record, 78.5% were analysis rather than a passing mention (74.9% to 81.8%).
- Collecting the reused data again would cost an estimated $18,862,593 counting each of the 377 reused datasets once (range $11,836,075 to $25,889,110), or $111,782,649 counting a dataset again for every paper that reused it.
- Of the 880 datasets at least five years old, 35.2% were used by an outside team (31.7% to 38.7%). Each $1 million of NCI grant funding behind the producing papers was followed by 8.5 outside-team papers (6.6 to 10.6). Grouped by award size, the principal investigator's career stage, the institution's NCI funding rank and whether it holds an NCI cancer center grant, the share used ranged only from 29.6% to 39.6%.
- Citation counts miss much of this use: in 698 of 1,582 outside-team uses (44.1%), the reusing paper does not cite the paper that produced the data.
- The data reaches beyond NCI's grantees. Of the 339 US institutions outside NIH whose researchers reused it, 73 (21.5%) held no direct NCI award from FY2014 to FY2026. Of the 1,557 reusing papers, 365 (23.4%) acknowledge an NIH institute or center other than NCI, against 191 (12.3%) that acknowledge NCI.

These are sample estimates from public records, and every rate is a floor: a use is found only where a paper's indexed text names the dataset's accession number.

## Files

| Path | Contents |
| --- | --- |
| `code/` | The 21 Python scripts behind the results: 17 analysis scripts, the shared helper `reuse_common.py`, and three earlier scripts whose functions the analyses import (the accession allow-list and the author-surname rule) |
| `data/2026-09-24-nci-fy2026-award-links-v1.0.0.json` | The award links table: one row for each of the 6,514 FY2026 core projects, with its FY2026 NCI dollars, its group and the counts behind it |
| `data/2026-09-26-nci-reuse-cohort-v1.0.2.json` | The reuse sample: 1,419 datasets, each with its producing paper, its NCI grants and every later paper naming it, plus every correction with its evidence |
| `data/` (the other 15 files) | One result file per analysis, named by date, analysis and version |
| `METHODS.md` | Each analysis: inputs, method, output file and checks |
| `data_dictionary.csv` | What each code and data file contains |
| `requirements.txt` | Python packages |
| `CITATION.cff`, `LICENSE` | Citation and licenses |

`MANIFEST.json` lists every file with its byte count and SHA-256. Files keep the exact bytes the analysis read and wrote, including Windows line endings, so the SHA-256 digests recorded inside result files match; `.gitattributes` turns off line-ending conversion.

## The award links table

`data/2026-09-24-nci-fy2026-award-links-v1.0.0.json` is the per-project table the FY2026 dollar measurement wrote. Its `status` field uses that measurement's groups: `official` (a DataCite or CCDI Data Catalog record names the award), `bridge` (only the award's publications lead to data) and `none` (no traceable data). The 16.1% headline adds the Index of NCI Studies on top of `official`, as the `regrouped` block of `data/2026-09-26-ins-coverage-v1.0.0.json` shows. The table is the input `code/measure_ins_coverage.py --projects` reads, so the Index comparison reruns from this package. `METHODS.md` shows how to check the table against the dollar result.

## Rerunning the analyses

The results were produced with Python 3.13. Install the four packages the scripts import with `pip install -r requirements.txt`; everything else is the standard library.

The scripts ran from a repository where they sat in `analysis/` and kept their results in `docs/evidence/`, and several find earlier results through that layout. To rerun with the defaults, work from the top folder of this release and first copy the result files to where the scripts expect them:

```
mkdir -p docs/evidence
cp data/*.json docs/evidence/
python code/measure_reuse_clock.py docs/evidence/2026-09-26-nci-reuse-cohort-v1.0.2.json --out-prefix rerun/clock
```

Some options default to earlier (v1.0.0) result files, which are not included. Pass the v1.1.0 files instead (`--early-signals`, `--reach`, `--outcomes`, `--per-dollar-json`). `METHODS.md` lists the inputs of each analysis in the order they build on one another.

- **Public sources.** NIH RePORTER, NCBI E-utilities (PubMed, GEO, SRA, BioProject and dbGaP), Europe PMC, the RCSB Protein Data Bank, DataCite, the CCDI Data Catalog, the Index of NCI Studies and its public data release, OpenAlex, ROR, NIH iCite, ENA, PRIDE, EGA, BioStudies, the ShareScore public API and the US Department of Education's FY 2025 eligibility matrix for minority-serving institutions. The FY2026 funding list is the public ScienceDex export: https://conductscience.com/api/nih/portfolios/nci/rankings/export?year=2026&yearStart=2026&membership=funding&attribution=award&scope=award&metric=funding_total&view=data
- **Keys.** Set `NCBI_API_KEY` (optional; it raises NCBI's rate limit) and `OPENALEX_API_KEY` (needed by the OpenAlex steps) as environment variables. The scripts read them with `load_key` in `code/reuse_common.py` and never print or save them.
- **Contact address.** The scripts identify themselves to these services with the authors' contact address (`UA` in `code/reuse_common.py` and in the three imported helper scripts). Put your own address there before running.
- **Caches.** Every script caches API responses (`--cache` or `--work`, by default in the system temp folder) and resumes after an interruption. The original caches are raw API responses and are not included. Public sources change daily, so a fresh run reproduces the method and the rates within sampling error, not every count.
- **Two workstation defaults.** `estimate_replacement_value.py` (`DEFAULT_CACHE`) and `measure_paper_fame_and_clinical_reach.py` (`DEFAULT_SAMPLE_DIR`) default to folders on the authors' workstation. Pass `--cache`. For the second script, also pass `--paper-sample-dir` (the cohort harvest's work folder), or copy its published result to the `--out` path first so it reads the stored sample of NCI-funded papers from there.
- **Internal references.** A few comments, strings and result fields point to the authors' private working repository or to local folders. Nothing needs them to run, and the files keep them so their bytes match what ran.

**Checked when this release was assembled.** Run on the cohort file, `measure_reuse_clock.py` reproduced its result file exactly, apart from the time stamp and the later re-query check, which needs a fresh Europe PMC query. Run with the award links table, `measure_ins_coverage.py` reproduced every headline table of the Index comparison; its deposit-by-deposit comparison also needs the dollar measurement's API cache.

**Steps that need files not in this release.** The link audit needs the dollar measurement's API cache (`--portfolio-work`). Rerunning `measure_portfolio_dollars.py` builds a new cache, but the sources will have moved, so the audit's first check will record that the table differs, and the readings stored in the script apply only to the frozen sample. The two cohort corrections start from cohort versions 1.0.0 and 1.0.1, and the second also reads the production review's write-up; every change they made is recorded in the cohort's `errata` block. The reach result is a recount of the first reach run's per-paper records on cohort 1.0.2, as its `recount` block describes; running `measure_reuse_reach.py` afresh applies the same method to today's OpenAlex records. The optional agreement workbook of `classify_reuse_outcomes.py` (`--workbook`) needs a helper that is not included, and the result file does not depend on it. To reapply the recorded use labels, pass the outcomes result file as `--reviews`.

## Not included

Raw API responses and caches, the earlier cohort versions 1.0.0 and 1.0.1, and superseded result versions are not included. No file contains patient-level or controlled-access data: dbGaP and EGA studies appear only as accession numbers and public study metadata. The use analysis stores the passage of each sampled paper that names the dataset, so its labels can be checked, and the reach result keeps the raw affiliation text its placement rules read, which includes some authors' published e-mail addresses.

## Use of generative AI

The analysis code was written and run with Claude Opus 5.5 (Anthropic). The same model made every recorded reading in this release: the uncertain passages in the use analysis, the links read in full in the link audit, the repository pages in the production review and the checks of unmatched institutions. Each reading is recorded in a result file or a script, and `METHODS.md` gives the details. A human agreement check of the use labels has not yet been completed.

## Versions

1.0.0 is the first release. Each result file name carries that analysis's own version. Results at v1.1.0 were rerun on cohort version 1.0.2, which removed 79 datasets that the NCI paper had cited rather than produced.

## Rights

Code in `code/` is released under the MIT License. The result files, the award links table and the documentation are released under CC BY 4.0. Passages quoted from published articles, and metadata drawn from the public sources above, keep their original terms. See `LICENSE`. Cite the dataset when you use the files; `CITATION.cff` gives the citation.
