# DDA 分析流程
注意
此文档已过时,推荐阅读 最新版本
说明
示例来源:下述所有示例说明的数据来源为《管制药品筛查试剂盒》CPD-1001为例。
参数来源:Database (DB)、dda.json、static.json、instrument.json、common.json
参数来源格式说明:
- 数据库.表.列名:例如 DB.cartridge.analysis_type_id,表示该参数是获取自数据库Database中Cartridge表对应的 analysis_type_id 列。
- 数据库.表:例如 DB. analysis_type,表示该参数是获取自数据库 Database 中 Analysis_type 表。
- Cartridge Info.spray_voltag_pos | neg :竖线 “|”,表示 “或”
# 一、基础数据整合
# 1 读取编码并执行分析流程
环节概述:
将试剂盒插入进样口后,设备自动读取当前试剂盒绑定的编码 (Cartridge Code)。点击一键检测后,在数据库中查询所对应的分析类型,并执行相应分析流程。参数来源:
试剂盒RFID绑定的编号、DB.cartridge.analysis_type_id、DB.analysis_type示例说明
内容 对应值 试剂盒RFID绑定的编码 CPC-1001 cartridge.analysis_type_id 4 analysis_type DDA
# 2 获取待测物谱图信息
# 2.1 获取试剂盒信息 (Cartridge Info)
环节概述:
通过试剂盒绑定编码 (Cartridge Code),在数据库中查询对应的试剂盒信息 (Cartridge Info)参数来源:
试剂盒绑定编码、DB.cartridge、DB.analysis_type.name参数说明:
参见MOS Doc / Guide / 方法参数配置指南示例说明
内容 对应值 id 27 code CPD-1001 children {} pre_spray_time 500 spray_voltage_pos 4500 spray_voltage_neg 3500 binding_params {"tags": ["controlled_drugs"], "compounds": [], "compounds_intstd": [], "compound_black_list": []} acquisition_params [] evaluation_params {} extra_params {} description 管制药品PCS筛查盒 name (analysis_type) DDA
# 2.2 根据标签获取化合物编号 (Compound code)
- 获取流程:
通过试剂盒信息 (Cartridge Info) 中绑定参数 (binding_params) 获取绑定的tags,再根据tags获取对应的所有 compound code。 - 示例说明:
"controlled_drugs"
# 2.3 获取谱图信息 (Spectra Info)
环节概述:
根据 Compound Code、极性(polarity)、设备类型(device type)和分析类型(analysis type),分别在数据库中查询对应极性的待测物信息 (Spectra Info_pos & Spectra Info_neg)。如果tags中包含了"芬太尼"或"大麻素",则在标准库和推算库中检索。待测物信息检索完成后,根据Compound Code去重复。参数来源:
DB.spectrum、DB.compound、DB.experiment、DB.device_type参数说明:
参见MOS Doc / Guide / 方法参数配置指南示例说明(部分):
id group code name_cn name_en cas mass extra_data formula avg. method_params peaks 201 1 100101 可待因 Codeine 76-57-3 299.152 {"basis": "M-2013-111", "control_basis": "麻醉药品"} C18H21NO3 1 {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 1.4, "precursor_mz": 300.159}], "method_type": "MS2_DDA"} [{"mz": 215.07, "intensity": 1}, {"mz": 243.102, "intensity": 0.869}, {"mz": 282.149, "intensity": 0.869}] 241 1 100121 对氟芬太尼 Para-fluorofentanyl 90736-23-5 354.211 {"basis": "M-2013-85", "control_basis": "麻醉药品"} C22H27FN2O 1 {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 1.4, "precursor_mz": 355.218}], "method_type": "MS2_DDA"} [{"mz": 188.143, "intensity": 1}]
# 2.4 获取候选物质信息 (Candidate Spectra Info)
参数来源:
Spectra Info_pos & Spectra Info_neg示例说明:
Keys 对应值 POS Spectra Info_pos NEG Spectra Info_neg
# 二、分析流程执行
# 1 获取分析参数analysis_params_
环节概述:
遍历候选物质信息 (Candidate Spectra Info)的Keys (POS、NEG),根据当前极性,获取对应的分析参数。分析参数包括谱图采集参数 (acquisition)和谱图评价参数 (evaluation)。参数来源:
dda.json参数说明:
参见MOS Doc / Guide / 方法参数配置指南示例说明:
分类 内容 对应值 algorithms peak_picking mass_bin_pts:50,max_count:2000,min_intensity_abs:8000,min_intensity_rel:0,top_count:20 algorithms peak_matching ms1_mz_tol:0.5 acquisition dre enabled:0 acquisition inj_size_ratio 0 acquisition method {average:1,cid_q = 0.25,method_type:MS2_DDA,scan_mass_end:1000,scan_mass_start:50,scan_speed:1} acquisition ms1_iso_enable 0 acquisition ms3_enable 1 dre dre_mode TIC dre enabled 1 dre inj_size_init 30 dre inj_size_max 60 dre inj_size_min 20 dre max_times 10 dre method { average:1,inj_lmso_mz:50,method_type:MS1} dre notch_enabled 0 dre notch_mz_tol 0.5 dre target_tic 9000/6000 (POS/NEG) dre target_tic_max 15000/10000 (POS/NEG) dre target_tic_min 3000/2000 (POS/NEG) evaluation qual_model cost,distance,fragment_dominance,isotope_probability,spec_availability,verbose evaluation qual_rule neg_threshold:50、pos_threshold:70、description evaluation score_ratio 1.7
# 2 执行数据采集
# 2.1 执行DRE流程
DRE参数整合
- 环节概述:
获取分析参数(analysis_params_)中的DRE参数,根据当前极性获取试剂盒信息中对应极性的喷雾电压。 - 参数来源:
DB.cartridge、dda.json - 参数说明:
参见MOS Doc / Guide / 方法参数配置指南 - 示例说明:
内容 对应值 来源 polarity POS/NEG Candidate Spectra Info.Keys spray_voltage 4500/3500 DB.cartridge dre_mode TIC dda.json enabled 1 dda.json inj_size_init 30 dda.json inj_size_max 60 dda.json inj_size_min 20 dda.json max_times 10 dda.json method { average:1,inj_lmso_mz:50,method_type:MS1} dda.json notch_enabled 0 dda.json notch_mz_tol 0.5 dda.json target_tic 9000/6000(POS/NEG) dda.json target_tic_max 15000/10000(POS/NEG) dda.json target_tic_min 3000/2000(POS/NEG) dda.json
- 环节概述:
执行DRE扫描流程
- 环节概述:
执行MS1的DRE流程
- 环节概述:
根据DRE结果状态判定流程
- 环节概述:
判断DRE流程的结果状态 - 判断结果:
- 当正模式(POS)的DRE流程未找到最佳谱图时,流程结束并提示“进样失败,请重试”;
- 当正模式(POS)的DRE流程找到最佳谱图时,流程继续 (2.2 执行MS1数据匹配)
- 当正模式(POS)的物质筛查鉴定完成后,存在负模式需要筛查鉴定的物质 且 负模式(POS)的DRE流程未找到最佳谱图时,流程结束并报告正模式的鉴定结果。
- 环节概述:
# 2.2 执行MS1数据匹配
- 环节概述:
当DRE流程执行成功并且找到最佳谱图时,对该谱图进行数据匹配,获取可疑物前体离子列表(suspect_precursor_list)。
1)获取MS1谱图寻峰参数 (peak_picking)
参数内容:
内容 对应值 来源 mass_bin_pts 50 dda.json/parameters/algorithms/peak_picking max_count 2000 dda.json/parameters/algorithms/peak_picking min_intensity_abs 8000 dda.json/parameters/algorithms/peak_picking min_intensity_rel 0 dda.json/parameters/algorithms/peak_picking top_count 20 dda.json/parameters/algorithms/peak_picking
2)对当前谱图进行寻峰
3)获取质量数计算所需参数
参数内容:
内容 对应值 来源 scan_mass_start 50 dda.json/parameters/acquisition/method scan_mass_end 2000 dda.json/parameters/acquisition/method pt_per_th 100 static.json/parameters/method_parameters_default scan_q 0.75 static.json/parameters/method_parameters_default mass_calib.coef c0、c1、c2 (每次校准会变化) instrument.json/parameters/spec_params/mass_calib mass_compensation.coef c0、c1、c2 instrument.json/parameters/spec_params/mass_compensation
4)计算质量数
5)获取MS1谱图匹配参数 (peak_matching)
参数内容:
内容 对应值 来源 ms1_mz_tol 0.5 dda.json/parameters/algorithms/peak_ matching
6) 获取候选物谱图信息 (Compds. Spectrra Info)
参数来源:
Spectra Info。根据当前极性,获取对应的候选物信息列表(Spectra Info_pos|Spectra Info_neg),遍历每行信息,判断是否为当前行ms level 是否等于 2,若满足条件,则将当前行的compound code和谱图信息加入到候选物谱图信息中。若当前行ms level = 3,同时其compound code和group与ms level = 2的compound code和group相同,则将该行的谱图信息加入到候选物谱图信息的MS3中。示例说明:
内容 对应值 compound_code 100101,100121... ms2 Spectra_Info表中对应行 ms3 当Spectra_Info中有MS3谱图时,此处保存对应的ms3信息
7) 遍历候选物谱图信息:
- 获取当前谱图信息中MS2对应的precursor (precursor_mz)
- 遍历MS1谱图峰表(Peaks)的每个峰值(peak):
- 计算当前的前体离子最大值(current_ precursor_mz_max)和最小值(current_ precursor_mz_min),计算公式 = peak.mz ± ms1_mz_tol;
- 判断MS2的precursor是否在上述计算范围内 (current_ precursor_mz_min ≤ precursor_mz ≤ current_ precursor_mz_max),若满足,则将当前峰值(peak)及谱图信息加入到可疑物前体离子列表(suspect_precursor_list)中;
如果满足上述条件的peak存在多个,则计算偏差值,选择偏差值最小的峰值加入到可疑物前体离子列表中。计算公式 delta_mz = | peak.mz - precursor_mz |
# 2.3 执行多级谱图的数据采集和评分
环节概述:遍历可疑物前体离子列表(suspect_precursor_list)的每个precursor,并进行二级谱和三级谱(如果存在)的采集和评分。
1) 将可疑物前体离子列表按照峰强度(peak.intensity)进行降序排列
2) 遍历排序后的前体离子列表
a. 计算进样量
- 获取进样量比例inj_size_ratio
- 参数来源:dda.json/parameters|parameters_neg /acquisition/inj_size_ratio (默认为0)
- 若比例不为0,则直接计算进样量;
- 若比例为0,则进样量比例由当前precursor的峰强度决定,峰强度在1E6以内的进样量比例为1.2,大于1E6比例为1.0。(参数来源:instrument.json/calibration/dda_ms2_inj_size_ratio/x,y)
- 参数来源:dda.json/parameters|parameters_neg /acquisition/inj_size_ratio (默认为0)
- 计算进样量
- inj_size = ms1_inj_size × inj_size_ratio,ms1_inj_size为MS1 DRE的最佳谱图进样量。此进样量作为MS2和MS3谱图采集的进样量。
- 获取进样量比例inj_size_ratio
b. 整合MS2采集方法参数
- 参数来源:
dda.json、static.json、DB.cartridge - 参数说明:
参见MOS Doc / Guide / 方法参数配置指南 - 示例说明:
内容 对应值 来源 precursor peak.mz inj_size 根据MS1 DRE的最佳谱图进样量计算所得 method_type MS2_DDA DB.spectrum.method_params polarity POS Candidate Spectra Info.Keys spray_voltage 4500\3500 DB.cartridge cid_amp 当前precursor对应的可疑物信息 DB.spectrum.method_params cid_q 0.25 DB.spectrum.method_params scan_mass_start 50 dda.json/parameters, parameters_neg/method scan_mass_end 1000 dda.json/parameters, parameters_neg/method scan_speed 1 dda.json/parameters, parameters_neg/method average 1 dda.json/parameters, parameters_neg/method iso_q 0.75 static.json/parameters/method_parameters_default pre_iso_q 0.75 static.json/parameters/method_parameters_default pt_per_th 100 static.json/parameters/method_parameters_default scan_q 0.75 static.json/parameters/method_parameters_default trap_q 0.3 static.json/parameters/method_parameters_default delay 0 代码默认 repeat 1 代码默认
- 参数来源:
c. 创建MS2扫描方程
- 环节概述:DDA流程中不执行MS2 DRE(参数来源:dda.json/parameters|parameters_neg/acquisition/dre/enabled = 0),因此需要创建MS2扫描方程来执行MS2数据采集
d. 生成动态SWIFT
e. 执行预喷
- 环节概述:在流程开始后,直接执行预喷操作(PRE_SPRAY_FORCE);当切换极性时,再次进行预喷操作。
f. 执行扫描
g. MS2谱图寻峰
1) 获取MS2谱图寻峰参数 (peak_picking)
- 参数内容:
内容 对应值 来源 mass_bin_pts 50 dda.json/parameters/algorithms/peak_picking max_count 2000 dda.json/parameters/algorithms/peak_picking min_intensity_abs 8000 dda.json/parameters/algorithms/peak_picking min_intensity_rel 0 dda.json/parameters/algorithms/peak_picking top_count 20 dda.json/parameters/algorithms/peak_picking 2) 对当前谱图进行寻峰
3) 获取质量数计算所需参数
- 参数内容:
内容 对应值 来源 scan_mass_start 50 dda.json/parameters/acquisition/method scan_mass_end 2000 dda.json/parameters/acquisition/method pt_per_th 100 static.json/parameters/method_parameters_default scan_q 0.75 static.json/parameters/method_parameters_default mass_calib.coef c0、c1、c2 (每次校准会变化) instrument.json/parameters/spec_params/mass_calib mass_compensation.coef c0、c1、c2 instrument.json/parameters/spec_params/mass_compensation 4) 计算质量数
h. MS2谱图数据库匹配
1) 获取MS2谱图匹配 (peak_matching)
- 参数内容:
内容 对应值 来源 ms2_mz_tol 0.5 common.json/base_analysis_params/acquisitions/algorithms/peak_ matching ms3_mz_tol 0.5 common.json/base_analysis_params/acquisitions/algorithms/peak_ matching fragment_match_any 1 代码默认 fragment_match_cnt_min 1 代码默认 thershold 8000 common.json/base_analysis_params/acquisitions/algorithms/peak_picking/ min_intensity_abs 2) 获取可疑物MS2谱图标准峰
将当前可疑物的实际峰与标准峰进行匹配,并标记匹配结果 (True / False)
i. 根据MS2匹配结果决定下一步流程
- 判断依据:
True (检出) | False (未检出) - 判断结果:
当匹配结果为检出(True) 时,则判断是否进入MS3扫描流程;当匹配结果为未检出(False) 时,则判断是否进入MS1_ISO扫描流程。MS3扫描流程
- 判断是否执行MS3扫描流程
- 环节概述:
- 当MS2谱图的匹配结果为检出时,需要判断是否开启MS3扫描流程以及当前可疑物是否存在MS3谱图信息。
- 判断依据:
- ms3_enable = 0 (未开启) | 1 (开启) ,默认为开启;在可疑物前体离子列表中,当前可疑物是否存在MS3谱图信息。
- 参数来源:
- dda.json/parameters/acquisition,suspect_precursor_list.ms3
- 判断结果:
- 当开启MS3扫描流程,并且当前待测物存在MS3谱图信息时,执行MS3扫描流程;
- 当未开启或不存在MS3谱图信息时,则判断是否进入MS1_ISO扫描流程。
- 环节概述:
- 整合MS3采集参数
- 待测物MS3谱图的采集参数来自suspect_precursor_list.ms3,进样量为MS2谱图的进样量(由MS1 DRE最佳谱图进样量计算所得)。
- 执行MS3采集流程
- 执行MS3谱图处理
- 执行数据库匹配
- 判断是否执行MS3扫描流程
判断是否MS1_ISO扫描流程
- 环节概述:
本环节仅在开启时,才执行该扫描流程。 - 判断依据:
ms1_iso_enable = 0 (未开启) | 1 (开启) ,默认为未开启。 - 参数来源:
targeted.json/parameters/acquisition - 判断结果:
当选择开启时,执行MS1_ISO扫描流程;当未开启时,则进入谱图评分流程。
- 环节概述:
- 判断依据:
j. 谱图评分
- 1) 获取评价参数
qual_rule (dda.json/parameters/evalution)、qual_model (dda.json/parameters/evalution) - 2) 计算谱图得分
- 获取评分权重 (cost)
- 参数来源:
evalution/qual_model/cost - 判断规则:
判断是否存在MS3特征谱峰。若存在,则cost为1.0;若不存在,则cost为0.9。
- 参数来源:
- 计算谱库特征距离 (Distance)
- 参数来源:
evalution/qual_model/distance
- 参数来源:
- 计算离子峰主导性 (Fragment dominance)
- 参数来源:
evalution/qual_model/fragment_dominance
- 参数来源:
- 谱图有效性 (Spectrum Availability)
- 参数来源:
evalution/qual_model/spec_availability
- 参数来源:
- 同位素可能性 (Isotope Probability)
- 参数来源:
evalution/qual_model/isotope_probability
- 参数来源:
- 计算最终得分 (score)
- 计算公式=100 × cost × Distance × Fragment dominance × Spectrum Availability × Isotope Probability
- 根据得分和评判规则来对应最终结果
- 规则来源:
evaluation/qual_rule - 规则内容:
Score <50,待测物为阴性;50≤ Score <70,待测物为弱阳性;Score ≥ 70,待测物为阳性。 - 检测结果:
阴性、弱阳性、阳性
- 规则来源:
- 获取评分权重 (cost)
- 1) 获取评价参数
# 2.4 判断是否遍历完成
- 环节概述:判断可疑物前体离子列表是否遍历完成
- 判断结果:遍历完成(POS),进行负模式的鉴定;未遍历完成,继续下个可疑物的检测;
# 2.5 执行负模式下可疑物的鉴定
环节概述:负模式下可疑物鉴定的流程与正模式相同。
# 三、结果文件输出
- 调用报告模板,展示结果列表在 STD 界面
- 补充样本信息 (前台界面)
- 保存报告 (前台界面)
- 生成report.json (用于提升 STD 查询报告效率的索引,reports.json -> report.json)、MRZ 文件 (核心文件)、PDF 文件 (用于打印) 和 PNG 文件 (用于 STD 点击报告的展示)
- 分析流程结束,进行下一个检测