
We recommend using this notebook as a template for running an interactive analysis in Jupyter. See the installation instructions for information on setting up a kernel with pySCENIC and other required packages.
The following tools are required to run the steps in this Nextflow pipeline: * Nextflow * A container system, either of: * Docker * Singularity
The following container images will be pulled by nextflow as needed: * Docker: aertslab/pyscenic:latest. * Singularity: aertslab/pySCENIC:latest. * See also here.
A quick test can be accomplished using the test profile, which automatically pulls the testing dataset (described in full below):
nextflow run aertslab/SCENICprotocol \
-profile docker,test
This small test dataset takes approximately 70s to run using 6 threads on a standard desktop computer.
Alternately, the same data can be run with a more verbose aproach (this is more illustrative for how to substitute other data into the pipeline). Download a minimum set of SCENIC database files for a human dataset (approximately 78 MB).
mkdir example && cd example/
# Transcription factors:
wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/test_TFs_tiny.txt
# Motif to TF annotation database:
wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/motifs.tbl
# Ranking databases:
wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/genome-ranking.feather
# Finally, get a tiny sample expression matrix (loom format):
wget https://raw.githubusercontent.com/aertslab/SCENICprotocol/master/example/expr_mat_tiny.loom
Either Docker or Singularity images can be used by specifying the appropriate profile (-profile docker or -profile singularity).
Please note that for the tiny test dataset to run successfully, the default thresholds need to be lowered.
nextflow run aertslab/SCENICprotocol \
-profile docker \
--loom_input expr_mat_tiny.loom \
--loom_output pyscenic_integrated-output.loom \
--TFs test_TFs_tiny.txt \
--motifs motifs.tbl \
--db *feather \
--thr_min_genes 1
By default, this pipeline uses the container specified by the --pyscenic_container parameter.
This is currently set to aertslab/pyscenic:0.9.19, which uses a container with both pySCENIC and Scanpy 1.4.4.post1 installed.
A custom container can be used (e.g. one built on a local machine) by passing the name of this container to the --pyscenic_container parameter.
The output of this pipeline is a loom-formatted file (by default: output/pyscenic_integrated-output.loom) containing:
* The original expression matrix
* The pySCENIC-specific results:
* Regulons (TFs and their target genes)
* AUCell matrix (cell enrichment scores for each regulon)
* Dimensionality reduction embeddings based on the AUCell matrix (t-SNE, UMAP)
* Results from the parallel best-practices analysis using highly variable genes:
* Dimensionality reduction embeddings (t-SNE, UMAP)
* Louvain clustering annotations
$ claude mcp add SCENICprotocol \
-- python -m otcore.mcp_server <graph>