# Targeted Analysis 流程 v3.8.0.1Latest
示例来源:下述所有示例说明的数据来源为《重点检测毒物检测盒》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 / 方法参数配置指南
示例说明:
{
"cartridge_code": "CPT-7900",
"name_cn": "重点毒物PCS检测",
"name_en": "重点毒物PCS检测",
"description_cn": "重点毒物PCS检测盒",
"description_en": "重点毒物PCS检测盒",
"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": [],
"compounds_black_list":[],
"target_list":[]
},
"children": {},
"evaluation_params": {},
"acquisition_params": [],
"extra_params": {},
"scan_mode_list": [
"normal"
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 2.2 获取待测物编号 (Compound code)
# 2.2.1 未设置QC
获取流程(已判断binding_params.target_list为空):
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.2.2 已设置QC
获取流程(已判断binding_params.target_list不为空):
1) 通过试剂盒信息 (Cartridge Info) 中的绑定参数 (binding_params) ,获取binding_params.target_list中的内容
2) 遍历target_list中的内容,
若当前物质的类型 (type) 为"compound",则获取当前物质的编号 (compound_code)
若当前物质的类型 (type) 为"tag",则获取当前tag的编号 ()
若当前物质的类型 (type) 为"qc",则获取当前物质的编号 (compound_code) ,并标记为qc
3) 将绑定参数中黑名单 (compound_black_list) 包含的 compound code 进行剔除
4) 对剩余所有 compound code 进行去重复,获得最终的 Compound Code (标记为qc的物质不参与去重)
# 2.3 获取谱图信息 (Spectra Info)
环节概述:根据 Compound Code、当前设备类型 (device type) 和分析类型 (analysis type) ,在数据库中查询当前试剂盒对应的待测物信息 (Spectra Info)
参数来源:DB.spectrum、DB.compound、DB.experiment、DB.device_type
参数说明:参见MOS Doc / Guide / 方法参数配置指南
示例说明:
[
{
"spectrum_id": 1900,
"group": 3,
"compound_code": "100305",
"ms_level": 2,
"peaks": [{"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}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 2.0, "precursor_mz": 185.107}], "method_type": "MS2"},
"compound": {
"code": "100305",
"name_cn": "QC:百草枯",
"name_en": "QC:Paraquat dichloride",
"cas": "1910-42-5",
"mass": "256.053",
"formula": "C12H14Cl2N2",
"extra_data": {},
"is_qc":1,
"exit_when_qc_fail":0
}
},
{
"spectrum_id": 1900,
"group": 3,
"compound_code": "100305",
"ms_level": 2,
"peaks": [{"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}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 2.0, "precursor_mz": 185.107}], "method_type": "MS2"},
"compound": {
"code": "100305",
"name_cn": "百草枯",
"name_en": "Paraquat dichloride",
"cas": "1910-42-5",
"mass": "256.053",
"formula": "C12H14Cl2N2",
"extra_data": {"basis": ""}
}
},
{
"spectrum_id": 1695,
"group": 3,
"compound_code": "100308",
"ms_level": 2,
"peaks": [{"mz": 477.086, "intensity": 1.0}, {"mz": 371.144, "intensity": 0.63}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 2.5, "precursor_mz": 521.076}], "method_type": "MS2"},
"compound": {
"code": "100308",
"name_cn": "溴鼠灵(大隆)",
"name_en": "Brodifacoum",
"cas": "56073-10-0",
"mass": "522.083",
"formula": "C31H23BrO3",
"extra_data": {"basis": ""}
}
},
{
"spectrum_id": 1910,
"group": 2,
"compound_code": "100309",
"ms_level": 2,
"peaks": [{"mz": 250.064, "intensity": 1.0}, {"mz": 462.8, "intensity": 0.69}, {"mz": 386.9, "intensity": 0.3}, {"mz": 506.8, "intensity": 0.61}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 2.5, "precursor_mz": 525.071}], "method_type": "MS2"},
"compound": {
"code": "100309",
"name_cn": "溴敌隆",
"name_en": "Bromadiolone",
"cas": "28772-56-7",
"mass": "526.078",
"formula": "C30H23BrO4",
"extra_data": {"basis": ""}
}
},
{
"spectrum_id": 520,
"group": 1,
"compound_code": "100260",
"ms_level": 2,
"peaks": [{"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}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 1.5, "precursor_mz": 145.11}], "method_type": "MS2"},
"compound": {
"code": "100260",
"name_cn": "氯化琥珀胆碱",
"name_en": "Succinylcholine Chloride",
"cas": "71-27-2",
"mass": "360.158",
"formula": "C14H30Cl2N2O4",
"extra_data": {"basis": "临床药物"}
}
},
{
"spectrum_id": 1523,
"group": 2,
"compound_code": "100348",
"ms_level": 2,
"peaks": [{"mz": 157.076, "intensity": 1.0}, {"mz": 130, "intensity": 0.19}, {"mz": 168.068, "intensity": 0.0}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 2.0, "precursor_mz": 183.092}], "method_type": "MS2"},
"compound": {
"code": "100348",
"name_cn": "敌草快",
"name_en": "Diquat dibromide monohydrate",
"cas": "6385-62-2",
"mass": "359.947",
"formula": "C12H14Br2N2O",
"extra_data": {}
}
},
{
"spectrum_id": 1563,
"group": 2,
"compound_code": "100349",
"ms_level": 2,
"peaks": [{"mz": 149.996, "intensity": 1.0}, {"mz": 124.017, "intensity": 0.12}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 1.5, "precursor_mz": 168.007}], "method_type": "MS2"},
"compound": {
"code": "100349",
"name_cn": "草甘膦",
"name_en": "Glyphosate",
"cas": "1071-83-6",
"mass": "169.014",
"formula": "C3H8NO5P",
"extra_data": {}
}
},
{
"spectrum_id": 660,
"group": 1,
"compound_code": "100350",
"ms_level": 2,
"peaks": [{"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}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 1.7, "precursor_mz": 180.043}], "method_type": "MS2"},
"compound": {
"code": "100350",
"name_cn": "草铵膦",
"name_en": "Glufosinate-ammonium",
"cas": "77182-82-2",
"mass": "215.103",
"formula": "C5H18N3O4P",
"extra_data": {}
}
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# 2.4 获取待测物谱图信息 (Compds. Spectra Info)
参数来源:Spectra Info
示例说明:
[
{
"compound_code":"100305",
"ms2":{
"spectrum_id": 1900,
"group": 3,
"compound_code": "100305",
"ms_level": 2,
"peaks": [{"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}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 2.0, "precursor_mz": 185.107}], "method_type": "MS2"},
"compound": {
"code": "100305",
"name_cn": "QC:百草枯",
"name_en": "QC:Paraquat dichloride",
"cas": "1910-42-5",
"mass": "256.053",
"formula": "C12H14Cl2N2",
"extra_data": {},
"is_qc":1,
"exit_when_qc_fail":0}
},
"ms3":{}
},
{
"compound_code":"100305",
"ms2":{
"spectrum_id": 1900,
"group": 3,
"compound_code": "100305",
"ms_level": 2,
"peaks": [{"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}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 2.0, "precursor_mz": 185.107}], "method_type": "MS2"},
"compound": {
"code": "100305",
"name_cn": "百草枯",
"name_en": "Paraquat dichloride",
"cas": "1910-42-5",
"mass": "256.053",
"formula": "C12H14Cl2N2",
"extra_data": {}}
},
"ms3":{}
},
{
"compound_code":"100308",
"ms2":{
"spectrum_id": 1695,
"group": 3,
"compound_code": "100308",
"ms_level": 2,
"peaks": [{"mz": 477.086, "intensity": 1.0}, {"mz": 371.144, "intensity": 0.63}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 2.5, "precursor_mz": 521.076}], "method_type": "MS2"},
"compound": {
"code": "100308",
"name_cn": "溴鼠灵(大隆)",
"name_en": "Brodifacoum",
"cas": "56073-10-0",
"mass": "522.083",
"formula": "C31H23BrO3",
"extra_data": {"basis": ""}}
},
"ms3":{}
},
{
"compound_code":"100309",
"ms2":{
"spectrum_id": 1910,
"group": 2,
"compound_code": "100309",
"ms_level": 2,
"peaks": [{"mz": 250.064, "intensity": 1.0}, {"mz": 462.8, "intensity": 0.69}, {"mz": 386.9, "intensity": 0.3}, {"mz": 506.8, "intensity": 0.61}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 2.5, "precursor_mz": 525.071}], "method_type": "MS2"},
"compound": {
"code": "100309",
"name_cn": "溴敌隆",
"name_en": "Bromadiolone",
"cas": "28772-56-7",
"mass": "526.078",
"formula": "C30H23BrO4",
"extra_data": {"basis": ""}}
},
"ms3":{}
},
{
"compound_code":"100260",
"ms2":{
"spectrum_id": 520,
"group": 1,
"compound_code": "100260",
"ms_level": 2,
"peaks": [{"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}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 1.5, "precursor_mz": 145.11}], "method_type": "MS2"},
"compound": {
"code": "100260",
"name_cn": "氯化琥珀胆碱",
"name_en": "Succinylcholine Chloride",
"cas": "71-27-2",
"mass": "360.158",
"formula": "C14H30Cl2N2O4",
"extra_data": {"basis": "临床药物"}}
},
"ms3":{}
},
{
"compound_code":"100348",
"ms2":{
"spectrum_id": 1523,
"group": 2,
"compound_code": "100348",
"ms_level": 2,
"peaks": [{"mz": 157.076, "intensity": 1.0}, {"mz": 130, "intensity": 0.19}, {"mz": 168.068, "intensity": 0.0}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "POS", "msn_params": [{"cid_amp": 2.0, "precursor_mz": 183.092}], "method_type": "MS2"},
"compound": {
"code": "100348",
"name_cn": "敌草快",
"name_en": "Diquat dibromide monohydrate",
"cas": "6385-62-2",
"mass": "359.947",
"formula": "C12H14Br2N2O",
"extra_data": {}}
},
"ms3":{}
},
{
"compound_code":"100349",
"ms2":{
"spectrum_id": 1563,
"group": 2,
"compound_code": "100349",
"ms_level": 2,
"peaks": [{"mz": 149.996, "intensity": 1.0}, {"mz": 124.017, "intensity": 0.12}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 1.5, "precursor_mz": 168.007}], "method_type": "MS2"},
"compound": {
"code": "100349",
"name_cn": "草甘膦",
"name_en": "Glyphosate",
"cas": "1071-83-6",
"mass": "169.014",
"formula": "C3H8NO5P",
"extra_data": {}}
},
"ms3":{}
},
{
"compound_code":"100350",
"ms2":{
"spectrum_id": 660,
"group": 1,
"compound_code": "100350",
"ms_level": 2,
"peaks": [{"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}],
"extra_param": {},
"method_parameters": {"cid_q": 0.25, "polarity": "NEG", "msn_params": [{"cid_amp": 1.7, "precursor_mz": 180.043}], "method_type": "MS2"},
"compound": {
"code": "100350",
"name_cn": "草铵膦",
"name_en": "Glufosinate-ammonium",
"cas": "77182-82-2",
"mass": "215.103",
"formula": "C5H18N3O4P",
"extra_data": {}}
},
"ms3":{}
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# 二、分析流程执行
# 1 获取分析参数analysis_params_
环节概述:遍历待测物谱图信息,获取当前待测物的极性。根据当前极性,获取对应的分析参数。分析参数包括谱图采集参数(acquisition)和谱图评价参数(evaluation)。
参数来源:targeted.json、common.json
参数说明:参见MOS Doc / Guide / 方法参数配置指南
示例说明:
{
"cycle": 1,
"cycle_interval": 0,
"acquisition": {
"repeat": 1,
"repeat_interval": 0,
"spec_repeat": 1,
"spec_repeat_interval": 0,
"dre": {
"dre_mode": "TIC",
"enabled": 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_lmco_mz": -1,
"method_type": "MS2_ISO",
"msn_params": [
{},
{
"cid_amp": 0,
"iso_amp": 0
}
]
},
"notch_enabled": 0,
"notch_mz_list": [],
"target_tic": 2000,
"target_tic_max": 4000,
"target_tic_min": 400
},
"exit_when_dre_failed": 0,
"method": {
"average": 1,
"inj_size": 60,
"msn_params": [
{
"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
},
"ms1_iso_enabled": 0,
"ms2_inherited_from_dre": 1,
"ms3_enabled": 1
},
"evaluation": {
"qual_model": {
"cost": {
"enabled": 1,
"weights": {
"ms2": 0.9,
"ms3": 1
}
},
"distance": {
"enabled": 1,
"weights": {
"delta_intensity": 0.3,
"delta_mz": 0.5,
"delta_mz_rel": 0.2
}
},
"fragment_dominance": {
"enabled": 1,
"equation": {
"automatic": 0,
"coefs": {
"c0": 0,
"c1": 0,
"c2": 0
},
"mode": "piecewise_linear",
"mode_desc": "linear, poly_2, piecewise_linear, staircase",
"r2": 1,
"x": [
0,
0.6
],
"x_desc": "max relative intensity of fragments",
"y": [
0,
1
],
"y_desc": "fragment dominance"
},
"max_fragment_intensity_threshold": 300000.0
},
"isotope_probability": {
"enabled": 1,
"equation": {
"automatic": 0,
"coefs": {
"c0": 0,
"c1": 0,
"c2": 0
},
"mode": "piecewise_linear",
"mode_desc": "linear, poly_2, piecewise_linear, staircase",
"r2": 1,
"x": [
0,
1,
2
],
"x_desc": "r/r0, r represents actual isotope ratio and r0 represents theoretical isotope ratio calculated using mz_to_isotope_ratio",
"y": [
0.5,
0.5,
0
],
"y_desc": "isotope probability"
},
"mz_to_isotope_ratio_coefs": {
"c0": -0.0317,
"c1": 0.0009,
"c2": 0
}
},
"spec_availability": {
"enabled": 1,
"equation": {
"expression": [
{
"x": [
0,
1e5
],
"y": "0.8 * x / 1e5"
},
{
"x": [
1e5,
1e7
],
"y": "0.2 * log10(x) - 0.2"
},
{
"x": [
1e7,
1e9
],
"y": "1.2"
}
],
"mode": "expression",
"mode_desc": "linear, poly_2, piecewise_linear, staircase, expression",
"x_desc": "max intensity of fragments",
"y_desc": "spec_availability"
}
},
"verbose": 1
},
"qual_rule": {
"desc": "if score < neg_threshold, result is neg; if score >= pos_threshold, result is pos; otherwise result is weak pos",
"neg_threshold": 50,
"pos_threshold": 70
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# 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 / 方法参数配置指南
示例说明:
//以下参数来源:DB.cartridge.method_params
"polarity": "POS",
"spray_voltage": 4500,
"msn_params": [{"cid_amp":2.0,"precursor_mz":185.107}],
//以下参数来源:DB.spectrum.peaks
"precursor_mz_list": [170.084, 144.081, 158.096, 118.065, 168],
//以下参数来源:targeted.json/parameters/dre
"dre_mode": "TIC",
"enabled": 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_lmco_mz": -1,"method_type": "MS2_ISO","msn_params": [{},{"cid_amp": 0,"iso_amp": 0}]},
"notch_enabled": 0,
"notch_mz_list": [],
"target_tic": 2000,
"target_tic_max": 4000,
"target_tic_min": 400
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
执行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. 将common.json、targeted.json和Cartridge_Info中与采集方法相关的参数整合到Compounds_Spectra_Info.ms2.method_parameters。
c. 根据precursor计算lmco、iso_amp、pre_iso_amp、iso_mz_width、pre_iso_mz_width等参数。
示例说明
//以下参数来源:DB.cartridge.method_params
"method_type": "MS2"
"polarity": "POS",
"spray_voltage": 4500,
"msn_params": [{"cid_amp":2.0,"precursor_mz":185.107}],
"cid_q": 0.25,
//以下参数来源:targeted.json/parameters/acquisition/method 或者DRE的结果
"inj_size": "60 (默认,未开启DRE) 或DRE结果(未开启继承DRE谱图)"
//以下参数来源:targeted.json/parameters/acquisition/method
"repeat": 1,
"repeat_interval": 0,
"spec_repeat": 1,
"spec_repeat_interval": 0,
"average": 1,
"scan_mass_end": 1000,
"scan_mass_start": 50,
"scan_speed": 1,
//以下参数来源:common.json/method_parameters_default
"iso_q": 0.75,
"pre_iso_q": 0.75,
"pt_per_th": 100,
"scan_q": 0.75,
"trap_q": 0.3
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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)
参数内容
//以下参数来源:common.json/base_analysis_params/acquisition/algorithms/peak_picking
"distance_th": 0.5,
"max_count": 2000,
"min_intensity_abs": 8000,
"min_intensity_rel": 0,
"top_count": 2000
2
3
4
5
6
2) 对当前谱图进行寻峰
3) 获取质量数计算所需参数
- 参数内容
//以下参数来源:targeted.json/parameters/acquisition/method
"scan_mass_end": 1000,
"scan_mass_start": 50,
//以下参数来源:common.json/method_parameters_default
"pt_per_th": 100,
"scan_q": 0.75,
//以下参数来源:instrument.json/parameters/scan_profiles/"scan_mode": "normal"/spec_params/mass_calib
"coefs": {
"c0": 0.5645,
"c1": 0.0192537,
"c2": 0
}
//以下参数来源:instrument.json/parameters/scan_profiles/"scan_mode": "normal"/spec_params/mass_compensation
"coefs": {
"c0": 0,
"c1": 0,
"c2": 0
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- 4) 计算质量数
# 3.2 MS2谱图匹配
- 1) 获取MS2谱图匹配 (peak_matching)
参数内容
//以下参数来源:common.json/base_analysis_params/acquisition/algorithms/peak_matching
"ms1_mz_tol": 0.5,
"ms2_mz_tol": 0.5,
"ms3_mz_tol": 0.5,
//以下参数来源:common.json/base_analysis_params/acquisition/algorithms/peak_matching
"min_intensity_abs": 8000,
//以下参数来源:代码默认(acquisition.cpp)
"peak_match_any": 1,
"peak_matched_cnt_min": 1,
2
3
4
5
6
7
8
9
10
11
12
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)中,并判断结果中是否存在"QC检测失败"。
- 若存在"QC检测失败",并且当前QC物质配置了"检测失败退出流程",则流程终止,并在仪器界面报错提示"质控未通过"。
- 若存在"QC检测失败",并且当前QC物质未配置"检测失败退出流程",则流程继续,并在最终出具的报告中标记"检测无效(质控未通过)"。
# 7 判断是否遍历完成
- 环节概述:
判断待测物谱图信息是否遍历完成。 - 判断结果:
遍历完成,输出匹配结果列表(Result List);未遍历完成,继续下个待测物的检测。
# 三、结果文件输出
- 遍历匹配结果列表,按照待测物编号 (compound code)进行去重复,保留评分较高的匹配结果。
- 调用报告模板,将去重后的结果列表在 STD 界面展示
- 补充样本信息 (前台界面)
- 保存报告 (前台界面)
- 生成report.json (用于提升 STD 查询报告效率的索引,reports.json -> report.json)、MRZ 文件 (核心文件)、PDF 文件 (用于打印) 和 PNG 文件 (用于 STD 点击报告的展示)
- 分析流程结束,进行下一个检测