BioF3 FigCode · SCI 绘图代码集
空间表达(Spatial Feature Plot)
分类:分布可视化 | 依赖包:squidpy、scanpy、matplotlib
解决的生物学问题
目标基因在组织中的空间表达模式如何?是否局限于特定解剖区域?
应用场景
- Marker 基因空间表达验证
- 空间差异表达基因展示
- 组织特异性基因定位
- 多基因空间共表达分析
输入数据格式
AnnData 空间对象(adata.obsm["spatial"] 含坐标)+ 目标基因名
关键参数
- color = [基因列表](多基因拼图)
- img_key = "hires"(叠加组织底图)
- cmap = "viridis"(表达热度配色)
- ncols(拼图列数)
快速开始
1. 直接在线运行
打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。
2. 本地复现
下载脚本和示例数据,本地 RStudio 运行:
# 下载
curl -O https://<your-site>/figcode/scripts/feature-spatial.R
curl -O https://<your-site>/figcode/data/feature-spatial.csv
3. 安装依赖
# CRAN 包
install.packages(c("squidpy", "scanpy", "matplotlib"))
# Bioconductor 包(如需)
# BiocManager::install(c())
完整代码
import squidpy as sq
import scanpy as sc
import matplotlib.pyplot as plt
# --- Demo: Squidpy 内置小鼠脑 Visium HnE 真实数据 ---
adata = sq.datasets.visium_hne_adata()
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
# --- 经典小鼠脑区 marker 基因空间表达 ---
# Mbp: 髓鞘(白质); Hpca: 海马; Lamp5: 皮层; Ttr: 脉络丛
genes = [g for g in ["Mbp", "Hpca", "Lamp5", "Ttr"] if g in adata.var_names]
sc.pl.spatial(
adata, color=genes,
img_key="hires", ncols=2,
cmap="viridis", show=False,
)
plt.savefig("plot_001.png", dpi=150, bbox_inches="tight")
替换为自己的数据
脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:
- 输入格式:AnnData 空间对象(adata.obsm["spatial"] 含坐标)+ 目标基因名
- 使用
read.csv()/readRDS()读取本地文件
延伸阅读
- 相关教程:空间表达 完整流程
- 出现 bug?欢迎在 FigCode 页面 点击对应卡片,在评论区留言。