Skip to content

Cell type prediction based on marker genes from reference dataset

Cell type prediction based on marker genes from reference dataset

import numpy as np
import pandas as pd
import scanpy as sc
sc.set_figure_params(dpi=80,dpi_save=300, color_map='viridis',facecolor='white')
from matplotlib import rcParams
# To modify the default figure size, use rcParams.
rcParams['figure.figsize'] = 4, 4
rcParams['font.sans-serif'] = "Arial"
rcParams['font.family'] = "Arial"
sc.settings.verbosity = 3
sc.logging.print_header()
path = '.../Analysis/Jupyter/Python/Longitudinal/Integration'
import sys
sys.path.append(path)
from env_settings import *
sc.set_figure_params(dpi=80,dpi_save=300, color_map='viridis',facecolor='white')
rcParams['figure.figsize'] = 4, 4
save_dir='.../Result/single-cell/Methods/COSG/Database'
### Create the save_dir if not existed
!mkdir -p {save_dir}
adata=sc.read('.../Result/single-cell/Enhancer/AdultCortexMultiome/AdultCortexMultiomeRNA_integrated_anno.h5ad')
sc.pl.umap(adata,
color=['CellTypes'],
palette=self_palette2,
# legend_loc='on data',
legend_fontoutline=2,
legend_fontweight=5,
cmap='Spectral_r',
ncols=3,
size=10,
frameon=False)
cosgMarkerDB=pd.read_csv('.../Result/single-cell/Enhancer/WholeMouseBrainRNAAllen/WholeMouseBrainRNAAllen_isocortex_subclass_leidenlocalRes0.5_markerGenes.csv',
index_col=0)
cosgMarkerDB.shape
cosgMarkerDB.head()
cosgMarkerScoreDB=pd.read_csv('.../Result/single-cell/Enhancer/WholeMouseBrainRNAAllen/WholeMouseBrainRNAAllen_isocortex_subclass_leidenlocalRes0.5_markerGenesScores.csv', index_col=0)
cosgMarkerScoreDB.head()
import piaso
%%time
piaso.tl.infog(adata, layer='raw')
adata
piaso.tl.predictCellTypeByMarker(
adata,
marker_gene_set=cosgMarkerDB[:50], ### Use the top 50 marker genes,
score_method = 'piaso',
score_layer = 'infog',
use_score = True,
max_workers = 32,
smooth_prediction = True,
use_rep = 'X_pca_harmony', ### Use the specified low-dimensional cell embeddings for kNN graph-based cell type prediction smoothing
k_nearest_neighbors = 9,
return_confidence = False,
use_existing_adjacency_graph = False,
use_faiss = False,
key_added = 'Subclass_predicted',
extract_cell_type = True, delimiter_cell_type = '-', ## Set True to extract the subclass, as now it's clusters of subclass level
inplace = True,
random_seed = 1927,
verbosity = 1,
n_jobs = -1,
)
sc.pl.umap(adata,
color=['Subclass_predicted'],
palette=piaso.pl.color.d_color10,
# legend_loc='on data',
legend_fontoutline=2,
legend_fontweight=5,
cmap='Spectral_r',
ncols=3,
size=10,
frameon=False)
sc.pl.umap(adata,
color=['CellTypes'],
palette=piaso.pl.color.d_color10,
legend_loc='on data',
legend_fontoutline=2,
legend_fontsize=6,
legend_fontweight=5,
# cmap='Spectral_r',
cmap=sp_cmap,
ncols=1,
size=10,
frameon=False)
sc.pl.umap(adata,
color=['Subclass_predicted_score'],
palette=piaso.pl.color.d_color10,
# legend_loc='on data',
legend_fontoutline=2,
legend_fontweight=5,
# cmap='Spectral_r',
cmap=piaso.pl.color.c_color6,
ncols=1,
size=10,
frameon=False)
piaso.tl.predictCellTypeByMarker(
adata,
marker_gene_set=cosgMarkerDB[:50], ### Use the top 50 marker genes,
score_method = 'piaso',
score_layer = 'infog',
use_score = False,
max_workers = 32,
smooth_prediction = True,
use_rep = 'X_pca_harmony', ### Use the specified low-dimensional cell embeddings for kNN graph-based cell type prediction smoothing
k_nearest_neighbors = 9,
return_confidence = False,
use_existing_adjacency_graph = False,
use_faiss = False,
key_added = 'Subclass_predicted_pvals',
extract_cell_type = True, delimiter_cell_type = '-', ## Set True to extract the subclass, as now it's clusters of subclass level
inplace = True,
random_seed = 1927,
verbosity = 1,
n_jobs = -1,
)
sc.pl.umap(adata,
color=['Subclass_predicted', 'Subclass_predicted_pvals'],
palette=piaso.pl.color.d_color10,
# legend_loc='on data',
legend_fontoutline=2,
legend_fontweight=5,
cmap='Spectral_r',
ncols=1,
size=10,
frameon=False)
sc.pl.umap(adata,
color=['CellTypes'],
palette=piaso.pl.color.d_color10,
legend_loc='on data',
legend_fontoutline=2,
legend_fontsize=6,
legend_fontweight=5,
# cmap='Spectral_r',
cmap=sp_cmap,
ncols=1,
size=10,
frameon=False)
sc.pl.umap(adata,
color=['Subclass_predicted_pvals_nlog10pvals'],
palette=piaso.pl.color.d_color10,
# legend_loc='on data',
legend_fontoutline=2,
legend_fontweight=5,
# cmap='Spectral_r',
cmap=piaso.pl.color.c_color6,
vcenter= -np.log10(0.05), vmin=0,
ncols=1,
size=10,
frameon=False)
sc.pl.umap(adata,
color=['Sample', 'Leiden'],
palette=self_palette2,
# legend_loc='on data',
legend_fontoutline=2,
legend_fontweight=5,
# cmap='Spectral_r',
cmap=sp_cmap,
ncols=1,
size=10,
frameon=False)
piaso.pl.plotConfusionMatrix(adata, 'CellTypes', 'Subclass_predicted',)