Neurons rehablitation

[23]:
import torch.nn as nn
import scfocus
import scanpy as sc
import pandas as pd
import numpy as np
import joblib
import torch
import matplotlib.pyplot as plt
import seaborn as sns
[50]:
cm = 1/2.54
sc.set_figure_params(figsize=(5*cm,5*cm),dpi=300,fontsize=10,frameon=False)
[10]:
adata = joblib.load('adata')

adata
[10]:
AnnData object with n_obs × n_vars = 82093 × 22806
    obs: 'replicate', 'label', 'global_cell_type', 'cell_type', 'batch', 'name_snn_res.0.1', 'name_snn_res.0.5', 'name_snn_res.1', 'name_snn_res.2', 'name_snn_res.3', 'name_snn_res.0.01', 'barcode'
    var: 'highly_variable', 'means', 'dispersions', 'dispersions_norm'
    uns: 'log1p', 'hvg', 'pca'
    obsm: 'X_pca'
    varm: 'PCs'
[400]:
sc.pp.neighbors(adata, n_pcs=15)
sc.tl.umap(adata)
[401]:
sc.pl.umap(adata, color='global_cell_type')
../_images/notebook_NeuronsRehabilatation_5_0.png
[157]:
adata1 = adata[adata.obs['global_cell_type']=='Neurons']
[402]:
sc.pp.neighbors(adata1)
sc.tl.umap(adata1)
[403]:
sc.pl.umap(adata1)
../_images/notebook_NeuronsRehabilatation_8_0.png
[404]:
pd.DataFrame(adata1.obsm['X_umap']).to_csv('Neurons.csv')
[292]:
sc.pl.umap(adata1, color='label', groups=['EESREHAB','EESREHAB->EES','SCI','SCI->EES::walking','Uninjured']
           ,title='',legend_loc=None,s=5,na_color='w')
../_images/notebook_NeuronsRehabilatation_10_0.png
[296]:
batches = ['EESREHAB','EESREHAB->EES','SCI','SCI->EES::walking','Uninjured']
[297]:
mask = adata1.obs['label'].isin(batches)
[ ]:
with sns.axes_style('ticks'):
    fig = plt.figure(figsize=(1.5,2))
    sns.barplot(y=np.arange(5),x=np.unique(adata1.obs['label'][mask], return_counts=True)[1],orient='horizonal', palette=[lut[c] for c in batches],zorder=0)
    ax = plt.gca()
    ax.set_yticklabels(batches, fontdict={'ha':'left'},zorder=10)
    ax.tick_params(axis='y',pad=-4,zorder=10,left=False)
    ax.spines[['right','top']].set_visible(False)
[ ]:
focus = scfocus.focus(f, n=6, max_steps=3, pct_samples=.01).meta_focusing(3)
[181]:
focus.merge_fp2()

mfp = focus.mfp[0]

for i in range(mfp.shape[1]):

    adata1.obs[f'f{i}'] = mfp[:, i]
[ ]:
sc.pl.umap(adata1, color=[f'f{i}' for i in range(mfp.shape[1])], cmap='viridis')
[ ]:
adata1.obsm['X_focus'] = adata1.obs[[f'f{i}' for i in range(11)]].values

sc.pp.neighbors(adata1, use_rep='X_focus')

sc.tl.umap(adata1, min_dist=.2)
[ ]:
sc.pl.umap(adata1, color=[f'f{i}' for i in range(mfp.shape[1])])
[ ]:
df = pd.DataFrame(mfp, index=adata1.obs_names)

df['label'] = adata1.obs['label']

df1 = df.groupby('label').mean()

df1 = df1[np.argsort(np.argmax(df1, axis=0))]

from sklearn.preprocessing import StandardScaler

df1 = pd.DataFrame(StandardScaler().fit_transform(df1.values), columns=df1.columns,index=df1.index)
[235]:
df1.iloc[[0,1,5,6,7],:]
[235]:
5 2 3 6 10 0 1 4 7 8 9
label
EESREHAB 0.953187 0.460945 0.770499 0.135323 0.911620 -0.953429 -1.076216 -1.072505 -1.087325 -1.053058 -1.051158
EESREHAB->EES -1.178678 -1.316954 -1.385333 -1.306731 -1.336194 0.627897 0.704716 0.706257 0.529541 0.674822 0.702057
SCI 0.914232 -0.451847 1.273081 1.500645 0.961419 -1.345898 -0.811159 -0.898600 -0.371421 -1.091850 -1.029250
SCI->EES::walking -1.944437 -1.469438 -1.396348 0.228132 -1.774489 1.752751 2.215645 2.167080 2.367716 2.027430 2.080167
Uninjured 0.372845 0.171850 0.076698 -0.572494 0.228553 -0.492576 -0.644306 -0.622034 -0.759408 -0.570870 -0.591954
[ ]:
adata1.obs['F1'] = adata1.obs[['f0','f1','f4','f7','f8','f9']].mean(axis=1)

adata1.obs['F_2'] = adata1.obs[['f5','f2','f3','f6','f10']].mean(axis=1)
[277]:
del adata1.obs['F2']
[278]:
import gc
[276]:
sc.pl.umap(adata1, color='F1', title='', show=False)
plt.savefig(f'REHAB1.png', dpi=1000, bbox_inches='tight', transparent=True)
../_images/notebook_NeuronsRehabilatation_24_0.png
[282]:
sc.pl.umap(adata1, color='F_2', title='', show=False)
plt.savefig(f'REHAB2.png', dpi=1000, bbox_inches='tight', transparent=True)
../_images/notebook_NeuronsRehabilatation_25_0.png
[290]:
lut = dict(zip(adata1.obs['label'].cat.categories, adata1.uns['label_colors']))
[391]:
with sns.axes_style('white'):
    fig = plt.figure(figsize=(3,2))
    sns.heatmap(df1.iloc[[0,1,5,6,7],:], xticklabels=True, lw=.5, cmap='RdBu_r')
    ax = plt.gca()

ax.set_ylabel('')
for tick in ax.get_xticklabels():
    tick.set_rotation(0)

for tick in ax.get_yticklabels():
    tick.set_color(lut[tick.get_text()])
../_images/notebook_NeuronsRehabilatation_27_0.png
[ ]:
exp = adata1[:,adata1.var['highly_variable']].to_df()

exp['F_1'] = adata1.obs['F1']
exp['F_2'] = adata1.obs['F_2']
[ ]:
corr = np.corrcoef(exp.values.T)

corr = pd.DataFrame(corr, index=exp.columns, columns=exp.columns)
[ ]:
idx1 = corr['F_1'].sort_values(ascending=False).index

idx2 = corr['F_2'].sort_values(ascending=False).index

pd.DataFrame(idx1[1:51]).to_csv('Neuron_gs1.csv')

pd.DataFrame(idx2[1:51]).to_csv('Neuron_gs2.csv')
[369]:
with sns.axes_style('white'):
    sns.heatmap(corr.loc[idx1,idx1].iloc[:20,:20])
    ax = plt.gca()
    ax.tick_params(labelleft=False,labelbottom=False)
../_images/notebook_NeuronsRehabilatation_31_0.png
[371]:
with sns.axes_style('white'):
    sns.heatmap(corr.loc[idx2,idx2].iloc[:20,:20])
    ax = plt.gca()
    ax.tick_params(labelleft=False,labelbottom=False)
../_images/notebook_NeuronsRehabilatation_32_0.png
[372]:
idx1
[372]:
Index(['F_1', 'Lrrtm4', 'Nrxn3', 'Gpc5', 'Cntn5', 'Galntl6', 'Mgat4c', 'Nrg1',
       'Cntnap2', 'Pde4d',
       ...
       'Cpne8', 'Sst', 'Ebf2', 'Ebf1', 'F_2', 'Mx1', 'Slamf8', 'Syt8', 'Tbx3',
       'Evi2a'],
      dtype='object', length=3994)
[373]:
idx2
[373]:
Index(['F_2', 'Ebf1', 'Ebf2', 'Sst', 'Arhgap6', 'Cpne8', 'Cntnap5c', 'Trpm3',
       'Pde11a', 'Tac2',
       ...
       'Cntnap2', 'Gpc5', 'Nrxn3', 'Lrrtm4', 'F_1', 'Mx1', 'Slamf8', 'Syt8',
       'Tbx3', 'Evi2a'],
      dtype='object', length=3994)
[ ]:
adata1.obs['F_1_exp'] = adata1[:,['Lrrtm4', 'Nrxn3', 'Gpc5', 'Cntn5', 'Galntl6']].to_df().mean(axis=1)

adata1.obs['F_2_exp'] = adata1[:,['Ebf1', 'Ebf2', 'Sst', 'Arhgap6', 'Cpne8']].to_df().mean(axis=1)
[382]:
sc.pl.umap(adata1, color='F_1_exp',title='', cmap='Spectral_r')
../_images/notebook_NeuronsRehabilatation_36_0.png
[383]:
sc.pl.umap(adata1, color='F_2_exp',title='', cmap='Spectral_r')
../_images/notebook_NeuronsRehabilatation_37_0.png
[390]:
joblib.dump(focus, 'Neurons_focus')
[390]:
['Neurons_focus']
[389]:
joblib.dump(adata1, 'Neurons')
[389]:
['Neurons']
[405]:
adata1
[405]:
AnnData object with n_obs × n_vars = 20990 × 22806
    obs: 'replicate', 'label', 'global_cell_type', 'cell_type', 'batch', 'name_snn_res.0.1', 'name_snn_res.0.5', 'name_snn_res.1', 'name_snn_res.2', 'name_snn_res.3', 'name_snn_res.0.01', 'barcode', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'F1', 'F_2', 'F_2_exp', 'F_1_exp'
    var: 'highly_variable', 'means', 'dispersions', 'dispersions_norm'
    uns: 'log1p', 'hvg', 'pca', 'neighbors', 'umap', 'cell_type_colors', 'label_colors', 'global_cell_type_colors', 'rank_genes_groups', 'dendrogram_label'
    obsm: 'X_pca', 'X_umap', 'X_focus'
    varm: 'PCs'
    obsp: 'distances', 'connectivities'