






import scanpy as sc
import numpy as np
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
from DeepScence.api import DeepScence
from dca.api import dca
adata = sc.read_h5ad("./mouse_muscle.h5ad")
sc.pp.filter_genes(adata, min_cells=1)
dca(adata)
#Run DeepScence and Visualize
# running mouse dataset
adata.obs["b"] = adata.obs["celltype"].astype(str)
adata = DeepScence(adata, binarize=False, species="mouse")
# Plot senescence score distributions comparing conditions
plt.figure(figsize=(12, 6))
sns.boxplot(
data=adata.obs,
x="celltype",
y="ds",
hue="stim",
palette=["#60efff", "#0061ff"]
)
plt.show()
counts = pd.read_csv('./origin_matrix_GSE94980.txt', sep = '\t').T
adata = sc.AnnData(counts)
adata.obs['condition'] = [x.split('_')[-1]=='OSKM' for x in adata.obs_names]
adata.obs["SnC"] = (adata.obs["condition"]).astype(int)
adata.X = adata.X.astype(np.float32)
# denoise
sc.pp.filter_genes(adata, min_cells=1)
dca(adata)
adata = DeepScence(adata, binarize=True)
from sklearn.metrics import roc_auc_score, confusion_matrix, accuracy_score
import matplotlib.pyplot as plt
binary_numeric = adata.obs["binary"].map({"SnC": 1, "Normal": 0}).values
auroc = roc_auc_score(adata.obs["SnC"].values, adata.obs["ds"].values)
accuracy = accuracy_score(binary_numeric, adata.obs["SnC"])
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))
sns.boxplot(x=adata.obs["SnC"], y=adata.obs["ds"], ax=ax1)
ax1.set_title(f"Score by cell state (AUC={auroc:.3f})")
ax1.set_xlabel("True label (1: SnCs, 0: Normal)")
ax1.set_ylabel("DeepScence scores")
cm = confusion_matrix(binary_numeric, adata.obs["SnC"])
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', ax=ax2)
ax2.set_title(f"Binarization (Accuracy: {accuracy:.3f})")
ax2.set_xlabel("Predicted SnCs")
ax2.set_ylabel("True label")
plt.tight_layout()
plt.show()
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。