前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >scanpy分析单细胞数据

scanpy分析单细胞数据

作者头像
生信编程日常
发布2020-12-21 11:25:28
1.9K0
发布2020-12-21 11:25:28
举报

scanpy和seurat是最常用的分析的单细胞的工具,seurat基于R,而scanpy基于python。 linux下用pip安装scanpy

代码语言:javascript
复制
pip install scanpy

下载测试数据

代码语言:javascript
复制
mkdir data
wget http://cf.10xgenomics.com/samples/cell-exp/1.1.0/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz -O data/pbmc3k_filtered_gene_bc_matrices.tar.gz
cd data
tar -xzf pbmc3k_filtered_gene_bc_matrices.tar.gz
mkdir write

jupyter下面运行:

代码语言:javascript
复制
import numpy as np
import pandas as pd
import scanpy as sc
代码语言:javascript
复制
sc.settings.verbosity = 3             # verbosity: errors (0), warnings (1), info (2), hints (3)
sc.logging.print_header()
sc.settings.set_figure_params(dpi=80, facecolor='white')
代码语言:javascript
复制
results_file = 'write/pbmc3k.h5ad'  # the file that will store the analysis results
代码语言:javascript
复制
adata=sc.read_10x_mtx('data/filtered_gene_bc_matrices/hg19', var_names='gene_symbols', cache=True)    #读取单细胞测序文件

质控:过滤基因和细胞

代码语言:javascript
复制
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.filter_genes(adata, min_cells=3)
代码语言:javascript
复制
adata.var['mt'] = adata.var_names.str.startswith('MT-')  # annotate the group of mitochondrial genes as 'mt'
sc.pp.calculate_qc_metrics(adata, qc_vars=['mt'], percent_top=None, log1p=False, inplace=True)
代码语言:javascript
复制
sc.pl.violin(adata, ['n_genes_by_counts', 'total_counts', 'pct_counts_mt'],
             jitter=0.4, multi_panel=True)
代码语言:javascript
复制
sc.pl.scatter(adata, x='total_counts', y='pct_counts_mt')
sc.pl.scatter(adata, x='total_counts', y='n_genes_by_counts')
代码语言:javascript
复制
adata = adata[adata.obs.n_genes_by_counts < 2500, :]
adata = adata[adata.obs.pct_counts_mt < 5, :]
代码语言:javascript
复制
sc.pp.normalize_total(adata, target_sum=1e4)
代码语言:javascript
复制
sc.pp.log1p(adata)

计算高度变化的基因

代码语言:javascript
复制
sc.pp.highly_variable_genes(adata, min_mean=0.0125, max_mean=3, min_disp=0.5)
代码语言:javascript
复制
sc.pl.highly_variable_genes(adata)
代码语言:javascript
复制
adata.raw = adata
adata = adata[:, adata.var.highly_variable]
sc.pp.regress_out(adata, ['total_counts', 'pct_counts_mt'])
sc.pp.scale(adata, max_value=10)

PCA主成分分析

代码语言:javascript
复制
sc.tl.pca(adata, svd_solver='arpack')
代码语言:javascript
复制
sc.pl.pca(adata, color='CST3')

选择合适的前几个主成分

代码语言:javascript
复制
sc.pl.pca_variance_ratio(adata, log=True)
代码语言:javascript
复制
adata.write(results_file)

计算邻近图

代码语言:javascript
复制
sc.pp.neighbors(adata, n_neighbors=10, n_pcs=40)
代码语言:javascript
复制
sc.tl.umap(adata)
代码语言:javascript
复制
sc.pl.umap(adata, color=['CST3', 'NKG7', 'PPBP'])

使用标准化的数据进行可视化

代码语言:javascript
复制
sc.pl.umap(adata, color=['CST3', 'NKG7', 'PPBP'], use_raw=False)

使用 Leiden graph-clustering method进行聚类 linux安装 leiden algorithm

代码语言:javascript
复制
conda install -c conda-forge leidenalg
#或
pip3 install leidenalg
代码语言:javascript
复制
sc.tl.leiden(adata)
代码语言:javascript
复制
sc.pl.umap(adata, color=['leiden', 'CST3', 'NKG7'])
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档