In [1]:
Copied!
import scanpy as sc
import celldega as dega
import scanpy as sc
import celldega as dega
/Users/feni/Documents/celldega/dega/lib/python3.12/site-packages/h5py/__init__.py:36: UserWarning: h5py is running against HDF5 1.14.5 when it was built against 1.14.6, this may cause problems _warn(("h5py is running against HDF5 {0} when it was built against {1}, "
In [3]:
Copied!
adata = sc.read_10x_mtx('data/chromium_data/chromium_pbmc_healthy-donor/filtered_feature_bc_matrix')
adata
adata = sc.read_10x_mtx('data/chromium_data/chromium_pbmc_healthy-donor/filtered_feature_bc_matrix')
adata
Out[3]:
AnnData object with n_obs × n_vars = 6574 × 36601 var: 'gene_ids', 'feature_types'
In [4]:
Copied!
# mitochondrial genes, "MT-" for human, "Mt-" for mouse
adata.var["mt"] = adata.var_names.str.startswith("MT-")
# ribosomal genes
adata.var["ribo"] = adata.var_names.str.startswith(("RPS", "RPL"))
# hemoglobin genes
adata.var["hb"] = adata.var_names.str.contains("^HB[^(P)]")
# mitochondrial genes, "MT-" for human, "Mt-" for mouse
adata.var["mt"] = adata.var_names.str.startswith("MT-")
# ribosomal genes
adata.var["ribo"] = adata.var_names.str.startswith(("RPS", "RPL"))
# hemoglobin genes
adata.var["hb"] = adata.var_names.str.contains("^HB[^(P)]")
In [ ]:
Copied!
sc.pp.calculate_qc_metrics(
adata, qc_vars=["mt", "ribo", "hb"], inplace=True, log1p=True
)
sc.pp.calculate_qc_metrics(
adata, qc_vars=["mt", "ribo", "hb"], inplace=True, log1p=True
)
OMP: Info #276: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
In [ ]:
Copied!
sc.pp.filter_cells(adata, min_genes=100)
sc.pp.filter_genes(adata, min_cells=3)
sc.pp.filter_cells(adata, min_genes=100)
sc.pp.filter_genes(adata, min_cells=3)
In [ ]:
Copied!
# Saving count data
adata.layers["counts"] = adata.X.copy()
# Saving count data
adata.layers["counts"] = adata.X.copy()
In [ ]:
Copied!
# Normalizing to median total counts
sc.pp.normalize_total(adata)
# Logarithmize the data
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)
sc.tl.pca(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
# Using the igraph implementation and a fixed number of iterations can be significantly faster, especially for larger datasets
sc.tl.leiden(adata, flavor="igraph", n_iterations=2)
# Normalizing to median total counts
sc.pp.normalize_total(adata)
# Logarithmize the data
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)
sc.tl.pca(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
# Using the igraph implementation and a fixed number of iterations can be significantly faster, especially for larger datasets
sc.tl.leiden(adata, flavor="igraph", n_iterations=2)
In [3]:
Copied!
sc.pl.umap(adata, color=["leiden"])
sc.pl.umap(adata, color=["leiden"])
In [4]:
Copied!
path_landscape_files = 'data/landscape_files/chromium_pbmc_healthy-donor'
path_landscape_files = 'data/landscape_files/chromium_pbmc_healthy-donor'
Make LandscapeFiles¶
In [5]:
Copied!
dega.pre.make_chromium_from_anndata(adata, path_landscape_files)
dega.pre.make_chromium_from_anndata(adata, path_landscape_files)
Visualize¶
In [6]:
Copied!
server_address = dega.viz.get_local_server()
path_landscape_files = 'data/landscape_files/chromium_pbmc_healthy-donor'
# base_url = f'http://localhost:{server_address}/{path_landscape_files}'
base_url = 'https://raw.githubusercontent.com/broadinstitute/chromium_pbmc_healthy-donor/main/'
server_address = dega.viz.get_local_server()
path_landscape_files = 'data/landscape_files/chromium_pbmc_healthy-donor'
# base_url = f'http://localhost:{server_address}/{path_landscape_files}'
base_url = 'https://raw.githubusercontent.com/broadinstitute/chromium_pbmc_healthy-donor/main/'
In [7]:
Copied!
landscape = dega.viz.Landscape(
technology='Chromium',
base_url = base_url,
height=600,
adata=adata,
cell_attr=['leiden'],
ini_zoom=-4.5,
ini_x=4000,
ini_y=5000
)
# landscape
landscape = dega.viz.Landscape(
technology='Chromium',
base_url = base_url,
height=600,
adata=adata,
cell_attr=['leiden'],
ini_zoom=-4.5,
ini_x=4000,
ini_y=5000
)
# landscape
/var/folders/8d/jxpy9rd10j7fp2rcj_s5sz3c0000gq/T/ipykernel_42957/4210038785.py:1: UserWarning: Transformation matrix not found at https://raw.githubusercontent.com/broadinstitute/chromium_pbmc_healthy-donor/main//micron_to_image_transform.csv. Using identity. landscape = dega.viz.Landscape(
In [8]:
Copied!
mat = dega.clust.Matrix(adata)
mat.filter(axis='row', by='mean', num=10000)
mat.filter(axis='row', by='var', num=5000)
mat.downsample_to(category='leiden')
mat.norm(axis='row', by='zscore')
mat.cluster()
cgm = dega.Clustergram(matrix=mat, width=500, height=500)
mat = dega.clust.Matrix(adata)
mat.filter(axis='row', by='mean', num=10000)
mat.filter(axis='row', by='var', num=5000)
mat.downsample_to(category='leiden')
mat.norm(axis='row', by='zscore')
mat.cluster()
cgm = dega.Clustergram(matrix=mat, width=500, height=500)
/Users/feni/Documents/celldega/src/celldega/clust/matrix.py:194: UserWarning: Large matrix (6565 x 18314). Consider filtering. self.load_adata(data, col_attr=col_attr, row_attr=row_attr)
In [9]:
Copied!
dega.viz.landscape_clustergram(landscape, cgm)
dega.viz.landscape_clustergram(landscape, cgm)
Out[9]:
In [18]:
Copied!
# adata.write_h5ad('data/chromium_data/chromium_pbmc_healthy-donor/adata.h5ad')
# adata.write_h5ad('data/chromium_data/chromium_pbmc_healthy-donor/adata.h5ad')
In [ ]:
Copied!