msfiddle 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- msfiddle/__init__.py +44 -0
- msfiddle/config/fiddle_tcn_casmi.yml +113 -0
- msfiddle/config/fiddle_tcn_demo.yml +121 -0
- msfiddle/config/fiddle_tcn_demo_wo_da.yml +121 -0
- msfiddle/config/fiddle_tcn_embl.yml +100 -0
- msfiddle/config/fiddle_tcn_orbitrap.yml +163 -0
- msfiddle/config/fiddle_tcn_qtof.yml +196 -0
- msfiddle/dataset.py +152 -0
- msfiddle/demo/input_msms.mgf +491 -0
- msfiddle/demo/output_buddy.csv +22 -0
- msfiddle/demo/output_fiddle.csv +22 -0
- msfiddle/demo/output_fiddle_all.csv +22 -0
- msfiddle/demo/output_sirius.csv +22 -0
- msfiddle/download.py +194 -0
- msfiddle/main.py +356 -0
- msfiddle/model_tcn.py +222 -0
- msfiddle/utils/__init__.py +40 -0
- msfiddle/utils/mol_utils.py +138 -0
- msfiddle/utils/msms_utils.py +312 -0
- msfiddle/utils/pkl_utils.py +372 -0
- msfiddle/utils/refine_utils.py +246 -0
- msfiddle-0.1.0.dist-info/METADATA +151 -0
- msfiddle-0.1.0.dist-info/RECORD +27 -0
- msfiddle-0.1.0.dist-info/WHEEL +5 -0
- msfiddle-0.1.0.dist-info/entry_points.txt +4 -0
- msfiddle-0.1.0.dist-info/licenses/LICENSE +661 -0
- msfiddle-0.1.0.dist-info/top_level.txt +1 -0
msfiddle/__init__.py
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""
|
|
2
|
+
msfiddle: A package for predicting chemical formulas from tandem mass spectra
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
__version__ = "0.1.0"
|
|
6
|
+
|
|
7
|
+
# Import main components to make them available at package level
|
|
8
|
+
from .model_tcn import MS2FNet_tcn, FDRNet
|
|
9
|
+
from .utils.mol_utils import vector_to_formula, formula_to_vector
|
|
10
|
+
from .utils.msms_utils import mass_calculator
|
|
11
|
+
from .utils.refine_utils import formula_refinement
|
|
12
|
+
from .main import test_step, rerank_by_fdr
|
|
13
|
+
from .download import check_models_exist, download_models, get_model_path
|
|
14
|
+
|
|
15
|
+
# Check if models are available and print a message if not
|
|
16
|
+
import os
|
|
17
|
+
import warnings
|
|
18
|
+
import sys
|
|
19
|
+
|
|
20
|
+
# Skip the warning if we're running the download command
|
|
21
|
+
is_download_command = any('download-models' in arg for arg in sys.argv)
|
|
22
|
+
|
|
23
|
+
if not is_download_command and not check_models_exist():
|
|
24
|
+
warnings.warn(
|
|
25
|
+
"Pre-trained models not found. To download them, run:\n"
|
|
26
|
+
" msfiddle-download-models\n\n"
|
|
27
|
+
"Or from Python:\n"
|
|
28
|
+
" from msfiddle import download_models\n"
|
|
29
|
+
" download_models()"
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
__all__ = [
|
|
33
|
+
'MS2FNet_tcn',
|
|
34
|
+
'FDRNet',
|
|
35
|
+
'formula_refinement',
|
|
36
|
+
'mass_calculator',
|
|
37
|
+
'vector_to_formula',
|
|
38
|
+
'formula_to_vector',
|
|
39
|
+
'test_step',
|
|
40
|
+
'rerank_by_fdr',
|
|
41
|
+
'download_models',
|
|
42
|
+
'check_models_exist',
|
|
43
|
+
'get_model_path',
|
|
44
|
+
]
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# ------------------------
|
|
2
|
+
# CASMI test
|
|
3
|
+
# ------------------------
|
|
4
|
+
casmi16:
|
|
5
|
+
instrument_type: ['LC-ESI-QFT']
|
|
6
|
+
instrument: ['Q Exactive Plus Orbitrap Thermo Scientific']
|
|
7
|
+
ms_level: 'MS2'
|
|
8
|
+
atom_type: ['C', 'O', 'N', 'H', 'P', 'S', 'F', 'Cl', 'B', 'Br', 'I', 'Na', 'K']
|
|
9
|
+
precursor_type: ['[M+H]+', '[M-H]-']
|
|
10
|
+
min_mz: 50
|
|
11
|
+
max_mz: 1500
|
|
12
|
+
min_peak_num: 5
|
|
13
|
+
max_atom_num: 300
|
|
14
|
+
min_atom_num: 10
|
|
15
|
+
ppm_tolerance: 10
|
|
16
|
+
|
|
17
|
+
casmi17:
|
|
18
|
+
instrument_type: ['LC-ESI-QTOF']
|
|
19
|
+
instrument: ['LC-ESI-QTOF']
|
|
20
|
+
ms_level: 'MS2'
|
|
21
|
+
atom_type: ['C', 'O', 'N', 'H', 'P', 'S', 'F', 'Cl', 'B', 'Br', 'I', 'Na', 'K']
|
|
22
|
+
precursor_type: ['[M+H]+', '[M-H]-']
|
|
23
|
+
min_mz: 50
|
|
24
|
+
max_mz: 1500
|
|
25
|
+
min_peak_num: 5
|
|
26
|
+
max_atom_num: 300
|
|
27
|
+
min_atom_num: 10
|
|
28
|
+
ppm_tolerance: 10
|
|
29
|
+
|
|
30
|
+
# ------------------------
|
|
31
|
+
# model settings
|
|
32
|
+
# ------------------------
|
|
33
|
+
encoding:
|
|
34
|
+
resolution: 0.2
|
|
35
|
+
max_mz: 1500
|
|
36
|
+
max_atom_num: 300
|
|
37
|
+
use_simulated_precursor_mz: True
|
|
38
|
+
precursor_type:
|
|
39
|
+
'[M+H]+': 1
|
|
40
|
+
'[M-H]-': 2
|
|
41
|
+
'[M+Na]+': 3
|
|
42
|
+
'[M+2H]2+': 4
|
|
43
|
+
'[2M+H]+': 5
|
|
44
|
+
'[2M-H]-': 6
|
|
45
|
+
|
|
46
|
+
type2charge:
|
|
47
|
+
'[M+H]+': '+1'
|
|
48
|
+
'[M-H]-': '-1'
|
|
49
|
+
'[M+Na]+': '+1'
|
|
50
|
+
'[M+2H]2+': '+2'
|
|
51
|
+
'[2M+H]+': '+1'
|
|
52
|
+
'[2M-H]-': '-1'
|
|
53
|
+
|
|
54
|
+
'[M+H-H2O]+': '+1'
|
|
55
|
+
'[M-H2O+H]+': '+1'
|
|
56
|
+
'[M+H-2H2O]+': '+1'
|
|
57
|
+
'[M+H-NH3]+': '+1'
|
|
58
|
+
'[M+H+NH3]+': '+1'
|
|
59
|
+
'[M+NH4]+': '+1'
|
|
60
|
+
'[M+H-CH2O2]+': '+1'
|
|
61
|
+
'[M+H-CH4O2]+': '+1'
|
|
62
|
+
|
|
63
|
+
'[M-H-CO2]-': '-1'
|
|
64
|
+
'[M-CHO2]-': '-1'
|
|
65
|
+
'[M-H-H2O]-': '-1'
|
|
66
|
+
'[M-H2O-H]+': '-1'
|
|
67
|
+
|
|
68
|
+
model:
|
|
69
|
+
resolution: 0.2
|
|
70
|
+
max_mz: 1500
|
|
71
|
+
padding_dim: 20 # 1500 / 0.2 = 7500; 7500 / 2**5 (# pooling layer) = 234.375; 235 * (2**5) = 7520
|
|
72
|
+
num_add: 6
|
|
73
|
+
input_channels: 1
|
|
74
|
+
|
|
75
|
+
tcn_channels: [32, 32, 64, 128, 256, 512]
|
|
76
|
+
tcn_dilations: [1, 2, 4, 8, 8, 8]
|
|
77
|
+
tcn_kernel_sizes: [45, 43, 41, 39, 37, 35]
|
|
78
|
+
tcn_dropout: 0.2
|
|
79
|
+
|
|
80
|
+
# metadata_dim: 16
|
|
81
|
+
add_embedding_dim: 4
|
|
82
|
+
ce_embedding_dim: 4
|
|
83
|
+
mass_embedding_dim: 4
|
|
84
|
+
embedding_dim: 512
|
|
85
|
+
|
|
86
|
+
formula_decoder_layers: [416, 208, 104, 52, 26, 13]
|
|
87
|
+
mass_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
88
|
+
atomnum_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
89
|
+
hcnum_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
90
|
+
output_dim: 13
|
|
91
|
+
|
|
92
|
+
fdr_decoder_layers: [416, 208, 104, 26, 13]
|
|
93
|
+
|
|
94
|
+
# ------------------------
|
|
95
|
+
# training settings
|
|
96
|
+
# ------------------------
|
|
97
|
+
# unimplemented
|
|
98
|
+
|
|
99
|
+
# ------------------------
|
|
100
|
+
# postprocessing settings
|
|
101
|
+
# ------------------------
|
|
102
|
+
post_processing:
|
|
103
|
+
refine_atom_type: ['C', 'O', 'N', 'H']
|
|
104
|
+
refine_atom_num: [3, 3, 3, -1]
|
|
105
|
+
|
|
106
|
+
mass_tolerance: 5.0 # target space
|
|
107
|
+
ppm_mode: True
|
|
108
|
+
time_out: -1 # do not limit the time
|
|
109
|
+
maxium_miss_atom_num: 50 # search space
|
|
110
|
+
top_k: 5
|
|
111
|
+
buddy_fdr_thr: 0.6
|
|
112
|
+
sirius_score_thr: -5
|
|
113
|
+
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# ------------------------
|
|
2
|
+
# QTOF train & validation
|
|
3
|
+
# ------------------------
|
|
4
|
+
mona_qtof:
|
|
5
|
+
instrument_type: ['LC-ESI-QTOF',
|
|
6
|
+
'ESI-QFT']
|
|
7
|
+
instrument: ['Agilent 6530 Q-TOF', 'Waters Xevo G2 Q-Tof', 'Agilent qTOF 6545', 'Agilent 6550 iFunnel']
|
|
8
|
+
ms_level: 'MS2'
|
|
9
|
+
atom_type: ['C', 'O', 'N', 'H', 'P', 'S', 'F', 'Cl', 'B', 'Br', 'I', 'Na', 'K']
|
|
10
|
+
precursor_type: ['[M+H]+', '[M+Na]+', '[2M+H]+', # +1
|
|
11
|
+
'[M+H-H2O]+', '[M-H2O+H]+', '[M+H-2H2O]+', '[M+H-NH3]+', '[M+H+NH3]+', '[M+NH4]+', '[M+H-CH2O2]+', '[M+H-CH4O2]+', # +1+-neutrue
|
|
12
|
+
'[M-H]-', '[2M-H]-', # -1
|
|
13
|
+
'[M-H-CO2]-', '[M-CHO2]-', '[M-H-H2O]-', '[M-H2O-H]-', # -1+-neutrue
|
|
14
|
+
'[M+2H]2+', ] # +2
|
|
15
|
+
min_mz: 50
|
|
16
|
+
max_mz: 1500
|
|
17
|
+
min_peak_num: 5
|
|
18
|
+
max_atom_num: 300
|
|
19
|
+
min_atom_num: 10
|
|
20
|
+
ppm_tolerance: 10
|
|
21
|
+
|
|
22
|
+
# ------------------------
|
|
23
|
+
# model settings
|
|
24
|
+
# ------------------------
|
|
25
|
+
encoding:
|
|
26
|
+
resolution: 0.2
|
|
27
|
+
max_mz: 1500
|
|
28
|
+
max_atom_num: 300
|
|
29
|
+
use_simulated_precursor_mz: False
|
|
30
|
+
|
|
31
|
+
precursor_type:
|
|
32
|
+
'[M+H]+': 1
|
|
33
|
+
'[M-H]-': 2
|
|
34
|
+
'[M+Na]+': 3
|
|
35
|
+
'[M+2H]2+': 4
|
|
36
|
+
'[2M+H]+': 5
|
|
37
|
+
'[2M-H]-': 6
|
|
38
|
+
|
|
39
|
+
type2charge:
|
|
40
|
+
'[M+H]+': '+1'
|
|
41
|
+
'[M-H]-': '-1'
|
|
42
|
+
'[M+Na]+': '+1'
|
|
43
|
+
'[M+2H]2+': '+2'
|
|
44
|
+
'[2M+H]+': '+1'
|
|
45
|
+
'[2M-H]-': '-1'
|
|
46
|
+
|
|
47
|
+
'[M+H-H2O]+': '+1'
|
|
48
|
+
'[M-H2O+H]+': '+1'
|
|
49
|
+
'[M+H-2H2O]+': '+1'
|
|
50
|
+
'[M+H-NH3]+': '+1'
|
|
51
|
+
'[M+H+NH3]+': '+1'
|
|
52
|
+
'[M+NH4]+': '+1'
|
|
53
|
+
'[M+H-CH2O2]+': '+1'
|
|
54
|
+
'[M+H-CH4O2]+': '+1'
|
|
55
|
+
|
|
56
|
+
'[M-H-CO2]-': '-1'
|
|
57
|
+
'[M-CHO2]-': '-1'
|
|
58
|
+
'[M-H-H2O]-': '-1'
|
|
59
|
+
'[M-H2O-H]+': '-1'
|
|
60
|
+
|
|
61
|
+
model:
|
|
62
|
+
resolution: 0.2
|
|
63
|
+
max_mz: 1500
|
|
64
|
+
padding_dim: 20 # 1500 / 0.2 = 7500; 7500 / 2**5 (# pooling layer) = 234.375; 235 * (2**5) = 7520
|
|
65
|
+
num_add: 6
|
|
66
|
+
input_channels: 1
|
|
67
|
+
|
|
68
|
+
tcn_channels: [32, 32, 64, 128, 256, 512]
|
|
69
|
+
tcn_dilations: [1, 2, 4, 8, 8, 8]
|
|
70
|
+
tcn_kernel_sizes: [45, 43, 41, 39, 37, 35]
|
|
71
|
+
tcn_dropout: 0.2
|
|
72
|
+
|
|
73
|
+
# metadata_dim: 16
|
|
74
|
+
add_embedding_dim: 4
|
|
75
|
+
ce_embedding_dim: 4
|
|
76
|
+
mass_embedding_dim: 4
|
|
77
|
+
embedding_dim: 512
|
|
78
|
+
|
|
79
|
+
formula_decoder_layers: [416, 208, 104, 52, 26, 13]
|
|
80
|
+
mass_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
81
|
+
atomnum_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
82
|
+
hcnum_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
83
|
+
output_dim: 13
|
|
84
|
+
|
|
85
|
+
fdr_decoder_layers: [416, 208, 104, 26, 13]
|
|
86
|
+
|
|
87
|
+
# ------------------------
|
|
88
|
+
# training settings
|
|
89
|
+
# ------------------------
|
|
90
|
+
train:
|
|
91
|
+
epochs: 200
|
|
92
|
+
batch_size: 128
|
|
93
|
+
num_workers: 8
|
|
94
|
+
lr: 0.001
|
|
95
|
+
weight_decay: 0.01
|
|
96
|
+
warmup_ratio: 0.1
|
|
97
|
+
early_stop_step: 10
|
|
98
|
+
patience: 5
|
|
99
|
+
noised_times: 3
|
|
100
|
+
|
|
101
|
+
train_fdr:
|
|
102
|
+
epochs: 10
|
|
103
|
+
batch_size: 128
|
|
104
|
+
num_workers: 8
|
|
105
|
+
lr: 0.0001
|
|
106
|
+
early_stop_step: 10
|
|
107
|
+
|
|
108
|
+
# ------------------------
|
|
109
|
+
# postprocessing settings
|
|
110
|
+
# ------------------------
|
|
111
|
+
post_processing:
|
|
112
|
+
refine_atom_type: ['C', 'O', 'N', 'H']
|
|
113
|
+
refine_atom_num: [5, 5, 5, -1]
|
|
114
|
+
|
|
115
|
+
mass_tolerance: 10.0 # target space
|
|
116
|
+
ppm_mode: True
|
|
117
|
+
time_out: -1 # do not limit the time
|
|
118
|
+
maxium_miss_atom_num: 50 # search space
|
|
119
|
+
top_k: 5
|
|
120
|
+
buddy_fdr_thr: 0.6
|
|
121
|
+
sirius_score_thr: -5
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# ------------------------
|
|
2
|
+
# QTOF train & validation
|
|
3
|
+
# ------------------------
|
|
4
|
+
mona_qtof:
|
|
5
|
+
instrument_type: ['LC-ESI-QTOF',
|
|
6
|
+
'ESI-QFT']
|
|
7
|
+
instrument: ['Agilent 6530 Q-TOF', 'Waters Xevo G2 Q-Tof', 'Agilent qTOF 6545', 'Agilent 6550 iFunnel']
|
|
8
|
+
ms_level: 'MS2'
|
|
9
|
+
atom_type: ['C', 'O', 'N', 'H', 'P', 'S', 'F', 'Cl', 'B', 'Br', 'I', 'Na', 'K']
|
|
10
|
+
precursor_type: ['[M+H]+', '[M+Na]+', '[2M+H]+', # +1
|
|
11
|
+
'[M+H-H2O]+', '[M-H2O+H]+', '[M+H-2H2O]+', '[M+H-NH3]+', '[M+H+NH3]+', '[M+NH4]+', '[M+H-CH2O2]+', '[M+H-CH4O2]+', # +1+-neutrue
|
|
12
|
+
'[M-H]-', '[2M-H]-', # -1
|
|
13
|
+
'[M-H-CO2]-', '[M-CHO2]-', '[M-H-H2O]-', '[M-H2O-H]-', # -1+-neutrue
|
|
14
|
+
'[M+2H]2+', ] # +2
|
|
15
|
+
min_mz: 50
|
|
16
|
+
max_mz: 1500
|
|
17
|
+
min_peak_num: 5
|
|
18
|
+
max_atom_num: 300
|
|
19
|
+
min_atom_num: 10
|
|
20
|
+
ppm_tolerance: 10
|
|
21
|
+
|
|
22
|
+
# ------------------------
|
|
23
|
+
# model settings
|
|
24
|
+
# ------------------------
|
|
25
|
+
encoding:
|
|
26
|
+
resolution: 0.2
|
|
27
|
+
max_mz: 1500
|
|
28
|
+
max_atom_num: 300
|
|
29
|
+
use_simulated_precursor_mz: True
|
|
30
|
+
|
|
31
|
+
precursor_type:
|
|
32
|
+
'[M+H]+': 1
|
|
33
|
+
'[M-H]-': 2
|
|
34
|
+
'[M+Na]+': 3
|
|
35
|
+
'[M+2H]2+': 4
|
|
36
|
+
'[2M+H]+': 5
|
|
37
|
+
'[2M-H]-': 6
|
|
38
|
+
|
|
39
|
+
type2charge:
|
|
40
|
+
'[M+H]+': '+1'
|
|
41
|
+
'[M-H]-': '-1'
|
|
42
|
+
'[M+Na]+': '+1'
|
|
43
|
+
'[M+2H]2+': '+2'
|
|
44
|
+
'[2M+H]+': '+1'
|
|
45
|
+
'[2M-H]-': '-1'
|
|
46
|
+
|
|
47
|
+
'[M+H-H2O]+': '+1'
|
|
48
|
+
'[M-H2O+H]+': '+1'
|
|
49
|
+
'[M+H-2H2O]+': '+1'
|
|
50
|
+
'[M+H-NH3]+': '+1'
|
|
51
|
+
'[M+H+NH3]+': '+1'
|
|
52
|
+
'[M+NH4]+': '+1'
|
|
53
|
+
'[M+H-CH2O2]+': '+1'
|
|
54
|
+
'[M+H-CH4O2]+': '+1'
|
|
55
|
+
|
|
56
|
+
'[M-H-CO2]-': '-1'
|
|
57
|
+
'[M-CHO2]-': '-1'
|
|
58
|
+
'[M-H-H2O]-': '-1'
|
|
59
|
+
'[M-H2O-H]+': '-1'
|
|
60
|
+
|
|
61
|
+
model:
|
|
62
|
+
resolution: 0.2
|
|
63
|
+
max_mz: 1500
|
|
64
|
+
padding_dim: 20 # 1500 / 0.2 = 7500; 7500 / 2**5 (# pooling layer) = 234.375; 235 * (2**5) = 7520
|
|
65
|
+
num_add: 6
|
|
66
|
+
input_channels: 1
|
|
67
|
+
|
|
68
|
+
tcn_channels: [32, 32, 64, 128, 256, 512]
|
|
69
|
+
tcn_dilations: [1, 2, 4, 8, 8, 8]
|
|
70
|
+
tcn_kernel_sizes: [45, 43, 41, 39, 37, 35]
|
|
71
|
+
tcn_dropout: 0.2
|
|
72
|
+
|
|
73
|
+
# metadata_dim: 16
|
|
74
|
+
add_embedding_dim: 4
|
|
75
|
+
ce_embedding_dim: 4
|
|
76
|
+
mass_embedding_dim: 4
|
|
77
|
+
embedding_dim: 512
|
|
78
|
+
|
|
79
|
+
formula_decoder_layers: [416, 208, 104, 52, 26, 13]
|
|
80
|
+
mass_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
81
|
+
atomnum_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
82
|
+
hcnum_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
83
|
+
output_dim: 13
|
|
84
|
+
|
|
85
|
+
fdr_decoder_layers: [416, 208, 104, 26, 13]
|
|
86
|
+
|
|
87
|
+
# ------------------------
|
|
88
|
+
# training settings
|
|
89
|
+
# ------------------------
|
|
90
|
+
train:
|
|
91
|
+
epochs: 200
|
|
92
|
+
batch_size: 128
|
|
93
|
+
num_workers: 8
|
|
94
|
+
lr: 0.001
|
|
95
|
+
weight_decay: 0.01
|
|
96
|
+
warmup_ratio: 0.1
|
|
97
|
+
early_stop_step: 10
|
|
98
|
+
patience: 5
|
|
99
|
+
noised_times: 0
|
|
100
|
+
|
|
101
|
+
train_fdr:
|
|
102
|
+
epochs: 10
|
|
103
|
+
batch_size: 128
|
|
104
|
+
num_workers: 8
|
|
105
|
+
lr: 0.0001
|
|
106
|
+
early_stop_step: 10
|
|
107
|
+
|
|
108
|
+
# ------------------------
|
|
109
|
+
# postprocessing settings
|
|
110
|
+
# ------------------------
|
|
111
|
+
post_processing:
|
|
112
|
+
refine_atom_type: ['C', 'O', 'N', 'H']
|
|
113
|
+
refine_atom_num: [5, 5, 5, -1]
|
|
114
|
+
|
|
115
|
+
mass_tolerance: 10.0 # target space
|
|
116
|
+
ppm_mode: True
|
|
117
|
+
time_out: -1 # do not limit the time
|
|
118
|
+
maxium_miss_atom_num: 50 # search space
|
|
119
|
+
top_k: 5
|
|
120
|
+
buddy_fdr_thr: 0.6
|
|
121
|
+
sirius_score_thr: -5
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# ------------------------
|
|
2
|
+
# EMBL MCF 2.0
|
|
3
|
+
# ------------------------
|
|
4
|
+
embl:
|
|
5
|
+
atom_type: ['C', 'O', 'N', 'H', 'P', 'S', 'F', 'Cl', 'B', 'Br', 'I', 'Na', 'K']
|
|
6
|
+
precursor_type: ['[M+H]+', '[M+Na]+', '[2M+H]+', # +1
|
|
7
|
+
'[M+H-H2O]+', '[M-H2O+H]+', '[M+H-2H2O]+', '[M+H-NH3]+', '[M+H+NH3]+', '[M+NH4]+', '[M+H-CH2O2]+', '[M+H-CH4O2]+', # +1+-neutrue
|
|
8
|
+
'[M-H]-', '[2M-H]-', # -1
|
|
9
|
+
'[M-H-CO2]-', '[M-CHO2]-', '[M-H-H2O]-', '[M-H2O-H]-', # -1+-neutrue
|
|
10
|
+
'[M+2H]2+', ]
|
|
11
|
+
min_mz: 50
|
|
12
|
+
max_mz: 1500
|
|
13
|
+
min_peak_num: 5
|
|
14
|
+
max_atom_num: 300
|
|
15
|
+
min_atom_num: 10
|
|
16
|
+
ppm_tolerance: 50
|
|
17
|
+
|
|
18
|
+
# ------------------------
|
|
19
|
+
# model settings
|
|
20
|
+
# ------------------------
|
|
21
|
+
encoding:
|
|
22
|
+
resolution: 0.2
|
|
23
|
+
max_mz: 1500
|
|
24
|
+
max_atom_num: 300
|
|
25
|
+
use_simulated_precursor_mz: False
|
|
26
|
+
precursor_type:
|
|
27
|
+
'[M+H]+': 1
|
|
28
|
+
'[M-H]-': 2
|
|
29
|
+
'[M+Na]+': 3
|
|
30
|
+
'[M+2H]2+': 4
|
|
31
|
+
'[2M+H]+': 5
|
|
32
|
+
'[2M-H]-': 6
|
|
33
|
+
|
|
34
|
+
type2charge:
|
|
35
|
+
'[M+H]+': '+1'
|
|
36
|
+
'[M-H]-': '-1'
|
|
37
|
+
'[M+Na]+': '+1'
|
|
38
|
+
'[M+2H]2+': '+2'
|
|
39
|
+
'[2M+H]+': '+1'
|
|
40
|
+
'[2M-H]-': '-1'
|
|
41
|
+
|
|
42
|
+
'[M+H-H2O]+': '+1'
|
|
43
|
+
'[M-H2O+H]+': '+1'
|
|
44
|
+
'[M+H-2H2O]+': '+1'
|
|
45
|
+
'[M+H-NH3]+': '+1'
|
|
46
|
+
'[M+H+NH3]+': '+1'
|
|
47
|
+
'[M+NH4]+': '+1'
|
|
48
|
+
'[M+H-CH2O2]+': '+1'
|
|
49
|
+
'[M+H-CH4O2]+': '+1'
|
|
50
|
+
|
|
51
|
+
'[M-H-CO2]-': '-1'
|
|
52
|
+
'[M-CHO2]-': '-1'
|
|
53
|
+
'[M-H-H2O]-': '-1'
|
|
54
|
+
'[M-H2O-H]+': '-1'
|
|
55
|
+
|
|
56
|
+
model:
|
|
57
|
+
resolution: 0.2
|
|
58
|
+
max_mz: 1500
|
|
59
|
+
padding_dim: 20 # 1500 / 0.2 = 7500; 7500 / 2**5 (# pooling layer) = 234.375; 235 * (2**5) = 7520
|
|
60
|
+
num_add: 6
|
|
61
|
+
input_channels: 1
|
|
62
|
+
|
|
63
|
+
tcn_channels: [32, 32, 64, 128, 256, 512]
|
|
64
|
+
tcn_dilations: [1, 2, 4, 8, 8, 8]
|
|
65
|
+
tcn_kernel_sizes: [45, 43, 41, 39, 37, 35]
|
|
66
|
+
tcn_dropout: 0.2
|
|
67
|
+
|
|
68
|
+
# metadata_dim: 16
|
|
69
|
+
add_embedding_dim: 4
|
|
70
|
+
ce_embedding_dim: 4
|
|
71
|
+
mass_embedding_dim: 4
|
|
72
|
+
embedding_dim: 512
|
|
73
|
+
|
|
74
|
+
formula_decoder_layers: [416, 208, 104, 52, 26, 13]
|
|
75
|
+
mass_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
76
|
+
atomnum_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
77
|
+
hcnum_decoder_layers: [416, 208, 104, 26, 13, 1]
|
|
78
|
+
output_dim: 13
|
|
79
|
+
|
|
80
|
+
fdr_decoder_layers: [416, 208, 104, 26, 13]
|
|
81
|
+
|
|
82
|
+
# ------------------------
|
|
83
|
+
# training settings
|
|
84
|
+
# ------------------------
|
|
85
|
+
# unimplemented
|
|
86
|
+
|
|
87
|
+
# ------------------------
|
|
88
|
+
# postprocessing settings
|
|
89
|
+
# ------------------------
|
|
90
|
+
post_processing:
|
|
91
|
+
refine_atom_type: ['C', 'O', 'N', 'H']
|
|
92
|
+
refine_atom_num: [3, 3, 3, -1]
|
|
93
|
+
|
|
94
|
+
mass_tolerance: 10.0 # target space
|
|
95
|
+
ppm_mode: True
|
|
96
|
+
time_out: -1 # do not limit the time
|
|
97
|
+
maxium_miss_atom_num: 50 # search space
|
|
98
|
+
top_k: 5
|
|
99
|
+
buddy_fdr_thr: 0.6
|
|
100
|
+
sirius_score_thr: -5
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# ------------------------
|
|
2
|
+
# Orbitrap train & validation
|
|
3
|
+
# ------------------------
|
|
4
|
+
nist20_orbitrap:
|
|
5
|
+
instrument_type: HCD
|
|
6
|
+
instrument: ['Thermo Finnigan Elite Orbitrap']
|
|
7
|
+
ms_level: 'MS2'
|
|
8
|
+
atom_type: ['C', 'O', 'N', 'H', 'P', 'S', 'F', 'Cl', 'B', 'Br', 'I', 'Na', 'K']
|
|
9
|
+
precursor_type: ['[M+H]+', '[M+Na]+', '[2M+H]+', # +1
|
|
10
|
+
'[M+H-H2O]+', '[M-H2O+H]+', '[M+H-2H2O]+', '[M+H-NH3]+', '[M+H+NH3]+', '[M+NH4]+', '[M+H-CH2O2]+', '[M+H-CH4O2]+', # +1+-neutrue
|
|
11
|
+
'[M-H]-', '[2M-H]-', # -1
|
|
12
|
+
'[M-H-CO2]-', '[M-CHO2]-', '[M-H-H2O]-', '[M-H2O-H]-', # -1+-neutrue
|
|
13
|
+
'[M+2H]2+', ] # +2
|
|
14
|
+
min_mz: 50
|
|
15
|
+
max_mz: 1500
|
|
16
|
+
min_peak_num: 5
|
|
17
|
+
max_atom_num: 300
|
|
18
|
+
min_atom_num: 10
|
|
19
|
+
ppm_tolerance: 5
|
|
20
|
+
|
|
21
|
+
nist23_orbitrap:
|
|
22
|
+
instrument_type: HCD
|
|
23
|
+
instrument: ['Thermo Finnigan Elite Orbitrap']
|
|
24
|
+
ms_level: 'MS2'
|
|
25
|
+
atom_type: ['C', 'O', 'N', 'H', 'P', 'S', 'F', 'Cl', 'B', 'Br', 'I', 'Na', 'K']
|
|
26
|
+
precursor_type: ['[M+H]+', '[M+Na]+', '[2M+H]+', # +1
|
|
27
|
+
'[M+H-H2O]+', '[M-H2O+H]+', '[M+H-2H2O]+', '[M+H-NH3]+', '[M+H+NH3]+', '[M+NH4]+', '[M+H-CH2O2]+', '[M+H-CH4O2]+', # +1+-neutrue
|
|
28
|
+
'[M-H]-', '[2M-H]-', # -1
|
|
29
|
+
'[M-H-CO2]-', '[M-CHO2]-', '[M-H-H2O]-', '[M-H2O-H]-', # -1+-neutrue
|
|
30
|
+
'[M+2H]2+', ] # +2
|
|
31
|
+
min_mz: 50
|
|
32
|
+
max_mz: 1500
|
|
33
|
+
min_peak_num: 5
|
|
34
|
+
max_atom_num: 300
|
|
35
|
+
min_atom_num: 10
|
|
36
|
+
ppm_tolerance: 5
|
|
37
|
+
|
|
38
|
+
mona_orbitrap:
|
|
39
|
+
intrument_type: ['LC-ESI-QFT', 'LC-ESI-Q-Orbitrap']
|
|
40
|
+
instrument: ['Thermo Q Exactive HF', 'Q Exactive Orbitrap (Thermo Scientific)', 'Q Exactive Plus Orbitrap Thermo Scientific']
|
|
41
|
+
ms_level: 'MS2'
|
|
42
|
+
atom_type: ['C', 'O', 'N', 'H', 'P', 'S', 'F', 'Cl', 'B', 'Br', 'I', 'Na', 'K']
|
|
43
|
+
precursor_type: ['[M+H]+', '[M-H]-', '[M+H-H2O]+', '[M+Na]+', '[M+2H]2+', '[2M+H]+', '[2M-H]-', '[M-H2O+H]+', '[M-H2O-H]-']
|
|
44
|
+
min_mz: 50
|
|
45
|
+
max_mz: 1500
|
|
46
|
+
min_peak_num: 5
|
|
47
|
+
max_atom_num: 300
|
|
48
|
+
min_atom_num: 10
|
|
49
|
+
ppm_tolerance: 5
|
|
50
|
+
|
|
51
|
+
gnps_orbitrap:
|
|
52
|
+
instrument_type: ['hcd']
|
|
53
|
+
instrument: ['orbitrap']
|
|
54
|
+
atom_type: ['C', 'O', 'N', 'H', 'P', 'S', 'F', 'Cl', 'B', 'Br', 'I', 'Na', 'K']
|
|
55
|
+
precursor_type: ['[M+H]+', '[M-H]-', '[M+H-H2O]+', '[M+Na]+', '[M+2H]2+', '[2M+H]+', '[2M-H]-', '[M-H2O+H]+', '[M-H2O-H]-']
|
|
56
|
+
min_mz: 50
|
|
57
|
+
max_mz: 1500
|
|
58
|
+
min_peak_num: 5
|
|
59
|
+
max_atom_num: 300
|
|
60
|
+
min_atom_num: 10
|
|
61
|
+
ppm_tolerance: 5
|
|
62
|
+
|
|
63
|
+
# ------------------------
|
|
64
|
+
# model settings
|
|
65
|
+
# ------------------------
|
|
66
|
+
encoding:
|
|
67
|
+
resolution: 0.2
|
|
68
|
+
max_mz: 1500
|
|
69
|
+
max_peak_num: 512
|
|
70
|
+
max_atom_num: 300
|
|
71
|
+
use_simulated_precursor_mz: False
|
|
72
|
+
|
|
73
|
+
precursor_type:
|
|
74
|
+
'[M+H]+': 1
|
|
75
|
+
'[M-H]-': 2
|
|
76
|
+
'[M+Na]+': 3
|
|
77
|
+
'[M+2H]2+': 4
|
|
78
|
+
'[2M+H]+': 5
|
|
79
|
+
'[2M-H]-': 6
|
|
80
|
+
type2charge:
|
|
81
|
+
'[M+H]+': '+1'
|
|
82
|
+
'[M-H]-': '-1'
|
|
83
|
+
'[M+Na]+': '+1'
|
|
84
|
+
'[M+2H]2+': '+2'
|
|
85
|
+
'[2M+H]+': '+1'
|
|
86
|
+
'[2M-H]-': '-1'
|
|
87
|
+
|
|
88
|
+
'[M+H-H2O]+': '+1'
|
|
89
|
+
'[M-H2O+H]+': '+1'
|
|
90
|
+
'[M+H-2H2O]+': '+1'
|
|
91
|
+
'[M+H-NH3]+': '+1'
|
|
92
|
+
'[M+H+NH3]+': '+1'
|
|
93
|
+
'[M+NH4]+': '+1'
|
|
94
|
+
'[M+H-CH2O2]+': '+1'
|
|
95
|
+
'[M+H-CH4O2]+': '+1'
|
|
96
|
+
|
|
97
|
+
'[M-H-CO2]-': '-1'
|
|
98
|
+
'[M-CHO2]-': '-1'
|
|
99
|
+
'[M-H-H2O]-': '-1'
|
|
100
|
+
'[M-H2O-H]+': '-1'
|
|
101
|
+
|
|
102
|
+
model:
|
|
103
|
+
resolution: 0.2
|
|
104
|
+
max_mz: 1500
|
|
105
|
+
padding_dim: 20 # 1500 / 0.2 = 7500; 7500 / 2**5 (# pooling layer) = 234.375; 235 * (2**5) = 7520
|
|
106
|
+
num_add: 6
|
|
107
|
+
input_channels: 1
|
|
108
|
+
|
|
109
|
+
tcn_channels: [32, 32, 64, 128, 256, 512]
|
|
110
|
+
tcn_dilations: [1, 2, 4, 8, 8, 8]
|
|
111
|
+
tcn_kernel_sizes: [45, 43, 41, 39, 37, 35]
|
|
112
|
+
tcn_dropout: 0.2
|
|
113
|
+
|
|
114
|
+
# metadata_dim: 16
|
|
115
|
+
add_embedding_dim: 4
|
|
116
|
+
ce_embedding_dim: 4
|
|
117
|
+
mass_embedding_dim: 4
|
|
118
|
+
embedding_dim: 512
|
|
119
|
+
|
|
120
|
+
formula_decoder_layers: [416, 208, 104, 52, 26]
|
|
121
|
+
mass_decoder_layers: [416, 208, 104, 26, 13]
|
|
122
|
+
atomnum_decoder_layers: [416, 208, 104, 26, 13]
|
|
123
|
+
hcnum_decoder_layers: [416, 208, 104, 26, 13]
|
|
124
|
+
output_dim: 13
|
|
125
|
+
|
|
126
|
+
fdr_decoder_layers: [416, 208, 104, 26, 13]
|
|
127
|
+
|
|
128
|
+
# ------------------------
|
|
129
|
+
# training settings
|
|
130
|
+
# ------------------------
|
|
131
|
+
train:
|
|
132
|
+
epochs: 500
|
|
133
|
+
batch_size: 512 # 128
|
|
134
|
+
num_workers: 8
|
|
135
|
+
lr: 0.002 # 0.001
|
|
136
|
+
weight_decay: 0.01
|
|
137
|
+
warmup_ratio: 0.1
|
|
138
|
+
early_stop_step: 10
|
|
139
|
+
patience: 5
|
|
140
|
+
noised_times: 0
|
|
141
|
+
|
|
142
|
+
train_fdr:
|
|
143
|
+
epochs: 100
|
|
144
|
+
batch_size: 128
|
|
145
|
+
num_workers: 8
|
|
146
|
+
lr: 0.0001
|
|
147
|
+
early_stop_step: 10
|
|
148
|
+
|
|
149
|
+
# ------------------------
|
|
150
|
+
# postprocessing settings
|
|
151
|
+
# ------------------------
|
|
152
|
+
post_processing:
|
|
153
|
+
# Orbitrap
|
|
154
|
+
refine_atom_type: ['C', 'O', 'N', 'H']
|
|
155
|
+
refine_atom_num: [3, 3, 3, -1]
|
|
156
|
+
|
|
157
|
+
mass_tolerance: 20.0 # target space
|
|
158
|
+
ppm_mode: True
|
|
159
|
+
time_out: 300
|
|
160
|
+
maxium_miss_atom_num: 20 # search space
|
|
161
|
+
top_k: 5
|
|
162
|
+
buddy_fdr_thr: 0.6
|
|
163
|
+
sirius_score_thr: -5
|