Mercurial > repos > recetox > matchms_formatter
comparison matchms_filtering_wrapper.py @ 21:23d4bc72c505 draft
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit 98223db312c30b0e121a1422a9534a3db3fbf0c0
author | recetox |
---|---|
date | Thu, 14 Dec 2023 13:42:45 +0000 |
parents | ae45992f969e |
children | f76a397afbe1 |
comparison
equal
deleted
inserted
replaced
20:d888a64f7c2a | 21:23d4bc72c505 |
---|---|
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") |