The tenXplore package includes prototypical code to facilitate the coding of an ontology-driven visualizer of transcriptomic patterns in single-cell RNA-seq studies.
This package is intended to illustrate the role of formal ontology in the analysis of single-cell RNA-seq experiments.
We anticipate that both unsupervised and supervised methods of statistical learning will be useful.
Gene Ontology and Gene Ontology Annotation are the primary resources at present for enumerating gene signatures for cell types. The ontoProc package assists in providing some mappings, but much work is needed.
## Loading required package: ontologyIndex
data(allGOterms) cellTypeToGO("serotonergic neuron", gotab=allGOterms)
## GOID TERM ## 18623 GO:0036515 serotonergic neuron axon guidance ## 18625 GO:0036517 chemoattraction of serotonergic neuron axon ## 18627 GO:0036519 chemorepulsion of serotonergic neuron axon
cellTypeToGenes("serotonergic neuron", gotab=allGOterms, orgDb=org.Mm.eg.db)
## 'select()' returned 1:many mapping between keys and columns
## GO EVIDENCE ONTOLOGY ENSEMBL SYMBOL ## 1 GO:0036515 IMP BP ENSMUSG00000007989 Fzd3 ## 2 GO:0036515 IMP BP ENSMUSG00000026556 Vangl2 ## 3 GO:0036515 IMP BP ENSMUSG00000023473 Celsr3 ## 4 GO:0036517 IDA BP ENSMUSG00000021994 Wnt5a
cellTypeToGenes("serotonergic neuron", gotab=allGOterms, orgDb=org.Hs.eg.db)
## 'select()' returned 1:1 mapping between keys and columns
## GO EVIDENCE ONTOLOGY ENSEMBL SYMBOL ## 1 GO:0036515 IEA BP ENSG00000104290 FZD3 ## 2 GO:0036517 IEA BP ENSG00000114251 WNT5A
At this point the API for selecting cell types, bridging to gene sets, and acquiring expression data, is not well-modularized, but extensive activity in these areas in new Bioconductor packages will foster enhancements for this application.
In brief, we often fail to find GO terms that approximately match, as strings, Cell Ontology terms corresponding to cell types and subtypes. Thus the cell type to gene mapping is very spotty and the app has nothing to show.
On the other hand, if we match on cell types, we get very large numbers of matches, which will need to be filtered. We will introduce tools for generating additional type to gene harvesting/filtering in real time.