diff --git a/ILP/nmrSimilarity.py b/ILP/nmrSimilarity.py index 8a52f5e..496ee02 100644 --- a/ILP/nmrSimilarity.py +++ b/ILP/nmrSimilarity.py @@ -266,8 +266,8 @@ def define_border_values(spectraref, spectranew, bin_width): shifts.append(shift[0]) for _,(shift,_) in spectranew.items(): shifts.append(shift[0]) - highest_ppm = math.ceil(max(shifts)) - lowest_ppm = math.floor(min(shifts)) + highest_ppm = math.ceil(max(shifts)) + bin_width + lowest_ppm = math.floor(min(shifts)) - bin_width #lowest_ppm = min(shifts) - bin_width/2 #Worse result. None of the previously wrong (except 0.6) become right return (lowest_ppm, highest_ppm) @@ -294,15 +294,16 @@ def correction(spectra, corretionppm): return newspectra def main(): - spectrumref = CCAFFEINE2 + spectrumref = CNMR3 + #spectra = [HXANTHINE, H1XANTHINE, H3XANTHINE, H7XANTHINE, H1XANTHINE, H17XANTHINE, H37XANTHINE, H137XANTHINE] spectra = [CXANTHINE, C1XANTHINE, C3XANTHINE, C7XANTHINE, C1XANTHINE, C17XANTHINE, C37XANTHINE, C137XANTHINE] - spectranames = ["CXANTHINE", "C1XANTHINE", "C3XANTHINE", "C7XANTHINE", "C1XANTHINE", "C17XANTHINE", "C37XANTHINE", "C137XANTHINE"] + spectranames = ["XANTHINE", "1XANTHINE", "3XANTHINE", "7XANTHINE", "1XANTHINE", "17XANTHINE", "37XANTHINE", "137XANTHINE"] likelihood = [] for spectrumtrue in spectra: #errorlist = {} #errorlist = [] similaritybycorrection = [] - correctionvalues = range(8, 16) #also tested 8.4, 8.37, 11, 9.4 (for CNMR3) + correctionvalues = [9.87] #for C tested np.arange(8.0, 16.1, 0.1) range(8, 12) 8.4, 8.37, 11, 9.4 (for CNMR3), 9.87 (true for all ref, 8.37 + 1.5 for the precision), np.arange(6.13, 9.86, 0.01) (only for first), for H 0.66 (not good), np.arange(0.4, 1.0, 0.01), 0.6 for first, second never first either 17 or caf higher np.arange(0.51, 0.82, 0.01) good measure for correctionvalue in correctionvalues: spectrumrefcorrected = correction(spectrumref, correctionvalue) #CCAFFEINE 11 (klappt hier sehr gut) CCAFFEINE2 12 CPARAXANTHINE 10 CNMR1 9, 10 o 11 (sehr gut) CNMR2 10 o 11 #Likelihood by number of higher similarity than all others. @@ -333,14 +334,17 @@ def main(): #Likelihood by mean similarity #This method demonstrates the same problems as the other likelihood method similaritylist = [] - for i in np.arange(0.1, 3.9, 0.1): + binwidthlist = np.arange(0.1, 3.9, 0.1) #np.arange(0.1, 3.9, 0.1) + for i in binwidthlist: similaritylist.append(similarity_nmr(spectrumtrue, spectrumrefcorrected, i)) similaritymean = sum(similaritylist) / len(similaritylist) similaritybycorrection.append(similaritymean) name = spectranames[spectra.index(spectrumtrue)] correctionindex = max(range(len(similaritybycorrection)), key=similaritybycorrection.__getitem__) print(f'{name}: {correctionindex} = {correctionvalues[correctionindex]}') - likelihood.append(round(max(similaritybycorrection), 2)) + #Maybe not the best but a mean instead? + likelihood.append(round(sum(similaritybycorrection)/len(similaritybycorrection), 2)) + #likelihood.append(round(max(similaritybycorrection), 2)) print(likelihood) '''for i in np.arange(0.01, 0.07, 0.01): print(f'Increment i: {i}')