How to interpret the HTML report generated by cellCellReport function

Introduction

Here, we explain the way to interpret of HTML report generated by cellCellReport. If cellCellDecomp is properly finished, we can perform cellCellReport function to output the HTML report. The results can be confirmed by typing example(cellCellReport). The report will be generated in the temporary directory (it costs 5 to 10 minutes). The output directory contains some files and directories as follows.

  • index.{Rmd,html} : The main HTML report
  • reanalysis.RData : The R binary file for using in the HTML report and reanalysis of scTensor
  • Workflow_2.png : The figure for the section 1. About scTensor Algorithm in the HTML report
  • figures : The directory containing some figures for the HTML report
  • ligand.{Rmd,html} : The HTML report for the section 6. Gene-wise Hypergraph in the HTML report
  • ligand_all.{Rmd,html} : The HTML report for the section 6. Gene-wise Hypergraph in the HTML report
  • receptor.{Rmd,html} : The HTML report for the section 6. Gene-wise Hypergraph in the HTML report
  • receptor_all.{Rmd,html} : The HTML report for the section 6. Gene-wise Hypergraph in the HTML report
  • pattern_X_Y.{Rmd,html} : The HTML report for For the section 7. (Ligand-Cell, Receptor-Cell, ) -related L-R Pairs in the HTML report

Here, look at the index.html.

Figure1 : HTML report of cellCellReport
Figure1 : HTML report of cellCellReport

Interpretation of “1. About scTensor Algorithm”

In the HTML report, the 1st item describes the overview of scTensor and other CCI-related packages.

Figure2: 1. About scTensor Algorithm
Figure2: 1. About scTensor Algorithm

Interpretation of “2. Global statistics and plots”

The 2nd item describes all the R objects saved in reanalysis.RData, which contains the result of scTensor. This file is saved in the output directory (out.dir) specified in cellCellReport, and the user also can re-analyze the result of scTensor.

Figure3: 2. Global statistics and plots
Figure3: 2. Global statistics and plots

Using plotly package, cellCellReport generates some interactive plots. For example, in item 2.1, the number of cells in each cell type can be confirmed when the cursor moved on the box.

Figure4: 2.1 Number of cells in each celltype
Figure4: 2.1 Number of cells in each celltype

In item 2.2, the number of expressed genes in each cell type (Non-zero genes) can be confirmed when the cursor moved on the box. Figure5: 2.2 Number of expressed genes in each cell type (Non-zero genes)

In item 2.3, the two-dimensional plot user specified can be confirmed. Figure6: 2.3 Two dimensional plot of all cells

In item 2.4, the distribution of core tensor values and the value of each (Ligand-Cell-type, Receptor-Cell-type, LR-pair) pattern can be confirmed.

The red bars mean that these values are selected by the threshold (thr parameters) in cellCellReport.

Note that the thr can be specified from 0 to 100, the large thr value will generate too many HTML files (cf. 8. (Ligand-Cell, Receptor-Cell, LR-pair) Patterns) and takes a long time.

Figure7 : 2.4 Distribution of core tensor values
Figure7 : 2.4 Distribution of core tensor values

The 3-order CCI-tensor consisting of Cell_L × Cell_R × LR-pair (LR) are decomposed by nnTensor, in which the tensor is iteratively matricised to mode-1 (Ligand-Cell direction) and mode-2 (Receptor-Cell direction).

In each direction, NMF is performed and the strength of each directional pattern is summarized in the bar plots.

For example, in item 2.5, the distribution of mode-1 matricised tensor can be confirmed.

Figure8: 2.5 Distribution of mode-1 matricised tensor (Ligand-Cell Direction) (1/2)
Figure8: 2.5 Distribution of mode-1 matricised tensor (Ligand-Cell Direction) (1/2)
Figure9: 2.5 Distribution of mode-1 matricised tensor (Ligand-Cell Direction) (2/2)
Figure9: 2.5 Distribution of mode-1 matricised tensor (Ligand-Cell Direction) (2/2)

Likewise, in item 2.6, the distribution of mode-2 matricised tensor can be confirmed,

Figure10 : 2.6 Distribution of mode-2 matricised tensor (Receptor-Cell Direction) (1/2)
Figure10 : 2.6 Distribution of mode-2 matricised tensor (Receptor-Cell Direction) (1/2)
Figure11 : 2.6 Distribution of mode-2 matricised tensor (Receptor-Cell Direction) (2/2)
Figure11 : 2.6 Distribution of mode-2 matricised tensor (Receptor-Cell Direction) (2/2)

Interpretation of “3. Ligand-Cell Patterns”

In the 3rd item, using the heatmap of plotly, the user can interactively confirm the detail of Ligand-Cell Patterns extracted by nnTensor.

Figure14 : 3. Ligand-Cell Patterns
Figure14 : 3. Ligand-Cell Patterns

Interpretation of “4. Receptor-Cell Patterns”

Likewise, in the 4th item, the user can interactively confirm the detail of Receptor-Cell Patterns.

Figure15 : 4. Receptor-Cell Patterns
Figure15 : 4. Receptor-Cell Patterns

Interpretation of “5. CCI-wise Hypergraph”

In the 6th item describes, the strength between Ligand-Cell Patterns and Receptor-Cell Patterns (CCI-strength), by the summation of the core tensor with the mode-3 direction, a matrix consisting of the number of Ligand-Cell Patterns × the number of Receptor-Cell Patterns.

Figure18 : 6. CCI-wise Hypergraph (1/2) Figure19 : 6. CCI-wise Hypergraph (2/2)

Interpretation of “6. Gene-wise Hypergraph”

In the 7th item, the relationship between LR-pairs, which coexpressed in any LR-pair pattern at least one time. Ligand genes are described as red nodes, receptor genes are described as blue nodes, and corresponding LR-pair patterns are described as the color of edges. Using visNetwork package, these interactions can be interactively visualized.

Figure20 : 7. Gene-wise Hypergraph
Figure20 : 7. Gene-wise Hypergraph

Under the gene-wise hypergraph, four hyperlinks are embedded.

In the 1st link, the details of the gene-wise hypergraph can be confirmed as a corresponding table in a ligand gene-centric manner. This page can work as a reverse lookup search by “Ctrl + F”; by typing the gene name of ligand that the user is interested in, the partner receptors, which are coexpressed in some LR-pair patterns, also can be found. Figure21: Details of Ligand Gene-centric Overview (selected)

In the 2nd link, the user can find all the partner receptors, even if the partner receptors are not coexpressed in any LR-pair pattern, and if they are not included in the data matrix. Figure22: Details of Ligand Gene-centric Overview (all)

Likewise, the receptor gene-centric reverse search page is embedded in the 3rd link, Figure23: Details of Receptor Gene-centric Overview (selected)

and, in the 4th link, all the partner ligand genes are included. Figure24: Details of Receptor Gene-centric Overview (all) (1/2) Figure25 : Details of Receptor Gene-centric Overview (all) (2/2)

Interpretation of “7. (Ligand-Cell, Receptor-Cell, LR-pair) Patterns”

In the 8th item, the details of (Ligand-Cell, Receptor-Cell, LR-pair) Patterns are ordered by the size of the core tensor, and the link of each pattern is embedded.

(Note that the number of links is dependent on the thr parameter of cellCellReport.) Figure26: 8. (Ligand-Cell, Receptor-Cell, LR-pair) Patterns

For example, the 1st link describes the details of (3,2,) Pattern, which means the relationship of 1st pattern of Ligand-Cell patterns, 1st pattern of Receptor-Cell patterns, and 5th pattern of LR-pair patterns. Figure27 : Details of (3,2,) Pattern (1/3)

In this pattern, only one LR-pair is coexpressed (INSL3 and GNG11). The hyperlinks to many databases and PubMed are also embedded. The degree of the size of the LR-pair in the LR-pair pattern is quantified as P-value and Q-value. Figure28 : Details of (3,2,) Pattern (2/3)

Under the LR-pair list, the results of many enrichment analysis are also embedded such as Gene Ontology (BP/MF/CC), Reactome, MeSH…etc. Figure29 : Details of (3,2,) Pattern (3/3)

User can confirm the detail of the result of scTensor, and perform the biological interpretation.

Session information

## R version 4.4.2 (2024-10-31)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.1 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: Etc/UTC
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] scTGIF_1.21.0                          
##  [2] Homo.sapiens_1.3.1                     
##  [3] TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2
##  [4] org.Hs.eg.db_3.20.0                    
##  [5] GO.db_3.20.0                           
##  [6] OrganismDbi_1.49.0                     
##  [7] GenomicFeatures_1.59.1                 
##  [8] AnnotationDbi_1.69.0                   
##  [9] SingleCellExperiment_1.29.1            
## [10] SummarizedExperiment_1.37.0            
## [11] Biobase_2.67.0                         
## [12] GenomicRanges_1.59.1                   
## [13] GenomeInfoDb_1.43.2                    
## [14] IRanges_2.41.2                         
## [15] S4Vectors_0.45.2                       
## [16] MatrixGenerics_1.19.0                  
## [17] matrixStats_1.4.1                      
## [18] scTensor_2.17.0                        
## [19] RSQLite_2.3.9                          
## [20] LRBaseDbi_2.17.0                       
## [21] AnnotationHub_3.15.0                   
## [22] BiocFileCache_2.15.0                   
## [23] dbplyr_2.5.0                           
## [24] BiocGenerics_0.53.3                    
## [25] generics_0.1.3                         
## [26] BiocStyle_2.35.0                       
## 
## loaded via a namespace (and not attached):
##   [1] fs_1.6.5                 bitops_1.0-9             enrichplot_1.27.3       
##   [4] httr_1.4.7               webshot_0.5.5            RColorBrewer_1.1-3      
##   [7] Rgraphviz_2.51.0         tools_4.4.2              backports_1.5.0         
##  [10] R6_2.5.1                 lazyeval_0.2.2           withr_3.0.2             
##  [13] prettyunits_1.2.0        graphite_1.53.0          gridExtra_2.3           
##  [16] schex_1.21.0             fdrtool_1.2.18           cli_3.6.3               
##  [19] TSP_1.2-4                entropy_1.3.1            sass_0.4.9              
##  [22] genefilter_1.89.0        meshr_2.13.0             Rsamtools_2.23.1        
##  [25] yulab.utils_0.1.8        txdbmaker_1.3.1          gson_0.1.0              
##  [28] DOSE_4.1.0               R.utils_2.12.3           MeSHDbi_1.43.0          
##  [31] AnnotationForge_1.49.0   nnTensor_1.3.0           plotrix_3.8-4           
##  [34] maps_3.4.2.1             visNetwork_2.1.2         gridGraphics_0.5-1      
##  [37] GOstats_2.73.0           BiocIO_1.17.1            dplyr_1.1.4             
##  [40] dendextend_1.19.0        Matrix_1.7-1             abind_1.4-8             
##  [43] R.methodsS3_1.8.2        lifecycle_1.0.4          yaml_2.3.10             
##  [46] qvalue_2.39.0            SparseArray_1.7.2        grid_4.4.2              
##  [49] blob_1.2.4               misc3d_0.9-1             crayon_1.5.3            
##  [52] ggtangle_0.0.6           lattice_0.22-6           msigdbr_7.5.1           
##  [55] cowplot_1.1.3            annotate_1.85.0          KEGGREST_1.47.0         
##  [58] sys_3.4.3                maketools_1.3.1          pillar_1.10.0           
##  [61] knitr_1.49               fgsea_1.33.2             tcltk_4.4.2             
##  [64] rjson_0.2.23             codetools_0.2-20         fastmatch_1.1-6         
##  [67] glue_1.8.0               outliers_0.15            ggfun_0.1.8             
##  [70] data.table_1.16.4        vctrs_0.6.5              png_0.1-8               
##  [73] treeio_1.31.0            spam_2.11-0              rTensor_1.4.8           
##  [76] gtable_0.3.6             assertthat_0.2.1         cachem_1.1.0            
##  [79] xfun_0.49                S4Arrays_1.7.1           mime_0.12               
##  [82] tidygraph_1.3.1          survival_3.8-3           seriation_1.5.7         
##  [85] iterators_1.0.14         fields_16.3              nlme_3.1-166            
##  [88] Category_2.73.0          ggtree_3.15.0            bit64_4.5.2             
##  [91] progress_1.2.3           filelock_1.0.3           bslib_0.8.0             
##  [94] colorspace_2.1-1         DBI_1.2.3                tidyselect_1.2.1        
##  [97] bit_4.5.0.1              compiler_4.4.2           curl_6.0.1              
## [100] httr2_1.0.7              graph_1.85.0             xml2_1.3.6              
## [103] DelayedArray_0.33.3      plotly_4.10.4            rtracklayer_1.67.0      
## [106] checkmate_2.3.2          scales_1.3.0             hexbin_1.28.5           
## [109] RBGL_1.83.0              plot3D_1.4.1             rappdirs_0.3.3          
## [112] stringr_1.5.1            digest_0.6.37            rmarkdown_2.29          
## [115] ca_0.71.1                XVector_0.47.1           htmltools_0.5.8.1       
## [118] pkgconfig_2.0.3          fastmap_1.2.0            rlang_1.1.4             
## [121] htmlwidgets_1.6.4        UCSC.utils_1.3.0         farver_2.1.2            
## [124] jquerylib_0.1.4          jsonlite_1.8.9           BiocParallel_1.41.0     
## [127] GOSemSim_2.33.0          R.oo_1.27.0              RCurl_1.98-1.16         
## [130] magrittr_2.0.3           GenomeInfoDbData_1.2.13  ggplotify_0.1.2         
## [133] dotCall64_1.2            patchwork_1.3.0          munsell_0.5.1           
## [136] Rcpp_1.0.13-1            babelgene_22.9           ape_5.8-1               
## [139] viridis_0.6.5            stringi_1.8.4            tagcloud_0.6            
## [142] ggraph_2.2.1             zlibbioc_1.52.0          MASS_7.3-61             
## [145] plyr_1.8.9               parallel_4.4.2           ggrepel_0.9.6           
## [148] Biostrings_2.75.3        graphlayouts_1.2.1       splines_4.4.2           
## [151] hms_1.1.3                igraph_2.1.2             buildtools_1.0.0        
## [154] biomaRt_2.63.0           reshape2_1.4.4           BiocVersion_3.21.1      
## [157] XML_3.99-0.17            evaluate_1.0.1           BiocManager_1.30.25     
## [160] foreach_1.5.2            tweenr_2.0.3             tidyr_1.3.1             
## [163] purrr_1.0.2              polyclip_1.10-7          heatmaply_1.5.0         
## [166] ggplot2_3.5.1            ReactomePA_1.51.0        ggforce_0.4.2           
## [169] xtable_1.8-4             restfulr_0.0.15          reactome.db_1.89.0      
## [172] tidytree_0.4.6           viridisLite_0.4.2        tibble_3.2.1            
## [175] aplot_0.2.4              ccTensor_1.0.2           memoise_2.0.1           
## [178] registry_0.5-1           GenomicAlignments_1.43.0 cluster_2.1.8           
## [181] concaveman_1.1.0         GSEABase_1.69.0