Squidpy算法
用途
使用 Squidpy 工具包进行全面的空间组学分析,包括细胞交互模式(邻里富集)、共现性分析以及细胞类型的空间分布模式评估(Ripley's 统计)。
运行方式
SDAS spatialRelate squidpy -i st.h5ad -o outdir --label_key anno_cell2location \
--spatial_coords_scale 0.5 \
--bin_size 50.0 \
--n_neighs 9 \
--coord_type grid \
--n_perms_enrichment 1000 \
--cooccurrence_interval '100,1000,10' \
--n_simulations_ripley 100 \
--ripley_modes 'F,G,L' \
--n_cpus 24 \
--seed 42
输入参数说明
-i / --input
是
输入的 AnnData h5ad 文件路径。要求包含空间坐标和细胞注释。
-o / --output
是
分析结果的输出文件夹路径。
--label_key
是
AnnData 对象中 (adata.obs) 用于细胞类型或区域聚类注释的列名。
--spatial_coords_scale
否
0.5
应用于空间坐标的全局缩放因子。例如,对于stereo-seq,该值设为0.5,将坐标转为微米,方便结果解读。
--min_cells_per_type
否
20
为纳入分析,每种细胞类型/聚类所需的最少细胞(或 spot)数量。重要:建议设置为20及以上,过小的值可能导致分析不稳定。
--n_cpus
否
8
并行计算时可使用的 CPU核心数。CPU核数越多,运行时间相应较少,可根据计算资源合理设置。
--bin_size
否
50.0
原始数据坐标单位中 spot 的直径。此值将与 spatial_coords_scale
相乘用于确定 spatial_scatter
图中的最终绘图标记大小。
--n_neighs
否
9
sq.gr.spatial_neighbors
中用于构建空间图的邻居数量。
--coord_type
否
grid
传递给 squidpy.gr.spatial_neighbors
的 coord_type
参数。可选值为:'generic'
(适用于不规则排列的空间数据点,基于实际坐标计算邻接) 或 'grid'
(默认,适用于排列在规则网格上的数据点,基于网格位置构建邻接,通常更快)。
--n_perms_enrichment
否
1000
邻域富集分析中用于置换检验的次数,以评估观察到的富集/耗竭的显著性。必须为正整数。
--cooccurrence_interval
否
"100,1000,10"
共现分析的距离区间定义,格式为 "起始距离,结束距离,点数"。例如 "50,250,10" 表示从距离50到250,均匀取10个距离点进行分析。起始距离必须非负,结束距离必须大于起始距离,点数必须为正整数。
--n_simulations_ripley
否
100
计算 Ripley's F, G, 或 L 函数时,用于生成置信区间的模拟次数。必须为正整数。
--ripley_modes
否
"F,G,L"
需要计算的 Ripley 统计模式,以逗号分隔 (例如 "F,G", "L")。支持的模式包括 "F", "G", "L"。
--seed
否
42
用于可复现性的随机种子。必须为非负整数。
输出结果展示
<input_name>_squidpy_spatial_scatter.pdf/png
根据 --label_key 对细胞/spot 着色的空间分布图。
<input_name>_squidpy_nhood_enrichment_zscores.csv
邻域富集分析的 Z-score 矩阵,表示细胞类型间的空间邻近关系强度。
<input_name>_squidpy_nhood_enrichment.pdf/png
邻域富集分析 Z-score 矩阵的热图可视化。
<input_name>_squidpy_co_occurrence_scores_full.csv
主要定量结果。该文件为长表格式,记录了每一对细胞类型在每个距离分箱下的原始共现得分,字段包括参考细胞类型、邻居细胞类型、距离、距离区间索引、共现得分。
<input_name>_squidpy_co_occurrence_all_types.pdf
所有细胞类型对(或指定细胞类型)的共现概率随距离变化的趋势图 (多页 PDF)。
<input_name>_squidpy_co_occurrence_plots_png/
(文件夹)
包含每个细胞类型与其它类型共现趋势的独立 PNG 图片。
<input_name>_squidpy_co_occurrence.pdf/png
单个细胞类型的共现趋势图。
<input_name>_squidpy_ripley_<mode>_function.pdf/png
Ripley's 统计指定模式 (F, G, 或 L) 的结果图,用于评估细胞类型的空间分布模式(聚集、分散或随机)。为每个在 --ripley_modes 中指定的模式生成一个文件。
<input_name>_squidpy_processed.h5ad
经过 Squidpy 分析和预处理后,包含所有计算结果(通常存储在 adata.uns 中)的最终 AnnData 对象。
邻域富集分析Z-score矩阵:
<input_name>_squidpy_nhood_enrichment_zscores.csv
Squidpy输出结果展示细胞类型间的空间邻近关系强度,Z-score值表示相对于随机分布的富集或耗竭程度
B
0.0
-0.5
-1.2
0.8
1.5
2.1
-0.3
Endo
-0.5
0.0
0.7
-0.2
-1.1
0.4
0.9
Epi
-1.2
0.7
0.0
1.8
-0.6
-0.8
0.3
Fib
0.8
-0.2
1.8
0.0
0.5
-0.1
1.2
Mye
1.5
-1.1
-0.6
0.5
0.0
0.7
-0.4
NK
2.1
0.4
-0.8
-0.1
0.7
0.0
1.6
T
-0.3
0.9
0.3
1.2
-0.4
1.6
0.0
共现性分析原始结果表:
<input_name>_squidpy_co_occurrence_scores_full.csv
记录每一对细胞类型在每个距离分箱下的原始共现得分,适用于后续自定义分析和可视化。
B
B
100.0
0
0.5327037
B
B
200.0
1
0.5388954
B
B
300.0
2
0.47285548
B
B
400.0
3
0.44997987
B
B
500.0
4
0.41206497
B
Endo
100.0
0
0.12482233
B
Endo
200.0
1
0.1646443
B
Endo
300.0
2
0.15779616
B
Endo
400.0
3
0.20279443
B
Epi
100.0
0
0.06660331
邻域富集分析热图:
<input_name>_squidpy_nhood_enrichment.png
可视化邻域富集分析Z-score矩阵,图中颜色表示不同细胞类型对之间的空间邻近关系强度

空间分布散点图:
<input_name>_squidpy_spatial_scatter.png
根据细胞类型对细胞/spot着色的空间分布图,展示不同细胞类型在空间中的分布模式

共现性分析趋势图:
<input_name>_squidpy_co_occurrence_B.png
展示B细胞与其他细胞类型的共现概率随距离变化的趋势图,X轴为距离,Y轴为共现概率

Ripley's F函数分析:
<input_name>_squidpy_ripley_F_function.png
展示细胞类型的空间分布模式,与随机分布的期望和置信区间进行比较

结果解读说明
邻域富集分析Z-score:正值表示富集(细胞类型倾向于邻近),负值表示耗竭(细胞类型倾向于远离),绝对值越大表示关系越显著
共现性分析:展示细胞类型随距离变化的共现模式,有助于理解细胞类型间的空间相互作用
Ripley's统计:评估细胞类型的空间分布模式,F/G/L函数值高于随机期望表示聚集分布,低于随机期望表示分散分布
调参建议
若样本细胞类型较少或数据稀疏,建议调整
n_perms_enrichment
和n_simulations_ripley
参数以获得更稳定的结果n_perms_enrichment
:邻域富集分析的置换次数,建议根据数据规模调整,数据量大时可适当减少以节省计算时间n_simulations_ripley
:Ripley's统计的模拟次数,影响置信区间的准确性,可根据需要调整cooccurrence_interval
:共现分析的距离区间,建议根据细胞类型的大小和空间分布特征调整bin_size
:影响空间散点图的点大小,可根据数据密度和可视化需求调整
Last updated