Identify marker genes for selected clusters based on gini detection and expression scores.
findGiniMarkers(
gobject,
expression_values = c("normalized", "scaled", "custom"),
cluster_column,
subset_clusters = NULL,
group_1 = NULL,
group_2 = NULL,
min_expr_gini_score = 0.2,
min_det_gini_score = 0.2,
detection_threshold = 0,
rank_score = 1,
min_genes = 5
)
giotto object
gene expression values to use
clusters to use
selection of clusters to compare
group 1 cluster IDs from cluster_column for pairwise comparison
group 2 cluster IDs from cluster_column for pairwise comparison
filter on minimum gini coefficient for expression
filter on minimum gini coefficient for detection
detection threshold for gene expression
rank scores for both detection and expression to include
minimum number of top genes to return
data.table with marker genes
Detection of marker genes using the https://en.wikipedia.org/wiki/Gini_coefficientgini coefficient is based on the following steps/principles per gene:
1. calculate average expression per cluster
2. calculate detection fraction per cluster
3. calculate gini-coefficient for av. expression values over all clusters
4. calculate gini-coefficient for detection fractions over all clusters
5. convert gini-scores to rank scores
6. for each gene create combined score = detection rank x expression rank x expr gini-coefficient x detection gini-coefficient
7. for each gene sort on expression and detection rank and combined score
As a results "top gini" genes are genes that are very selectivily expressed in a specific cluster, however not always expressed in all cells of that cluster. In other words highly specific, but not necessarily sensitive at the single-cell level.
To perform differential expression between cluster groups you need to specificy cluster IDs to the parameters group_1 and group_2.
data(mini_giotto_single_cell)
gini_markers = findGiniMarkers(gobject = mini_giotto_single_cell,
cluster_column = 'leiden_clus',
group_1 = 1,
group_2 = 2)