最近,我使用Claude Code(AIcoder)成功复现了《Integrating spatial transcriptomics and single-cell RNA-sequencing reveals the alterations in epithelial cells during nodular formation in benign prostatic hyperplasia》空间组学图谱的部分。这篇文章用一个样本的空转分析结合单细胞RNA分析揭示良性前列腺增生结节形成过程中上皮细胞的改变",展现了多组学数据整合在疾病机制研究中的强大潜力。
研究目标:阐明良性前列腺增生(BPH)结节形成过程中上皮细胞的分子变化机制。
创新方法:
核心发现:
为了避免网络问题造成的下载速度慢,这一步我手动下载了数据。
# 下载并处理GSE172357单细胞数据
# 包含BPH_GN、BPH_SN和Normal样本
sample_groups = {
'BPH_GN': 5个腺体结节样本,
'BPH_SN': 4个基质结节样本,
'Normal': 3个正常样本
}
# 加载GSE242249空间转录组数据
spatial_data = "GSM7757059_A4_matrix.csv"
指令:读取当前路径下的数据文件,用 BPH 样本中 ST 斑点的无偏聚类进行映射。每个集群都以不同的颜色标记。比例尺 = 1 毫米。然后用BPH ST 数据的 2945 个 ST 点的 UMAP 图。每个聚类都以不同的颜色显示。
# CLAUDE.md
此文件为Claude Code (claude.ai/code)在该代码库中工作时提供指导。
## 项目概述
该代码库包含用于空间转录组学分析的Python代码,专门用于分析良性前列腺增生(BPH)样本的空间转录组数据。项目使用Visium空间转录组平台的数据进行无偏聚类分析和可视化。
## 常用命令
### 运行分析脚本
# 复现Figure 1的空间转录组聚类分析
python reproduce_figure1.py
# 分析Visium空间数据
python analyze_visium_data.py
# 分析真实的单细胞RNA-seq数据
python analyze_real_scrna_data.py
# 分析空间转录组数据
python analyze_st_data.py
# 创建空间可视化
python create_st_visualization.py
# Visium数据分析
python visium_analysis_final.py
### 所需Python包
该项目使用了几个关键的Python包:
- scanpy - 单细胞分析工具包
- pandas - 数据处理和分析
- numpy - 数值计算
- matplotlib/seaborn - 数据可视化
- scikit-learn - 机器学习工具
- scipy - 科学计算
- PIL - 图像处理
安装命令:
```bash
pip install scanpy pandas numpy matplotlib seaborn scikit-learn scipy pillow
## 代码架构和结构
### 数据处理流程
1. **数据加载**:脚本加载Visium空间转录组数据(CSV格式)和空间坐标信息
2. **数据预处理**:质量控制、标准化、过滤低质量细胞和基因
3. **降维分析**:使用PCA和UMAP进行降维
4. **聚类分析**:使用Leiden算法进行无偏聚类
5. **可视化**:创建空间分布图和UMAP图
### 关键组件
- `reproduce_figure1.py` - 复现论文Figure 1的主要分析脚本
- `analyze_visium_data.py` - Visium数据处理和分析函数
- `analyze_st_data.py` - 空间转录组数据分析函数
- `analyze_real_scrna_data.py` - 真实单细胞RNA-seq数据分析
- `create_st_visualization.py` - 空间数据可视化函数
- `visium_analysis_final.py` - 最终的Visium数据分析
### 数据流
1. 原始数据文件(`.csv`, `.h5`, 图像) →
2. 数据加载函数 →
3. 预处理和质量控制 →
4. 降维和聚类分析 →
5. 结果可视化和导出
该架构将关注点分离为用于数据处理、分析和可视化的模块化函数,允许灵活修改各个组件。
## 复现结果
最新的复现结果已保存在 `reproduced_analysis/` 目录中:
- `reproduced_figure1.png` - 复现的Figure 1图像,包含BPH样本中ST斑点的无偏聚类映射
- `spatial_clustering_result.h5ad` - 聚类分析结果的AnnData对象
聚类统计:
- 7个聚类,共2945个ST点
- Cluster 0: 971 spots
- Cluster 1: 648 spots
- Cluster 2: 559 spots
- Cluster 3: 252 spots
- Cluster 4: 230 spots
- Cluster 5: 192 spots
- Cluster 6: 93 spots
获取指令之后Claude code (AI coder)会解析当前路径下的文件内容。

10x Visium空间转录组数据加载:
def load_visium_data():
"""Load Visium spatial transcriptomics data"""
# 1. 加载表达矩阵 (基因×spot)
matrix = pd.read_csv('GSM7757059_A4_matrix.csv', index_col=0).T
# 2. 加载空间坐标
positions = pd.read_csv('GSM7757059_tissue_positions_list.csv', header=None)
positions.columns = ['spot_id', 'barcode', 'in_tissue', 'array_row',
'array_col', 'pxl_row_in_fullres', 'pxl_col_in_fullres']
# 3. 加载缩放因子
with open('GSM7757059_scalefactors_json.json', 'r') as f:
scale_factors = json.load(f)
# 4. 加载组织图像
tissue_img = Image.open('GSM7757059_tissue_hires_image.png')
return matrix, positions, scale_factors, tissue_img
10x Visium空间转录组数据预处理:
def preprocess_data(adata):
# 1. 计算QC指标
adata.var['mt'] = adata.var_names.str.startswith('MT-')
sc.pp.calculate_qc_metrics(adata, percent_top=None, inplace=True)
# 2. 过滤细胞和基因
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.filter_genes(adata, min_cells=3)
# 3. 标准化
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
# 4. 筛选高变基因
sc.pp.highly_variable_genes(adata, min_mean=0.0125, max_mean=3, min_disp=0.5)
adata.raw = adata
adata = adata[:, adata.var.highly_variable]
# 5. 缩放数据
sc.pp.scale(adata, max_value=10)
return adata
双面板可视化 (plot_results):
def plot_results(adata, sample_name):
# 创建双面板图表
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12,5))
# 预定义7个簇的颜色
cluster_colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728',
'#9467bd', '#8c564b', '#e377c2']
# 左面板:空间分布
for cluster in range(7):
ax1.scatter(空间坐标, c=cluster_colors[cluster], s=6)
ax1.set_title('A ST data')
ax1.add_patch(标尺) # 添加1mm标尺
# 右面板:UMAP降维
for cluster in range(7):
ax2.scatter(UMAP坐标, c=cluster_colors[cluster], s=3)
ax2.set_title('B ST data')
# 添加图例
ax1.legend(handles=图例句柄)
ax2.legend(handles=图例句柄)
plt.savefig(f'{sample_name}_st_visualization.png')
结果图:

Claude Code(AI coder)的优势体现:
生物学意义:
技术方法学贡献:
通过Claude Code(AI coder)成功复现这项研究,不仅验证了原文结果的可重现性,更展示了AI辅助科研的巨大潜力。从数据预处理到算法实现,再到结果可视化,整个流程都在Claude Code(AI coder)的协助下高效完成。
这次复现体验告诉我们: