6
6
# ' @param sce.E1,sce.E2 Data objects of the \link[SingleCellExperiment]{SingleCellExperiment} data class. If only \code{sce.E1},
7
7
# ' then the "barcode" is a self plot, i.e. both cluster (\code{cluster.name}) and marker genes are from the same experiment.
8
8
# ' If both \code{sce.E1} and \code{sce.E2} are provided, then the "barcode" is a cross-experiment plot, i.e. marker genes are from
9
- # ' \code{sce.E1} (reference) andcluster (\code{cluster.name}) is from \code{sce.E2} (query).
9
+ # ' \code{sce.E1} (reference) and cluster (\code{cluster.name}) is from \code{sce.E2} (query).
10
10
# ' @param cluster.name Name of the cluster to be plotted.
11
11
# ' @param nsamp Number of randomly selected cells to plot for a large cluster. Default: \code{30}.
12
12
# ' @param name.E1,name.E2 Prefix names for E1 and E2. Default: \code{"E1."} and \code{"E2."}, respectively.
@@ -28,7 +28,7 @@ plot_cluster_by_markers <- function(sce.E1, sce.E2=NULL, cluster.name, nsamp=30,
28
28
stop(paste(cluster.name , " is not found in the plotting data object. \n " ))}
29
29
30
30
# # reference marker genes
31
- markergenes <- rownames (sce.ref )[rowData( sce.ref ) $ marker_gene == 1 ]
31
+ markergenes <- unique (sce.ref @ metadata $ cluster_marker_info $ markerGene ) # marker genes in ORDER!!!
32
32
# # cells of query cluster
33
33
col.query <- colData(sce.query )$ cluster_membership == cluster.name
34
34
@@ -41,6 +41,7 @@ plot_cluster_by_markers <- function(sce.E1, sce.E2=NULL, cluster.name, nsamp=30,
41
41
mat.query <- assay(sce.query [,col.query ]) %> % as.data.frame() %> % rownames_to_column() %> %
42
42
right_join(as.data.frame(markergenes , stringsAsFactors = FALSE ), by = c(" rowname" = " markergenes" )) %> %
43
43
column_to_rownames() %> % as.matrix()
44
+ mat.query <- mat.query [markergenes ,]
44
45
}
45
46
46
47
# # randomly select nsamp number of cells
@@ -49,10 +50,10 @@ plot_cluster_by_markers <- function(sce.E1, sce.E2=NULL, cluster.name, nsamp=30,
49
50
# ## self plot ###
50
51
if (is.null(sce.E2 )){
51
52
# # main
52
- if (is.null(main )) main <- paste0(name.E1 ,cluster.name )
53
+ if (is.null(main )) main <- paste0(name.E1 , cluster.name )
53
54
# # indicator for markers
54
55
if (! is.null(sce.query @ metadata $ cluster_marker_info )){
55
- mat.query <- mat.query [unique(sce.query @ metadata $ cluster_marker_info $ markerGene ),]
56
+ # mat.query <- mat.query[unique(sce.query@metadata$cluster_marker_info$markerGene),]
56
57
temp <- rep(0 , nrow(mat.query ))
57
58
markers.i <- sce.query @ metadata $ cluster_marker_info %> % filter(clusterName == cluster.name ) %> % pull(markerGene )
58
59
temp [rownames(mat.query ) %in% markers.i ] <- 1
@@ -86,13 +87,12 @@ plot_cluster_by_markers <- function(sce.E1, sce.E2=NULL, cluster.name, nsamp=30,
86
87
if (is.null(main )) main <- paste0(name.E2 ,cluster.name )
87
88
# # plot
88
89
pheatmap(mat.query ,
89
- color = viridis :: inferno(10 ), border_color = NA ,
90
+ color = inferno(10 ), border_color = NA ,
90
91
cluster_rows = FALSE , cluster_cols = FALSE ,
91
92
cellheight = cellheight , cellwidth = cellwidth ,
92
93
show_rownames = TRUE , show_colnames = FALSE ,
93
94
labels_col = " Cells" , angle_col = " 0" ,
94
- main = main ,
95
- filename = filename ,
95
+ main = main , filename = filename ,
96
96
... )
97
97
}
98
98
}
0 commit comments