Mercurial > repos > recetox > ms2deepscore_training
diff ms2deepscore_training.xml @ 0:0a0529822d91 draft default tip
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/ms2deepscore commit 4bd610e0cbbcbed51a6bfb880179777fc8034fd6
author | recetox |
---|---|
date | Mon, 02 Sep 2024 12:12:30 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ms2deepscore_training.xml Mon Sep 02 12:12:30 2024 +0000 @@ -0,0 +1,91 @@ +<tool id="ms2deepscore_training" name="MS2DeepScore Model Training" version="@TOOL_VERSION@+galaxy0"> + <description>Compute similarity scores using a pre-trained MS2DeepScore model</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="creator"/> + <expand macro="edam" /> + + <requirements> + <requirement type="package" version="@TOOL_VERSION@">ms2deepscore</requirement> + <requirement type="package" version="@ONNX_VERSION@">onnx</requirement> + </requirements> + + <command detect_errors="exit_code"><![CDATA[ + mkdir processing; + cp $spectra processing/input."$spectra.ext"; + python3 ${python_wrapper} + ]]></command> +<configfiles> +<configfile name="python_wrapper"> +import onnx +import os +import torch +from ms2deepscore.models import load_model +from ms2deepscore.SettingsMS2Deepscore import SettingsMS2Deepscore +from ms2deepscore.wrapper_functions.training_wrapper_functions import train_ms2deepscore_wrapper, StoreTrainingData + +@json_load@ + +settings = SettingsMS2Deepscore(**model_params) +file = "processing/input.$spectra.ext" +directory = train_ms2deepscore_wrapper(file, settings, $validation_split_fraction) + +expected_file_names = StoreTrainingData(file) +pt_model_path = os.path.join(expected_file_names.trained_models_folder, directory, settings.model_file_name) + +model = load_model(pt_model_path) +model.eval() + +batch_size = 1 +number_of_bins = settings.number_of_bins() +additional_inputs = len(settings.additional_metadata) + +# Create dummy inputs +spectra_tensors_1 = torch.randn(batch_size, number_of_bins) +spectra_tensors_2 = torch.randn(batch_size, number_of_bins) +metadata_1 = torch.randn(batch_size, additional_inputs) +metadata_2 = torch.randn(batch_size, additional_inputs) + +# Export the model to ONNX +torch.onnx.export( + model, + (spectra_tensors_1, spectra_tensors_2, metadata_1, metadata_2), + "$onnx_trained_model", + verbose=True +) + +</configfile> +</configfiles> + + <inputs> + <expand macro="training_param" /> + </inputs> + + <outputs> + <data label="Trained model" name="onnx_trained_model" format="onnx"/> + </outputs> + + <tests> + <test expect_num_outputs="1"> + <param name="spectra" value="clean_spectra.mgf" ftype="mgf"/> + <param name="model_param" value="Model_Parameter_JSON.json" ftype="json" /> + <param name="validation_split_fraction" value="5"/> + <output name="onnx_trained_model" value="Trained_model.onnx" ftype="onnx" compare="sim_size"/> + </test> + </tests> + + <help> +<![CDATA[ +Info +==== +This tool trains a MS2DeepScore model using the provided training data and model configuration. +The trained model is then exported using ONNX. + +About +===== +@HELP@ +]]> + </help> + <expand macro="citations"/> +</tool>