Skip to content

NIH-NLM/nlm-ckn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

574 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NLM Cell Knowledge (NLM-CKN) Network

The National Library of Medicine (NLM) Cell Knowledge Network (NLM-CKN) is a knowledgebase focused on cell characteristics (phenotypes) derived from single-cell technologies. It integrates this information with data from reference ontologies, NCBI resources, and text mining efforts.

The network is structured as a knowledge graph of biomedical entities (nodes) and their relationships (edges). This graph links experimental single-cell genomics data to the reference Cell Ontology, providing evidence for assertions and integrating information about cells, tissues, biomarkers, pathways, drugs, and diseases.

Use the search bar above to find and explore entities within this network. You can add items to your graph or navigate to their specific pages.

Production Data A knowledge graph is produced from triple assertions (subject-predicate-object) corresponding to biomedical entities (nodes) and their relations (edges), and links experimental data to the reference Cell Ontology as evidence in support of assertions. The graph integrates single cell genomics experimental data with other information sources about cells, tissues, biomarkers, pathways, drugs, diseases.

This application creates a knowledge network encapsulating the latest knowledge on cells, the evidence primarily coming from single cell genomics experiments, including but not limited single nucleus as well as single cell RNA-sequencing experiments, spatial transcriptomics experiments. The majority of these data and those stored within many data repositories, notably the Chan-Zuckerburg CELLxGENE. Many of these data form the foundations for numerous cell atlases.

The NLM-CKN aims to connect these experimental data augmented with characterizing marker genes computationally derived from the NS-Forest machine learning method, which identifies the necessary and sufficient marker genes that define the data-driven cell type cluster, resolved to a cell ontological type using semantic terms updated and maintained at the Cell Ontology.

This resource is under active development. To contribute, please open an issue on this Github repository.

NLM-CKN Infrastructure Architecture

Data Harvesting

The cellxgene-harvester harvests, filters, and counts normal cells from the CellxGene Census using ontology-based filtering (UBERON tissue, PATO/MONDO disease, HsapDv age). It separates ontology resolution (Steps 0a–0c, run once per scope) from data collection (Steps 1–6), producing a per-organ homo_sapiens_{organ}_harvester_final.csv that is the input to the quality-control workflow below:

Steps 0a–0c  (resolve — run once per scope, reuse across all datasets)
┌──────────────────┐  ┌─────────────────┐  ┌──────────────────┐
│ resolve-uberon   │  │ resolve-disease │  │ resolve-hsapdv   │
│ kidney           │  │ normal          │  │ --min-age 15     │
└────────┬─────────┘  └────────┬────────┘  └─────────┬────────┘
         │                     │                     │
  uberon_kidney.json   disease_normal.json   hsapdv_adult_15.json
         │                     │                     │
         ▼                     ▼                     │
Steps 1–3  (fetch + flatten + enrich CellxGene metadata)
         │                     │                     │
         ▼                     ▼                     │
Step 4   filter-datasets    (uberon + disease JSON)  │
         │                                           │
         ▼                                           ▼
Step 5   count-normal-cells (uberon + disease + hsapdv JSON)
         │
         ▼
Step 6   final-cleanup ──► homo_sapiens_kidney_harvester_final.csv

The same three JSON files are passed to sc-nsforest-qc-nf
for cell-level h5ad filtering (filter_adata, compute_scsilhouette).

The same three resolve JSON files are shared with sc-nsforest-qc-nf for cell-level .h5ad filtering, giving both pipelines a single, reproducible ontology-scope definition.

Data Generation and Quality-Control Workflow

The sc-nsforest-qc-nf Nextflow workflow runs the scsilhouette package and NSForest over each harvested dataset, producing the marker genes, F-scores, and silhouette quality metrics consumed downstream by the ETL pipeline:

homo_sapiens_{organ}_harvester_final.csv
uberon_{organ}.json
        │
        ▼
[0] filter_adata         ← tissue (UBERON) + disease (PATO) + age + min cluster size
        │
        ├──────────────────────────────────────────────────┐
        ▼                                                  ▼
[1] dendrogram                                   [10] compute_silhouette
[2] cluster_stats                                [11] viz_summary
        │                                        [11] viz_distribution
        ▼ scatter by cluster                     [11] viz_dotplot
[4] prep_medians ×N                              [12] compute_summary_stats
        │
        ▼ gather
[5] merge_medians
        │
        ▼ scatter by cluster
[6] prep_binary_scores ×N
        │
        ▼ gather
[6] merge_binary_scores
        │
        ├── [7] plot_histograms
        │
        ▼ scatter by cluster
[8] run_nsforest ×N
        │
        ▼ gather
[8] merge_nsforest_results
        │
        ▼
[9] plots

The scatter/gather pattern (steps 4–8) parallelizes the computationally intensive median, binary score, and NSForest steps independently across every cluster in every dataset. A dataset with 50 clusters runs 50 parallel jobs at each scatter stage.

ETL Pipeline

The NLM-CKN ETL pipeline produces an ArangoDB archive from single cell genomics results and source ontologies: a Data Processing Pipeline (DataFetcher → DataTransformer → TupleWriters → ResultsGraphBuilder) and an Ontology Processing Pipeline (OntologyDownloader → OntologyGraphBuilder) feed ArangoDB graph storage, from which the InducedSubgraphBuilder selects a relevant subgraph.

User Interface

The NLM-CKN User Interface is a Django and React application that loads a pre-built ArangoDB dataset produced by the ETL pipeline and lets researchers query, visualize, and explore the knowledge graph.

Repositories of Interest

  • NLM-CKN Schema

  • NLM-CKN CellxGene Harvester This package is used to select cellxgene scRNA-seq and snRNA-seq datasets from cellxgene. Using the cellxgene harvester and obtaining ontologies from the [Ontology Lookup Service]{https://www.ebi.ac.uk/ols4/}

  • NLM-CKN scsilhouette Python Package This package is part of the quality control workflow and together with the NSForest F-scores provides an overview of the single cell clusters used in the knowledgebase.

  • NLM-CKN sc-nsforest-qc-nf with CLI wrapper to JCVI's NSForest package This Nextflow workflow runs the scsilhouette python package via the released container and NSForest via the CLI generating > 50 Artefacts and data for the NLM-CKN.

    • Full CLI documentation autogenerated via a python script in the Sphinx style and deployed via GitHub pages https://nih-nlm.github.io/sc-nsforest-qc-nf/
    • Notable is the generation of the combined silhouette bar and whisker plot together with the F-Score bar chart, summarizing the quality assessment for the clusters (cell sets) and cell set data set.
    • Production data and visualizations are published to this repository and are viewable via this repository's GitHub Pages. This includes all the datasets for each tissue that are:
  • NLM-CKN Extract, Transform, and Load (ETL) The unified ETL repository, combining the previously separate nlm-ckn-mvp-etl-ontologies and nlm-ckn-mvp-etl-results repositories (eliminating the need for git submodules and system-scoped JAR dependencies). It provides a Java package for parsing ontology OWL files and loading semantic triples into ArangoDB, and Python modules for creating triples from NSForest results, manual Cell Ontology mappings, external data, and NLP results. The pipeline produces an ArangoDB archive from single cell genomics results and source ontologies.

  • NLM-CKN User Interface The Django and React application serving as the user interface for the NLM-CKN. It lets researchers query, visualize, and explore the graph-based knowledgebase, building and viewing customized subgraphs of relationships between cell types, genes, diseases, and experimental contexts. The app loads a pre-built ArangoDB dataset produced by the nlm-ckn-etl pipeline.

Navigating NLM-CKN

Search Landing Page - Best place to Search!

Here you can enter any term, gene, protein, publication, anatomical subunit, etc. Here you see when you enter Sikkema

Select a result

You can select the Sikkema publication

Selecting the publication brings you to a graph that has the all the Cell Sets for this publication. A publication Cell Set Dataset contains all the Cell sets.

You can select one of the cell sets, say neuroendrocrine cell set dataset

Cell set Detail

The neuroendrocrine cell set reveals the NS-Forest necessary and sufficient markers (biomarker combination) and the binary genes for this cell set. This is the quantitative result with a F-Beta score (0.937) showing that there is strong evidence in this experimental cell set dataset for these markers to be able to distinctly identify this cell type. <img src="docs/_static/NLM-CKN-neuroendocrine-cell-set.png width="750" />

The NLM Cell Schema

You can see the relationships held in the graph by looking at the static schema.

About

https://nlm-ckn.org

Resources

License

Security policy

Stars

5 stars

Watchers

8 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages