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.
import lamindb as ln
import spatialdata as sd
coll = ln.Collection.get(key="geo-gse304504")
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()} Cite this collection
No linked publication found — please cite the data source.