# Targeted Analysis 流程
注意
此文档已过时,推荐阅读 最新版本
示例来源:下述所有示例说明的数据来源为《重点检测毒物检测盒》CPT-7900,在分析流程执行后 以待测物100305百草枯为例。
参数来源:Database (DB)、targeted.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绑定的编码 | CPT-7900 |
| cartridge.analysis_type_id | 3 |
| analysis_type | Targeted |
# 2 获取待测物谱图信息
# 2.1 获取试剂盒信息 (Cartridge_Info)
环节概述:通过试剂盒绑定编码 (Cartridge Code),在数据库中查询对应的试剂盒信息 (Cartridge Info)
参数来源:试剂盒绑定编码、DB.cartridge、DB.analysis_type.name
参数说明:参见MOS Doc / Guide / 方法参数配置指南
示例说明:
| 内容 | 对应值 |
|---|---|
| id | 26 |
| code | CPT-7900 |
| children | {} |
| pre_spray_time | 500 |
| spray_voltage_pos | 4500 |
| spray_voltage_neg | 3500 |
| binding_params | {"tags": [], "compounds": ["100305", "100308", "100309", "100260", "100348", "100349", "100350"], "compounds_intstd": [], "compound_black_list": []} |
| acquisition_params | [] |
| evaluation_params | {} |
| extra_params | {} |
| description | 重点毒物PCS检测盒 |
| name (analysis_type) | Targeted |
# 2.2 获取待测物编号 (Compound code)
获取流程:
1) 通过试剂盒信息 (Cartridge Info) 中的绑定参数 (binding_params) ,获取其中 compounds 包含的所有 compound code,如果compounds_intstd不为空,获取其包含的内容。
2) 如果绑定参数 (binding_params) 绑定了一类待测物的 tags,需要在数据库中查询 tags 包含的所有 compound code
3) 将绑定参数中黑名单 (compound_black_list) 包含的 compound code 进行剔除
4) 对剩余所有 compound code 进行去重复,获得最终的 Compound Code
示例说明
[100305, 100308, 100309, 100260, 100348, 100349, 100350]
# 2.3 获取谱图信息 (Spectra Info)
环节概述:根据 Compound Code、当前设备类型 (device type) 和分析类型 (analysis type) ,在数据库中查询当前试剂盒对应的待测物信息 (Spectra Info)
参数来源: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 | ms_level |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1900 | 3 | 100305 | 百草枯 | Paraquat dichloride | 1910-42-5 | 256.053 | {"basis": ""} | C12H14Cl2N2 | 1 | {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 2.0, "precursor_mz": 185.107}], "method_type": "MS2"} | [{"mz": 170.084, "intensity": 1.0}, {"mz": 144.081, "intensity": 0.4}, {"mz": 158.096, "intensity": 0.54}, {"mz": 118.065, "intensity": 0.28}, {"mz": 168, "intensity": 0.36}] | 2 |
| 1695 | 3 | 100308 | 溴鼠灵(大隆) | Brodifacoum | 56073-10-0 | 522.083 | {"basis": ""} | C31H23BrO3 | 1 | {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 2.5, "precursor_mz": 521.076}], "method_type": "MS2"} | [{"mz": 477.086, "intensity": 1.0}, {"mz": 371.144, "intensity": 0.63}] | 2 |
| 1910 | 2 | 100309 | 溴敌隆 | Bromadiolone | 28772-56-7 | 526.078 | {"basis": ""} | C30H23BrO4 | 1 | {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 2.5, "precursor_mz": 525.071}], "method_type": "MS2"} | [{"mz": 250.064, "intensity": 1.0}, {"mz": 462.8, "intensity": 0.69}, {"mz": 386.9, "intensity": 0.3}, {"mz": 506.8, "intensity": 0.61}] | 2 |
| 520 | 1 | 100260 | 氯化琥珀胆碱 | Succinylcholine Chloride | 71-27-2 | 360.158 | {"basis": "临床药物"} | C14H30Cl2N2O4 | 1 | {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 1.5, "precursor_mz": 145.11}], "method_type": "MS2"} | [{"mz": 115.573, "intensity": 1}, {"mz": 230.139, "intensity": 0.12}, {"mz": 274.2, "intensity": 1}, {"mz": 86.036, "intensity": 1}, {"mz": 171.1, "intensity": 1}] | 2 |
| 1523 | 2 | 100348 | 敌草快 | Diquat dibromide monohydrate | 6385-62-2 | 359.947 | {} | C12H14Br2N2O | 1 | {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 2.0, "precursor_mz": 183.092}], "method_type": "MS2"} | [{"mz": 157.076, "intensity": 1.0}, {"mz": 130, "intensity": 0.19}, {"mz": 168.068, "intensity": 0.0}] | 2 |
| 1563 | 2 | 100349 | 草甘膦 | Glyphosate | 1071-83-6 | 169.014 | {} | C3H8NO5P | 1 | {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 1.5, "precursor_mz": 168.007}], "method_type": "MS2"} | [{"mz": 149.996, "intensity": 1.0}, {"mz": 124.017, "intensity": 0.12}] | 2 |
| 660 | 1 | 100350 | 草铵膦 | Glufosinate-ammonium | 77182-82-2 | 215.103 | {} | C5H18N3O4P | 1 | {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 1.7, "precursor_mz": 180.043}], "method_type": "MS2"} | [{"mz": 136.053, "intensity": 1}, {"mz": 134.038, "intensity": 0.9}, {"mz": 163.017, "intensity": 0.5}, {"mz": 119.027, "intensity": 0.5}, {"mz": 95.027, "intensity": 0.5}] | 2 |
# 2.4 获取待测物谱图信息 (Compds. Spectra Info)
参数来源:Spectra Info
示例说明
| 内容 | 对应值 |
|---|---|
| compound_code | 100305 100308 100309 100260 100348 100349 100350 |
| ms2 | Spectra_Info表中对应行 |
| ms3 | 目前为空。当Spectra_Info中有MS3谱图时,此处保存对应的ms3信息 |
# 二、分析流程执行
# 1 获取分析参数analysis_params_
环节概述:遍历待测物谱图信息,获取当前待测物的极性。根据当前极性,获取对应的分析参数。分析参数包括谱图采集参数(acquisition)和谱图评价参数(evaluation)。
参数来源:targeted.json、common.json
参数说明:参见MOS Doc / Guide / 方法参数配置指南
示例说明
| 分类 | 内容 | 对应值 |
|---|---|---|
| cycle | 1 | |
| cycle_interval | 0 | |
| acquisition | repeat | 1 |
| acquisition | repeat_interval | 0 |
| acquisition | spec_repeat | 1 |
| acquisition | spec_repeat_interval | 0 |
| acquisition | dre | dre_mode:Tic,enable:1,inj_size_init:60,inj_size_max:60,inj_size_max_retry:3,inj_size_min:20,max_times:10,method:{ average:1,inj_lmso_mz:-1,method_type:MS2_ISO,msn_paranms:[{},{cid_amp:0,iso_amp:0}]},notch_enable:0,notch_mz_list:[],target_tic:2000,target_tic_max:4000,target_tic_min:400 |
| acquisition | method | average:1,inj_size:60,msn_paranms:[{cid_amp:0,iso_amp:-1,iso_mz_width:-1,pre_iso_mz_width:-1},{cid_amp:0,iso_amp:-1,iso_mz_width:-1,pre_iso_mz_width:-1}],scan_mass_end:1000,scan_mass_start:50,scan_speed:1 |
| acquisition | exit_when_dre_failed | 0 |
| acquisition | ms1_iso_enable | 0 |
| acquisition | ms2_inherited_from_dre | 1 |
| acquisition | ms3_enable | 1 |
| evaluation | qual_model | cost,distance,fragment_dominance,isotope_probability,spec_availability,verbose |
| evaluation | qual_rule | neg_threshold:50、pos_threshold:70、description |
# 2 判断是否进入DRE流程
环节概述:
判断Targeted分析流程中是否需要运行DRE分析流程
判断依据:
dre.enable = 0 (未开启) | 1 (开启)
参数来源:
targeted.json/parameters/acquisition/dre
判断结果:
当开启DRE时(dre.enable = 1),执行DRE流程 (2.1);当未开启DRE时(dre.enable = 0),执行MS2扫描流程 (2.2)。
# 2.1 执行DRE流程
- DRE参数整合
环节概述:将当前物质的采集方法和DRE参数整合,用于后续执行DRE扫描流程。
参数来源:DB.cartridge、targeted.json
参数说明:参见MOS Doc / Guide / 方法参数配置指南
示例说明
| 内容 | 对应值 | 来源 |
|---|---|---|
| polarity | POS | DB.cartridge.method_params |
| spray_voltage | 4500 | DB.cartridge.method_params |
| msn_params | [{"cid_amp":2.0,"precursor_mz":185.107}] | DB.cartridge.method_params |
| precursor_mz_list | 170.084, 144.081, 158.096, 118.065, 168 | DB.spectrum.peaks |
| method_type | MS2_ISO | targeted.json/parameters/dre/method |
| average | 1 | targeted.json/parameters/dre/method |
| dre_mode | TIC | targeted.json/parameters/dre |
| enable | 1 | targeted.json/parameters/dre |
| inj_size_init | 60 | targeted.json/parameters/dre |
| inj_size_max | 60 | targeted.json/parameters/dre |
| inj_size_max_retry | 3 | targeted.json/parameters/dre |
| inj_size_min | 20 | targeted.json/parameters/dre |
| max_times | 10 | targeted.json/parameters/dre |
| notch_enable | 0 | targeted.json/parameters/dre |
| notch_mz_list | [] | targeted.json/parameters/dre |
| notch_mz_tol | 0.5 | targeted.json/parameters/dre |
| targeted_tic | 9000 | targeted.json/parameters/dre |
| targeted_tic_max | 15000 | targeted.json/parameters/dre |
| targeted_tic_min | 3000 | targeted.json/parameters/dre |
执行DRE扫描流程
判断DRE返回的结果状态
环节概述:判断DRE流程的结果状态
判断依据:
- 条件1:analysis_params_.acquisition.exit_when_dre_failed = 0 (未开启) | 1 (开启),默认为未开启 (Targeted流程的业务逻辑决定的)
- 条件2:DreExitWhenExceededMaxAttempts (max_times,超过最大尝试次数) 或返回的结果状态为Success
参数来源:
- exit_when_dre_failed:targeted.json/parameters/acquisition
- max_times:targeted.json/parameters/acquisition/dre
判断结果:
- 当"未开启DRE失败后退出流程(exit_when_dre_failed = 0)"并且返回结果为Success时,将最佳谱图的进样量作为当前物质的MS2进样量;
- 当"未开启DRE失败后退出流程(exit_when_dre_failed = 0)"并且DRE流程超过最大尝试次数,将最后一次DRE扫描谱图的进样量作为当前物质的MS2进样量;
- 其他情况均会停止分析流程,并提示"进样失败,请重试"。
- 判断DRE的谱图是否用于数据库匹配
环节概述:判断是否将DRE采集的谱图用于后续数据库匹配流程
判断依据:ms2_inherited_from_dre = 0 (未开启) | 1 (开启) ,默认为开启。
参数来源:targeted.json/parameters/acquisition
判断结果:
- 当开启时,最佳谱图用于后续的数据库匹配流程;
- 当未开启时,则进入MS2扫描流程。
# 2.2 执行MS2扫描流程
1) MS2采集方法参数整合
a. 根据Cartridge_Info.acquisition_params中的"group",判断当前待测物是采用默认采集参数(default)还是采用特定的采集参数(compound_code)。若为空,则采用默认参数。
b. 将static.json、targeted.json和Cartridge_Info中与acquisition.method_parameters相关的参数整合到Compounds_Spectra_Info.ms2.method_parameters。
c. 根据precursor计算lmco、iso_amp、pre_iso_amp、iso_mz_width、pre_iso_mz_width等参数。
内容 对应值 来源 method_type MS2 DB.cartridge.method_params polarity POS DB.cartridge.method_params spray_voltage 4500 DB.cartridge.method_params msn_params [{"cid_amp":2.0,"precursor_mz":185.107}] DB.cartridge.method_params cid_q 0.25 DB.cartridge.method_params inj_size 60 (默认,未开启DRE) 或DRE结果(未开启继承DRE谱图) targeted.json (当dre_enable = 0时) 或DRE结果 scan_mass_start 50 targeted.json/parameters/method scan_mass_end 1000 targeted.json/parameters/method scan_speed 1 targeted.json/parameters/method average 1 targeted.json/parameters/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 repeat 1 targeted.json/parameters repeat_interval 0 targeted.json/parameters spec_repeat 1 (spec_repeat和cycle取最大值) targeted.json/parameters spec_repeat_interval 0 targeted.json/parameters 2) 创建MS2扫描方程
3) 生成动态SWIFT
4) 判断预喷模式并执行预喷
- 假设前提:仪器经过正模式和负模式下各一次预喷雾后,仪器趋于稳定。
- 设计思路:
- a. 当流程开始后,首次进样前,判断是否为首次预喷。如果是,则直接执行预喷操作 (PRE_SPRAY_FORCE),如果不是,则判断是否为首次切换极性;
- b. 判断是否为首次切换极性。如果是,则执行预喷操作 (PRE_SPRAY_BY_POLARITY );
- c. 当首次预喷和首次切换极性均完成后,直到本次分析流程结束前,再无需进行预喷操作,直接切换极性即可 (SWITCH_POLARITY_ONLY)。
5) 执行扫描
# 3 数据库匹配
# 3.1 MS2谱图处理
1) 获取MS2谱图寻峰参数 (peak_picking)
参数内容
内容 对应值 来源 mass_bin_pts 50 common.json/base_analysis_params/acquisitions/algorithms/peak_picking max_count 2000 common.json/base_analysis_params/acquisitions/algorithms/peak_picking min_intensity_abs 8000 common.json/base_analysis_params/acquisitions/algorithms/peak_picking min_intensity_rel 0 common.json/base_analysis_params/acquisitions/algorithms/peak_picking 2) 对当前谱图进行寻峰
3) 获取质量数计算所需参数
- 参数内容
内容 对应值 来源 scan_mass_start 50 targeted.json/parameters/method scan_mass_end 2000 targeted.json/parameters/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 = 0.5645,c1 = 0.0192537,c2 = 0 instrument.json/parameters/spec_params/mass_calib mass_compensation.coef c0 = 0,c1 = 0,c2 = 0 instrument.json/parameters/spec_params/mass_compensation 4) 计算质量数
# 3.2 MS2谱图匹配
1) 获取MS2谱图匹配 (peak_matching)
参数内容内容 对应值 来源 ms1_mz_tol 0.5 common.json/base_analysis_params/acquisitions/algorithms/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谱图标准峰
3) 将当前待测物的实际峰与标准峰进行匹配,并标记匹配结果 (True / False)
# 4 根据MS2匹配结果决定下一步流程
判断依据:True (检出) | False (未检出)
判断结果:当匹配结果为检出(True) 时,则判断是否进入MS3扫描流程 (4.1);当匹配结果为未检出(False) 时,则判断是否进入MS1_ISO扫描流程 (4.2)。
# 4.1 MS3扫描流程
1) 判断是否执行MS3扫描流程
环节概述:当MS2谱图的匹配结果为检出时,需要判断是否开启MS3扫描流程以及当前待测物是否存在MS3谱图信息。
判断依据:ms3_enable = 0 (未开启) | 1 (开启) ,默认为开启;Compds. Spectra Info表中当前待测物是否存在MS3谱图信息。
参数来源:targeted.json/parameters/acquisition,Compds. Spectra Info.ms3
判断结果:
当开启MS3扫描流程,并且当前待测物存在MS3谱图信息时,执行MS3扫描流程 (4.1);
当未开启或当前待测物不存在MS3谱图信息时,则判断是否进入MS1_ISO扫描流程 (4.2)。
2) 整合MS3采集参数
待测物MS3谱图的采集参数来自Compds. Spectra Info.ms3,进样量为当前待测物MS2谱图的进样量 (即DRE最佳进样量)。3) 执行MS3采集流程
4) 执行MS3谱图处理
5) 执行数据库匹配
# 4.2 判断是否MS1_ISO扫描流程
环节概述:
本环节仅在开启时,才执行该扫描流程。判断依据:
ms1_iso_enable = 0 (未开启) | 1 (开启) ,默认为未开启。参数来源:
targeted.json/parameters/acquisition判断结果:
当选择开启时,执行MS1_ISO扫描流程;当未开启时,则进入谱图评分流程。
# 5 谱图评分
# 5.1 获取评价参数
qual_rule (targeted.json/parameters/evalution)、qual_model (targeted.json/parameters/evalution)
# 5.2 计算谱图得分
1) 获取评分权重 (cost)
参数来源:evalution/qual_model/cost
判断规则:判断是否存在MS3特征谱峰。若存在,则cost为1.0;若不存在,则cost为0.9。2) 计算谱库特征距离 (Distance)
参数来源:evalution/qual_model/distance3) 计算离子峰主导性 (Fragment dominance)
参数来源:evalution/qual_model/fragment_dominance4) 谱图有效性 (Spectrum Availability)
参数来源:evalution/qual_model/spec_availability5) 同位素可能性 (Isotope Probability)
参数来源:evalution/qual_model/isotope_probability6) 计算最终得分 (score)
计算公式=100 × cost × Distance × Fragment dominance × Spectrum Availability × Isotope Probability7) 根据得分和评判规则来对应最终结果
规则来源:evaluation/qual_rule
规则内容:Score <50,待测物为阴性;50≤ Score ≤70,待测物为弱阳性;Score > 70,待测物为阳性。
检测结果:阴性、弱阳性、阳性
# 6 判断是否遍历完成
- 环节概述:
判断待测物谱图信息是否遍历完成。 - 判断结果:
遍历完成,输出匹配结果列表(Result List);未遍历完成,继续下个待测物的检测。
# 三、结果文件输出
- 遍历匹配结果列表,按照待测物编号 (compound code)进行去重复,保留评分较高的匹配结果。
- 调用报告模板,将去重后的结果列表在 STD 界面展示
- 补充样本信息 (前台界面)
- 保存报告 (前台界面)
- 生成report.json (用于提升 STD 查询报告效率的索引,reports.json -> report.json)、MRZ 文件 (核心文件)、PDF 文件 (用于打印) 和 PNG 文件 (用于 STD 点击报告的展示)
- 分析流程结束,进行下一个检测