Skip to content

Commit

Permalink
first release
Browse files Browse the repository at this point in the history
  • Loading branch information
hkir-dev committed Dec 20, 2023
0 parents commit 0ac45c0
Show file tree
Hide file tree
Showing 22 changed files with 1,712 additions and 0 deletions.
1 change: 1 addition & 0 deletions CS202210140.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
14 changes: 14 additions & 0 deletions CS202210140_project_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
id: CS202210140
title: Human Brain Cell Atlas v1.0 (Neuronal)
description: "Atlas of human primary motor cortex (M1), developed in collaboration with the BRAIN Initiative Cell Census Network (BICCN).\nFirst draft atlas of human brain transcriptomic cell types: The human brain directs a wide range of complex behaviors ranging from fine motor skills to abstract intelligence and emotion. This broad range of functions is supported by an exceptionally complex cellular and circuit architecture. To create a first draft human brain cell atlas, high-throughput single-nucleus RNA sequencing was used to systematically survey cells across the entire adult human brain in three postmortem donors. Over three million nuclei were sampled from approximately 100 dissections across the forebrain, midbrain, and hindbrain. Analysis of these data showed regional diversity in that cellular organization exhibited regional diversity at multiple scales, identifying 30 superclusters, 461 clusters and 3313 subclusters. As the first single-cell transcriptomic census of the entire human brain, this atlas provides a resource for understanding the molecular diversity of the human brain in health and disease. The Human Brain Cell Atlas v1.0 is presented for visualization and data mining through the Chan Zuckerberg Initiative’s CellxGene application, with the following biologically meaningful partitions: 1. Neuronal and non-neuronal cell types 2. Supercluster-specific groupings (`Supercluster: `) 3.Brain region-specific groupings (`Dissection: `), ordered by the adult human brain anatomical reference atlas ontology in Ding et al. (2016)"
matrix_file_id: CellXGene_dataset:8e10f1c4-8e98-41e5-b65f-8cd89a887122
github_org: hkir-dev
repo: human-brain-cell-atlas_v1_neurons
author: https://orcid.org/0000-0001-7620-8973
accession_id_prefix: CS202210140_
citation: ''
creators:
- https://orcid.org/0000-0001-7258-9596
- https://orcid.org/0000-0002-3315-2794


50 changes: 50 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
WORKSPACE=/tools
NANOBOT := build/nanobot
NANOBOTDB := build/nanobot.db
EXPORT := build/export.py
IMPORT := $(WORKSPACE)/scripts/import.py
CONFIGURATIONS := $(WORKSPACE)/scripts/configurations.py

build/:
mkdir -p $@

build/nanobot: | build/
curl -L -o $@ "https://github.com/ontodev/nanobot.rs/releases/download/v2023-06-30/nanobot-x86_64-unknown-linux-musl"
chmod +x $@

build/export.py: | build/
curl -L -o $@ "https://github.com/ontodev/valve.rs/raw/main/scripts/export.py"

.PHONY: build_nomenclature_tables
build_nomenclature_tables:
Rscript $(WORKSPACE)/dendR/nomenclature_builder.R

.PHONY: load_data
load_data:
python3 $(IMPORT) import-data --input input_data/ --schema src/schema/ --curation_tables curation_tables/

.PHONY: runR
runR:
Rscript dendR/nomenclature_builder.R

$(NANOBOTDB): | $(NANOBOT)
$(NANOBOT) init

.PHONY: load
load: clean | $(NANOBOT)
$(NANOBOT) init

.PHONY:
save: $(EXPORT) $(NANOBOTDB)
python3 $(EXPORT) data $(NANOBOTDB) src/schema/ table column datatype
python3 $(EXPORT) data $(NANOBOTDB) curation_tables/ $(foreach t,$(wildcard curation_tables/*.tsv), $(basename $(notdir $t)))
#python3 $(EXPORT) data $(NANOBOTDB) curation_tables/ $$(cut -f1 src/schema/table.tsv | grep CCN2 | tr '\n' ' ')

.PHONY: serve
serve: $(NANOBOTDB)
python3 $(CONFIGURATIONS) configure-git --root_folder ./
$(NANOBOT) serve

.PHONY: clean
clean:
rm -rf build/
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Human Brain Cell Atlas v1.0 (Neuronal) (CS202210140)

Atlas of human primary motor cortex (M1), developed in collaboration with the BRAIN Initiative Cell Census Network (BICCN).
First draft atlas of human brain transcriptomic cell types: The human brain directs a wide range of complex behaviors ranging from fine motor skills to abstract intelligence and emotion. This broad range of functions is supported by an exceptionally complex cellular and circuit architecture. To create a first draft human brain cell atlas, high-throughput single-nucleus RNA sequencing was used to systematically survey cells across the entire adult human brain in three postmortem donors. Over three million nuclei were sampled from approximately 100 dissections across the forebrain, midbrain, and hindbrain. Analysis of these data showed regional diversity in that cellular organization exhibited regional diversity at multiple scales, identifying 30 superclusters, 461 clusters and 3313 subclusters. As the first single-cell transcriptomic census of the entire human brain, this atlas provides a resource for understanding the molecular diversity of the human brain in health and disease. The Human Brain Cell Atlas v1.0 is presented for visualization and data mining through the Chan Zuckerberg Initiative’s CellxGene application, with the following biologically meaningful partitions: 1. Neuronal and non-neuronal cell types 2. Supercluster-specific groupings (`Supercluster: `) 3.Brain region-specific groupings (`Dissection: `), ordered by the adult human brain anatomical reference atlas ontology in Ding et al. (2016)

Curate your taxonomy in 3 simple steps:

1. [Get Taxonomy Development Tools](#get-taxonomy-development-tools)
1. [Load your data](#load-your-data)
1. [Browse](#browse)

## Get Taxonomy Development Tools

Pull the latest TDT docker image via following the steps defined in the project [GitHub Container Registry](https://github.com/brain-bican/taxonomy-development-tools/pkgs/container/taxonomy-development-tools).

```
docker pull ghcr.io/brain-bican/taxonomy-development-tools:latest
```

## Load your data

Place your data (ex. [AIT115_annotation_sheet.tsv](https://github.com/brain-bican/taxonomy-development-tools/tree/main/examples/nhp_basal_ganglia/AIT115_annotation_sheet.tsv)) and configuration file (ex. [ingestion_config.yaml](https://github.com/brain-bican/taxonomy-development-tools/tree/main/examples/nhp_basal_ganglia/ingestion_config.yaml)) into your project's `input_data` folder.

Run following command in your project root folder to ingest your data files:

```
bash ./run.sh make load_data
```

## Browse

Run following command in your project root folder to run the online data editor:
```
bash ./run.sh make serve
```

This command will print a set of logs including a log like `nanobot::serve: listening on 0.0.0.0:3000`. This means your web editor is ready, and you can start editing your data.

You can start browsing web taxonomy editor from: [http://localhost:3000/table](http://localhost:3000/table)

_For further details see [Taxonomy Development Tools Documentation](https://brain-bican.github.io/taxonomy-development-tools/)_
3 changes: 3 additions & 0 deletions curation_tables/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Curation Tables

CCN2 taxonomy curation tables.
3 changes: 3 additions & 0 deletions input_data/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Input Files

Place your taxonomy data files and configuration files into this folder.
128 changes: 128 additions & 0 deletions nanobot.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
[nanobot]
config_version = 1

[logging]
level = "DEBUG"

[database]
connection = "build/nanobot.db"

[valve]
path = "src/schema/table.tsv"

[assets]
path = "src/assets/"

[templates]
path = "src/resources/"

[actions.save]
label = "Save"
commands = [
["make", "save"],
]

[actions.status]
label = "Status"
commands = [
["git", "-c", "color.ui=always", "status"],
]

[actions.diff]
label = "Diff"
commands = [
["git", "-c", "color.ui=always", "diff"],
]

[actions.fetch]
label = "Fetch"
commands = [
["git", "fetch"],
]

[actions.pull]
label = "Pull"
commands = [
["git", "pull"],
]

[actions.branch]
label = "Branch"
inputs = [
{ name = "branch_name", label = "Branch Name", default = "{username}-{today}", validate = "\\w+" }
]
commands = [
["git", "checkout", "main"],
["git", "pull"],
["git", "checkout", "-b", "{branch_name}"],
["git", "push", "--set-upstream", "origin", "{branch_name}"],
]

[actions.commit]
label = "Commit"
inputs = [
{ name = "message", label = "Commit Message" }
]
commands = [
["git", "add", "--update"],
["git", "-c", "color.ui=always", "status"],
["git", "commit", "--message", "'{message}'"],
]

[actions.commitandpush]
label = "Commit and Push"
inputs = [
{ name = "message", label = "Commit Message" }
]
commands = [
["git", "add", "--update"],
["git", "-c", "color.ui=always", "status"],
["git", "commit", "--message", "'{message}'"],
["git", "push"],
]

[actions.push]
label = "Push"
commands = [
["git", "push"],
]

[actions.pr]
label = "Pull Request"
inputs = [
{ name = "title", label = "Title" },
{ name = "body", label = "Body" },
]
commands = [
["gh", "pr", "create", "--title", "'{title}'", "--body", "'{body}'"],
]

[actions.release]
label = "Release"
inputs = [
{ name = "tag", label = "Release Tag", default = "v{today}" },
]
commands = [
["git", "checkout", "main"],
["git", "pull"],
["git", "-c", "color.ui=always", "status"],
["gh", "release", "create", "--tag", "'{tag}'"],
]

[actions.purl]
label = "Publish PURL"
commands = [
["tdta", "purl-publish", "-i", "./", "-t", "CS202210140", "-u", "'{username}'"]
]

[actions.cas_save]
label = "Save CAS"
commands = [
["tdta", "export", "-db", "./build/nanobot.db", "-o", "./CS202210140.json", "-c", "/tdt_datasets"]
]

[actions.export_anndata]
label = "Export AnnData"
commands = [
["tdta", "anndata", "-db", "./build/nanobot.db", "-j", "./CS202210140.json", "-o", "/tdt_datasets/CS202210140.h5ad", "-c", "/tdt_datasets"]
]
22 changes: 22 additions & 0 deletions purl/CS202210140.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# PURL configuration for https://purl.bican.org/taxonomy/CS202210140

idspace: CS202210140
base_url: /taxonomy/CS202210140

products:
- CS202210140.json: https://raw.githubusercontent.com/hkir-dev/human-brain-cell-atlas_v1_neurons/main/CS202210140.json

base_redirect: https://github.com/hkir-dev/human-brain-cell-atlas_v1_neurons

entries:

# https://purl.bican.org/taxonomy/CS202210140/CS202210140.json
- exact: /CS202210140.json
replacement: https://raw.githubusercontent.com/hkir-dev/human-brain-cell-atlas_v1_neurons/main/CS202210140.json

# https://purl.bican.org/taxonomy/CS202210140/releases/2023-09-24/CS202210140.json
- prefix: /releases/
replacement: https://raw.githubusercontent.com/hkir-dev/human-brain-cell-atlas_v1_neurons/v
tests:
- from: /releases/2023-09-24/
to: https://raw.githubusercontent.com/hkir-dev/human-brain-cell-atlas_v1_neurons/v2023-09-24/
3 changes: 3 additions & 0 deletions purl/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# PURL Configuration

BICAN Permanent URLs sample configuration file. Please make a pull request to place this file in [BICAN PURLs taxonomy configuration folder](https://github.com/hkir-dev/purl.bican.org/tree/main/config/taxonomy) via TDT 'Publish PURL' action.
29 changes: 29 additions & 0 deletions run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/sh
# Wrapper script for docker.
#
# This is used primarily for wrapping the GNU Make workflow.
# Instead of typing "make TARGET", type "./run.sh make TARGET".
# This will run the make workflow within a docker container.
#
# The assumption is that you are working in the project root folder;
# we therefore map the whole repo (../..) to a docker volume.
#
# See README-editors.md for more details.

IMAGE=${IMAGE:-taxonomy-development-tools}
TDT_DEBUG=${TDT_DEBUG:-no}

TIMECMD=
if [ x$TDT_DEBUG = xyes ]; then
# If you wish to change the format string, take care of using
# non-breaking spaces (U+00A0) instead of normal spaces, to
# prevent the shell from tokenizing the format string.
TIMECMD="/usr/bin/time -f ### DEBUG STATS ###\nElapsed time: %E\nPeak memory: %M kb"
fi

GITHUB_USER=$(git config user.name)
GITHUB_EMAIL=$(git config user.email)

mkdir -p "$HOME/tdt_datasets"

docker run -v "$PWD:/work" -v "$HOME/tdt_datasets:/tdt_datasets" -w /work --rm -ti -p 3000:3000 -p 8000:8000 -e "GITHUB_AUTH_TOKEN=$GH_TOKEN" --env "GITHUB_USER=$GITHUB_USER" --env "GITHUB_EMAIL=$GITHUB_EMAIL" ghcr.io/brain-bican/$IMAGE $TIMECMD "$@"
59 changes: 59 additions & 0 deletions src/assets/bstreeview.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
@preserve
bstreeview.css
Version: 1.2.0
Authors: Sami CHNITER <[email protected]>
Copyright 2020
License: Apache License 2.0
Project: https://github.com/chniter/bstreeview
*/
.bstreeview {
position: relative;
display: -ms-flexbox;
display: flex;
-ms-flex-direction: column;
flex-direction: column;
min-width: 0;
word-wrap: break-word;
background-color: #fff;
background-clip: border-box;
border: 1px solid rgba(0,0,0,.125);
border-radius: .25rem;

padding: 0;
overflow: hidden;
}

.bstreeview .list-group {
margin-bottom: 0;
}

.bstreeview .list-group-item {
border-radius: 0;
border-width: 0px 0 0 0;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
cursor: pointer;
color: #428bca;
}

.bstreeview .search-result {
color: #D9534F;
}

.bstreeview .list-group-item:hover {
background-color:#dee2e6;
}

.bstreeview > .list-group-item:first-child {
border-top-width: 0;
}

.bstreeview .state-icon {
margin-right: 8px;
width: 12px;
text-align: center;
}
.bstreeview .item-icon {
margin-right: 5px;
}
Loading

0 comments on commit 0ac45c0

Please sign in to comment.