How this was built
Every number on this site is measured from a repository’s own records and linked to its source. This page records how, and where the method is weak. Built for the NCI Office of Data Sharing Impact Prize, Track 1.
Methods
Sources · clinical completeness · six verdicts · grading reuse · dating · what a count counts · reuse gap · merging · where this is weak · reproducing
For software
JSON records, agent briefs, Croissant, JSON-LD, and the search and agent endpoints. No key, no rate limit.
Funding to findings
Pick an NCI award and see the datasets it paid for and the articles that analysed them.
How the ask box works
Deterministic checks against measured fields decide it. A language model is called only where they name no clear place to start.
One rule: no claim without provenance
Every substantive statement on a dataset page carries an evidence record: how it was obtained (a structured API, a published file, document text, a computation here, or a named reviewer), when it was retrieved, and how confident we are. On the page these are the small chips beside each claim. In the JSON they are the evidence arrays.
The reason is practical. “Treatment response is recorded” is only useful if you can find out whether that means a structured RECIST field on 90% of cases or a free-text note on twelve. Provenance lets a reader decide how much weight to put on any line.
Sources and record units
The unit is the individual study or project. A researcher downloads TCGA-BRCA, not TCGA.
Records by repository
- cBioPortal228 · 0 traceable
- IDC137 · 1 traceable
- PDC130 · 130 traceable
- GDC93 · 93 traceable
- HTAN14 · 0 traceable
NCI Genomic Data Commons
api.gdc.cancer.govCohort counts, assay inventories, open/controlled file splits, and - the part that matters most - per-field clinical completeness derived from the API's own missing-value facets.
NCI Proteomic Data Commons
proteomic.datacommons.cancer.gov/graphqlPDC ships one study per analytical fraction, so proteome and phosphoproteome of the same tumors arrive as separate studies. We group fractions back into one record per biological cohort and drop inter-laboratory reference materials, which are not patient cohorts. Clinical completeness is read case by case from clinicalPerStudy and the treatment records, in the same harmonized vocabulary the GDC uses, so a proteomic cohort is graded by the same six rules.
NCI Imaging Data Commons
api.imaging.datacommons.cancer.gov/v3Subject and series counts, DICOM modalities, licenses, and the supporting_data field that records which other measurements accompany the images. Collection descriptions are mined for cross-repository accessions, which recovers imaging-genomics pairs documented only in prose. Clinical variables here are per-collection tables named by the submitting trial, with no shared vocabulary to grade against, so we record only whether such a table exists - and say so where a collection's own supporting_data disagrees with what is served.
Human Tumor Atlas Network
github.com/ncihtan/htan-portalPer-atlas Synapse component inventories, which give the assay mix, file counts and the participant count behind each clinical table, plus the network's own curated publication manifest with PMIDs and grant numbers. That manifest is unusually strong evidence because HTAN maintains it.
cBioPortal
cbioportal.org/apiThe discovery channel for investigator-generated cohorts. Every public study records the PMID it came from; we resolve those through NIH RePORTER and keep the ones an NCI award paid for. This surfaces NCI-supported datasets that no NCI catalog enumerates. Its standard clinical attributes are counted per patient, including an explicit bucket for patients a field has no row for, and the survival and progression times are read value by value so the medians are exact.
Europe PMC
ebi.ac.uk/europepmc/webservices/restSection-scoped literature search, which is what makes graded reuse evidence possible, plus citation counts and first-reference dating.
NIH RePORTER
api.reporter.nih.gov/v2PMID-to-award linkage, award titles, investigators, institutes and fiscal years. Used to separate NCI-funded data generation from NCI-funded reuse.
Measuring clinical completeness
“Clinical data available” says nothing about whether you can run a survival model. So for every dataset we compute, field by field, how many cases carry an informative value, using the source API’s own missing-value facets.
Two distinctions matter. A field filled entirely with “not reported” blocks an analysis as surely as an absent one, for a different reason, so the two are counted separately. Several cohorts here report vital status for every case and an informative value for none, which makes survival analysis impossible in a way no catalog entry reveals; the dataset pages name them and show the counts.
One-to-many fields, such as treatment records, produce counts that exceed the cohort size, so per-case percentages cannot be read from them. Those fields are flagged 1:n and only the share of cases with any record is reported.
Each repository names its clinical fields its own way. Every measured field therefore carries both its native name and a harmonized name from one shared vocabulary, and the verdicts read the harmonized one, so a proteomic cohort and a genomic one are graded by the same rule. Where two fields claim the same concept, the one informative for more of the cohort is used.
How far the measurement reaches
- cBioPortal166 of 228
- IDC0 of 137
- PDC126 of 130
- GDC93 of 93
- HTAN0 of 14
The six analysis verdicts
Every dataset page opens with the same six questions, answered from the field completeness above rather than from the catalog description. The thresholds are the ones in the executed workbook “Can I answer this question with this dataset?”, so any verdict can be re-derived against the live API.
A verdict is supported when the decisive field is informative for enough of the cohort, limited when it is informative for some but too few, and not supported when it is absent or filled only with “not reported”. Not measured is a fourth, separate outcome: we have not probed that field for that repository yet. It is never folded into “not supported”, because an agent that read it that way would discard usable cohorts.
| Analysis | Fields read | Supported when | Limited when |
|---|---|---|---|
| Overall survival | vital status with days to death or last follow-up | vital status informative for at least 20 cases, with at least 10 deaths and a usable time | vital status informative, but too few events or no time field |
| Progression or recurrence | progression_or_recurrence at diagnosis or follow-up | informative for 30% of cases or more | informative for 5% to 30% of cases |
| Treatment response | treatment_outcome or disease_response at follow-up | populated for 30% of cases or more | populated for 5% to 30% of cases |
| Which drug was given | therapeutic_agents | recorded for 25% of cases or more | recorded for 5% to 25% of cases |
| Stage-adjusted modelling | AJCC pathologic or clinical stage | informative for 50% of cases or more | informative for 20% to 50% of cases |
| Analysis by race or ethnicity | race, or ethnicity | informative for 50% of cases or more | informative for 20% to 50% of cases |
Repositories that ship one clinical table per topic rather than harmonized fields, as HTAN does, can at best tell us that a table exists for some share of cases. Those verdicts stay “not measured” until the table’s coverage has been probed, and reach “limited” at most when it has.
How the ask box works
A question goes through two stages, and only the second involves a language model. First, the wording is read for what the analysis needs: a survival endpoint, recorded treatment response, imaging, a pediatric cohort, open access, and so on. Each need is checked against the measured flags on every record. A flag that was never measured stays unknown; it is never read as “no”. The candidates that match the topic and meet the most needs form a shortlist, with the reasons and the blockers written from the measured fields.
Alongside, a deterministic router recognises what a shortlist cannot answer: an award number goes to its funding network, a dataset named outright goes to its page, two distinct names go to a comparison, a how or why question goes to the section of this page that answers it, and a request for files goes to the software page. These destinations are offered in addition to the shortlist, never instead of it, and the router chooses pages; it never states a fact about a dataset.
The deterministic ranking is the answer whenever it settles the request. When the leading dataset meets every need the request stated, and each of those needs was actually measured for it, that shortlist is what comes back - with no model in the path to slow it down or to restate a decision already made on measured facts. Only when nothing clears that bar, because a need fails or nobody measured it, does the order among near-misses become a judgement about which caveat matters most to the analysis described; only then is the shortlist handed to a language model through OpenRouter (deepseek/deepseek-v4.1-flash unless OPENROUTER_MODEL says otherwise), to rank and rewrite the reasons in the researcher’s own terms using only the measured facts it is given. Without a key those requests keep the rule-based wording. The answer page says which happened, and the API response carries it as mode and model, with note distinguishing the three ways a rules answer can arise. Each line drawn from a measured field links to the section of the dataset page that carries it; a line whose wording does not identify one carries no source link rather than a guessed one.
Grading reuse: citation is not use
A review that cites the TCGA marker paper in its introduction has not reused TCGA. A paper that downloads TCGA-BRCA expression matrices and fits a model on them has. Treating the two as the same inflates every reuse statistic in the field, so we separate them and report only the second as reuse.
Europe PMC indexes article sections independently, which makes the separation possible. Where an accession appears is strong evidence of what the authors did with it.
Every tier asks a fixed set of section fields, the same set for every dataset, and the tier reported as reuse asks METHODS alone. Asking several and taking the largest answer, which is what this used to do, hands the count to whichever field has the most false positives - and RESULTS, the field that usually returns the most, is the field we already knew to be least reliable.
The table describes the counts. Individual articles listed on a dataset page are graded on a wider set - an accession in RESULTS, a table, a figure or the supplement still shows the data were analyzed - so an example can name a section the count never asked about.
| Tier | Indexed sections | Interpretation |
|---|---|---|
| Data analyzed | METHODS | The accession appears where the analysis is described, so the reported findings plausibly depend on these data. This is the only tier we report as reuse. |
| Use declared | DATA_AVAILABILITY | The authors named the accession in a data-availability statement. Strong, but it does not by itself show the data were analyzed. |
| Accession found | ACCESSION_ID | Europe PMC's text-mined accession index located the accession in the article. |
| Mentioned only | REF, INTRO | Named in framing text or the bibliography. Counted, shown, and deliberately not called reuse. |
Which fields we use, and one we rejected
Field choice is re-measured against the live index on every build, on the corpus’s most reused accession. Of the 5,146 articles that mention TCGA-LUAD anywhere, the broad AVAILABILITY field matches most and so cannot discriminate. The narrow DATA_AVAILABILITY field can. Measured 18 Sept 2026.
- Mentions TCGA-LUAD anywhere5,146 100%
- AVAILABILITY (broad, rejected)3,953 77%
- DATA_AVAILABILITY (narrow, used)311 6%
- METHODS (counted as reuse)2,831 55%
- RESULTS (counted as reuse)3,321 65%
phs identifiers, GDC project ids, PDC study ids, GEO series, Synapse ids, EGA, BioProject, PRIDE, MassIVE, Metabolomics Workbench and TCIA DOIs. Program names are excluded because Europe PMC matches their words independently. “CPTAC STAD” returns over a thousand articles, almost none of which used that study.Dating when data became available
Any exposure-adjusted reuse measure needs to know how long the community has had the data. Repository file timestamps do not work: GDC’s earliest file for TCGA-BRCA is stamped 2018, six years after publication, because it records a re-harmonization. Using it would make every TCGA project look six years younger than it is.
So availability is dated from the literature: the first year an article references the dataset’s accession in its methods, its data availability statement, or the curated accession index. It is a lower bound, it is directly observable, and it measures what matters.
This needed hardening. Europe PMC’s RESULTS field reported a 2005 first reference for TARGET-AML, four years before the program existed, because it matches the words of a hyphenated accession independently. That field is excluded from dating, and every candidate year is confirmed by retrieving an actual article.
What a hit count is really counting
Europe PMC does not index a hyphenated accession as one term. It splits on the hyphen, so a quoted search is a two-word phrase query and not an exact match. You can see it directly: METHODS:"TARGET-OS" and METHODS:"target os" return the identical hit count. There is no escape character, no proximity operator and no regular expression that restores the hyphen.
So for any accession whose hyphen-stripped form is also ordinary English, the raw count is inflated by prose that has nothing to do with the dataset - and by how much depends entirely on the words. We measured it against open-access full text:
- TCGA-BRCA: every sampled article really contained the accession.
- TARGET-WT: about seven in ten. WT is also wild type.
- TARGET-RT: about one in seven. RT is also radiotherapy, retention time, reverse transcription and room temperature. The uncorrected count was 270; the corrected one is 39.
Because the inflation is specific to the accession, it cannot be disclosed once and applied everywhere. Every count on this site is therefore corrected individually: we sample the articles a query returns, fetch the open-access full text, test for the literal accession, and scale the count by the fraction that pass. The sample size and the interval are shown on the dataset page next to the number they produced.
Two limits. Only open-access articles can be checked, so the correction assumes the closed-access ones are contaminated at the same rate - an assumption, not a measurement. And the literal test accepts a hyphen, a dash or an underscore but never a space, because a space is the contamination pattern itself; an article that only ever writes “TCGA BRCA” is scored as a miss. Both push the published figure down, so it is a conservative estimate rather than a best guess. Where too few articles are open access to estimate the correction at all, the dataset shows no count instead of an inflated one.
The reuse gap index
Raw reuse counts cannot support an “underexplored” label, because they are not comparable. A 10,000-case open pan-cancer cohort available since 2013 will out-cite a 200-case controlled cohort released in 2023 whatever their scientific value.
So we model expected reuse from the structural properties that drive it and measure the residual. The response is the log of the count, and the fit is a Huber robust regression on log cohort size, years available, number of measurement types, and access tier. The index is the residual:
y = log2( analyzing articles + 1 )
fitted = Huber( y ~ log10 cases + log2(1+years) + log2(1+modalities) + access )
RGI = y - fittedZero means a dataset is reused about as much as comparable datasets. Minus one is a halving.
Observed against fitted
Show all 132 datasets as a table
Model fit
Coefficients
| Term | Estimate | p |
|---|---|---|
| Intercept | -8.46 | <0.001 |
| log10 cohort size | 1.25 | <0.001 |
| log2 (1 + years available) | 2.01 | <0.001 |
| log2 (1 + measurement types) | 1.78 | <0.001 |
| Access: mixed (vs controlled) | -1.02 | 0.24 |
| Access: open (vs controlled) | 1.46 | 0.06 |
This is the second specification. The first was a negative binomial on raw counts, the textbook choice for overdispersed count data, and it was wrong here. Reuse spans four orders of magnitude, so a few extreme points dominated the fit and predictions ran to hundreds of expected articles for small imaging collections. Modeling the log response bounds that. Huber weighting stops the TCGA projects, at once the oldest and the most reused datasets here, from setting the slope on years available and so smuggling back the program effect we refuse to adjust for.
It bounds the problem rather than removing it. The corpus’s worst case is gdc-target-aml, a 2,492-case dataset predicted 570 articles against 137 observed, 1.3 residual standard deviations below its prediction. That is why the label also requires a small absolute count, and why the upper tail of predicted reuse is the weakest part of this model. The figure is recomputed on every build rather than quoted here.
One covariate is deliberately absent. Program membership is not adjusted for. “It is part of TCGA” is the disparity we are measuring, not a nuisance to remove. Controlling for it would define the finding out of existence.
Datasets with no citable accession are excluded from the fit and never labeled underexplored: for them the measurement is impossible, not negative. That is 378 of 602 records here, a finding in its own right and one of the clearest barriers to reuse we met.
The coefficients, residual spread, down-weighted count and rejected specification ship with the data as reuse_gap_model.json, so the label can be recomputed or contested rather than taken on trust.
Funding to data to findings
Where the links come from. Awards are resolved through NIH RePORTER from each dataset’s publications. Articles are the record’s original publication plus the reuse exemplars it ships, at most ten per dataset. When a dataset’s own paper lists an award, the award funded data generation; when a later study that analysed the data lists it, the award funded reuse; an award that funds a centre or harmonisation effort is infrastructure.
What a shared node means. An award touching two datasets paid for both. An article touching two datasets combined them. Those cross-links are the reason to draw this as a network rather than a list.
What is missing. Datasets with no citable accession have no traceable articles, and datasets whose publications RePORTER does not index have no awards. Absence is a gap in the record, not proof that nothing was funded or published. Only an award marked as generating the data is ever named as a dataset’s funder on this site.
Merging the same cohort across repositories
TCGA-BRCA is one cohort of patients. It appears as a GDC project for genomics, an IDC collection for radiology and pathology slides, and a cBioPortal study for harmonized matrices. Records describing the same cohort are folded into one page with every access route listed, and the cohort size shown is the one the primary repository reports.
Merging is conservative. We merge only on identifiers that name a specific cohort, and any value shared by more than two records is treated as program-level and ignored. Every TCGA project shares dbGaP phs000178; merging on it would collapse every TCGA cancer type into one record. All source identifiers and all evidence survive the merge.
Where this is weak
A resource that grades other people’s evidence has to be honest about its own.
Section indexing needs full text
Closed-access articles are under-represented at the tiers that require reading methods or data-availability statements, so reuse counts are biased downward for datasets whose users publish in subscription journals.
Some datasets are simply untraceable
378 records have no accession specific enough to search for. PDC study identifiers, for instance, are almost never quoted, so proteomic reuse is close to invisible to any citation-based method including this one.
Inferred primary publications
Where a repository publishes no marker-paper link we nominate the earliest heavily cited article that analyzed the data. That nomination is structurally unreliable, not merely uncertain: it can only choose among articles that quote the accession, and a marker paper published in 2011 does not quote a project identifier introduced years later. So the true marker paper is never a candidate and the heuristic can only ever pick a reuse paper. It is shown as a reading suggestion at low confidence and nothing is counted from it - no citation count, no funding attribution. Where a reviewer has named the real marker paper, the site counts from that instead; where nobody has, the citation count is left blank rather than filled from a guess.
Reuse examples are a sample
The count of articles that analyzed a dataset comes from a hit count, but the articles listed individually - and the independence and funded-reuse figures derived from them - come from a bounded retrieval of a few dozen. Those numbers are always shown with the number examined beside them, because a sample count read as a population count is how this site once implied that ten of the six hundred and fifty-two articles using TCGA-OV were independent. Ten of twelve examined were.
Author-overlap independence is a proxy
Author matching will miss consortium reuse by different members of the same network, and matching on surname plus first initial will occasionally read two different people as one.
Discovery of the long tail is not exhaustive
Investigator cohorts are found through cBioPortal, which skews toward institutions that deposit there - Memorial Sloan Kettering most of all. The tail is broader than what we have indexed, and the corpus should not be read as a census.
Coverage percentages describe harmonized records, not all that exists
A field absent from a repository's harmonized clinical records may still be available in a paper's supplement or from the generating team. We report what the repository serves, and say so.
Curated interpretation is the scarce resource
Machine extraction scales; judgement about what a dataset is genuinely good for does not. Research questions and limitations are expert-written for the showcase set, and every other page states plainly that its interpretation has not been reviewed.
Reproducing this
The pipeline is a Python package with a command line interface. Every HTTP response is cached on disk by request, so a full rebuild is deterministic and can run offline. No source needs credentials.
cds ingest all # fetch every source
cds merge # fold records describing one cohort together
cds trace-index # comparable reuse counts for every dataset
cds enrich # availability dating, exemplars, funded-reuse links
cds gap # fit the reuse gap model, label underexplored
cds export # write site data and agent packages
cds verify # check links and detect upstream driftBulk data and the agent API are described on the agents page.