2-华大时空组学分析软件 Spateo 空转数据基础分析用法示例

本文涉及的产品
文档翻译,文档翻译 1千页
语种识别,语种识别 100万字符
图片翻译,图片翻译 100张
简介: 本分分享了使用华大时空组学分析软件 Spateo进行聚类、DE等简单空间转录组分析的用法示例,以供参考

1、Load Require Package

exec('import warnings; warnings.filterwarnings("ignore")')
import dynamo as dyn
import numpy as np
import pandas as pd
import scanpy as sc
import anndata
 
import spateo as st
st.config.n_threads = 4
st.__version__

1、Load Data & Build Bin50

示例数据(E9.5_E2S2_GEM_bin1.tsv.gz)格式:
image.png

adata = st.io.read_bgi("E9.5_E2S2_GEM_bin1.tsv.gz",binsize=50) 
adata
|-----> Using binsize=50
|-----> Constructing count matrices.
|-----> <insert> __type to uns in AnnData Object.
|-----> <insert> pp to uns in AnnData Object.
|-----> <insert> spatial to uns in AnnData Object.
AnnData object with n_obs × n_vars = 4332 × 24107
    obs: 'area'
    uns: '__type', 'pp', 'spatial'
    obsm: 'spatial', 'contour', 'bbox'

2、Plot Bin50 Spot Distribution

st.pl.space(adata, color=['area'], pointsize=0.1, show_legend="upper left", cmap="tab20") ### 数据来源于adata.obsm["spatial"]

3、Check Data Quality

st.pp.filter.filter_cells(adata,min_expr_genes=500,inplace=True) ### 过滤表达基因数小于 500的细胞
st.pp.filter.filter_genes(adata, min_cells=3,inplace=True) ### 过滤 无效表达的基因 

adata.var['mt'] = adata.var_names.str.startswith('mt-') ### 标记线粒体基因
sc.pp.calculate_qc_metrics(adata, qc_vars=['mt'], percent_top=None, log1p=False, inplace=True) ### 计算线粒体基因表达比例
adata = adata[adata.obs.pct_counts_mt < 5, :] ### 过滤 线粒体基因高表达 的细胞 

sc.pl.violin(adata, ['n_genes_by_counts', 'total_counts', 'pct_counts_mt'], jitter=0.4, multi_panel=True) ### 过滤 线粒体基因高表达 的细胞 
adata.layers["raw"] = adata.X  ### 把原始矩阵拷贝到adata的"raw"层

4、Normalization & Dimensional reduction

### log transform & dimension reduction
adata.X = adata.layers["raw"] ### 从layer层提取 UMI counts matrix
dyn.pp.normalize_cell_expr_by_size_factors(adata, layers="X")
dyn.pp.log1p(adata)
st.tl.pca_spateo(adata, n_pca_components=50)
dyn.tl.neighbors(adata, n_neighbors=30) ### Build KNN Graph

### 使用空间约束聚类(st.tl.ssc)可以识别连续的组织区域, SCC方法同时考虑 物理坐标Grap 和 表达水平Grap 构建联合KNN图用于社区搜索
st.tl.scc(adata, s_neigh=8, resolution=1, cluster_method="louvain", key_added="scc", pca_key="X_pca")

### 绘制聚类点图 & 输出图片为 pdf 
st.pl.space(adata, color=['scc'], pointsize=0.2, show_legend="upper left") ### 显示图片
st.pl.space(adata, color=['scc'], pointsize=0.2, show_legend="upper left",save_show_or_return='save',save_kwargs={"path":"bin50_scc_cluster", "ext":"pdf", "dpi":300, "width":1,"heigth":1})

5、Spatial Autocorrelation Features Selection

Moran’s I 指数用以评估一个基因的表达水平在空间上的分布是否呈现出聚集或分散的趋势,也称空间自相关性测量。Moran’s I取值范围为-1到1之间,其中-1表示完全的空间分散,0表示空间随机分布,1表示完全的空间聚集。

### 执行 moran'I test 检测空间自相关基因进行特征选择: 这一步会有点耗时
m = st.tl.spatial_degs.moran_i(adata,n_jobs=8)

### Feature selection 
m_filter = m[(m.moran_p_val < 0.05)&(m.moran_q_val<0.05)].sort_values(by=['moran_i'],ascending=False)
m_filter.to_csv("mouse_brain_morani_filter.csv")
print(m_filter)

### 可视化莫兰指数 top5 和 bottom 5 的基因表达
st.pl.space(adata, genes=m_filter.index[0:5].tolist() + m_filter.index[-6:-1].tolist(),pointsize=0.4,ncols=5,show_legend="upper left",figsize=(8,8))

6、Transcriptom DE Analysis

6.1 Case .vs. Control

st.tl.find_cluster_degs(adata,group='scc',test_group='4',control_groups=['0','1','2'],genes=None,method='pairwise')

6.2 One.vs. Ohter

st.tl.find_all_cluster_degs(adata,group='scc',genes=None,n_jobs=8,copy=False)
all_markers = pd.concat(adata.uns["cluster_markers"]["deg_tables"], ignore_index=True, sort=False)
all_markers.to_csv("mouse_brain_all_markers.csv")
print(all_markers)

7、Region DE Analysis(Need First Label Regions)

st.tl.find_spatial_cluster_degs(adata=adata , test_group='4',group='scc',k = 15 , ratio_thresh =0.25)

8、Save object

import joblib
joblib.dump(adata,"adata_bin50_cluster.pkl")

9、For more examples please refer to

目录
相关文章
|
6月前
|
运维 安全 数据挖掘
【数据挖掘】离群点概念、类型、检测的挑战概述(图文解释 超详细)
【数据挖掘】离群点概念、类型、检测的挑战概述(图文解释 超详细)
394 0
|
4月前
|
SQL 存储 数据库
数据聚合大揭秘!Python如何一键整合海量信息,洞察数据背后的秘密?
【7月更文挑战第21天】在数据驱动时代,Python以强大库支持,如Pandas与SQLAlchemy,轻松聚合分析海量信息。Pandas简化数据整合,从CSV文件加载数据,利用`pd.concat()`合并,`groupby()`进行聚合分析,揭示销售趋势。SQLAlchemy则无缝链接数据库,执行SQL查询,汇总复杂数据。Python一键操作,开启数据洞察之旅,无论源数据格式,均能深入挖掘价值。
65 0
|
数据库 芯片
如何使用GEOquery和limma完成芯片数据的差异表达分析
如何分析芯片数据 我最早接触的高通量数据就是RNA-seq,后来接触的也基本是高通量测序结果而不是芯片数据,因此我从来没有分析过一次芯片数据,而最近有一个学员在看生信技能树在腾讯课堂发布的课程GEO数据库表达芯片处理之R语言流程遇到了问题问我请教,为了解决这个问题,我花了一个晚上时间学习这方面的分析。
4280 0
|
4月前
|
数据采集 数据挖掘 数据处理
数据转换与聚合,Python的双刃剑!精准切割,深度挖掘,数据世界任你遨游!
【7月更文挑战第19天】Python的Pandas库是数据科学家处理数据的得力工具,它在数据转换和聚合上的功能强大。例如,使用Pandas的`to_datetime`函数能统一日期格式,而`groupby`配合`agg`则可按类别聚合数据,进行统计分析。通过这些方法,可以有效地清洗数据、提取关键信息,助力数据驱动的决策。
43 2
|
5月前
|
机器学习/深度学习 人工智能 前端开发
人工智能平台PAI产品使用合集之创建了实时特征视图,里面的数据是通过什么传入的
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
机器学习/深度学习 人工智能 运维
人工智能平台PAI 操作报错合集之请问Alink的算法中的序列异常检测组件,是对数据进行分组后分别在每个组中执行异常检测,而不是将数据看作时序数据进行异常检测吧
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
数据可视化 数据挖掘
R语言分段回归数据数据分析案例报告
R语言分段回归数据数据分析案例报告
|
人工智能 数据挖掘 Linux
ChatGPT × R语言 丨实际数据分析过程中,AI能够带来哪些改变?数据框操作案例分享
ChatGPT × R语言 丨实际数据分析过程中,AI能够带来哪些改变?数据框操作案例分享
|
编解码 自然语言处理 数据可视化
MIM方法为什么简单高效?可视化和大规模实验给出了答案
MIM方法为什么简单高效?可视化和大规模实验给出了答案
207 0
MIM方法为什么简单高效?可视化和大规模实验给出了答案
|
存储 数据可视化 atlas
对于组学数据的分析和展示来说,maftools算是一个宝藏“R包”,可用于MAF格式的组学数据的汇总,分析和可视化展示。
对于组学数据的分析和展示来说,maftools算是一个宝藏“R包”,可用于MAF格式的组学数据的汇总,分析和可视化展示。
551 0