def test_run_mrmfeaturefinder(self): # load chromatograms chromatograms = pyopenms.MSExperiment() fh = pyopenms.FileHandler() fh.loadExperiment(self.chromatograms, chromatograms) # load TraML file targeted = pyopenms.TargetedExperiment() tramlfile = pyopenms.TraMLFile() tramlfile.load(self.tramlfile, targeted) # Create empty files as input and finally as output empty_swath = pyopenms.MSExperiment() trafo = pyopenms.TransformationDescription() output = pyopenms.FeatureMap() # set up featurefinder and run featurefinder = pyopenms.MRMFeatureFinderScoring() featurefinder.pickExperiment(chromatograms, output, targeted, trafo, empty_swath) self.assertAlmostEqual(output.size(), 3) self.assertAlmostEqual(output[0].getRT(), 3119.092041015, eps) self.assertAlmostEqual(output[0].getIntensity(), 3614.99755859375, eps) self.assertAlmostEqual( output[0].getMetaValue(b"var_xcorr_shape_weighted"), 0.997577965259552, eps) self.assertAlmostEqual(output[0].getMetaValue(b"sn_ratio"), 86.00413513183594, eps)
def main(options): precursor_tolerance = options.precursor_tolerance product_tolerance = options.product_tolerance out = options.outfile chromat_in = options.infile traml_in = options.traml_in # precursor_tolerance = 0.05 # product_tolerance = 0.05 # out = "/tmp/out.mzML" # chromat_in = "../source/TEST/TOPP/MRMMapping_input.chrom.mzML" # traml_in = "../source/TEST/TOPP/MRMMapping_input.TraML" ff = pyopenms.MRMFeatureFinderScoring() chromatogram_map = pyopenms.MSExperiment() fh = pyopenms.FileHandler() fh.loadExperiment(chromat_in, chromatogram_map) targeted = pyopenms.TargetedExperiment() tramlfile = pyopenms.TraMLFile() tramlfile.load(traml_in, targeted) output = algorithm(chromatogram_map, targeted, precursor_tolerance, product_tolerance) pyopenms.MzMLFile().store(out, output)
def test_extractor(self): targeted = pyopenms.TargetedExperiment() tramlfile = pyopenms.TraMLFile() tramlfile.load(self.filename, targeted) exp = pyopenms.MSExperiment() pyopenms.MzMLFile().load(self.filename_mzml, exp) trafo = pyopenms.TransformationDescription() tmp_out = pyopenms.MSExperiment() extractor = pyopenms.ChromatogramExtractor() extractor.extractChromatograms(exp, tmp_out, targeted, 10, False, trafo, -1, "tophat") # Basically test that the output is non-zero (e.g. the data is # correctly relayed to python) # The functionality is not tested here! self.assertEqual(len(tmp_out.getChromatograms()), len(targeted.getTransitions())) self.assertNotEqual(len(tmp_out.getChromatograms()), 0) self.assertEqual(tmp_out.getChromatograms()[0].size(), exp.size()) self.assertNotEqual(tmp_out.getChromatograms()[0].size(), 0) self.assertNotEqual(tmp_out.getChromatograms()[0][0].getRT(), 0) self.assertNotEqual(tmp_out.getChromatograms()[0][0].getIntensity(), 0)
def main(options): out = options.outfile chromat_in = options.infile traml_in = options.traml_in trafo_in = options.trafo_in pp = pyopenms.MRMTransitionGroupPicker() metabolomics = False # this is an important weight for RT-deviation -- the larger the value, the less importance will be given to exact RT matches # for proteomics data it tends to be a good idea to set it to the length of # the RT space (e.g. for 100 second RT space, set it to 100) rt_normalization_factor = 100.0 pp_params = pp.getDefaults(); pp_params.setValue("PeakPickerMRM:remove_overlapping_peaks", options.remove_overlapping_peaks, '') pp_params.setValue("PeakPickerMRM:method", options.method, '') if (metabolomics): # Need to change those for metabolomics and very short peaks! pp_params.setValue("PeakPickerMRM:signal_to_noise", 0.01, '') pp_params.setValue("PeakPickerMRM:peak_width", 0.1, '') pp_params.setValue("PeakPickerMRM:gauss_width", 0.1, '') pp_params.setValue("resample_boundary", 0.05, '') pp_params.setValue("compute_peak_quality", "true", '') pp.setParameters(pp_params) scorer = pyopenms.MRMFeatureFinderScoring() scoring_params = scorer.getDefaults(); # Only report the top 5 features scoring_params.setValue("stop_report_after_feature", 5, '') scoring_params.setValue("rt_normalization_factor", rt_normalization_factor, '') scorer.setParameters(scoring_params); chromatograms = pyopenms.MSExperiment() fh = pyopenms.FileHandler() fh.loadExperiment(chromat_in, chromatograms) targeted = pyopenms.TargetedExperiment(); tramlfile = pyopenms.TraMLFile(); tramlfile.load(traml_in, targeted); trafoxml = pyopenms.TransformationXMLFile() trafo = pyopenms.TransformationDescription() if trafo_in is not None: model_params = pyopenms.Param() model_params.setValue("symmetric_regression", "false", "", []) model_type = "linear" trafoxml.load(trafo_in, trafo, True) trafo.fitModel(model_type, model_params); light_targeted = pyopenms.LightTargetedExperiment(); pyopenms.OpenSwathDataAccessHelper().convertTargetedExp(targeted, light_targeted) output = algorithm(chromatograms, light_targeted, pp, scorer, trafo) pyopenms.FeatureXMLFile().store(out, output);
def tramlInferMapping(rawdata_files, aligned_pg_files, mapping, precursors_mapping, sequences_mapping, protein_mapping, verbose=False): try: import pyopenms except ImportError as e: print("\nError!") print( "Could not import pyOpenMS while trying to load a TraML file - please make sure pyOpenMS is installed." ) print( "pyOpenMS is available from https://pypi.python.org/pypi/pyopenms") print() raise e assert len( aligned_pg_files) == 1, "There should only be one file in simple mode" f = aligned_pg_files[0] # Produce simple mapping between runs and files (assume each file is one run) for i, raw in enumerate(rawdata_files): mapping[str(i)] = [raw] targexp = pyopenms.TargetedExperiment() pyopenms.TraMLFile().load(f, targexp) for peptide_precursor in targexp.getPeptides(): # Fill the protein mapping protein_id = peptide_precursor.protein_refs if len(protein_id) > 0: protein_id = protein_id[0] # take the first one ... tmp = protein_mapping.get(protein_id, []) if peptide_precursor.sequence not in tmp: tmp.append(peptide_precursor.sequence) protein_mapping[protein_id] = tmp # Fill the sequence mapping tmp = sequences_mapping.get(peptide_precursor.sequence, []) if peptide_precursor.id not in tmp: tmp.append(peptide_precursor.id) sequences_mapping[peptide_precursor.sequence] = tmp for transition in targexp.getTransitions(): # Fill the precursor mapping tmp = precursors_mapping.get(transition.getPeptideRef(), []) if transition.getPeptideRef() not in tmp: tmp.append(transition.getNativeID()) precursors_mapping[transition.getPeptideRef()] = tmp
def test_readfile_content(self): targeted = pyopenms.TargetedExperiment(); tramlfile = pyopenms.TraMLFile(); tramlfile.load(self.filename, targeted); self.assertEqual(len( targeted.getTransitions() ), 3 ) self.assertAlmostEqual(targeted.getTransitions()[0].getPrecursorMZ(), 500.0) self.assertAlmostEqual(targeted.getTransitions()[0].getProductMZ(), 628.45, places=4) self.assertEqual(targeted.getTransitions()[0].getName(), "tr1" ) self.assertEqual(targeted.getTransitions()[0].getNativeID(), "tr1" ) self.assertEqual(targeted.getTransitions()[0].getPeptideRef(), "tr_gr1")
def main(options): # load TraML file targeted = pyopenms.TargetedExperiment() pyopenms.TraMLFile().load(options.traml_in, targeted) # Create empty files as input and finally as output empty_swath = pyopenms.MSExperiment() trafo = pyopenms.TransformationDescription() output = pyopenms.MSExperiment() # load input for infile in options.infiles: exp = pyopenms.MSExperiment() pyopenms.FileHandler().loadExperiment(infile, exp) transition_exp_used = pyopenms.TargetedExperiment() do_continue = True if options.is_swath: do_continue = pyopenms.OpenSwathHelper( ).checkSwathMapAndSelectTransitions(exp, targeted, transition_exp_used, options.min_upper_edge_dist) else: transition_exp_used = targeted if do_continue: # set up extractor and run tmp_out = pyopenms.MSExperiment() extractor = pyopenms.ChromatogramExtractor() extractor.extractChromatograms(exp, tmp_out, targeted, options.extraction_window, options.ppm, trafo, options.rt_extraction_window, options.extraction_function) # add all chromatograms to the output for chrom in tmp_out.getChromatograms(): output.addChromatogram(chrom) dp = pyopenms.DataProcessing() pa = pyopenms.ProcessingAction().SMOOTHING dp.setProcessingActions(set([pa])) chromatograms = output.getChromatograms() for chrom in chromatograms: this_dp = chrom.getDataProcessing() this_dp.append(dp) chrom.setDataProcessing(this_dp) output.setChromatograms(chromatograms) pyopenms.MzMLFile().store(options.outfile, output)
def main(options): # load chromatograms chromatograms = pyopenms.MSExperiment() fh = pyopenms.FileHandler() fh.loadExperiment(options.infile, chromatograms) # load TraML file targeted = pyopenms.TargetedExperiment() tramlfile = pyopenms.TraMLFile() tramlfile.load(options.traml_in, targeted) trafo_out = algorithm(chromatograms, targeted) pyopenms.TransformationXMLFile().store(options.outfile, trafo_out)
def test_run_mrmrtnormalizer(self): # load chromatograms chromatograms = pyopenms.MSExperiment() fh = pyopenms.FileHandler() fh.loadExperiment(self.chromatograms, chromatograms) # load TraML file targeted = pyopenms.TargetedExperiment() tramlfile = pyopenms.TraMLFile() tramlfile.load(self.tramlfile, targeted) # Create empty files as input and finally as output empty_swath = pyopenms.MSExperiment() trafo = pyopenms.TransformationDescription() output = pyopenms.FeatureMap() # set up featurefinder and run featurefinder = pyopenms.MRMFeatureFinderScoring() # set the correct rt use values scoring_params = pyopenms.MRMFeatureFinderScoring().getDefaults() scoring_params.setValue("Scores:use_rt_score".encode(), 'false'.encode(), ''.encode()) featurefinder.setParameters(scoring_params) featurefinder.pickExperiment(chromatograms, output, targeted, trafo, empty_swath) # get the pairs pairs = [] simple_find_best_feature(output, pairs, targeted) pairs_corrected = pyopenms.MRMRTNormalizer().removeOutliersIterative( pairs, 0.95, 0.6, True, "iter_jackknife") pairs_corrected = [list(p) for p in pairs_corrected] expected = [(1497.56884765625, 1881.0), (2045.9776611328125, 2409.0), (2151.4814453125, 2509.0), (1924.0750732421875, 2291.0), (612.9832153320312, 990.0), (1086.2474365234375, 1470.0), (1133.89404296875, 1519.0), (799.5291137695312, 1188.0), (1397.1541748046875, 1765.0)] for exp, res in zip(expected, pairs_corrected): self.assertAlmostEqual(exp[0], res[0], eps) self.assertAlmostEqual(exp[1], res[1], eps)
def test_TargetedExperiment(self): targeted = pyopenms.TargetedExperiment(); tramlfile = pyopenms.TraMLFile(); tramlfile.load(self.filename, targeted); self.assertEqual(len( targeted.getTransitions() ), 3 ) targeted.setCVs(targeted.getCVs()) targeted.setTargetCVTerms(targeted.getTargetCVTerms()) targeted.setPeptides(targeted.getPeptides()) targeted.setProteins(targeted.getProteins()) targeted.setTransitions(targeted.getTransitions()) first_transition = targeted.getTransitions()[0] first_peptide = targeted.getPeptides()[0] targeted.addTransition(first_transition) targeted.addPeptide(first_peptide) self.assertTrue( targeted.getPeptideByRef(first_transition.getPeptideRef()) is not None) self.assertTrue( targeted.getProteinByRef(first_peptide.protein_refs[0]) is not None)
def main(options): # load featureXML features = pyopenms.FeatureMap() fh = pyopenms.FileHandler() fh.loadFeatures(options.infile, features) # load TraML file targeted = pyopenms.TargetedExperiment(); tramlfile = pyopenms.TraMLFile(); tramlfile.load(options.traml_in, targeted); # write TSV file filename = options.infile.split(".")[0] fh = open(options.outfile, "w") wr = csv.writer(fh, delimiter='\t') header = get_header(features) wr.writerow(header) for f in features: keys = [] f.getKeys(keys) row = convert_to_row(f,targeted,filename,keys,filename) wr.writerow(row)
def main(options): out = options.outfile chromat_in = options.infile traml_in = options.traml_in pp = pyopenms.MRMTransitionGroupPicker() pp_params = pp.getDefaults() pp_params.setValue("PeakPickerMRM:remove_overlapping_peaks", options.remove_overlapping_peaks, '') pp_params.setValue("PeakPickerMRM:method", options.method, '') pp.setParameters(pp_params) chromatograms = pyopenms.MSExperiment() fh = pyopenms.FileHandler() fh.loadExperiment(chromat_in, chromatograms) targeted = pyopenms.TargetedExperiment() tramlfile = pyopenms.TraMLFile() tramlfile.load(traml_in, targeted) output = algorithm(chromatograms, targeted, pp) pyopenms.FeatureXMLFile().store(out, output)
def test_readfile(self): targeted = pyopenms.TargetedExperiment(); tramlfile = pyopenms.TraMLFile(); tramlfile.load(self.filename, targeted);
#!/usr/bin/env python