跳转至

脂质组学数据分析


一句话说明

脂质组学是代谢组学的一个专门分支,专门研究细胞里的脂肪家族——磷脂、甘油三酯、胆固醇等几千种脂质分子。就像给细胞膜做一次全面的"脂肪体检"。


核心知识点

要点1:脂质分类体系

  • LIPID MAPS分类:8大类
  • 脂肪酸(FA):最基础的脂质,如棕榈酸、油酸
  • 甘油脂(GL):甘油三酯TG,储能分子
  • 甘油磷脂(GP):PC、PE、PS等,细胞膜主要成分
  • 鞘脂(SP):鞘磷脂SM、神经酰胺Cer,信号分子
  • 固醇脂(ST):胆固醇及其酯,激素前体
  • 糖脂(SL)、聚酮(PK)、异戊烯脂(PR)
  • 命名规则:如 PC 34:1 表示磷脂酰胆碱,两条脂肪酸链共34个碳、1个双键

要点2:脂质组学实验方法

  • 霰弹枪脂质组学(Shotgun):不经色谱分离,直接进质谱,速度快但分辨率低
  • LC-MS/MS脂质组学:液相色谱分离后进质谱,分辨率高,是主流方法
  • 正/负离子模式:磷脂在正离子模式给出头基信息,负离子模式给出脂肪酸链信息,两个模式互补
  • 特征碎片:PC类在正离子模式下有特征碎片m/z 184(磷酸胆碱头基)

要点3:数据处理工具

  • LipidSearch:Thermo商业软件,自动鉴定+定量
  • MS-DIAL:开源,支持多种采集模式,自带LipidBlast谱库
  • LipiDex:开源,基于规则的脂质鉴定
  • LION/web:脂质本体富集分析在线工具
  • LipidMaps数据库:脂质结构/分类的权威数据库

要点4:脂质组学特殊考量

  • 同分异构体问题:很多脂质有相同的分子量但不同结构(如sn-1/sn-2位置异构),需要高分辨质谱和特殊碎裂模式区分
  • 内标策略:每大类脂质至少配一个同位素内标(如PC-d31、PE-d31)
  • 脂质提取:常用Bligh-Dyer法或MTBE法提取
  • 数据归一化:通常用类内标归一化(同一大类用同一内标校正)

实战代码

# === 脂质组学数据分析流程 ===
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# 1. 读取脂质定量数据(已经过MS-DIAL处理)
lipids = pd.read_csv("lipid_quantification.csv", index_col=0)  # 行=样本,列=脂质
groups = pd.read_csv("sample_groups.csv", index_col=0)  # 样本分组信息

# 2. 按脂质大类汇总
def get_lipid_class(name):
    """从脂质名称提取大类,如 PC 34:1 -> PC"""
    return name.split(" ")[0]  # 取空格前的类别名

lipid_classes = [get_lipid_class(col) for col in lipids.columns]  # 提取每列脂质的大类

# 按大类求和
class_totals = pd.DataFrame(index=lipids.index)
for cls in set(lipid_classes):
    cols = [c for c, lc in zip(lipids.columns, lipid_classes) if lc == cls]
    class_totals[cls] = lipids[cols].sum(axis=1)  # 同大类的脂质浓度求和

# 3. 碳链长度与不饱和度分析
def parse_chain(name):
    """解析碳链信息,如 PC 34:1 -> (34, 1)"""
    parts = name.split(" ")
    if len(parts) >= 2 and ":" in parts[1]:
        carbon, double = parts[1].split(":")
        return int(carbon), int(double)
    return None, None

chain_info = pd.DataFrame([parse_chain(col) for col in lipids.columns],
                          columns=["Carbon", "DoubleBond"],
                          index=lipids.columns)

# 4. 绘制脂质类别占比饼图
class_mean = class_totals.mean()  # 各类脂质平均含量
plt.figure(figsize=(8, 8))
plt.pie(class_mean, labels=class_mean.index, autopct='%1.1f%%')  # 饼图
plt.title("Lipid Class Distribution")
plt.savefig("lipid_class_pie.png", dpi=150)

# 5. 差异脂质火山图
from scipy.stats import ttest_ind

disease = lipids.loc[groups["Group"] == "Disease"]  # 疾病组
control = lipids.loc[groups["Group"] == "Control"]  # 对照组

fold_changes = []
p_values = []
for col in lipids.columns:
    fc = np.log2(disease[col].mean() / control[col].mean())  # log2倍数变化
    _, pval = ttest_ind(disease[col], control[col])  # t检验p值
    fold_changes.append(fc)
    p_values.append(pval)

# 绘制火山图
plt.figure(figsize=(10, 8))
plt.scatter(fold_changes, -np.log10(p_values), alpha=0.5, s=20)  # 散点图
plt.axhline(-np.log10(0.05), color="red", linestyle="--")  # p=0.05线
plt.axvline(-1, color="blue", linestyle="--")   # FC=-2线
plt.axvline(1, color="blue", linestyle="--")    # FC=2线
plt.xlabel("log2(Fold Change)")
plt.ylabel("-log10(p-value)")
plt.title("Lipid Volcano Plot")
plt.savefig("lipid_volcano.png", dpi=150)

面试常问点

Q1: 脂质组学和一般代谢组学有什么区别?

参考答案:脂质组学是代谢组学的子领域,专门研究脂质。主要区别:一是样品前处理不同,脂质需要有机溶剂提取(Bligh-Dyer/MTBE法),而一般代谢组学用甲醇/水提取;二是色谱方法不同,脂质常用反相C18或C30柱按疏水性分离;三是同分异构体特别多,鉴定更复杂;四是数据分析时要考虑碳链长度、不饱和度等脂质特有的结构信息。

Q2: 为什么说脂质组学对生物膜研究很重要?

参考答案:细胞膜主要由磷脂双分子层组成,不同种类的磷脂(PC、PE、PS、PI等)在膜的两侧分布不同,影响膜的流动性、通透性和信号转导。脂质组学可以全面地检测这些磷脂的种类和含量变化,帮助理解膜结构变化如何影响细胞功能。比如在2型糖尿病研究中,细胞膜脂质组成的变化会影响胰岛素受体的功能。


速查卡片

问题一句话答案
LIPID MAPS分几大类?8大类:FA、GL、GP、SP、ST、SL、PK、PR
PC 34:1怎么读?磷脂酰胆碱,两条链共34碳1个双键
脂质提取常用方法?Bligh-Dyer法或MTBE法
开源脂质分析工具?MS-DIAL(自带LipidBlast谱库)
内标怎么选?每大类配一个氘代/13C标记内标
正离子模式PC特征碎片?m/z 184(磷酸胆碱头基)