Dateien nach "ILP/Kaffee" hochladen

This commit is contained in:
2026-09-16 10:36:55 +02:00
parent 62ffba3c05
commit 3414babe50
+37 -20
View File
@@ -283,27 +283,44 @@ def correction(spectra, corretionppm):
newspectra[id] = ([adjustedshift], height)
return newspectra
def addspectra(spectrum1, spectrum2):
spectrum = spectrum1.copy()
for _, ([ppm2], [height2]) in spectrum2.items():
for peak, ([ppm1], [height1]) in spectrum1.items():
if ppm1 == ppm2:
spectrum[peak] == ([ppm1], [height1 + height2])
continue
spectrum[len(spectrum) + 1] = ([ppm2], [height2])
return(spectrum)
def main():
spectrumref = CNMR2
#1H-NMR Spectra ignoriert, da meiste H sauer, da an N gebunden
#spectra = [HXANTHINE, H1XANTHINE, H3XANTHINE, H7XANTHINE, H1XANTHINE, H17XANTHINE, H37XANTHINE, H137XANTHINE]
spectra = [CXANTHINE, C1XANTHINE, C3XANTHINE, C7XANTHINE, C1XANTHINE, C17XANTHINE, C37XANTHINE, C137XANTHINE]
spectranames = ["XANTHINE", "1XANTHINE", "3XANTHINE", "7XANTHINE", "1XANTHINE", "17XANTHINE", "37XANTHINE", "137XANTHINE"]
likelihood = []
for spectrumtrue in spectra:
similaritybycorrection = []
#Paper Chemical reviews Carbons bound to Heavy atoms (TMS) to high -> this could be reason for too high values.
correctionvalues = [2.5] #np.arange(0, 1.51, 0.01) #for C tested np.arange(-0.37, 7.64, 0.1) 0, 2.63, 1 (for CNMR3), 1.5 (true for all ref, 8.37 + 1.5 for the precision), 1 (good for first, ok for second, third because only 7 better/equal but for first much higher) np.arange(-1.5, 1.49, 0.01) (only for first), for H 0 (not good), np.arange(-0.26, 0.34, 0.01), -0.06 for first, second never first either 17 or caf higher np.arange(-0.15, 0.16, 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
similaritylist = []
binwidthlist = 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)
likelihood.append(round(sum(similaritybycorrection)/len(similaritybycorrection), 2))
print(likelihood)
normalize = False
spectrumrefs = [CNMR1, CNMR3]
for spectrumref in spectrumrefs:
#spectra = [HXANTHINE, H1XANTHINE, H3XANTHINE, H7XANTHINE, H1XANTHINE, H17XANTHINE, H37XANTHINE, H137XANTHINE]
spectra = [CXANTHINE, C1XANTHINE, C3XANTHINE, C7XANTHINE, C1XANTHINE, C17XANTHINE, C37XANTHINE, C137XANTHINE]
spectranames = ["XANTHINE", "1XANTHINE", "3XANTHINE", "7XANTHINE", "1XANTHINE", "17XANTHINE", "37XANTHINE", "137XANTHINE"]
likelihoods = []
for spectrumtrue in spectra:
similaritybycorrection = []
#Paper Chemical reviews Carbons bound to Heavy atoms (TMS) to high -> this could be reason for too high values.
correctionvalues = [2.5] #np.arange(0, 1.51, 0.01) #for C tested np.arange(-0.37, 7.64, 0.1) 0, 2.63, 1 (for CNMR3), 1.5 (true for all ref, 8.37 + 1.5 for the precision), 1 (good for first, ok for second, third because only 7 better/equal but for first much higher) np.arange(-1.5, 1.49, 0.01) (only for first), for H 0 (not good), np.arange(-0.26, 0.34, 0.01), -0.06 for first, second never first either 17 or caf higher np.arange(-0.15, 0.16, 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
similaritylist = []
binwidthlist = 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)
likelihoods.append(sum(similaritybycorrection)/len(similaritybycorrection))
if normalize:
normalizedlikelihood = [round(likelihood/np.sum(likelihoods), 2) for likelihood in likelihoods]
print(normalizedlikelihood)
if not normalize:
notnormalizedlikelihood = [round(likelihood, 2) for likelihood in likelihoods]
print(notnormalizedlikelihood)
if __name__ == "__main__":
main()