comparison matchms_filtering_wrapper.py @ 8:f30b53a817af draft

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit 98223db312c30b0e121a1422a9534a3db3fbf0c0
author recetox
date Thu, 14 Dec 2023 13:46:31 +0000
parents 3f96c93f8566
children 44e7027714d7
comparison
equal deleted inserted replaced
7:9782eb7a22b7 8:f30b53a817af
4 from matchms.exporting import save_as_mgf, save_as_msp 4 from matchms.exporting import save_as_mgf, save_as_msp
5 from matchms.filtering import add_compound_name, add_fingerprint, add_losses, add_parent_mass, add_precursor_mz,\ 5 from matchms.filtering import add_compound_name, add_fingerprint, add_losses, add_parent_mass, add_precursor_mz,\
6 add_retention_index, add_retention_time, clean_compound_name 6 add_retention_index, add_retention_time, clean_compound_name
7 from matchms.filtering import default_filters, normalize_intensities, reduce_to_number_of_peaks, select_by_mz, \ 7 from matchms.filtering import default_filters, normalize_intensities, reduce_to_number_of_peaks, select_by_mz, \
8 select_by_relative_intensity 8 select_by_relative_intensity
9 from matchms.filtering.filter_utils.derive_precursor_mz_and_parent_mass import derive_precursor_mz_from_parent_mass
9 from matchms.importing import load_from_mgf, load_from_msp 10 from matchms.importing import load_from_mgf, load_from_msp
10 11
11 12
12 def require_key(spectrum, key): 13 def require_key(spectrum, key):
13 if spectrum.get(key): 14 if spectrum.get(key):
37 parser.add_argument("--to_mz", type=float, help="Upper bound for m/z filter") 38 parser.add_argument("--to_mz", type=float, help="Upper bound for m/z filter")
38 parser.add_argument("-require_smiles", action='store_true', 39 parser.add_argument("-require_smiles", action='store_true',
39 help="Remove spectra that does not contain SMILES.") 40 help="Remove spectra that does not contain SMILES.")
40 parser.add_argument("-require_inchi", action='store_true', 41 parser.add_argument("-require_inchi", action='store_true',
41 help="Remove spectra that does not contain INCHI.") 42 help="Remove spectra that does not contain INCHI.")
43 parser.add_argument("-derive_precursor_mz_from_parent_mass", action='store_true',
44 help="Derives the precursor_mz from the parent mass and adduct or charge.")
45 parser.add_argument("--estimate_from_adduct", type=str, help="estimate from adduct.")
42 parser.add_argument("-reduce_to_top_n_peaks", action='store_true', 46 parser.add_argument("-reduce_to_top_n_peaks", action='store_true',
43 help="reduce to top n peaks filter.") 47 help="reduce to top n peaks filter.")
44 parser.add_argument("--n_max", type=int, help="Maximum number of peaks. Remove peaks if more peaks are found.") 48 parser.add_argument("--n_max", type=int, help="Maximum number of peaks. Remove peaks if more peaks are found.")
45 args = parser.parse_args() 49 args = parser.parse_args()
46 50
49 or args.clean_metadata 53 or args.clean_metadata
50 or args.relative_intensity 54 or args.relative_intensity
51 or args.mz_range 55 or args.mz_range
52 or args.require_smiles 56 or args.require_smiles
53 or args.require_inchi 57 or args.require_inchi
58 or args.derive_precursor_mz_from_parent_mass
54 or args.reduce_to_top_n_peaks): 59 or args.reduce_to_top_n_peaks):
55 raise ValueError('No filter selected.') 60 raise ValueError('No filter selected.')
56 61
57 if args.spectra_format == 'msp': 62 if args.spectra_format == 'msp':
58 spectra = list(load_from_msp(args.spectra)) 63 spectra = list(load_from_msp(args.spectra))
82 spectrum = select_by_mz(spectrum, args.from_mz, args.to_mz) 87 spectrum = select_by_mz(spectrum, args.from_mz, args.to_mz)
83 88
84 if args.reduce_to_top_n_peaks: 89 if args.reduce_to_top_n_peaks:
85 spectrum = reduce_to_number_of_peaks(spectrum_in=spectrum, n_max=args.n_max) 90 spectrum = reduce_to_number_of_peaks(spectrum_in=spectrum, n_max=args.n_max)
86 91
92 if args.derive_precursor_mz_from_parent_mass:
93 spectrum.set("parent_mass", float(spectrum.get('parent_mass')))
94 precursor_mz = derive_precursor_mz_from_parent_mass(spectrum, args.estimate_from_adduct)
95 spectrum.set("precursor_mz", precursor_mz)
96
87 if args.require_smiles and spectrum is not None: 97 if args.require_smiles and spectrum is not None:
88 spectrum = require_key(spectrum, "smiles") 98 spectrum = require_key(spectrum, "smiles")
89 99
90 if args.require_inchi and spectrum is not None: 100 if args.require_inchi and spectrum is not None:
91 spectrum = require_key(spectrum, "inchi") 101 spectrum = require_key(spectrum, "inchi")