跳转至

脂质组学分析

一句话概述:脂质组学是代谢组学的重要分支,专注于脂类分子的全面分析,LC-MS/MS是主流检测平台,LipidSearch用于非靶向鉴定,LipidCreator+Skyline用于靶向定量,ADViSELipidomics提供下游统计分析。

核心知识点速览

概念白话解释
脂质组学全面分析生物样本中所有脂类分子的学科
脂质疏水性小分子,包括甘油脂、磷脂、鞘脂、胆固醇等
LIPID MAPS脂质分类和命名的国际标准体系
脂质种类层级按鉴定精度分级:脂质类→脂质种→分子脂质种
Shotgun脂质组学直接注射质谱法,不经色谱分离
LC-MS脂质组学液相色谱分离后质谱检测,分辨率更高
LipidSearchThermo Fisher的非靶向脂质鉴定商业软件
LipidCreator靶向脂质组学的开源assay开发工具
MS-DIAL开源的脂质组学数据处理软件
ADViSELipidomics脂质组学下游分析的Shiny App

一、脂质组学基础

1.1 脂质分类(LIPID MAPS)

LIPID MAPS将脂质分为8大类:

1. 脂肪酰类(FA)— 脂肪酸及其衍生物
2. 甘油脂类(GL)— 甘油三酯(TG)、甘油二酯(DG)、甘油一酯(MG)
3. 甘油磷脂类(GP)— PC、PE、PS、PI、PG、PA等
4. 鞘脂类(SP)— 神经酰胺(Cer)、鞘磷脂(SM)
5. 固醇脂类(ST)— 胆固醇(Chol)、胆固醇酯(CE)
6. 异戊烯醇脂类(PR)— 辅酶Q、维生素E等
7. 糖脂类(SL)— 糖基化脂质
8. 多酮类(PK)— 真菌和植物来源

脂质命名规则:
  脂质类别(碳链1碳数:双键数/碳链2碳数:双键数)
  例如:PC(16:0/18:1) = 磷脂酰胆碱,sn-1棕榈酸,sn-2油酸

鉴定层级:
  脂质类级(Lipid class): PC — 只知道是磷脂酰胆碱
  脂质种级(Species level): PC 34:1 — 知道总碳数和双键数
  分子种级(Molecular species): PC 16:0/18:1 — 知道每条链的组成
  完全结构: PC 16:0/18:1(9Z) — 知道双键位置和构型

1.2 实验方法选择

靶向 vs 非靶向脂质组学:

| 特性 | 靶向 | 非靶向 |
|------|------|--------|
| 目标 | 预定义的脂质列表 | 所有可检测脂质 |
| 方法 | MRM/SRM(三重四极杆) | Full scan/DDA/DIA(高分辨质谱) |
| 定量 | 绝对定量(标准品校准) | 相对定量 |
| 覆盖 | 50-500种脂质 | 500-5000种脂质 |
| 工具 | LipidCreator+Skyline | LipidSearch/MS-DIAL |
| 适用 | 验证性研究 | 发现性研究 |

检测平台:
  LC-MS/MS: 最主流,正/负离子模式分别检测
  Shotgun MS: 直接注射,快速但分辨率低
  MALDI-TOF: 空间脂质组学(脂质成像)

二、非靶向脂质组学数据处理

2.1 LipidSearch处理

LipidSearch 5.0(Thermo Fisher商业软件):
  - 支持LC-MS和直接注射数据
  - 内置>1,500,000个脂质碎裂谱参考
  - 自动峰提取、鉴定和定量
  - 支持正/负离子模式

LipidSearch工作流程:
  1. 导入原始数据(.raw文件)
  2. 设置搜索参数:
     - 质量容差:前体5ppm,碎片10ppm
     - 加合离子:[M+H]+, [M+Na]+, [M-H]-, [M+HCOO]-
     - 脂质类别:选择要搜索的脂质类
  3. 搜索和打分
  4. 对齐(多个样本间)
  5. 导出结果表

注意:LipidSearch是商业软件,替代方案见MS-DIAL

2.2 MS-DIAL处理(开源替代)

# MS-DIAL是最流行的开源脂质组学处理工具
# 支持LC-MS, GC-MS, IM-MS等多种数据
# 下载:http://prime.psc.riken.jp/compms/msdial/main.html

# MS-DIAL输出可以导入R进行下游分析
# 读取MS-DIAL导出的结果
library(tidyverse)

lipid_data <- read.csv("MSDIAL_output.csv",
                        check.names = FALSE)  # 读取MS-DIAL结果

# 基本信息
cat("检测到脂质数:", nrow(lipid_data), "\n")
cat("样本数:", ncol(lipid_data) - 4, "\n")  # 减去注释列

# 脂质类别统计
lipid_class <- str_extract(lipid_data$Name, "^[A-Z]+")  # 提取脂质类
table(lipid_class)  # 各类脂质数量

2.3 XCMS处理脂质组学数据

# XCMS也可以处理脂质组学的LC-MS数据
library(xcms)

# 脂质组学特化的XCMS参数
cwp_lipid <- CentWaveParam(
  peakwidth = c(10, 60),       # 脂质色谱峰通常较宽
  ppm = 10,                    # m/z容差
  snthresh = 5,                # 信噪比
  noise = 5000                 # 噪声水平
)

# 读取mzML数据
raw_data <- readMSData(
  files = list.files("lipid_mzml/", full.names = TRUE),
  mode = "onDisk"
)

# 峰提取
xdata <- findChromPeaks(raw_data, param = cwp_lipid)

# 保留时间校正
xdata <- adjustRtime(xdata, param = ObiwarpParam())

# 峰对齐
pdp <- PeakDensityParam(
  sampleGroups = sample_groups,
  bw = 10,                     # 脂质色谱峰宽度较大
  minFraction = 0.5
)
xdata <- groupChromPeaks(xdata, param = pdp)

# 填补缺失值
xdata <- fillChromPeaks(xdata)

# 导出特征表
lipid_features <- featureValues(xdata, value = "into")  # 峰面积

三、靶向脂质组学:LipidCreator + Skyline

LipidCreator工作流程:

1. 选择目标脂质类别
   → 支持6大类:鞘脂、甘油脂、甘油磷脂、胆固醇、脂肪酰介导物

2. 设置脂肪酸链参数
   → 碳链长度范围(如C14-C24)
   → 双键数范围(如0-6)
   → 加合离子类型

3. 自动计算质量和MRM转换
   → 生成前体→碎片的转换列表
   → 支持标记和非标记脂质

4. 导入Skyline
   → 自动生成采集方法
   → 数据采集后回到Skyline做峰积分和定量

5. 定量分析
   → 标准品校准曲线
   → 内标归一化
   → 绝对浓度计算

LipidCreator覆盖:
  >60个脂质类别
  ~10^12个脂质分子的质量计算能力
  支持同位素标记脂质

四、R语言下游统计分析

4.1 数据预处理

# 脂质组学数据的预处理
library(tidyverse)

# 读取脂质定量数据(行=脂质,列=样本)
lipid_matrix <- read.csv("lipid_quantification.csv",
                          row.names = 1)  # 第1列为脂质名

# 1. 内标归一化(如果有内标数据)
# 每个脂质类别除以对应类别的内标
# is_values <- lipid_matrix["IS_PC_15:0/18:1-d7", ]  # 内标值
# pc_lipids <- lipid_matrix[grep("^PC", rownames(lipid_matrix)), ]
# pc_normalized <- sweep(pc_lipids, 2, as.numeric(is_values), "/")

# 2. 总量归一化
col_sums <- colSums(lipid_matrix, na.rm = TRUE)  # 每个样本的总信号
lipid_norm <- sweep(lipid_matrix, 2, col_sums, "/") * 1e6  # ppm归一化

# 3. log2转换
lipid_log2 <- log2(lipid_norm + 1)  # 加1避免log(0)

# 4. 缺失值处理
missing_pct <- rowMeans(is.na(lipid_log2))  # 各脂质缺失比例
lipid_filtered <- lipid_log2[missing_pct < 0.3, ]  # 去除>30%缺失的脂质
cat("过滤后脂质数:", nrow(lipid_filtered), "\n")

# KNN填补剩余缺失值
library(impute)
lipid_imputed <- impute.knn(as.matrix(lipid_filtered))$data  # KNN填补

4.2 统计分析和可视化

# 1. PCA分析
library(FactoMineR)
library(factoextra)

pca_res <- PCA(t(lipid_imputed), graph = FALSE)  # PCA
fviz_pca_ind(pca_res,
             col.ind = group,             # 按组着色
             addEllipses = TRUE,           # 置信椭圆
             palette = c("red", "blue"))   # 颜色

# 2. 脂质类别汇总
# 提取脂质类别
lipid_classes <- str_extract(rownames(lipid_imputed), "^[A-Z]+")  # 提取类

# 按类别汇总
class_summary <- data.frame(
  lipid = rownames(lipid_imputed),
  class = lipid_classes,
  mean_abundance = rowMeans(lipid_imputed)  # 平均丰度
)

# 脂质类别组成饼图
class_total <- class_summary %>%
  group_by(class) %>%
  summarise(total = sum(mean_abundance))  # 按类汇总

ggplot(class_total, aes(x = "", y = total, fill = class)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y") +                       # 饼图
  labs(title = "Lipid Class Composition") +
  theme_void()

# 3. 差异脂质分析(limma)
library(limma)

design <- model.matrix(~ 0 + group)           # 设计矩阵
colnames(design) <- levels(group)
fit <- lmFit(lipid_imputed, design)            # 拟合
contrast <- makeContrasts(Disease - Control, levels = design)
fit2 <- contrasts.fit(fit, contrast)           # 对比
fit3 <- eBayes(fit2)                           # 经验贝叶斯

results <- topTable(fit3, number = Inf)        # 全部结果
sig_lipids <- results %>%
  filter(adj.P.Val < 0.05 & abs(logFC) > 1)   # 显著差异脂质
cat("显著差异脂质数:", nrow(sig_lipids), "\n")

# 4. 火山图
library(EnhancedVolcano)
EnhancedVolcano(results,
  lab = rownames(results),
  x = "logFC", y = "adj.P.Val",
  title = "Differential Lipids",
  pCutoff = 0.05, FCcutoff = 1)

# 5. 脂质碳链分析(脂肪酸模式)
# 提取碳链信息
chain_info <- str_extract_all(rownames(sig_lipids), "\\d+:\\d+")
chain_df <- do.call(rbind, lapply(chain_info, function(x) {
  data.frame(carbon = as.numeric(str_extract(x, "^\\d+")),
             double_bond = as.numeric(str_extract(x, "\\d+$")))
}))

# 碳链长度 vs 双键数分布
ggplot(chain_df, aes(x = carbon, y = double_bond)) +
  geom_point(alpha = 0.5, size = 3) +         # 散点图
  labs(x = "Carbon Chain Length", y = "Double Bonds",
       title = "Fatty Acid Chain Distribution") +
  theme_minimal()

4.3 ADViSELipidomics分析

# ADViSELipidomics是专为脂质组学设计的Shiny App
# 安装和运行
# devtools::install_github("xxx/ADViSELipidomics")
# library(ADViSELipidomics)
# run_app()  # 启动Shiny界面

# ADViSELipidomics特色功能:
# 1. 支持LipidSearch和LIQUID的输出格式
# 2. 自动解析LIPID MAPS分类
# 3. 内标校准曲线(绝对定量)
# 4. 批次效应校正
# 5. 交互式图形界面
# 6. 差异分析(简单和复杂实验设计)

五、通路分析

# 脂质通路分析
# 使用LIPEA(Lipid Pathway Enrichment Analysis)
# 或MetaboAnalyst的通路模块

# 方法1:将差异脂质映射到KEGG脂质代谢通路
# 常见脂质代谢通路:
# - 甘油磷脂代谢(Glycerophospholipid metabolism)
# - 鞘脂代谢(Sphingolipid metabolism)
# - 花生四烯酸代谢(Arachidonic acid metabolism)
# - 脂肪酸生物合成(Fatty acid biosynthesis)
# - 甘油脂代谢(Glycerolipid metabolism)

# 方法2:脂质通路网络分析
# 基于脂质间的生化关系构建网络
# 例如:PC → LPC + FA(磷脂酶A2水解)
#       Cer → SM(鞘磷脂合酶)
#       DG → TG(DGAT酶)

常见报错与解决

报错信息原因解决方案
LipidSearch: no lipids found质量容差太严或脂质类别未选放宽ppm,选择更多脂质类别
MS-DIAL: conversion error原始文件格式不支持先用MSConvert转为mzML
Adduct mismatch加合离子设置不正确正模式加[M+H]+/[M+Na]+,负模式加[M-H]-
Too many isomers脂质异构体无法区分降低鉴定精度到species level
IS normalization: NA内标在某些样本中未检测到检查内标信号,更换内标
Negative values after norm归一化方法不当使用总量归一化或中位数归一化

速查表

# 脂质组学分析流程
原始数据(.raw/.mzML) → MS-DIAL/LipidSearch/XCMS处理
→ 峰提取+鉴定 → 内标归一化 → 总量归一化+log转换
→ PCA/PLS-DA → 差异分析(limma) → 脂质类别分析
→ 碳链模式分析 → 通路分析

# 工具选择
非靶向鉴定: LipidSearch(商业)/ MS-DIAL(开源)
靶向方法开发: LipidCreator + Skyline
原始数据处理: XCMS(R包)/ MZmine
下游分析: ADViSELipidomics / R脚本
通路分析: MetaboAnalyst / LIPEA

# LIPID MAPS 8大类
FA: 脂肪酰类        GL: 甘油脂类
GP: 甘油磷脂类      SP: 鞘脂类
ST: 固醇脂类        PR: 异戊烯醇脂类
SL: 糖脂类          PK: 多酮类

# 常见脂质加合离子
正离子模式: [M+H]+, [M+Na]+, [M+NH4]+
负离子模式: [M-H]-, [M+HCOO]-, [M+CH3COO]-

# 脂质命名
PC 34:1 → 磷脂酰胆碱,总碳34,1个双键(种级)
PC 16:0/18:1 → sn-1棕榈酸,sn-2油酸(分子种级)

面试高频问题

Q1:脂质组学和代谢组学的区别是什么?

:脂质组学是代谢组学的一个重要分支,专注于脂类分子。主要区别:①样本提取方法不同——脂质需要有机溶剂提取(如Bligh-Dyer法或MTBE法),代谢组学通常用甲醇/水混合提取;②色谱条件不同——脂质通常用反相C18柱(按疏水性分离),代谢组学用HILIC亲水柱;③鉴定方法专用——脂质有独特的碎裂规律(头基碎裂、脂肪酸链碎裂),需要专用的脂质鉴定软件如LipidSearch/MS-DIAL。

Q2:脂质鉴定的不同层级是什么意思?

:按照LIPID MAPS和MSI标准,脂质鉴定分多个层级:①脂质类级——只知道属于哪类(如PC),基于头基碎片离子;②脂质种级——知道总碳数和双键数(如PC 34:1),基于精确分子量;③分子种级——知道每条脂肪酸链的组成(如PC 16:0/18:1),需要MS2碎裂信息;④完全结构——知道双键位置和sn位置(如PC 16:0/18:1(9Z)),需要特殊技术(如臭氧诱导解离OzID)。高分辨MS通常可达到分子种级,完全结构需要特殊方法。

Q3:为什么脂质组学需要正/负离子两种模式?

:不同脂质类别在正/负离子模式下的电离效率差异很大。正离子模式下:含胆碱头基的脂质(PC、SM、LPC)信号强,主要形成[M+H]+加合;负离子模式下:含负电头基的脂质(PE、PS、PI、PA)信号强,主要形成[M-H]-加合。甘油三酯(TG)在正模式下[M+NH4]+信号最好,而游离脂肪酸(FA)在负模式下[M-H]-信号好。因此全面的脂质组学需要分别采集两种模式的数据。

Q4:内标归一化为什么对脂质定量很重要?

:脂质样本的基质效应(离子抑制/增强)很强,不同样本间变异大。内标是已知浓度的非天然脂质(通常含稳定同位素标记,如d7-PC 15:0/18:1),加入样本后随样本一起经历提取、分离和电离过程。通过将每种脂质的信号除以同类内标的信号,可以校正样本间的技术变异。每个主要脂质类别至少需要一个内标(如PC类用PC内标,PE类用PE内标),因为不同类别的电离效率不同。

Q5:脂质组学在疾病研究中有什么应用?

:①心血管疾病——氧化磷脂(oxPC)和神经酰胺(Cer)是动脉粥样硬化的标志物和驱动因素;②糖尿病——TG/HDL-C比值异常,特定PC/LPC变化反映胰岛素抵抗;③神经退行性疾病——鞘脂代谢紊乱(如阿尔茨海默病中的硫苷脂减少);④癌症——磷脂重塑(如LPC↓、LPA↑)反映肿瘤细胞膜代谢变化;⑤肥胖——脂肪组织的甘油脂和脂肪酸谱发生系统性变化。脂质标志物在精准医学和早期诊断中越来越受重视。