东方天意LC-MS/MS代谢组学数据预处理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-ekt13cme/metabolomics-xcms-preprocess
技能介绍
问题:原始 LC-MS 数据到可用特征表之间的鸿沟
非靶向代谢组学分析通常以高分辨 LC-MS/MS 仪器产出 mzML 或 mzXML 文件,但这些原始谱图距离下游统计分析所需的“样本 × 特征”强度表仍有多个中间步骤:不同仪器的峰形、噪声和保留时间漂移各不相同;元数据如样本分组和进样顺序若散落在文件名或外部表格中,容易造成混淆;峰检测参数(峰宽、ppm、信噪比)需要结合 QC 样本反复调试,否则会遗漏真实峰或引入大量噪声。此外,跨样本的特征对齐和缺失峰填补若不加约束,可能把填补值误报为实测峰,影响后续差异分析。
技能如何工作:从原始文件到可导出的强度矩阵
该技能将上述流程封装为可复现的步骤,核心依赖 Bioconductor 的 xcms 与 MSnbase,要求 R 环境中已安装 3.18+ 的 Bioconductor 和 4.0+ 的 xcms。首先使用 MSnbase::readMSData() 将原始文件读入 OnDiskMSnRawData 对象,并确认 MS 级别与文件数。随后在 pData() 中显式写入样本名、实验组和进样顺序,避免依赖文件名推断分组。
峰检测阶段根据数据是否已 centroid 化选择不同函数:质心化数据使用 CentWaveParam() 配合 findChromPeaks(),而 profile 数据则使用 MatchedFilterParam()。参数调整时需结合 QC 谱图观察峰宽、ppm 偏差和信噪比。保留时间校正通过 ObiwarpParam() 和 adjustRtime() 完成,并用 plotAdjustedRtime() 检查对齐效果。跨样本特征分组使用 PeakDensityParam() 和 groupChromPeaks(),其中 sampleGroups 必须来自已写入的元数据。缺失峰填补由 fillChromPeaks() 完成,最终通过 featureValues() 和 featureDefinitions() 导出 feature_table.csv。
适用边界与注意点
该流程假设输入数据已按样本分组,且 R 环境中的包版本满足要求;若版本过低,部分参数可能不兼容。峰检测和 RT 校正的参数需要根据具体仪器和数据集调整,没有通用的“最优值”。CAMERA 注释仅适用于高分辨质心数据,若数据为 profile 模式则无法直接使用。导出用于 MetaboAnalyst 的矩阵时,需将强度矩阵转置,并以 MT 作为特征名,同时在首列保留 Sample 和 Group。此外,填补值仅代表缺失峰的估计,不应与实测峰混用,报告中需明确标注填补策略。
使用场景
- 手上有一批 mzML 格式的 LC-MS/MS 原始谱图,需要批量转成样本×特征强度表用于后续差异分析
- 不同进样批次间保留时间漂移明显,需要校正后再做跨样本峰匹配
- 准备把特征矩阵上传到 MetaboAnalyst 做统计分析,需要按 MT 命名并整理样本列
- 想用 CAMERA 给特征表标注同位素和加合物,降低冗余特征数量
适合人员
- 代谢组学方向研究生:刚拿到仪器下机的 mzXML 数据,需要处理成特征表再做统计
- 生信分析工程师:负责搭建可复现的 XCMS 预处理流程,需要统一参数和导出格式
- 实验室管理员:汇总多个课题组的 LC-MS 数据,需要保留样本元数据并检查 QC 样本离群
- 期刊审稿人或数据分析顾问:审查代谢组学论文时需核对峰检测、RT 校正与填补策略是否完整报告