Skip to content

Instantly share code, notes, and snippets.

@LouisFaure
Last active January 22, 2023 11:35
Show Gist options
  • Save LouisFaure/bfaedbf7a99ff988bcd3193d748b4d5c to your computer and use it in GitHub Desktop.
Save LouisFaure/bfaedbf7a99ff988bcd3193d748b4d5c to your computer and use it in GitHub Desktop.
Mudata scFates test
import mudatasets
import numpy as np
import pandas as pd
import scanpy as sc
import anndata as ad
import muon as mu
mdata = mudatasets.load("brain3k_multiome", full=True)
mdata.var_names_make_unique()
rna = mdata['rna']
rna.var['mt'] = rna.var_names.str.startswith('MT-') # annotate the group of mitochondrial genes as 'mt'
sc.pp.calculate_qc_metrics(rna, qc_vars=['mt'], percent_top=None, log1p=False, inplace=True)
mu.pp.filter_obs(rna, 'n_genes_by_counts', lambda x: (x >= 200) & (x < 8000))
mu.pp.filter_obs(rna, 'total_counts', lambda x: x < 40000)
mu.pp.filter_obs(rna, 'pct_counts_mt', lambda x: x < 2)
rna.layers["counts"] = rna.X.copy()
sc.pp.normalize_total(rna, target_sum=1e4)
sc.pp.log1p(rna)
rna.layers["lognorm"] = rna.X.copy()
sc.pp.highly_variable_genes(rna, min_mean=0.02, max_mean=4, min_disp=0.5)
sc.pp.scale(rna, max_value=10)
sc.tl.pca(rna)
sc.pp.neighbors(rna, n_neighbors=10, n_pcs=20)
sc.tl.leiden(rna, resolution=.5)
sc.tl.umap(rna, spread=1., min_dist=.5, random_state=11)
sc.pl.umap(rna, color="leiden", legend_loc="on data")
rna=rna[rna.obs.leiden.isin(["2","11","12","13"])]
sc.pp.neighbors(rna, n_neighbors=10, n_pcs=20)
sc.tl.umap(rna)
import scFates as scf
scf.tl.tree(rna,Nodes=100,use_rep="X_umap",method="ppt",ppt_sigma=1,ppt_lambda=100,seed=42)
scf.tl.cleanup(rna,minbranchlength=10)
scf.pl.graph(rna)
scf.tl.root(rna,22)
scf.tl.pseudotime(rna,n_jobs=5,n_map=50,seed=42)
scf.pl.trajectory(rna)
scf.pl.milestones(rna,annotate=True)
rna.X=rna.layers["lognorm"]
scf.tl.test_fork(rna,"22",milestones=["40","65","19"],rescale=True,features=rna.var_names[:100],n_jobs=5)
print(rna.uns['22->40<>65<>19']['fork'])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment