%%{init: {
'theme': 'base',
'themeVariables': {
'primaryTextColor': '#1f2937',
'lineColor': '#4b5563',
'clusterBkg': '#f8fafc',
'clusterBorder': '#cbd5e1',
'edgeLabelBackground': '#ffffff00',
'fontFamily': 'Helvetica, Arial, sans-serif'
},
'flowchart': {
'defaultRenderer': 'elk'
},
'themeCSS': '.cluster rect { fill: #f8fafc !important; stroke: #cbd5e1 !important; } .cluster-label text, .cluster-label span { font-weight: 700 !important; font-size: 16px !important; fill: #475569 !important; color: #475569 !important; }'
}}%%
%%{init: {'flowchart': {'defaultRenderer': 'elk'}}}%%
flowchart TB
activity_accessibility_family_comparison_tibble.CollecTRI_JASPAR.differential_analyses.ENCODE_heart_LV_6x(["activity_accessibility_family_comparison_tibble.CollecTRI_JASPAR.<module_name>.<aggregation_name>"]):::none --> activity_accessibility_concordance_tibble.CollecTRI_JASPAR.differential_analyses.ENCODE_heart_LV_6x(["activity_accessibility_concordance_tibble.CollecTRI_JASPAR.<module_name>.<aggregation_name>"]):::none
activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.differential_analyses.ENCODE_heart_LV_6x(["activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.<module_name>.<aggregation_name>"]):::none --> activity_accessibility_family_comparison_tibble.CollecTRI_JASPAR.differential_analyses.ENCODE_heart_LV_6x(["activity_accessibility_family_comparison_tibble.CollecTRI_JASPAR.<module_name>.<aggregation_name>"]):::none
results_tibble.gene_expression.differential_analyses.ENCODE_heart_LV_6x["results_tibble.gene_expression.<module_name>.<aggregation_name>"]:::none --> activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.differential_analyses.ENCODE_heart_LV_6x(["activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.<module_name>.<aggregation_name>"]):::none
results_tibble.transcription_factor_activity.differential_analyses.ENCODE_heart_LV_6x["results_tibble.transcription_factor_activity.<module_name>.<aggregation_name>"]:::none --> activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.differential_analyses.ENCODE_heart_LV_6x(["activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.<module_name>.<aggregation_name>"]):::none
CollecTRI_JASPAR_family_map.differential_analyses.ENCODE_heart_LV_6x(["CollecTRI_JASPAR_family_map.<module_name>.<aggregation_name>"]):::none --> activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.differential_analyses.ENCODE_heart_LV_6x(["activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.<module_name>.<aggregation_name>"]):::none
results_tibble.motif_family_accessibility.differential_analyses.ENCODE_heart_LV_6x["results_tibble.motif_family_accessibility.<module_name>.<aggregation_name>"]:::none --> activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.differential_analyses.ENCODE_heart_LV_6x(["activity_accessibility_source_comparison_tibble.CollecTRI_JASPAR.<module_name>.<aggregation_name>"]):::none
peak_TF_motif_family_matrix.ATAC.ENCODE_heart_LV_6x(["peak_TF_motif_family_matrix.ATAC.<aggregation_name>"]):::none --> chromVAR_TF_motif_family_matrix.ATAC.ENCODE_heart_LV_6x(["chromVAR_TF_motif_family_matrix.ATAC.<aggregation_name>"]):::none
CollecTRI_human_network_csv(["CollecTRI_human_network_csv"]):::none --> CollecTRI_human_network_tibble(["CollecTRI_human_network_tibble"]):::none
CollecTRI_human_network_tibble(["CollecTRI_human_network_tibble"]):::none --> CollecTRI_JASPAR_family_map.differential_analyses.ENCODE_heart_LV_6x(["CollecTRI_JASPAR_family_map.<module_name>.<aggregation_name>"]):::none
JASPAR_motif_family_members_tibble(["JASPAR_motif_family_members_tibble"]):::none --> CollecTRI_JASPAR_family_map.differential_analyses.ENCODE_heart_LV_6x(["CollecTRI_JASPAR_family_map.<module_name>.<aggregation_name>"]):::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> donor_id_metadata_tibble.analysis.differential_analyses.ENCODE_heart_LV_6x(["donor_id_metadata_tibble.analysis.<module_name>.<aggregation_name>"]):::none
models.cell_type_composition.differential_analyses.ENCODE_heart_LV_6x(["models.cell_type_composition.<module_name>.<aggregation_name>"]):::none --> donor_id_metadata_tibble.analysis.differential_analyses.ENCODE_heart_LV_6x(["donor_id_metadata_tibble.analysis.<module_name>.<aggregation_name>"]):::none
donor_id_metadata_tibble.extended.differential_analyses.ENCODE_heart_LV_6x(["donor_id_metadata_tibble.extended.<module_name>.<aggregation_name>"]):::none --> donor_id_metadata_tibble.analysis.differential_analyses.ENCODE_heart_LV_6x(["donor_id_metadata_tibble.analysis.<module_name>.<aggregation_name>"]):::none
donor_id_metadata_tibble.analysis.differential_analyses.ENCODE_heart_LV_6x(["donor_id_metadata_tibble.analysis.<module_name>.<aggregation_name>"]):::none --> feature_matrix_fit.chromatin_accessibility.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.chromatin_accessibility.<module_name>.<aggregation_name>"]:::none
donor_id_metadata_tibble.analysis.differential_analyses.ENCODE_heart_LV_6x(["donor_id_metadata_tibble.analysis.<module_name>.<aggregation_name>"]):::none --> feature_matrix_fit.gene_expression.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.gene_expression.<module_name>.<aggregation_name>"]:::none
donor_id_metadata_tibble.analysis.differential_analyses.ENCODE_heart_LV_6x(["donor_id_metadata_tibble.analysis.<module_name>.<aggregation_name>"]):::none --> feature_matrix_fit.motif_family_accessibility.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.motif_family_accessibility.<module_name>.<aggregation_name>"]:::none
donor_id_metadata_tibble.analysis.differential_analyses.ENCODE_heart_LV_6x(["donor_id_metadata_tibble.analysis.<module_name>.<aggregation_name>"]):::none --> feature_matrix_fit.transcription_factor_activity.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.transcription_factor_activity.<module_name>.<aggregation_name>"]:::none
JASPAR2026_vertebrate_familial_root_motifs_tf(["JASPAR2026_vertebrate_familial_root_motifs_tf"]):::none --> JASPAR_familial_root_motif_matrix_list(["JASPAR_familial_root_motif_matrix_list"]):::none
JASPAR2026_vertebrate_motif_families_tsv(["JASPAR2026_vertebrate_motif_families_tsv"]):::none --> JASPAR_motif_family_members_tibble(["JASPAR_motif_family_members_tibble"]):::none
JASPAR_familial_root_motif_matrix_list(["JASPAR_familial_root_motif_matrix_list"]):::none --> JASPAR_motif_family_members_tibble(["JASPAR_motif_family_members_tibble"]):::none
donor_id_metadata_tibble.analysis.differential_analyses.ENCODE_heart_LV_6x(["donor_id_metadata_tibble.analysis.<module_name>.<aggregation_name>"]):::none --> model_data.cell_type_composition.differential_analyses.ENCODE_heart_LV_6x["model_data.cell_type_composition.<module_name>.<aggregation_name>"]:::none
model_data.cell_type_composition.differential_analyses.ENCODE_heart_LV_6x["model_data.cell_type_composition.<module_name>.<aggregation_name>"]:::none --> model_results.cell_type_composition.differential_analyses.ENCODE_heart_LV_6x["model_results.cell_type_composition.<module_name>.<aggregation_name>"]:::none
JASPAR_familial_root_motif_matrix_list(["JASPAR_familial_root_motif_matrix_list"]):::none --> peak_TF_motif_family_matrix.ATAC.ENCODE_heart_LV_6x(["peak_TF_motif_family_matrix.ATAC.<aggregation_name>"]):::none
CollecTRI_human_network_tibble(["CollecTRI_human_network_tibble"]):::none --> pseudobulk_CollecTRI_TF_activity_matrix.GEX.differential_analyses.ENCODE_heart_LV_6x(["pseudobulk_CollecTRI_TF_activity_matrix.GEX.<module_name>.<aggregation_name>"]):::none
chromVAR_TF_motif_family_matrix.ATAC.ENCODE_heart_LV_6x(["chromVAR_TF_motif_family_matrix.ATAC.<aggregation_name>"]):::none --> pseudobulk_motif_family_accessibility_matrix.ATAC.ENCODE_heart_LV_6x(["pseudobulk_motif_family_accessibility_matrix.ATAC.<aggregation_name>"]):::none
feature_matrix_fit.chromatin_accessibility.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.chromatin_accessibility.<module_name>.<aggregation_name>"]:::none --> results_tibble.chromatin_accessibility.differential_analyses.ENCODE_heart_LV_6x["results_tibble.chromatin_accessibility.<module_name>.<aggregation_name>"]:::none
feature_matrix_fit.gene_expression.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.gene_expression.<module_name>.<aggregation_name>"]:::none --> results_tibble.gene_expression.differential_analyses.ENCODE_heart_LV_6x["results_tibble.gene_expression.<module_name>.<aggregation_name>"]:::none
feature_matrix_fit.motif_family_accessibility.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.motif_family_accessibility.<module_name>.<aggregation_name>"]:::none --> results_tibble.motif_family_accessibility.differential_analyses.ENCODE_heart_LV_6x["results_tibble.motif_family_accessibility.<module_name>.<aggregation_name>"]:::none
feature_matrix_fit.transcription_factor_activity.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.transcription_factor_activity.<module_name>.<aggregation_name>"]:::none --> results_tibble.transcription_factor_activity.differential_analyses.ENCODE_heart_LV_6x["results_tibble.transcription_factor_activity.<module_name>.<aggregation_name>"]:::none
feature_matrix_fit.gene_expression.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.gene_expression.<module_name>.<aggregation_name>"]:::none --> results.Hallmark.gene_set_enrichment.gene_expression.differential_analyses.ENCODE_heart_LV_6x["results.Hallmark.gene_set_enrichment.gene_expression.<module_name>.<aggregation_name>"]:::none
feature_matrix_fit.gene_expression.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.gene_expression.<module_name>.<aggregation_name>"]:::none --> results.Reactome.gene_set_enrichment.gene_expression.differential_analyses.ENCODE_heart_LV_6x["results.Reactome.gene_set_enrichment.gene_expression.<module_name>.<aggregation_name>"]:::none
models.cell_type_composition.differential_analyses.ENCODE_heart_LV_6x(["models.cell_type_composition.<module_name>.<aggregation_name>"]):::none --> model_data.cell_type_composition.differential_analyses.ENCODE_heart_LV_6x["model_data.cell_type_composition.<module_name>.<aggregation_name>"]:::none
models.cell_type_composition.differential_analyses.ENCODE_heart_LV_6x(["models.cell_type_composition.<module_name>.<aggregation_name>"]):::none --> model_results.cell_type_composition.differential_analyses.ENCODE_heart_LV_6x["model_results.cell_type_composition.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> feature_matrix_fit.chromatin_accessibility.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.chromatin_accessibility.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> results_tibble.chromatin_accessibility.differential_analyses.ENCODE_heart_LV_6x["results_tibble.chromatin_accessibility.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> feature_matrix_fit.gene_expression.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.gene_expression.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> results_tibble.gene_expression.differential_analyses.ENCODE_heart_LV_6x["results_tibble.gene_expression.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> results.Hallmark.gene_set_enrichment.gene_expression.differential_analyses.ENCODE_heart_LV_6x["results.Hallmark.gene_set_enrichment.gene_expression.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> results.Reactome.gene_set_enrichment.gene_expression.differential_analyses.ENCODE_heart_LV_6x["results.Reactome.gene_set_enrichment.gene_expression.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> feature_matrix_fit.motif_family_accessibility.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.motif_family_accessibility.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> results_tibble.motif_family_accessibility.differential_analyses.ENCODE_heart_LV_6x["results_tibble.motif_family_accessibility.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> feature_matrix_fit.transcription_factor_activity.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.transcription_factor_activity.<module_name>.<aggregation_name>"]:::none
models.differential_analyses.ENCODE_heart_LV_6x(["models.<module_name>.<aggregation_name>"]):::none --> results_tibble.transcription_factor_activity.differential_analyses.ENCODE_heart_LV_6x["results_tibble.transcription_factor_activity.<module_name>.<aggregation_name>"]:::none
pseudobulk_counts_BPCells_matrix_dir.ATAC.ENCODE_heart_LV_6x(["pseudobulk_counts_BPCells_matrix_dir.ATAC.<aggregation_name>"]):::none --> feature_matrix_fit.chromatin_accessibility.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.chromatin_accessibility.<module_name>.<aggregation_name>"]:::none
pseudobulk_counts_BPCells_matrix_dir.GEX.ENCODE_heart_LV_6x(["pseudobulk_counts_BPCells_matrix_dir.GEX.<aggregation_name>"]):::none --> feature_matrix_fit.gene_expression.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.gene_expression.<module_name>.<aggregation_name>"]:::none
pseudobulk_counts_BPCells_matrix_dir.ATAC.ENCODE_heart_LV_6x(["pseudobulk_counts_BPCells_matrix_dir.ATAC.<aggregation_name>"]):::none --> feature_matrix_fit.gene_expression.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.gene_expression.<module_name>.<aggregation_name>"]:::none
pseudobulk_motif_family_accessibility_matrix.ATAC.ENCODE_heart_LV_6x(["pseudobulk_motif_family_accessibility_matrix.ATAC.<aggregation_name>"]):::none --> feature_matrix_fit.motif_family_accessibility.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.motif_family_accessibility.<module_name>.<aggregation_name>"]:::none
pseudobulk_counts_BPCells_matrix_dir.ATAC.ENCODE_heart_LV_6x(["pseudobulk_counts_BPCells_matrix_dir.ATAC.<aggregation_name>"]):::none --> feature_matrix_fit.motif_family_accessibility.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.motif_family_accessibility.<module_name>.<aggregation_name>"]:::none
pseudobulk_CollecTRI_TF_activity_matrix.GEX.differential_analyses.ENCODE_heart_LV_6x(["pseudobulk_CollecTRI_TF_activity_matrix.GEX.<module_name>.<aggregation_name>"]):::none --> feature_matrix_fit.transcription_factor_activity.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.transcription_factor_activity.<module_name>.<aggregation_name>"]:::none
pseudobulk_counts_BPCells_matrix_dir.ATAC.ENCODE_heart_LV_6x(["pseudobulk_counts_BPCells_matrix_dir.ATAC.<aggregation_name>"]):::none --> feature_matrix_fit.transcription_factor_activity.differential_analyses.ENCODE_heart_LV_6x["feature_matrix_fit.transcription_factor_activity.<module_name>.<aggregation_name>"]:::none
pseudobulk_counts_BPCells_matrix_dir.ATAC.ENCODE_heart_LV_6x(["pseudobulk_counts_BPCells_matrix_dir.ATAC.<aggregation_name>"]):::none --> pseudobulk_motif_family_accessibility_matrix.ATAC.ENCODE_heart_LV_6x(["pseudobulk_motif_family_accessibility_matrix.ATAC.<aggregation_name>"]):::none
pseudobulk_counts_BPCells_matrix_dir.GEX.ENCODE_heart_LV_6x(["pseudobulk_counts_BPCells_matrix_dir.GEX.<aggregation_name>"]):::none --> pseudobulk_CollecTRI_TF_activity_matrix.GEX.differential_analyses.ENCODE_heart_LV_6x(["pseudobulk_CollecTRI_TF_activity_matrix.GEX.<module_name>.<aggregation_name>"]):::none
Differential-analysis methods
This page describes the models of the optional differential-analysis module. Differential analyses describes its prerequisites, configuration and outputs, and its settings and defaults are listed in the parameter browser.
Cell-type composition
The differential-analysis module treats donors, rather than nuclei, as the biological replicates. It takes annotation classes from the WNN cell-type label of the final WNN metadata. For cell-type composition, nuclei are counted by donor and annotation class, adding missing combinations as zero counts. Unless the model lists the response classes, the assigned classes observed in at least half of the donors are tested. Rarer classes and unassigned clusters are not tested, as they would only add to the multiple-testing burden, but they still count in every donor’s total. Each class is modeled separately in a fixed-effects beta-binomial model with logit link, fitted by glmmTMB with the configured formula (Brooks et al. 2017). Its response has two columns: the numbers of nuclei in that class and in all other classes. Named linear contrasts of the fixed effects are tested with Wald statistics. Fits that fail, do not converge or lack a positive-definite Hessian are reported as non-estimable. Benjamini–Hochberg correction is applied across the tested annotation classes within each model and contrast, but not across contrasts or models.
Molecular pseudobulk analyses
For molecular analyses, GEX and ATAC counts of the final WNN nuclei are summed within each donor–annotation-class combination to form pseudobulk samples. Four feature matrices are tested:
- Gene expression (differential gene expression, DGE): gene pseudobulk counts.
- Chromatin accessibility (differential chromatin accessibility, DCA): consensus-peak pseudobulk counts.
- Motif-family accessibility (differential transcription-factor motif accessibility, DTFA): betterChromVAR bias-corrected deviations of the 233 JASPAR motif families, calculated from the pseudobulk ATAC counts (Germain 2026). This matrix is therefore continuous. Unlike chromVAR z-scores, deviations do not grow with sample depth, and no per-sample centering or cross-sample normalization is applied.
- Transcription-factor activity (differential CollecTRI transcription-factor activity, DCTA): signed CollecTRI regulator activities, inferred with the
decoupleRunivariate linear model from filtered, library-size-normalized log-CPM GEX pseudobulks (Müller-Dott et al. 2023; Badia-i-Mompel et al. 2022). Each regulator requires at least five measured targets. The CollecTRI network is used only when its checksum matches the recorded one, and complexes such as AP1 and NF-κB are kept as single regulons.
For each model, donors that miss a model variable or fall outside an optional donor list are removed. Samples outside an optional annotation-class subset are also removed, and the DTFA analysis by default removes samples with fewer than 5,000 ATAC counts. For count matrices, zero-depth samples are removed, features are filtered with the design-aware edgeR::filterByExpr() (Chen et al. 2025), and library sizes are TMM-normalized with edgeR::normLibSizes() (Robinson et al. 2010; Robinson and Oshlack 2010).
Model matrices are built from a configured formula or custom design function, and contrasts from named linear expressions or custom contrast functions. A configured random effect selects limma::duplicateCorrelation() with the random effect as block (Smyth et al. 2005; Ritchie et al. 2015). For counts, voom precision weights (Law et al. 2014) are re-estimated for the block and correlation (edgeR::voomLmFit()). Weighted fits with a block use a closed-form solution of limma’s generalized least squares, computed for all features at once, which agrees with limma::lmFit() to floating-point error. Wherever an intra-block correlation is estimated, the consensus is taken from at most 50,000 evenly spaced features, enough to estimate this one value pooled across all features (Smyth et al. 2005) at a fraction of the runtime. The models are still fitted to all features. Without a random effect, count designs with more than one coefficient are fitted with edgeR quasi-likelihood models and tested with quasi-likelihood F-tests (Lund et al. 2012; Chen et al. 2025). These models use robust empirical Bayes moderation of the dispersions (Phipson et al. 2016). Continuous matrices use limma. edgeR cannot test a single-coefficient design, so such a count design is fitted with voom–limma after the same filtering and normalization. An optional paired-cell-type route fits each annotation class separately with voom–limma, or limma for continuous matrices. It allows at most one pseudobulk per pairing unit and class. A cross-class contrast is tested on a combined response, restricted to the donors present in every class involved. This response is the contrast-weighted sum of the classes’ log-expression. It is weighted by the inverse of its variance, which is computed from the classes’ precision weights. The combined response is fitted with the same donor-level design and correlation block, so each feature has its own covariance between classes.
For each model and contrast, Benjamini–Hochberg FDR is calculated across the tested features, and features with an FDR below 0.05 are significant. DGE contrasts are also tested against the MSigDB Hallmark and Reactome collections (Liberzon et al. 2015; Milacic et al. 2024) with competitive camera tests (Wu and Smyth 2012; Dolgalev 2026). These tests use the contrast’s expression, precision weights and design, or the combined response for cross-class contrasts. Each set’s inter-gene correlation is estimated from the residuals, and each set needs at least ten tested genes. FDR is calculated within each contrast and collection. A cross-modality comparison maps CollecTRI regulators to JASPAR families. It compares the model t-statistics, rather than the raw scales, of transcription-factor activity and motif-family accessibility. Where gene expression is fitted with limma, it also compares TF expression (edgeR tests report no t-statistic). Family-level summaries use the median regulator t-statistic. An analysis stops with an error rather than returning a model when no samples or testable features remain or residual degrees of freedom are below one. It also fails when a correlation block or contrast is invalid, or when too few shared donors remain for a requested paired-cell-type comparison.
Source and target graph
extra_targets/module_differential_analyses/targets.R filters the aggregations that enabled the module, joins their module configuration, attaches symbols for the accepted WNN metadata and pseudobulk inputs, and maps the target files in its directory. One generic pseudobulk model family is instantiated for each tested feature matrix.
Source: extra_targets/module_differential_analyses/, R/differential_analysis_helpers.R, R/pseudobulk_helpers.R, R/TF_activity_helpers.R.
This view covers the donor metadata, the pseudobulk and motif-family inputs, the CollecTRI network, the composition and feature models, and the cross-modality comparison.