Collections / In vivo single-cell CRISPR uncovers distinct TNF-α programs in tumor evolution

In vivo single-cell CRISPR uncovers distinct TNF-α programs in tumor evolution

The tumor evolution model posits that malignant transformation is preceded by randomly distributed driver mutations in cancer genes, which cause clonal expansions in phenotypically normal tissues. Although clonal expansions can remodel entire tissues1-3, the mechanisms behind why only a small number of clones transform into malignant tumors remain enigmatic. Here, we develop an in vivo single-cell CRISPR strategy to systematically investigate tissue-wide clonal dynamics of the 150 most frequently mutated squamous cell carcinoma genes. We couple ultrasound-guided in utero lentiviral microinjections, single-cell RNA sequencing and guide capture to longitudinally monitor clonal expansions and document their underlying gene programs at single-cell transcriptomic resolution. We uncover a TNF-α signaling module, dependent on TNF receptor 1 and involving macrophages, that acts as a generalizable driver of clonal expansions in epithelial tissues. Conversely, during tumorigenesis, the TNF-α signaling module is downregulated. Instead, we identify a subpopulation of invasive cancer cells that switch to an autocrine TNF-α gene program, associated with epithelial-mesenchymal transition. Finally, we provide in vivo evidence that the autocrine TNF-α gene program is sufficient to mediate invasive properties and show that the TNF-α signature correlates with shorter overall survival in human squamous cell carcinoma patients. Collectively, our study demonstrates the power of applying in vivo single-cell CRISPR screening to mammalian tissues, unveils distinct TNF-α programs in tumor evolution and highlights the importance of understanding the relationship between clonal expansions in epithelia and tumorigenesis.

Datasets4
Size~34 MB
AssayVisium
Samplemouse · skin of body
KindOther
PMID:39020166 ↗
Python · lamindb
import lamindb as ln
import spatialdata as sd

coll = ln.Collection.get(key="geo-gse235325")
coll.ordered_artifacts.df()                 # the 4 members, ordered

# download every member .zarr to the local cache:
paths = [a.cache() for a in coll.ordered_artifacts.all()]

# …or load each straight into memory as a SpatialData object:
sdatas = {a.key: sd.read_zarr(a.cache()) for a in coll.ordered_artifacts.all()}
Open in Vitessce
Visium
Mouse skin of body
GSM8279998
mouse skin of body skin neoplasm 8.3 MB 1,826 obs bronze H&E
TechnologyVisium
Organismmouse
Tissueskin of body
Conditionskin neoplasm
Size8.3 MB
Obs1,826
Magnificationother · 3.767 µm/px
bronze H&E Open in Vitessce
Open in Vitessce
Visium
Mouse skin of body
GSM7500358
mouse skin of body skin neoplasm 9.7 MB 1,219 obs bronze H&E
TechnologyVisium
Organismmouse
Tissueskin of body
Conditionskin neoplasm
Size9.7 MB
Obs1,219
Magnificationother · 12.567 µm/px
bronze H&E Open in Vitessce
Open in Vitessce
Visium
Mouse skin of body
GSM8279996
mouse skin of body skin neoplasm 8.0 MB 1,396 obs bronze H&E
TechnologyVisium
Organismmouse
Tissueskin of body
Conditionskin neoplasm
Size8.0 MB
Obs1,396
Magnificationother · 3.768 µm/px
bronze H&E Open in Vitessce
Open in Vitessce
Visium
Mouse skin of body
GSM8279997
mouse skin of body skin neoplasm 7.7 MB 1,640 obs bronze H&E
TechnologyVisium
Organismmouse
Tissueskin of body
Conditionskin neoplasm
Size7.7 MB
Obs1,640
Magnificationother · 3.768 µm/px
bronze H&E Open in Vitessce

Cite this collection

No linked publication found — please cite the data source.