HIV+ Tumor Molecular Characterization Project - Lung Cancer
39 lung cancers from an HIV-enriched cohort, two thirds Black or African American, with whole genome sequencing on every case and clinical staging on 62% - very small, and addressing a population that appears in almost no lung cancer genomics.
Can it answer your research question?
4 of 6 supportedOverall survival
SupportedVital status and time are populated; median follow-up 0.5 years; 36 cases with follow-up; endpoint: overall survival.API
Progression or recurrence
Limitedprogression_or_recurrenceis informative for 18% of cases.APITreatment response
Supporteddisease_responseis populated for 92% of cases; criteria: complete response, progressive disease.APIWhich drug was given
Limitedtherapeutic_agentsis recorded for 10% of cases.APIStage-adjusted modelling
Supportedajcc_pathologic_stageis informative for 62% of cases.APIAnalysis by race or ethnicity
SupportedRace is informative for 92% 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
- Sex27 male · 12 female
- Race26 black or african american · 10 white · 3 not reported
- Ethnicity33 not hispanic or latino · 2 hispanic or latino · 3 not reported · 1 unknown
- Vital status25 dead · 10 alive · 3 not reported · 1 unknown
Age at diagnosis
What was measured, and on how many
- Whole genome sequencing39 of 39 · 100%
- Bulk RNA sequencing38 of 39 · 97%
- microRNA sequencing37 of 39 · 95%
- Clinical36 of 39 · 92%
- Copy Number Variation36 of 39 · 92%
- Somatic Structural Variation36 of 39 · 92%
- Whole-slide tissue images27 of 39 · 69%
- DICOM medical imaging27 of 39 · 69%
Platform, files and data levels
How complete all 29 clinical fields are - 14 informative for at least 80% of cases
Outcome
Follow-up
Treatment
Diagnosis
Demographics
Access
Data Access Request through dbGaP using an eRA Commons account; institutional signing official approval required
- Open components
- 380 open-access files
- Controlled components
- 804 controlled-access files
- Typical turnaround
- days to a few weeks after signing official approval
- License
- NIH Genomic Data Sharing Policy terms
- Citation requirement
- Cite the dataset accession and the program's publication guidelines; see the GDC publication policy.
What it is good for
Written and checked by a reviewer, not generated from metadata.
1. Does lung cancer arising in people living with HIV differ genomically from lung cancer in the general population?
Needs approved accessn ≈ 39HUMANWhole genome sequencing on all 39 cases, contrastable with the large TCGA lung cohorts in the same repository under the same harmonization. Whole genome rather than exome allows mutational signature and structural analysis.
Statistical note: 39 cases supports descriptive comparison of signature burden and recurrent alterations only. Any difference must be large to be detectable, and the comparison cohorts differ in sequencing era and platform.
NeedsWhole genome sequencingBulk RNA sequencing2. Can this cohort serve as a validation set for HIV-associated cancer hypotheses?
Needs another datasetn ≈ 39HUMANAlongside the cervical and lymphoma cohorts in the same program, it allows a hypothesis about HIV-associated tumor biology to be tested across three tumor types collected under a common protocol.
NeedsWhole genome sequencingBulk RNA sequencing3. What is the survival experience of this population?
Needs approved accessn ≈ 35HUMANVital status is informative for 89.7% of cases, with follow-up derivable for 36 of 39 and extending to 104 months despite a short median of 6.4.
Statistical note: 35 cases with informative vital status and a 6.4-month median follow-up gives very wide confidence intervals. Report them and avoid median survival estimates.
NeedsClinical dataOutcome data
What it cannot tell you
Written by a reviewer against the source, not inferred from what is missing.
39 cases is the smallest cohort with a showcase page here. Nearly every analysis is underpowered, and no subgroup analysis is viable.
Affects: Discovery; Subgroup comparison; Multivariable modeling
Mitigation: Use for descriptive characterization or as a validation set for an externally derived hypothesis. Do not attempt discovery.
HIV status, CD4 count and antiretroviral history are not structured fields. Progression and last known disease status are empty for all cases.
Affects: HIV-stratified analysis; Progression-free survival
Mitigation: Request the full phenotype file through dbGaP.
Treatment type is recorded for 92% but therapeutic agents for only 10%, so the specific therapy is unknown for most patients.
Affects: Treatment-response analysis
Mitigation: Restrict to the small subset with agent records and report its size.
804 of 1,184 files are controlled access.
Affects: Sequence-level analysis
Mitigation: Submit a dbGaP request.
Not appropriate for
- Any statistically powered discovery analysis. - 39 cases cannot support it.HUMAN
- Comparing HIV-positive with HIV-negative patients within the cohort. - HIV status is not a structured variable in these records.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.
METHODS:"CGCI-HTMCP-LC"), so every dataset in the corpus is counted the same way and the numbers can be compared. The 2 articles listed below were retrieved and graded one at a time, and an article counts as having analyzed the data wherever the accession sits in the analysis - methods, results, tables, figures or supplement - under any of this dataset’s accessions. Read the list as the evidence about these articles, and the count as the number that is comparable across datasets.- Not assessed: insufficient metadata to model expected reuse.
Articles that analyzed the 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.
Is performance status associated with response to chemoradiation, and which agents were actually given?
Treatment response, after checking the response field is real
- Open GDC clinical records for CGCI-HTMCP-CC
- scipy, pandas
- Separation of genuine response categories from disease-status codes
- Per-case responder/progressor labels under a stated rule
- Mann-Whitney comparison of ECOG between response groups
- Agent frequency table
- A two-panel chart of response composition and ECOG by response group
Steps
- Facet the two response-bearing fields and classify their values
- Collapse one-to-many treatment records to one label per case
- Compare performance status between response groups
- Tabulate the therapeutic agents actually recorded
Start here
Starter code generated from this record’s own identifiers, then the access steps.
Get the data in code
GDC: list open files and download thempython
import json, requests
PROJECT = "CGCI-HTMCP-LC"
filters = {"op": "and", "content": [
{"op": "in", "content": {"field": "cases.project.project_id", "value": [PROJECT]}},
{"op": "in", "content": {"field": "access", "value": ["open"]}},
]}
params = {"filters": json.dumps(filters),
"fields": "file_id,file_name,data_category,data_type,file_size",
"size": "10000", "format": "JSON"}
files = requests.get("https://api.gdc.cancer.gov/files", params=params, timeout=60).json()["data"]["hits"]
print(len(files), "open files")
# Write a manifest and fetch with the GDC client (https://gdc.cancer.gov/access-data/gdc-data-transfer-tool)
with open("manifest.txt", "w") as fh:
fh.write("id\n" + "\n".join(f["file_id"] for f in files))
# $ gdc-client download -m manifest.txtGDC: clinical table for every casepython
import json, requests
filters = {"op": "in", "content": {"field": "project.project_id", "value": ["CGCI-HTMCP-LC"]}}
params = {"filters": json.dumps(filters), "size": "5000", "format": "TSV",
"fields": ",".join([
"submitter_id", "demographic.vital_status", "demographic.days_to_death",
"diagnoses.days_to_last_follow_up", "diagnoses.ajcc_pathologic_stage",
"diagnoses.treatments.treatment_type", "diagnoses.treatments.treatment_outcome"])}
tsv = requests.get("https://api.gdc.cancer.gov/cases", params=params, timeout=60).text
open("CGCI-HTMCP-LC_clinical.tsv", "w").write(tsv)IDC: pull the DICOM collection with idc-indexpython
from idc_index import IDCClient
COLLECTION = "cgci_htmcp_lc"
client = IDCClient()
series = client.index[client.index["collection_id"] == COLLECTION] # one row per DICOM series
print(len(series), "series,", series["PatientID"].nunique(), "patients,",
round(series["series_size_MB"].sum() / 1024, 1), "GB")
print(series["Modality"].value_counts().to_dict())
# Everything above is an index lookup and costs nothing. Uncomment to pull the pixels;
# the client refuses up front if the disk cannot hold them.
# client.download_from_selection(collection_id=COLLECTION, downloadDir="./cgci_htmcp_lc")This page as data: limitations firstbash
curl -s https://cd2s.vercel.app/data/datasets/gdc-cgci-htmcp-lc.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
- Scope with the 380 open-access filesFor peoplehttps://portal.gdc.cancer.gov/projects/CGCI-HTMCP-LC
- Consider analyzing alongside the cervical and lymphoma HTMCP cohortsFor people
All three share a collection protocol, and together they are considerably more useful than any one alone.
- Submit a dbGaP data access requestFor peoplehttps://gdc.cancer.gov/access-data/obtaining-access-controlled-data
- Query the project from code, with no credentialsFor agents
The file index is public even where files are not, so an agent can size the cohort before anyone requests access.
https://docs.gdc.cancer.gov/API/Users_Guide/Getting_Started/curl -s 'https://api.gdc.cancer.gov/files' --get \ --data-urlencode 'filters={"op":"in","content":{"field":"cases.project.project_id","value":["CGCI-HTMCP-LC"]}}' \ --data-urlencode 'fields=file_id,file_name,data_type' \ --data-urlencode 'size=10000' --data-urlencode 'format=TSV' - Pass the token when the agent needs controlled filesFor agents
Without a token, an API query may return only the open subset. Compare returned counts with the record before treating them as the whole cohort.
https://docs.gdc.cancer.gov/API/Users_Guide/Getting_Started/curl -H "X-Auth-Token: $GDC_TOKEN" https://api.gdc.cancer.gov/data/<file_id>
Provenance
All of it, and more, is in this record’s JSON.
Identifiers
- GDC projectCGCI-HTMCP-LCAPI
- GDC programAPI
- dbGaP studyphs000530API
- IDC collectioncgci_htmcp_lcAPI
- TCIA collectionCGCI-HTMCP-LCAPI
- ZenodoTEXT
Versions and verification
- Metadata retrieved
- 18 Sept 2026
- Review status
- Project-curatedCD2S project curation on 18 Sept 2026
- Data generation funding
- Funded data generation
- HIV status and CD4 count are not structured fields; confirm availability through dbGaP.