annotate target_screen.py @ 1:6d51be3d7bb5 draft default tip

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
author recetox
date Mon, 12 May 2025 14:05:37 +0000
parents d4c2d5bc0524
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
1 import argparse
1
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
2 from typing import Tuple
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
3
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
4 import numpy as np
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
5 import pandas as pd
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
6
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
7
1
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
8 class LoadDataAction(argparse.Action):
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
9 """
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
10 Custom argparse action to load data from a file into a pandas DataFrame.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
11 Supports CSV, TSV, and Parquet file formats.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
12 """
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
13 def __call__(self, parser: argparse.ArgumentParser, namespace: argparse.Namespace, values: Tuple[str, str], option_string: str = None) -> None:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
14 file_path, file_extension = values
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
15 file_extension = file_extension.lower()
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
16 if file_extension == "csv":
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
17 df = pd.read_csv(file_path)
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
18 elif file_extension in ["tsv", "tabular"]:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
19 df = pd.read_csv(file_path, sep="\t")
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
20 elif file_extension == "parquet":
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
21 df = pd.read_parquet(file_path)
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
22 else:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
23 raise ValueError(f"Unsupported file format: {file_extension}")
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
24 setattr(namespace, self.dest, df)
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
25
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
26
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
27 def mz_match(marker: np.ndarray, peak: np.ndarray, ppm: int) -> np.ndarray:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
28 """
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
29 Check if the mass-to-charge ratio (m/z) of markers and peaks match within a given PPM tolerance.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
30
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
31 Args:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
32 marker (np.ndarray): Array of marker m/z values.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
33 peak (np.ndarray): Array of peak m/z values.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
34 ppm (int): PPM tolerance for matching.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
35
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
36 Returns:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
37 np.ndarray: Boolean array indicating matches.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
38 """
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
39 return np.abs(marker - peak) <= ((peak + marker) / 2) * ppm * 1e-06
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
40
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
41
1
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
42 def rt_match(marker: np.ndarray, peak: np.ndarray, tol: int) -> np.ndarray:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
43 """
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
44 Check if the retention time (rt) of markers and peaks match within a given tolerance.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
45
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
46 Args:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
47 marker (np.ndarray): Array of marker retention times.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
48 peak (np.ndarray): Array of peak retention times.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
49 tol (int): Retention time tolerance for matching.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
50
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
51 Returns:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
52 np.ndarray: Boolean array indicating matches.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
53 """
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
54 return np.abs(marker - peak) <= tol
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
55
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
56
1
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
57 def find_matches(peaks: pd.DataFrame, markers: pd.DataFrame, ppm: int, rt_tol: int) -> pd.DataFrame:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
58 """
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
59 Find matches between peaks and markers based on m/z and retention time tolerances.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
60
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
61 Args:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
62 peaks (pd.DataFrame): DataFrame containing peak data with 'mz' and 'rt' columns.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
63 markers (pd.DataFrame): DataFrame containing marker data with 'mz' and 'rt' columns.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
64 ppm (int): PPM tolerance for m/z matching.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
65 rt_tol (int): Retention time tolerance for rt matching.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
66
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
67 Returns:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
68 pd.DataFrame: DataFrame containing matched rows with all columns from peaks and markers.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
69 """
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
70 # Create a meshgrid of all combinations of mz and rt values
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
71 marker_mz = markers['mz'].values[:, np.newaxis]
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
72 peak_mz = peaks['mz'].values
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
73 marker_rt = markers['rt'].values[:, np.newaxis]
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
74 peak_rt = peaks['rt'].values
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
75
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
76 # Calculate mz and rt matches
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
77 mz_matches = mz_match(marker_mz, peak_mz, ppm)
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
78 rt_matches = rt_match(marker_rt, peak_rt, rt_tol)
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
79
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
80 # Find the indices where both mz and rt match
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
81 match_indices = np.where(mz_matches & rt_matches)
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
82
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
83 # Create a DataFrame of hits
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
84 matched_markers = markers.iloc[match_indices[0]].reset_index(drop=True)
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
85 matched_peaks = peaks.iloc[match_indices[1]].reset_index(drop=True)
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
86
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
87 # Calculate mz and rt differences
1
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
88 matched_markers['mz_diff'] = np.abs(matched_markers['mz'].values - matched_peaks['mz'].values)
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
89 matched_markers['rt_diff'] = np.abs(matched_markers['rt'].values - matched_peaks['rt'].values)
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
90
1
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
91 # Drop mz and rt columns from the marker table
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
92 matched_markers = matched_markers.drop(columns=['mz', 'rt'])
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
93
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
94 # Combine all columns from peaks and markers
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
95 hits = pd.concat([matched_markers.reset_index(drop=True), matched_peaks.reset_index(drop=True)], axis=1)
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
96 return hits
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
97
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
98
1
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
99 def main() -> None:
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
100 """
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
101 Main function to parse arguments, find matches between peaks and markers, and save the results.
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
102 """
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
103 parser = argparse.ArgumentParser(description='Find matches between peaks and markers.')
1
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
104 parser.add_argument('--peaks', required=True, nargs=2, action=LoadDataAction, help='Path to the peaks file and its format (e.g., "file.parquet parquet").')
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
105 parser.add_argument('--markers', required=True, nargs=2, action=LoadDataAction, help='Path to the markers file and its format (e.g., "file.tsv tsv").')
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
106 parser.add_argument('--output', required=True, help='Path to the output TSV file.')
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
107 parser.add_argument('--ppm', type=int, default=5, help='PPM tolerance for mz matching.')
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
108 parser.add_argument('--rt_tol', type=int, default=10, help='RT tolerance for rt matching.')
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
109 args = parser.parse_args()
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
110
1
6d51be3d7bb5 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit d6102c60e41d91adf1c7a876f84ef420a69262e2
recetox
parents: 0
diff changeset
111 hits = find_matches(args.peaks, args.markers, args.ppm, args.rt_tol)
0
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
112
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
113 hits.to_csv(args.output, sep='\t', index=False)
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
114
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
115
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
116 if __name__ == "__main__":
d4c2d5bc0524 planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/misc commit 94322884bede7ddb9f2a9166952dd0115bdb4e49
recetox
parents:
diff changeset
117 main()