空间代谢组学(成像质谱)¶
一句话说明¶
空间代谢组学就是"在组织切片上给代谢物拍照"——不需要把组织磨碎,直接在组织上逐点扫描质谱,生成每种代谢物的空间分布热图。就像给组织做一张"代谢物地图"。
核心知识点¶
要点1:主要成像质谱技术¶
- MALDI-MSI(基质辅助激光解吸电离):
- 在组织上涂基质,用激光逐点打,最主流的技术
- 空间分辨率:5-100 μm(常用20-50 μm)
- 适合检测脂质、小分子代谢物、药物
- DESI-MSI(解吸电喷雾电离):
- 用带电溶剂喷射组织表面,无需基质
- 常压操作,适合术中快速诊断
- 空间分辨率:~100-200 μm
- SIMS(二次离子质谱):
- 用离子束轰击表面,分辨率最高(亚微米级)
- 检测范围窄,主要适合小分子和元素分析
- AP-SMALDI:大气压下的MALDI,空间分辨率可达5 μm
要点2:MALDI-MSI实验流程¶
- 组织切片:冷冻切片(10-12 μm厚),贴在导电载玻片上
- 基质涂覆:喷涂或升华法涂覆基质(如DHB、CHCA、9AA)
- 基质选择影响检测的代谢物类别
- DHB适合脂质,9AA适合负离子模式小分子
- 质谱采集:逐像素扫描,每个像素获得一张完整的质谱
- 图像重建:将每个m/z的强度映射到空间位置,生成分子图像
要点3:数据分析挑战¶
- 数据量大:一次实验产生几GB到几十GB数据(每个像素一张谱图)
- 数据格式:imzML是标准格式,SCiLS Lab是常用商业分析软件
- 空间分割:自动分区识别组织中的不同区域(如肿瘤vs正常)
- 统计分析:空间统计需要考虑空间自相关性
- 代谢物鉴定:需要on-tissue MS/MS或与LC-MS数据互验
要点4:应用场景¶
- 肿瘤边界判定:手术中用DESI快速判断切缘是否干净
- 药物分布研究:看药物在组织中的渗透和分布
- 疾病标志物:发现具有空间特异性的代谢标志物
- 微生物-宿主互作:研究微生物在组织表面的代谢产物分布
实战代码¶
# === 空间代谢组学数据分析(Python) ===
# 使用pyimzML读取imzML格式数据
# pip install pyimzml
from pyimzml.ImzMLParser import ImzMLParser
import numpy as np
import matplotlib.pyplot as plt
# 1. 读取imzML文件
parser = ImzMLParser("tissue_section.imzML")
# 获取数据基本信息
n_pixels = len(parser.coordinates) # 总像素数
print(f"总像素数: {n_pixels}")
print(f"坐标范围: x={min(c[0] for c in parser.coordinates)}-{max(c[0] for c in parser.coordinates)}")
# 2. 提取特定m/z的离子图像
target_mz = 885.55 # 例如PI 38:4(磷脂酰肌醇)
tolerance = 0.1 # m/z容忍度 ±0.1 Da
# 获取坐标网格
x_coords = [c[0] for c in parser.coordinates]
y_coords = [c[1] for c in parser.coordinates]
x_range = max(x_coords) - min(x_coords) + 1
y_range = max(y_coords) - min(y_coords) + 1
# 创建空白图像
ion_image = np.zeros((y_range, x_range))
# 逐像素提取目标m/z的强度
for idx, (x, y, z) in enumerate(parser.coordinates):
mzs, intensities = parser.getspectrum(idx) # 获取该像素的质谱
# 找到目标m/z范围内的最大强度
mask = (mzs >= target_mz - tolerance) & (mzs <= target_mz + tolerance)
if mask.any():
ion_image[y - min(y_coords), x - min(x_coords)] = intensities[mask].max()
# 3. 可视化离子图像
plt.figure(figsize=(10, 8))
plt.imshow(ion_image, cmap="viridis", interpolation="nearest")
plt.colorbar(label="Intensity")
plt.title(f"Ion Image: m/z {target_mz}")
plt.xlabel("X (pixels)")
plt.ylabel("Y (pixels)")
plt.savefig("ion_image.png", dpi=150, bbox_inches="tight")
# 4. 提取多个代谢物的离子图像对比
target_mzs = {
"PC 34:1": 760.58, # 磷脂酰胆碱
"PE 36:2": 742.54, # 磷脂酰乙醇胺
"SM 34:1": 703.57, # 鞘磷脂
"Cholesterol": 369.35 # 胆固醇(正离子脱水形式)
}
fig, axes = plt.subplots(2, 2, figsize=(14, 12))
for ax, (name, mz) in zip(axes.flat, target_mzs.items()):
img = np.zeros((y_range, x_range))
for idx, (x, y, z) in enumerate(parser.coordinates):
mzs, intensities = parser.getspectrum(idx)
mask = (mzs >= mz - tolerance) & (mzs <= mz + tolerance)
if mask.any():
img[y - min(y_coords), x - min(x_coords)] = intensities[mask].max()
ax.imshow(img, cmap="hot", interpolation="nearest")
ax.set_title(f"{name} (m/z {mz})")
ax.axis("off")
plt.tight_layout()
plt.savefig("multi_ion_images.png", dpi=150)
面试常问点¶
Q1: MALDI-MSI和LC-MS代谢组学有什么互补关系?¶
参考答案:LC-MS把组织磨碎提取后分析,丢失了空间信息但定量准确、代谢物覆盖广;MALDI-MSI保留了空间信息但定量不如LC-MS准确(没有内标、基质效应影响大),而且代谢物鉴定受限(只有精确质量,通常无法做MS/MS)。理想的做法是两者结合:先用MALDI-MSI发现有空间特异性的代谢物,再用LC-MS在不同组织区域的微切割样品中验证和定量。
Q2: 空间分辨率为什么重要?¶
参考答案:空间分辨率决定了你能看到多细的结构。20 μm大约是1-2个细胞的大小,可以区分不同的组织微区域;100 μm只能看到组织的粗略分区。比如在肿瘤研究中,肿瘤核心和边缘的代谢物可能完全不同,分辨率太低就看不到这种异质性。但分辨率越高,每个像素的样品量越少,灵敏度越低,扫描时间也越长,需要权衡。
速查卡片¶
| 问题 | 一句话答案 |
|---|---|
| MALDI-MSI分辨率? | 通常20-50 μm,高端可达5 μm |
| DESI的优势? | 无需基质、常压操作、适合术中诊断 |
| imzML是什么? | 成像质谱的标准数据格式 |
| 基质涂覆方法? | 喷涂法(分辨率中等)或升华法(分辨率更高) |
| 一次实验数据量? | 几GB到几十GB |
| 适合检测什么代谢物? | 脂质最容易,小分子代谢物、药物也可以 |