diff ipapy2_map_isotope_patterns.py @ 0:7f84a8a5edde draft default tip

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/ipapy2 commit 64b61ff2823b4f54868c0ab7a4c0dc49eaf2979a
author recetox
date Fri, 16 May 2025 08:00:41 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipapy2_map_isotope_patterns.py	Fri May 16 08:00:41 2025 +0000
@@ -0,0 +1,70 @@
+from ipaPy2 import ipa
+from utils import CustomArgumentParser
+
+
+def main(input_dataset, isoDiff, ppm, ionisation, isotope_ratio, output_dataset):
+    clustered_df = input_dataset
+    ipa.map_isotope_patterns(
+        clustered_df,
+        isoDiff=isoDiff,
+        ppm=ppm,
+        ionisation=ionisation,
+        MinIsoRatio=isotope_ratio,
+    )
+    write_func, file_path = output_dataset
+    write_func(clustered_df, file_path)
+
+
+if __name__ == "__main__":
+    parser = CustomArgumentParser(description="mapping isotope patterns in MS1 data.")
+    parser.add_argument(
+        "--input_dataset",
+        nargs=2,
+        action="load_data",
+        required=True,
+        help="A dataset containing clustered MS1 intensities.",
+    )
+    parser.add_argument(
+        "--isoDiff",
+        type=float,
+        default=1,
+        help=(
+            "Default value 1. Difference between isotopes of charge 1, does            "
+            "  not need to be exact"
+        ),
+    )
+    parser.add_argument(
+        "--ppm",
+        type=float,
+        default=100,
+        help=(
+            "Default value 100. Maximum ppm value allowed between 2 isotopes.          "
+            "  It is very high on purpose"
+        ),
+    )
+    parser.add_argument(
+        "--ionisation",
+        type=int,
+        default=1,
+        choices=[1, -1],
+        help="Default value 1. positive = 1, negative = -1",
+    )
+    parser.add_argument(
+        "--isotope_ratio",
+        type=float,
+        default=1,
+        help=(
+            "mininum intensity ratio expressed (Default value 1%). Only               "
+            " isotopes with intensity higher than MinIsoRatio% of the main isotope     "
+            "           are considered."
+        ),
+    )
+    args = parser.parse_args()
+    main(
+        args.input_dataset,
+        args.isoDiff,
+        args.ppm,
+        args.ionisation,
+        args.isotope_ratio,
+        args.output_dataset,
+    )