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 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