def test_priorityAssignment(): MSParameters.molecular_search.error_method = 'None' MSParameters.molecular_search.min_ppm_error = -3 MSParameters.molecular_search.max_ppm_error = 5 MSParameters.molecular_search.mz_error_range = 1 MSParameters.molecular_search.isProtonated = True MSParameters.molecular_search.isRadical= True MSParameters.molecular_search.isAdduct= False usedatoms = {'C': (1,100) , 'H': (4,200), 'O': (1,10)} MSParameters.molecular_search.usedAtoms = usedatoms mass_spec_obj = create_mass_spectrum() mass_spec_obj.process_mass_spec() assignOx = OxygenPriorityAssignment(mass_spec_obj) assignOx.run() #test classification mass_spec_obj.percentile_assigned() mass_spectrum_by_classes = HeteroatomsClassification(mass_spec_obj) mass_spectrum_by_classes.plot_ms_assigned_unassigned() mass_spectrum_by_classes.atoms_ratio_all("H", "C") mass_spectrum_by_classes.atoms_ratio_all("H", "C")
def run_assignment(file_location): #mass_spectrum = run_bruker(file_location) mass_spectrum = get_masslist(file_location) mass_spectrum.molecular_search_settings.error_method = 'None' mass_spectrum.molecular_search_settings.min_ppm_error = -1 mass_spectrum.molecular_search_settings.max_ppm_error = 1 mass_spectrum.molecular_search_settings.url_database = "postgres://*****:*****@localhost:5432/molformula" mass_spectrum.molecular_search_settings.min_dbe = 0 mass_spectrum.molecular_search_settings.max_dbe = 50 mass_spectrum.molecular_search_settings.usedAtoms['C'] = (1, 100) mass_spectrum.molecular_search_settings.usedAtoms['H'] = (4, 200) mass_spectrum.molecular_search_settings.usedAtoms['O'] = (1, 22) mass_spectrum.molecular_search_settings.usedAtoms['N'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['S'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['Cl'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['Br'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['P'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['Na'] = (0, 0) mass_spectrum.molecular_search_settings.isProtonated = True mass_spectrum.molecular_search_settings.isRadical = False mass_spectrum.molecular_search_settings.isAdduct = False #mass_spectrum.filter_by_max_resolving_power(15, 2) SearchMolecularFormulas(mass_spectrum, first_hit=False).run_worker_mass_spectrum() mass_spectrum.percentile_assigned(report_error=True) mass_spectrum.to_csv("15T_Neg_ESI_SRFA") export_calc_isotopologues(mass_spectrum, "15T_Neg_ESI_SRFA_Calc_Isotopologues") mass_spectrum_by_classes = HeteroatomsClassification( mass_spectrum, choose_molecular_formula=True) mass_spectrum_by_classes.plot_ms_assigned_unassigned() #plt.show() # dataframe = mass_spectrum_by_classes.to_dataframe() return (mass_spectrum, mass_spectrum_by_classes)
def run_assignment(file_location): # mass_spectrum = run_bruker(file_location) # mass_spectrum = get_masslist(file_location) mass_spectrum = run_thermo(file_location) mass_spectrum.molecular_search_settings.error_method = 'None' mass_spectrum.molecular_search_settings.min_ppm_error = -5 mass_spectrum.molecular_search_settings.max_ppm_error = 5 mass_spectrum.molecular_search_settings.url_database = None mass_spectrum.molecular_search_settings.min_dbe = 0 mass_spectrum.molecular_search_settings.max_dbe = 50 mass_spectrum.molecular_search_settings.usedAtoms['C'] = (1, 100) mass_spectrum.molecular_search_settings.usedAtoms['H'] = (4, 200) mass_spectrum.molecular_search_settings.usedAtoms['O'] = (1, 30) mass_spectrum.molecular_search_settings.usedAtoms['N'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['S'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['Cl'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['Br'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['P'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['Na'] = (0, 0) mass_spectrum.molecular_search_settings.isProtonated = True mass_spectrum.molecular_search_settings.isRadical = False mass_spectrum.molecular_search_settings.isAdduct = False # mass_spectrum.filter_by_max_resolving_power(15, 2) SearchMolecularFormulas(mass_spectrum, first_hit=False).run_worker_mass_spectrum() mass_spectrum.percentile_assigned(report_error=True) mass_spectrum.molecular_search_settings.score_method = "prob_score" mass_spectrum.molecular_search_settings.output_score_method = "prob_score" # export_calc_isotopologues(mass_spectrum, "15T_Neg_ESI_SRFA_Calc_Isotopologues") mass_spectrum_by_classes = HeteroatomsClassification( mass_spectrum, choose_molecular_formula=True) mass_spectrum_by_classes.plot_ms_assigned_unassigned() plt.show() mass_spectrum_by_classes.plot_mz_error() plt.show() mass_spectrum_by_classes.plot_ms_class("O2") plt.show() # dataframe = mass_spectrum_by_classes.to_dataframe() return mass_spectrum
mass_spectrum.molecular_search_settings.isProtonated = True mass_spectrum.molecular_search_settings.isRadical = False mass_spectrum.molecular_search_settings.isAdduct = False # mass_spectrum.filter_by_max_resolving_power(15, 2) SearchMolecularFormulas(mass_spectrum, first_hit=False).run_worker_mass_spectrum() mass_spectrum.percentile_assigned(report_error=True) mass_spectrum.molecular_search_settings.score_method = "prob_score" mass_spectrum.molecular_search_settings.output_score_method = "prob_score" # export_calc_isotopologues(mass_spectrum, "15T_Neg_ESI_SRFA_Calc_Isotopologues") mass_spectrum_by_classes = HeteroatomsClassification( mass_spectrum, choose_molecular_formula=True) mass_spectrum_by_classes.plot_ms_assigned_unassigned() plt.show() mass_spectrum_by_classes.plot_mz_error() plt.show() mass_spectrum_by_classes.plot_ms_class("O2") plt.show() mass_spectrum.molecular_search_settings.error_method = 'None' mass_spectrum.molecular_search_settings.min_ppm_error = -2 mass_spectrum.molecular_search_settings.max_ppm_error = 4 mass_spectrum.molecular_search_settings.url_database = None mass_spectrum.molecular_search_settings.min_dbe = 0 mass_spectrum.molecular_search_settings.max_dbe = 50
mass_spectrum.molecular_search_settings.usedAtoms['Cl'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['P'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['Na'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['K'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['Fe'] = (0, 0) mass_spectrum.molecular_search_settings.usedAtoms['Se'] = (0, 0) mass_spectrum.molecular_search_settings.isProtonated = True mass_spectrum.molecular_search_settings.isRadical = False mass_spectrum.molecular_search_settings.isAdduct = True SearchMolecularFormulas(mass_spectrum, first_hit=False).run_worker_mass_spectrum() mass_spectrum.percentile_assigned() mass_spectrum_by_classes = HeteroatomsClassification( mass_spectrum, choose_molecular_formula=False) mass_spectrum_by_classes.plot_ms_assigned_unassigned() plt.show() all_classes = 0 for classe in mass_spectrum_by_classes.get_classes(threshold_perc=0, isotopologue=True): mass_spectrum_by_classes.plot_dbe_vs_carbon_number(classe) #plt.show() mass_spectrum_by_classes.plot_ms_class(classe) plt.show() mass_spectrum_by_classes.plot_mz_error_class(classe)
def create_plots(mass_spectrum, workflow_params, dirloc): ms_by_classes = HeteroatomsClassification(mass_spectrum, choose_molecular_formula=False) if workflow_params.plot_ms_assigned_unassigned: print("Plotting assigned vs. unassigned mass spectrum") ax_ms = ms_by_classes.plot_ms_assigned_unassigned() plt.savefig(dirloc / "assigned_unassigned.png", bbox_inches='tight') plt.clf() if workflow_params.plot_mz_error: print("Plotting mz_error") ax_ms = ms_by_classes.plot_mz_error() plt.savefig(dirloc / "mz_error.png", bbox_inches='tight') plt.clf() if workflow_params.plot_van_krevelen: van_krevelen_dirloc = dirloc / "van_krevelen" van_krevelen_dirloc.mkdir(exist_ok=True, parents=True) if workflow_params.plot_c_dbe: c_dbe_dirloc = dirloc / "dbe_vs_c" c_dbe_dirloc.mkdir(exist_ok=True, parents=True) if workflow_params.plot_ms_classes: ms_class_dirloc = dirloc / "ms_class" ms_class_dirloc.mkdir(exist_ok=True, parents=True) if workflow_params.plot_mz_error_classes: mz_error_class_dirloc = dirloc / "mz_error_class" mz_error_class_dirloc.mkdir(exist_ok=True, parents=True) pbar = tqdm(ms_by_classes.get_classes()) for classe in pbar: pbar.set_description_str( desc="Plotting results for class {}".format(classe), refresh=True) if workflow_params.plot_van_krevelen: ax_c = ms_by_classes.plot_van_krevelen(classe) plt.savefig(van_krevelen_dirloc / "{}.png".format(classe), bbox_inches='tight') plt.clf() if workflow_params.plot_mz_error_classes: ax_c = ms_by_classes.plot_mz_error_class(classe) plt.savefig(mz_error_class_dirloc / "{}.png".format(classe), bbox_inches='tight') plt.clf() if workflow_params.plot_ms_classes: ax_c = ms_by_classes.plot_ms_class(classe) plt.savefig(ms_class_dirloc / "{}.png".format(classe), bbox_inches='tight') plt.clf() if workflow_params.plot_c_dbe: ax_c = ms_by_classes.plot_dbe_vs_carbon_number(classe) plt.savefig(c_dbe_dirloc / "{}.png".format(classe), bbox_inches='tight') plt.clf()
def test_heteroatoms_classification(): MSParameters.molecular_search.error_method = 'None' MSParameters.molecular_search.min_ppm_error = -10 MSParameters.molecular_search.max_ppm_error = 10 MSParameters.molecular_search.mz_error_range = 1 MSParameters.molecular_search.isProtonated = True MSParameters.molecular_search.isRadical= False MSParameters.molecular_search.isAdduct= False MSParameters.molecular_search.usedAtoms['C'] = (1, 100) MSParameters.molecular_search.usedAtoms['H'] = (4, 200) MSParameters.molecular_search.usedAtoms['O'] = (1, 18) #MSParameters.molecular_search.usedAtoms = usedatoms mass_spec_obj = create_mass_spectrum() assignOx = SearchMolecularFormulas(mass_spec_obj).run_worker_mass_spectrum() #test classification mass_spec_obj.percentile_assigned() mass_spectrum_by_classes = HeteroatomsClassification(mass_spec_obj) mass_spectrum_by_classes.plot_ms_assigned_unassigned() mass_spectrum_by_classes.atoms_ratio_all("H", "C") mass_spectrum_by_classes.dbe_all() mass_spectrum_by_classes.carbon_number_all() mass_spectrum_by_classes.abundance_assigned() mass_spectrum_by_classes.mz_exp_assigned() mass_spectrum_by_classes.abundance_count_percentile(Labels.unassigned) mass_spectrum_by_classes.peaks_count_percentile(Labels.unassigned)