Skip to content
Datasets/PDC000622

CPTAC STAD Study

Underused opportunityOpenProject-curated
Clinical Proteomic Tumor Analysis ConsortiumAvailable from PDC

193 gastric cancers measured seven ways - proteome, phosphoproteome, acetylome, glycoproteome, ubiquitylome, metabolome and protein-protein interaction - the deepest single-cohort molecular characterization in the NCI portfolio, and openly downloadable.

Can it answer your research question?

5 of 6 supported
  • Overall survival

    Supported

    Vital status and time are populated; median follow-up 2.0 years; 157 cases with follow-up; endpoint: overall survival.API

  • Progression or recurrence

    Not supported

    progression_or_recurrence is informative for no case in the harmonized records.API

  • Treatment response

    Supported

    treatment_outcome is populated for 50% of cases; criteria: Complete Response, Partial Response.API

  • Which drug was given

    Supported

    therapeutic_agents is recorded for 32% of cases.API

  • Stage-adjusted modelling

    Supported

    ajcc_pathologic_stage is informative for 86% of cases.API

  • Analysis by race or ethnicity

    Supported

    Race is informative for 86% of cases.API

Judged from the repository’s own field completeness (thresholds). “Not measured” means we have not probed that field for this record, not that the data lack it.

At a glance

Every percentage is the repository’s own record of what is filled in
CasesAPI
193
Measurement types
7
Follow-upAPI
2.0 years
for 157 of 193 cases; overall survival
Treatment responseAPI
Recorded
Complete Response, Partial Response, Progressive Disease

SubjectCALC

Esophagus and stomach

As filed by the repository

Stomach AdenocarcinomaEarly Onset Gastric CancerStomach

Who is in the cohortAPI

A usable value“Not reported” or “unknown”No value recorded
  • Sex101 male · 70 female · 22 not reported
  • Race151 white · 13 other · 1 black or african american · 28 not reported
  • Ethnicity1 not hispanic or latino · 192 not reported
  • Vital status147 Alive · 18 Dead · 22 Not Reported · 6 no value recorded

What was measured, and on how many

7 measurement types, 4 covering the whole cohort.

  • Acetylome mass spectrometry (TMT18 / DDA)scarce193 of 193 · 100%
  • Glycoproteome mass spectrometry (TMT18 / DDA)scarce193 of 193 · 100%
  • Metabolome mass spectrometry (Label Free / N/A)scarce187 of 193 · 97%
  • Phosphoproteome mass spectrometry (TMT18 / DDA)193 of 193 · 100%
  • Protein-protein interaction mass spectrometry (TMT10 / DDA)153 of 193 · 79%
  • Proteome mass spectrometry (TMT18 / DDA)193 of 193 · 100%
  • Ubiquitylome mass spectrometry (Label Free / DIA)scarce184 of 193 · 95%
Platform, files and data levels
AssayPlatformFilesLevels
Acetylome mass spectrometry (TMT18 / DDA)APITMT18-raw, peptide/protein matrix
Glycoproteome mass spectrometry (TMT18 / DDA)APITMT18-raw, peptide/protein matrix
Metabolome mass spectrometry (Label Free / N/A)APILabel Free-raw, peptide/protein matrix
Phosphoproteome mass spectrometry (TMT18 / DDA)APITMT18-raw, peptide/protein matrix
Protein-protein interaction mass spectrometry (TMT10 / DDA)APITMT10-raw, peptide/protein matrix
Proteome mass spectrometry (TMT18 / DDA)APITMT18-raw, peptide/protein matrix
Ubiquitylome mass spectrometry (Label Free / DIA)APILabel Free-raw, peptide/protein matrix
How complete all 27 clinical fields are - 10 informative for at least 80% of cases

A field counts as informative only when it holds a real value. “Not reported” blocks an analysis just as a missing field does. Fields marked 1:n can hold several records per case, so they show the share of cases with any record.

Informative - a usable valuePresent but uninformative - “not reported” or “unknown”Absent - no value recorded

Outcome

  • Vital statusAPI86%
  • Days to deathAPI9%
  • Cause of deathAPI7%
  • Days to recurrenceAPI2%
  • Progression or recurrenceAPI0%
  • Last known disease statusAPI0%

Follow-up

  • Days to last follow-upAPI86%

Treatment

  • Treatment typeAPI52%
  • Treatment outcomeAPI50%
  • Therapeutic agentsAPI32%
  • Prior treatmentAPI0%
  • Regimen or line of therapyAPI0%
  • Treatment givenAPI0%

Staging

  • AJCC pathologic stageAPI86%
  • AJCC pathologic stage (tumor_stage)API3%
  • AJCC clinical stageAPI0%

Diagnosis

  • Primary diagnosisAPI89%
  • Tissue or organ of originAPI89%
  • Prior malignancyAPI0%
  • Synchronous malignancyAPI0%

Pathology

  • Morphology (ICD-O)API86%
  • Tumor gradeAPI86%
  • Classification of tumorAPI0%

Demographics

  • Sex at birth (gender)API89%
  • RaceAPI86%
  • Age at diagnosisAPI86%
  • EthnicityAPI<1%

Access

OpenDownload without an account.API

Direct download from the PDC portal or its API; no account required

Open components
7 analytical fraction studies
License
Open access under the PDC data use terms
Citation requirement
Cite the PDC study identifier and the study's primary publication; PDC asks that the consortium be acknowledged.

What it is good for

Written and checked by a reviewer, not generated from metadata.

  1. 1. How do distinct post-translational modification layers diverge from each other and from transcript abundance on the same tumors?

    Answerable as shippedn ≈ 184HUMAN

    Phosphorylation, acetylation, glycosylation and ubiquitylation are measured on largely the same 184 to 193 tumors. Comparing regulation across four modification types on one cohort is an analysis this dataset uniquely enables; almost every other resource offers at most two.

    Statistical note: Each layer has its own missingness pattern from mass spectrometry. Do not impute across layers; restrict to features quantified in a pre-specified fraction of samples and report that threshold.

    NeedsProteome (mass spectrometry)PhosphoproteomeAcetylomeGlycoproteomeUbiquitylome
  2. 2. Does protein degradation signaling, read from the ubiquitylome, identify tumor subgroups invisible to transcriptomics?

    Answerable as shippedn ≈ 184HUMAN

    Ubiquitylome data on 184 cases is among the largest such datasets anywhere. Degradation is a major regulatory axis that expression data cannot see, and a cohort this size makes subgroup discovery feasible rather than anecdotal.

    Statistical note: Ubiquitylation site quantification is sparser than proteome quantification; expect to lose a substantial fraction of sites to the completeness filter.

    NeedsUbiquitylomeProteome (mass spectrometry)
  3. 3. How does tumor metabolism, measured directly rather than inferred, relate to signaling state?

    Answerable as shippedn ≈ 187HUMAN

    Metabolomics on 187 cases is available alongside the phosphoproteome, so metabolic state can be related to signaling directly instead of being inferred from enzyme transcript levels - which is what most metabolic analyses in cancer actually do.

    NeedsMetabolomePhosphoproteome
  4. 4. Can measured protein-protein interaction data improve network inference over correlation-based approaches?

    Answerable as shippedn ≈ 153HUMAN

    Interaction data on 153 cases is exceptionally rare in a tumor cohort, and provides a measured reference against which inferred co-expression networks can be scored.

    NeedsOtherProteome (mass spectrometry)

What it cannot tell you

1 blocking

Written by a reviewer against the source, not inferred from what is missing.

BlockingPopulation coverageHUMAN

Race is informative for 86% of cases but is overwhelmingly one group, and ethnicity is informative for well under 1%: it is recorded as "not reported" for almost every case. Population-stratified work is not supportable here whatever the race field suggests.

Affects: Any population-stratified analysis; Disparities research

Mitigation: None within this cohort. Check the race distribution on the dataset page before planning any stratified contrast.

MajorAnnotation qualityHUMAN

Clinical annotation is served by the PDC API rather than shipped with the study files, and it is uneven. Vital status, stage and race are informative for 86% of the 193 cases and the median follow-up is two years, which supports survival work. A treatment record exists for about half: type for 52%, a RECIST-style outcome for 50%, a named agent for 32%. Progression or recurrence is absent entirely.

Affects: Progression-free analysis; Complete-case treatment analysis

Mitigation: Read the clinical records from the PDC API (clinicalPerStudy and paginatedCaseTreatmentsPerStudy) rather than from the study download, and report the analysable subset. For progression, and for anything the PDC record leaves empty, retrieve the corresponding GDC CPTAC-3 clinical records and join on case identifier.

MajorHarmonizationHUMAN

Each analytical fraction is a separate PDC study with its own sample set, so the seven layers do not cover an identical group of tumors - case counts range from 153 to 193.

Affects: Complete-case multi-layer integration

Mitigation: Build the intersection explicitly and report it. A complete-case analysis across all seven layers will be substantially smaller than 193.

MajorBatch and technical effectsHUMAN

Layers were acquired with different enrichment chemistries and instrument methods, so batch structure differs between them and does not cancel out on integration.

Affects: Cross-layer integration; Unsupervised clustering

Mitigation: Model layer-specific batch covariates; do not concatenate raw intensities.

Not appropriate for

  • Progression-free or recurrence analysis from these data. - Progression or recurrence is recorded for no case in the PDC clinical records.HUMAN
  • Treating treatment annotation as complete when reporting a response analysis. - A treatment outcome is recorded for half the cohort and a named agent for a third, so a complete-case treatment analysis runs on a self-selected subset.HUMAN
  • Treating the seven layers as a complete-case multi-omic matrix without checking overlap. - Case counts differ by layer; the naive intersection is smaller than any single layer.HUMAN

Who has used it

Articles that analyzed these data, counted separately from articles that only cited the paper. Only the first counts as reuse.

Analyzed the dataCALC2
1
accession in the methods section
Declared using it
0
named in a data availability statement
Cited the paper
-
attention to the publication, not reuse of the data
Against expectation
Well below
about 6 articles expected; index -1.75

What articles did with it

Only the last row counts as reuse. Where the accession appears in an article tells us what the authors did with the data.

  • Mentioned the dataset0
  • Accession found in text0
  • Declared using it0
  • Analyzed the data1

Against comparable datasets

1 article analyzed these data. About 6 would be expected. The expectation comes from a model of size, age, breadth and access tier.

  • Analyzed it1
  • Expected~6
Why this is an underused opportunity
  • 1 article(s) reference this dataset's accession in a methods section, against 5.7 predicted for datasets of comparable size, age, modality breadth and access tier (reuse gap index -1.75 on a log2 scale, 15th percentile of the assessed corpus).

Compared against 132 datasets in this corpus with a citable accession and sufficient metadata. See Methods for the model.

Possible original publication, unverified

No repository or reviewer names this dataset’s marker paper, so this is the pipeline’s own guess: the earliest heavily cited article that analysed the accession and names it in full text. Nothing is counted from it - not the citation figure above, not the funding attribution - and it is queued for review rather than presented as fact.

Articles that analyzed the data

None found. We searched Europe PMC for this dataset's accessions in article methods, results, tables, figures and data availability statements on 20 Sept 2026. That means our search found nothing, not that nobody has used these data.

Community examples

Share your example

Analyses someone ran on these data end to end, each with a receipt recording when it ran, against which packages and for how long.

intermediate

Where can I find ubiquitylome, lipidome or metabolome data, and which cohorts carry several scarce layers on the same tumors?

Find and use the scarcest measurements in the portfolio

CD2S workbooks · ran 21 Sept 2026
pythonabout a minuteexecuted
Required inputs
  • Public PDC GraphQL API, no account required
  • pandas
Expected outputs
  • Scarcity ranking of every analytical fraction
  • Cohorts carrying two or more scarce layers
  • Layer overlap bounding a complete-case analysis
  • Citation counts demonstrating that PDC accessions are not quoted
  • A chart of per-layer coverage with the complete-case ceiling marked
Steps
  1. Enumerate every PDC study through the public GraphQL endpoint
  2. Rank analytical fractions by number of studies
  3. Group per-fraction studies back into biological cohorts
  4. Report the per-layer case counts that bound a complete-case analysis
  5. Query Europe PMC for each accession to show citation tracing is blind here

Start here

Starter code generated from this record’s own identifiers, then the access steps.

Get the data in code

PDC: file manifest through the GraphQL APIpython

This cohort spans 7 PDC studies (PDC000622, PDC000616, PDC000621, PDC000615, PDC000626, PDC000614, PDC000617). Repeat for each.

import requests

PDC_STUDY = "PDC000622"
API = "https://proteomic.datacommons.cancer.gov/graphql"

def gql(query, **variables):
    r = requests.post(API, json={"query": query, "variables": variables}, timeout=180)
    r.raise_for_status()
    body = r.json()
    if body.get("errors"):
        raise RuntimeError(body["errors"][0]["message"])
    return body["data"]

# filesPerStudy only fills its fields when given the study UUID: called with the
# pdc_study_id it returns the right number of rows with every column null.
study = gql("""query ($id: String!) {
  study(pdc_study_id: $id acceptDUA: true) { study_id study_name }
}""", id=PDC_STUDY)["study"][0]

files = gql("""query ($sid: String!) {
  filesPerStudy(study_id: $sid acceptDUA: true) {
    file_id file_name file_type data_category md5sum file_size signedUrl { url }
  }
}""", sid=study["study_id"])["filesPerStudy"]

print(study["study_name"], "-", len(files), "files")
for f in files[:3]:
    print(f["file_name"], f["data_category"], f["file_size"])
# Each signedUrl.url is a time-limited download link; stream it to disk with requests.get(url, stream=True).
This page as data: limitations firstbash
curl -s https://cd2s.vercel.app/data/datasets/pdc-cptac-stad-study.json | python3 -c '
import json, sys
r = json.load(sys.stdin)
for l in r["limitations"]:
    print(l["severity"].upper(), "-", l["statement"][:120])
print("survival endpoint:", r["longitudinal"]["has_survival_endpoint"], "| treatment response:", r["longitudinal"]["has_treatment_response"])'

Access steps

  1. 1
    Browse the study in the PDC portalFor people30 minutes

    No account is required. All seven fractions are openly downloadable.

    https://pdc.cancer.gov/pdc/browse
  2. 2
    Pull the study manifest from the PDC GraphQL APIFor people1 hour

    The API is public and needs no key, which makes this cohort unusually easy to script against.

    curl -s https://proteomic.datacommons.cancer.gov/graphql \
      -H 'Content-Type: application/json' \
      -d '{"query":"{ allPrograms { name projects { name studies { pdc_study_id study_name analytical_fraction experiment_type cases_count } } } }"}' \
      | python3 -m json.tool | grep -A4 'CPTAC STAD'
    
  3. 3
    Retrieve the matching clinical and genomic data from the GDCFor people2-3 hours

    This is the step people skip. Without it the proteomic layers have no clinical context at all.

    https://portal.gdc.cancer.gov/projects/CPTAC-3
  4. 4
    Resolve the study UUID, then fetch the file manifestFor agents

    filesPerStudy keys on the study UUID, not on PDC000622: called with the pdc_study_id it returns the right number of rows with every column null. Resolve the UUID first and pass the terms acknowledgement.

    python - <<'PY'
    import requests
    API = "https://proteomic.datacommons.cancer.gov/graphql"
    
    def gql(query, **variables):
        r = requests.post(API, json={"query": query, "variables": variables}, timeout=180)
        r.raise_for_status()
        body = r.json()
        if body.get("errors"):
            raise RuntimeError(body["errors"][0]["message"])
        return body["data"]
    
    study = gql('query($id:String!){ study(pdc_study_id:$id acceptDUA:true){ study_id } }',
                id="PDC000622")["study"][0]
    files = gql('query($sid:String!){ filesPerStudy(study_id:$sid acceptDUA:true)'
                '{ file_id file_name file_size } }', sid=study["study_id"])["filesPerStudy"]
    print(len(files), "files")
    PY
    https://pdc.cancer.gov/data-dictionary/publicapi-documentation/

    Generated from repository policy. Check the linked policy before downloading.

Provenance

All of it, and more, is in this record’s JSON.

Identifiers

Versions and verification

Released
1 Jan 2026
Metadata retrieved
18 Sept 2026
Review status
Project-curatedCD2S project curation on 18 Sept 2026
Data generation funding
Funded data generation
Open questions from review
  • PDC study identifiers are almost never quoted in the literature, so the reuse figure on this page is close to uninformative. A manual review of gastric proteogenomics papers would give a better estimate than any citation-based method.

For softwarerecord JSON