CmhaDSO scvi

使用例

インストール
$ conda create -n scvi-env python=3.7
$ conda install scvi-tools -c conda-forge
#@
import scvi
import scanpy as sc

#@
adata = adata_1.concatenate(adata_2)

#@ Preprocessing


#@ Normalize
# For other tasks, store normalized data in the anndata object separately

adata.layers["counts"] = adata.X.copy()
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
adata.raw = adata

#@ HVG
sc.pp.highly_variable_genes(
  adata,
  n_top_genes = 2000,
  subset=True,
  layer = "counts",
  flavor = "seurat_v3",
  batch_key = "batch"
)

#@ SET UP
scvi.model.SCVI.setup_anndata(
  adata,
  layer = "counts",
  batch_key = "batch",
	continuous_covariate_keys = ["percent_mito", "percent_ribo"]
)

#@ Creating/Training a model & Obtaining a model output
model = scvi.model.SCVI(adata, n_layer = 2, n_latent=30, gene_likelihood="nb")
model.train()

  # SAVE & LOAD
  # model.save("my_model/")
  # model = scvi.model.SCVI.load("my_model/", adata)

adata.obsm["X_scVI"] = model.get_latent_representation()



#@ UMAP & Clustering / using scVI latent space
sc.pp.neibors(adata, use_rep = "X_scVI")
sc.tl.umap(adata)
sc.tl.leiden(adata)
sc.pl.umap(adata, color = ["batch", "leiden" ] )

#@ RENAME

#@ MARKERS
de_df = model.differential_expression(
  groupby = "cell_type",
)

markers = {}
cats = adata.obs.cell_type.cat.categories
for i, c in enumerate(cats):
  cid = "{} vs Rest".format(c)
  cell_type_df = de_df.loc[de_df.comparison == cid ]
  cell_type_df = cell_type_df[cell_type_df.lfc_mean > 0 ]
  cell_type_df = cell_type_df[cell_type_df["bayes_factor"] > 3 ]
  cell_type_df = cell_type_df[ cell_type_df["non_zeros_proportion1"] > 0.1 ]
  markers[c] = cell_type_df.index.tolist()[:3]

sc.tl.dendrogram(adata, groupby="cell_type", use_rep="X_scVI")
sc.pl.dotplot(
  adata,
  markers,
  groupby = "cell_type",
  dendrogram = True,
  color_map = "Blues",
  swap_axes = True,
  use_raw = True,
  standard_scale = "var"
)

sc.pl.heatmap(
  adata,
  markers,
  groupby = "cell_type",
  layer = "scvi_normalized",
  standard_scale = "var",
  dendrogram = True,
  figsize = (8, 12)
)

参考文献