Single-cell and spatial transcriptomic analyses of gene therapy-associated retinal inflammation in non-human primates
Adeno-associated viral (AAV) vectors are rapidly advancing as gene therapies for inherited and common retinal disorders, but gene therapy-associated uveitis (GTAU) limits their broader application. To investigate the primate ocular immune response, we administered subretinal AAV gene therapy to two non-human primates (NHPs): NHP1 received AAV2-CAG-hRPE65 (voretigene neparvovec) bilaterally at clinical dose; NHP2 received AAV8-GRK1-hRPGRco alongside an analogous mScarlet reporter vector in separate blebs. Longitudinal assessments over three months included multimodal imaging, electroretinography and cytokine profiling, followed by immunohistological, single-cell and spatial transcriptomic analyses of retinal punches. Both therapies were well-tolerated, with preserved retinal structure and function. Single-cell RNA-sequencing revealed that the AAV8 vector transduced 80% of cones/rods in treated areas, while AAV2 targeted 30% of retinal pigment epithelium (RPE)/rods. Transgene expression did not correlate with apoptotic markers. Persistent immune infiltration (dominated by myeloid and T cells) suggested a type 1 cell-mediated response. Adjunctive intravitreal anti-TNFα (adalimumab) did not appear to mitigate this anti-viral response. Spatial analysis highlighted microglia migration to the subretinal space, consistent with upregulated cytokines (MCP-1/CCL2, IP-10/CXCL10, IL-8/CXCL8, IL-6), which implicate monocytic phagocytes in driving local inflammation. These findings elucidate the mechanism of GTAU and identify potential therapeutic targets to prevent immune-mediated complications in retinal gene therapy.
from sddb import Catalog
cohort = Catalog().collection("geo-gse304504")
cohort.members # the 4 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-gse304504")
coll.ordered_artifacts.to_dataframe() # the 4 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-gse304504 --dest data/ Licenses: 4 NCBI GEO policy
Cite this collection
doi.org/10.1016/j.omta.2026.201726 ↗@article{Sourd_2026,
title = {Single-cell and spatial transcriptomic analyses of gene therapy-associated retinal inflammation in non-human primates},
volume = {34},
ISSN = {3117-387X},
url = {http://dx.doi.org/10.1016/j.omta.2026.201726},
DOI = {10.1016/j.omta.2026.201726},
number = {2},
journal = {Molecular Therapy Advances},
publisher = {Elsevier BV},
author = {Sourd, Célia and Quinn, Joel and John, Molly C. and Martinez-Fernandez de la Camara, Cristina and Wickramasinghe, Lakshanie C. and Attar, Moustafa and Shamsnajafabadi, Hoda and Salman, Ahmed and Cowley, Sally A. and Dendrou, Calliope A. and MacLaren, Robert E. and Cehajic-Kapetanovic, Jasmina and Xue, Kanmin},
year = {2026},
month = June,
pages = {201726}
}