SCENIC+ 1.0a2

repository·main·Indexed 42 days ago

https://github.com/aertslab/scenicplus

A Python package for single-cell multiomic inference used to build gene regulatory networks (GRNs) by integrating scRNA-seq and scATAC-seq data. It provides tools for cistrome construction, enhancer-to-gene and TF-to-gene linking, and eRegulon scoring, featuring both semi-automated wrappers and a non-automated workflow for fine-grained control.

Tokens
22.2K
Snippets
57
Records
84
Agent score
52%

What's inside SCENIC+

  1. Overview of SCENIC+ for single-cell eGRN inference

    main
    SCENIC+ is a Python package designed to build gene regulatory networks (GRNs). It achieves this by utilizing either combined or separate single-cell gene expression (scRNA-seq) and single-cell chromatin accessibility (scATAC-seq) data.
  2. Overview of SCENIC+ for eGRN inference

    main
    SCENIC+ is a Python package designed to build enhancer-driven gene regulatory networks (eGRNs). It achieves this by integrating single-cell gene expression (scRNA-seq) data with single-cell chromatin accessibility (scATAC-seq) data, either combined or separately.
  3. Dependencies used by SCENIC+

    main

    SCENIC+ relies on several specialized Python packages for its core functionality:

    • pycisTopic: Used for enhancer candidate identification and topic modeling.
    • pycistarget: Used for motif enrichment analysis within enhancer candidates.
    • create_cisTarget_databases: Used for creating custom cistarget databases.
  4. Install SCENIC+ via Conda

    main

    To install SCENIC+ in a Linux environment, it is highly recommended to use a new conda environment. Follow these steps to clone the repository and install the package using pip:

    1. Create and activate a new conda environment with Python 3.11.
    2. Clone the SCENIC+ repository.
    3. Install the package from the local directory.
    $ conda create --name scenicplus python=3.11 -y
    $ conda activate scenicplus
    $ git clone https://github.com/aertslab/scenicplus
    $ cd scenicplus
    $ pip install .
  5. Build eGRNs using the non-automated workflow

    main

    For users who need fine-grained control, SCENIC+ exposes individual modules for each stage of the eGRN construction process:

    • Cistromes: Construct cistromes using scenicplus.cistromes.
    • Enhancer-to-gene linking: Link enhancers to target genes using scenicplus.enhancer_to_gene.
    • TF-to-gene linking: Link Transcription Factors to genes using scenicplus.TF_to_gene.
    • eGRN building: Build the final network using scenicplus.grn_builder.modules (specifically the eRegulon class) or via the scenicplus.grn_builder.gsea_approach module for a GSEA-based approach.
  6. Run the semi-automated SCENIC+ workflow

    main

    SCENIC+ provides wrapper functions to automate the complex multi-step pipeline. The workflow is split into two main automated components:

    1. pycistarget wrapper: Found in scenicplus.wrappers.run_pycistarget, used for cistrome construction.
    2. SCENIC+ wrapper: Found in scenicplus.wrappers.run_scenicplus, used for the main inference steps.

    Using these wrappers is recommended for a streamlined experience compared to manual execution of individual tools.

  7. Run the basic SCENIC+ workflow

    main

    The SCENIC+ workflow for eGRN (enhanced Gene Regulatory Network) inference consists of four primary stages. For a complete implementation using human brain multiome data, follow these steps in order:

    1. Preprocess scATAC-seq data: Use pycisTopic to process the chromatin accessibility data.
    2. Preprocess scRNA-seq data: Use Scanpy to process the gene expression data (ensure bare minimum preprocessing steps are completed).
    3. Generate a cisTarget database (Optional but recommended): While precomputed databases are available for human, mouse, and fly, generating a custom cisTarget database on consensus peaks can improve the discovery of target regions.
    4. Execute SCENIC+: Run the integrated workflow using SnakeMake.

    Detailed notebooks for each step are available in the documentation (e.g., human_cerebellum_scRNA_pp.ipynb, human_cerebellum_ctx_db.ipynb, and human_cerebellum.ipynb).

  8. Use SCENIC+ with non-standard species

    main

    To use SCENIC+ with species other than human, mouse, or fruit fly, you must provide custom annotations:

    1. Motif Enrichment: You need a custom motif-to-TF annotation file (formatted like the cistarget motif2tf files).
    2. pycisTarget: When calling run_pycistarget, set the species parameter to 'custom' and provide a custom_annot parameter. The custom_annot must be a Pandas DataFrame containing the columns: Chromosome, Start, Strand, Gene, and Transcript_type (which must only include protein coding genes).
    3. Search Space: Before running the run_scenicplus wrapper, you must manually run get_search_space using the pr_annot (custom annotation) and pr_chromsizes (chromosome sizes) parameters.
  9. Simulate TF knockouts using SCENIC+ output

    main
    The outputs generated by the SCENIC+ workflow can be used for downstream perturbation simulations, specifically to simulate Transcription Factor (TF) knockouts. Refer to the Perturbation_simulation.ipynb notebook for the specific implementation details.
  10. Install SCENIC+ in a conda environment

    main

    It is highly recommended to install SCENIC+ in a new conda environment. Follow these steps to create an environment with Python 3.11 and install the development version of SCENIC+ from the GitHub repository.

    $ conda create --name scenicplus python=3.11
    $ conda activate scenicplus
    $ git clone https://github.com/aertslab/scenicplus
    $ cd scenicplus
    $ git checkout development
    $ pip install .
  11. Perform downstream analysis and eRegulon scoring

    main

    Once the eGRN is built, use the following modules for analysis:

    • Marker genes and regions: Identify differential features using scenicplus.diff_features.
    • eRegulon enrichment: Measure enrichment in cells via scenicplus.eregulon_enrichment.
    • Dimensionality reduction: Reduce data complexity using scenicplus.dimensionality_reduction.
    • eRegulon specificity score (eRSS): Calculate specificity using scenicplus.RSS.
    • Triplet score: Calculate triplet scores using scenicplus.triplet_score.
    • Network analysis: Analyze network properties using scenicplus.networks.
  12. Use SCENIC+ with Signac or ArchR data

    main

    If you have performed QC and generated fragment count matrices using tools like Signac or ArchR, you have two options:

    1. Start from the count matrix (Recommended): Directly create a cisTopic object using your fragment count matrix. This allows you to follow the standard SCENIC+ topic modeling workflow.
    2. Skip topic modeling (Not recommended): You can technically plug in a denoised fragments count matrix and region sets (e.g., Differentially Accessible Regions/DARs) as input for cisTarget. However, this may lose biological patterns (like shared neuronal regions) that topics are designed to capture without explicit contrasts.