CPTAC AML Study
164 acute myeloid leukaemias with proteome, phosphoproteome, acetylome and glycoproteome, plus lipidomics and metabolomics on 98 - one of only three NCI cohorts carrying lipidomic data, openly downloadable.
Can it answer your research question?
3 of 6 supportedOverall survival
SupportedVital status and time are populated; median follow-up 1.0 years; 162 cases with follow-up; endpoint: overall survival.API
Progression or recurrence
Not supportedprogression_or_recurrenceis informative for no case in the harmonized records.APITreatment response
Supportedtreatment_outcomeis populated for 2% of cases; criteria: Complete Response, Persistent Disease.APIWhich drug was given
Not supportedtherapeutic_agentsis recorded for no case in the harmonized records.APIStage-adjusted modelling
Not supportedajcc_pathologic_stageis informative for no case in the harmonized records.APIAnalysis by race or ethnicity
SupportedRace is informative for 99% of cases.API
At a glance
Every percentage is the repository’s own record of what is filled inSubjectCALC
As filed by the repository
Who is in the cohortAPI
- Sex97 female · 66 male · 1 not reported
- Race150 white · 12 other · 1 asian · 1 not reported
- Ethnicity21 not hispanic or latino · 143 not reported
- Vital status113 Dead · 50 Alive · 1 no value recorded
What was measured, and on how many
- Acetylome mass spectrometry (TMT18 / DDA)scarce164 of 164 · 100%
- Glycoproteome mass spectrometry (TMT18 / DDA)scarce164 of 164 · 100%
- Lipidome mass spectrometry (Label Free / DDA)scarce98 of 164 · 60%
- Metabolome mass spectrometry (Label Free / DDA)scarce98 of 164 · 60%
- Phosphoproteome mass spectrometry (TMT18 / DDA)164 of 164 · 100%
- Proteome mass spectrometry (TMT18 / DDA)164 of 164 · 100%
Platform, files and data levels
| Assay | Platform | Files | Levels |
|---|---|---|---|
| Acetylome mass spectrometry (TMT18 / DDA)API | TMT18 | - | raw, peptide/protein matrix |
| Glycoproteome mass spectrometry (TMT18 / DDA)API | TMT18 | - | raw, peptide/protein matrix |
| Lipidome mass spectrometry (Label Free / DDA)API | Label Free | - | raw, peptide/protein matrix |
| Metabolome mass spectrometry (Label Free / DDA)API | Label Free | - | raw, peptide/protein matrix |
| Phosphoproteome mass spectrometry (TMT18 / DDA)API | TMT18 | - | raw, peptide/protein matrix |
| Proteome mass spectrometry (TMT18 / DDA)API | TMT18 | - | raw, peptide/protein matrix |
How complete all 27 clinical fields are - 8 informative for at least 80% of cases
Access
Direct download from the PDC portal or its API; no account required
- Open components
- 6 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. How does lipid composition differ across AML subtypes, and does it relate to differentiation state?
Answerable as shippedn ≈ 98HUMANLipidomic profiles on 98 primary AML samples, alongside proteome on all 164, allow lipid class abundance to be related to protein markers of myeloid differentiation on the same patients. Measured lipidomics on primary AML at this scale is essentially unavailable elsewhere.
Statistical note: 98 samples supports class-level comparison and well-powered subgroup contrasts only for common subtypes; rare fusion subgroups will have single-digit counts.
NeedsLipidomeProteome (mass spectrometry)2. Do measured metabolite levels agree with metabolic state inferred from transcript or protein abundance?
Answerable as shippedn ≈ 98HUMANMetabolomics and proteomics on the same 98 patients allow a direct test of an assumption that a large body of computational metabolic modeling depends on and rarely gets to check.
Statistical note: This is a methods-validation design; effect sizes are the quantity of interest, not significance.
NeedsMetabolomeProteome (mass spectrometry)3. Does protein acetylation, a modification tightly coupled to metabolic cofactor availability, track measured metabolite levels?
Answerable as shippedn ≈ 98HUMANAcetylome on 164 cases and metabolome on 98 overlap substantially. Acetylation depends on acetyl-CoA availability, so this cohort can test a mechanistic link that is usually assumed rather than measured.
NeedsAcetylomeMetabolome4. Can glycoproteomic features stratify AML in ways expression cannot?
Answerable as shippedn ≈ 164HUMANGlycoproteome on all 164 cases; cell-surface glycosylation is directly relevant to immunotherapy target selection in myeloid disease.
NeedsGlycoproteomeProteome (mass spectrometry)
What it cannot tell you
Written by a reviewer against the source, not inferred from what is missing.
Cytogenetic risk group - the primary stratifier in AML - is not in the PDC clinical records, and neither is any therapeutic agent. A treatment record of any kind exists for 2% of the 164 cases. What the API does serve is vital status and follow-up time for 99% of cases, which is enough for overall survival but not for anything risk-stratified.
Affects: Risk-stratified comparison; Treatment-response analysis
Mitigation: Obtain cytogenetics and treatment from the GDC CPTAC records or the CPTAC data portal and join on case identifier before drawing any risk-stratified conclusion.
Lipidome and metabolome cover 98 cases while the proteomic layers cover 164, so the metabolic analyses run on 60% of the cohort.
Affects: Complete-case multi-omic integration
Mitigation: Report the overlap explicitly and check whether the 98 differ systematically from the rest.
Lipidomic and metabolomic measurements are especially sensitive to sample handling and storage, and batch information is not exposed in the study metadata.
Affects: Quantitative cross-sample comparison
Mitigation: Inspect for batch structure before interpreting; treat absolute levels with caution.
98 samples limits subgroup analysis in a disease with many molecularly defined subtypes.
Affects: Subtype-specific metabolic profiling
Mitigation: Pre-specify a small number of subtype contrasts.
Not appropriate for
- Prognostic claims that do not adjust for cytogenetic risk. - Vital status and follow-up are present for 99% of cases, so a survival model will fit - but risk group is absent, and in AML it dominates prognosis.HUMAN
- Treatment-response or resistance analysis from these data. - A treatment record of any kind exists for 2% of the cohort and no agent is named.HUMAN
- Risk-group comparisons without obtaining cytogenetics separately. - Cytogenetic risk is the primary stratifier in AML and is not present here.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.
- Not assessed: insufficient metadata to model expected reuse.
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 exampleAnalyses someone ran on these data end to end, each with a receipt recording when it ran, against which packages and for how long.
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
- Public PDC GraphQL API, no account required
- pandas
- 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
- Enumerate every PDC study through the public GraphQL endpoint
- Rank analytical fractions by number of studies
- Group per-fraction studies back into biological cohorts
- Report the per-layer case counts that bound a complete-case analysis
- 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
import requests
PDC_STUDY = "PDC000558"
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-aml-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
- Download the lipidomic and metabolomic studies from PDCFor people
Open access, no account required.
https://pdc.cancer.gov/pdc/browse - Retrieve matching clinical and cytogenetic data from the GDC CPTAC recordsFor peoplehttps://portal.gdc.cancer.gov/projects/CPTAC-3
- Resolve the study UUID, then fetch the file manifestFor agents
filesPerStudy keys on the study UUID, not on PDC000558: 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.
https://pdc.cancer.gov/data-dictionary/publicapi-documentation/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="PDC000558")["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
Provenance
All of it, and more, is in this record’s JSON.
Identifiers
Versions and verification
- Metadata retrieved
- 18 Sept 2026
- Review status
- Project-curatedCD2S project curation on 18 Sept 2026
- Data generation funding
- Funded data generation