A blueprint for local and distal glioblastoma invasion programs
Glioblastoma (GBM) invasion into brain parenchyma presents significant challenges for treatment but remains poorly understood. In this study, we combined single-cell RNA sequencing (scRNA-seq), spatial transcriptomics, and multiplexed imaging of orthotopic xenograft models to investigate GBM invasion. We first screened 20 patient-derived gliomasphere models for their distal (i.e., extending to the contralateral hemisphere) and local invasive potential in mice. We found that models with distal invasion potential are enriched with oligodendrocyte progenitor-like (OPC-like) cells, while models with only local invasion potential are enriched with mesenchymal-like (MES-like) cells. These patterns reflect predominantly peri-axonal vs peri-vascular invasion routes, respectively. Next, we analyzed the transcriptomes of invading cells within models (compared to tumor core) and identified novel programs associated with distal and local invasion. Thus, we decouple transcriptional features associated with invasion potential from those associated with the process of invasion. We validated our findings by spatial transcriptomics and multiplexed imaging, further describing the spatial niche of invasive cells. Taken together, our results provide a blueprint for the invasive potential of GBM cell states and of the programs associated with invasion across different scales.
from sddb import Catalog
cohort = Catalog().collection("geo-gse281796")
cohort.members # the 2 datasets as a table
print(cohort.licenses()) # check the terms before you download
sdatas = cohort.to_dict() # {uid: SpatialData}, cached locally
# or keep the .zarr files in a folder of your choice:
# sdatas = cohort.to_dict(dest="data/") Needs pip install lamindb and network access to the Lamin database, which is limited during the alpha. If it fails, use the Client tab.
import lamindb as ln
db = ln.DB("scverse/spatialdata-db")
coll = db.Collection.get(key="geo-gse281796")
coll.ordered_artifacts.to_dataframe() # the 2 members, ordered
# download every member .zarr to the local cache:
paths = [a.cache() for a in coll.ordered_artifacts.all()] # sddb client: download every member .zarr into data/
sddb-cli download --collection geo-gse281796 --dest data/ Licenses: 2 NCBI GEO policy
Cite this collection
No linked publication found — please cite the data source.