diff matchms_similarity_wrapper.py @ 4:ba5e9bd05d5b draft

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit 5661cf2406e0616d7b2f4bee1b57ec43716088de
author recetox
date Tue, 18 Oct 2022 11:00:55 +0000
parents 9f8532c99845
children
line wrap: on
line diff
--- a/matchms_similarity_wrapper.py	Wed Sep 21 15:28:55 2022 +0000
+++ b/matchms_similarity_wrapper.py	Tue Oct 18 11:00:55 2022 +0000
@@ -5,7 +5,6 @@
 from matchms import calculate_scores
 from matchms.importing import load_from_mgf, load_from_msp
 from matchms.similarity import CosineGreedy, CosineHungarian, MetadataMatch, ModifiedCosine, NeutralLossesCosine
-from pandas import DataFrame
 
 
 def convert_precursor_mz(spectrum):
@@ -35,8 +34,7 @@
     parser.add_argument("tolerance", type=float, help="Tolerance to use for peak matching.")
     parser.add_argument("mz_power", type=float, help="The power to raise mz to in the cosine function.")
     parser.add_argument("intensity_power", type=float, help="The power to raise intensity to in the cosine function.")
-    parser.add_argument("output_filename_scores", type=str, help="Path where to store the output .tsv scores.")
-    parser.add_argument("output_filename_matches", type=str, help="Path where to store the output .tsv matches.")
+    parser.add_argument("output_filename_scores", type=str, help="Path where to store the output .json scores.")
     args = parser.parse_args()
 
     if args.queries_format == 'msp':
@@ -89,17 +87,9 @@
 
 
 def write_outputs(args, scores):
+    """Write Scores to json file."""
     print("Storing outputs...")
-    query_names = [spectra.metadata['compound_name'] for spectra in scores.queries]
-    reference_names = [spectra.metadata['compound_name'] for spectra in scores.references]
-
-    # Write scores to dataframe
-    dataframe_scores = DataFrame(data=[entry["score"] for entry in scores.scores], index=reference_names, columns=query_names)
-    dataframe_scores.to_csv(args.output_filename_scores, sep='\t')
-
-    # Write number of matches to dataframe
-    dataframe_matches = DataFrame(data=[entry["matches"] for entry in scores.scores], index=reference_names, columns=query_names)
-    dataframe_matches.to_csv(args.output_filename_matches, sep='\t')
+    scores.to_json(args.output_filename_scores)
 
 
 if __name__ == "__main__":