The goal of LigandReceptor is to simplify the process of identifying potential ligand-receptor pairs in scRNAseq data
You can install LigandReceptor from GitHub with:
# install.packages("devtools")
devtools::install_github("chiblyaa/LigandReceptor")
To use this function, first obtain a list of genes expressed in a scRNAseq dataset using the SEURAT function FindAllMarkers(). An example of an acceptable table:
p_val | avg_logFC | pct.1 | pct.2 | p_val_adj | cluster | gene | |
---|---|---|---|---|---|---|---|
Gpx2 | 0 | 1.4570746 | 0.858 | 0.069 | 0 | End bud | Gpx2 |
Aldoc | 0 | 1.1354879 | 0.750 | 0.091 | 0 | End bud | Aldoc |
Tmem54 | 0 | 0.4738690 | 0.549 | 0.038 | 0 | End bud | Tmem54 |
S100a14 | 0 | 0.3989609 | 0.424 | 0.025 | 0 | End bud | S100a14 |
Bex4 | 0 | 0.9329017 | 0.805 | 0.125 | 0 | End bud | Bex4 |
Basic example code for generating a table with ligand-receptor pairs:
library(LigandReceptor)
#>
#> Attaching package: 'LigandReceptor'
#> The following object is masked _by_ '.GlobalEnv':
#>
#> test_dataset
## This will generate a table with ligand-receptor pair for the specified cell types in celltypelabels
LR.pairs <- LigandReceptorPairsTable(seuratDEGS = test_dataset, LRdatabase = LRdatabase)
knitr::kable(LR.pairs[1:10,], caption = "Ligand-Receptor pairs: ")
from | to | value | pairs |
---|---|---|---|
End bud | End bud | 14 | Tnc_sdc4, Lamc2_itgb4, Lamc2_itga6, Lamc2_col17a1, Lamc2_cd151, Lamb3_col17a1, Lamb3_cd151, Lamb3_itga6, Lamb3_itgb4, Lama5_itga6, Lama5_itgb4, Lama5_bcam, Hbegf_cd9, Cdh1_ptprf |
Krt19+ duct | End bud | 1 | Cdh1_ptprf |
Basal duct | End bud | 4 | Thbs1_sdc4, Thbs1_itga6, Hbegf_cd9, Cdh1_ptprf |
Myoepithelial | End bud | 1 | Gnai2_f2r |
Macrophages | End bud | 20 | Thbs1_sdc4, Thbs1_itga6, Tgm2_sdc4, Mdk_sdc4, Mdk_itga6, Lamc2_itgb4, Lamc2_itga6, Lamc2_col17a1, Lamc2_cd151, Lamc1_itgb4, Lamc1_itga6, Lamb3_col17a1, Lamb3_cd151, Lamb3_itga6, Lamb3_itgb4, Lamb1_itga6, Lamb1_itgb4, Lama5_itga6, Lama5_itgb4, Lama5_bcam |
Stromal | End bud | 24 | Tnfsf12_tnfrsf12a, Thbs2_itga6, Thbs1_sdc4, Thbs1_itga6, Tfpi_f3, Tfpi_sdc4, Rspo3_sdc4, Rspo3_lgr4, Nid1_ptprf, Mdk_sdc4, Mdk_itga6, Lamc1_itgb4, Lamc1_itga6, Lamb1_itga6, Lamb1_itgb4, Lama4_itga6, Lama2_itgb4, Lama2_itga6, Lama2_rpsa, Gnai2_f2r, Fn1_itga6, Cxcl12_sdc4, Col6a1_itga6, Adam12_sdc4 |
End bud | Krt19+ duct | 2 | Hbegf_cd9, Cdh1_ptprf |
Krt19+ duct | Krt19+ duct | 3 | Cdh1_ptprf, Calm1_hmmr, Calm1_kcnn4 |
Basal duct | Krt19+ duct | 2 | Hbegf_cd9, Cdh1_ptprf |
Myoepithelial | Krt19+ duct | 2 | Calm1_hmmr, Calm1_kcnn4 |
Chord plot to represent ligands from Myoepithelial cells to all other cells:
# This will generate the chord plot associated with the table
colors = topo.colors(as.numeric(length(unique(test_dataset$cluster)))) # create vector of colors of length = ncells
names(colors) <- as.character(unique(test_dataset$cluster))
PairsPlot(cellcolors=colors, seuratDEGS = test_dataset, LRdatabase)
legend("bottomright", # location of legend
legend = names(colors), # categories or elements to render in
# the legend
fill = colors)