We are grateful to our collaborators, including Noa Dagan (Clalit Research Institute), Valentina Giunchiglia (Harvard Medical School), the Khurana Laboratory (Brigham and Women's Hospital), and the Church Laboratory (Wyss Institute for Biologically Inspired Engineering).
Neurological disorders are the leading driver of global disability and cause 16.8% of global mortality. Unfortunately, most lack disease-modifying treatments or cures. To address disease complexity and heterogeneity in neurological disease, we developed scCIPHER, an AI approach for Contextually Informed Precision HEalthcaRe using deep learning on single-cell-enriched knowledge graphs. First, we constructed the Neurological Disease Knowledge Graph (NeuroKG), a neurobiological knowledge graph with 132K nodes and 3.98 million edges, by integrating 20 high-quality primary data sources with single-cell RNA-sequencing data from 3.37 million cells across 106 regions of the adult human brain. Next, we pre-trained a heterogeneous graph transformer on NeuroKG to create scCIPHER. We leverage scCIPHER to make precision medicine-based predictions in neurological disorders across patient phenotyping, therapeutic response prediction, and causal gene discovery tasks, with validation in large-scale patient cohorts.
Single-cell RNA-sequencing data from Siletti et al. in Science, 2023 (DOI: 10.1126/science.add7046)
To run the code, please install:
- The Python programming language.
- The R programming language and statistical computing environment (as well as the RStudio integrated development environment).
Individual dependencies are also specified in each script. Along with data manipulation and visualization packages, these include:
- The PyTorch open source machine learning framework for Python.
- The PyTorch Geometric library for geometric deep learning on graphs and manifolds.
- The PyTorch Lightning lightweight PyTorch wrapper for high-performance AI research.
Activate the scCIPHER_env
virtual environment with the following:
source setup.sh
If desired, a Jupyter kernel can be created with the following:
source setup_jupyter.sh
Any questions? Please feel free to leave a GitHub issue or reach out to Ayush Noori at anoori@college.harvard.edu.