Dateien nach "ILP/Vanilla" hochladen

This commit is contained in:
2026-09-16 10:36:40 +02:00
parent 8b99e5d56e
commit 62ffba3c05
+37 -21
View File
@@ -49,7 +49,7 @@ CMCOUMARICACID = {
4: ([141.29], [1]),
5: ([121.09], [1]),
6: ([134.46], [1]),
7: ([121.09], [1]),
7: ([121.69], [1]),
8: ([164.15], [1]),
9: ([122.36], [1]),
}
@@ -255,26 +255,42 @@ 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 = [HCINNAMICACID, HPCOUMARICACID, HMCOUMARICACID, HBENZALDEHYD, HCAFFEICACID, H3HYDROXYBENZALDEHYD, H4HYDROXYBENZALDEHYD, H34DIHYDROXYBENZALDEHYD]
spectra = [CCINNAMICACID, CPCOUMARICACID, CMCOUMARICACID, CBENZALDEHYD, CCAFFEICACID, C3HYDROXYBENZALDEHYD, C4HYDROXYBENZALDEHYD, C34DIHYDROXYBENZALDEHYD]
spectranames = ["CINNAMICACID", "PCOUMARICACID", "MCOUMARICACID", "BENZALDEHYD", "CAFFEICACID", "3HYDROXYBENZALDEHYD", "4HYDROXYBENZALDEHYD", "34DIHYDROXYBENZALDEHYD"]
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, CNMR2]
for spectrumref in spectrumrefs:
#spectra = [HCINNAMICACID, HPCOUMARICACID, HMCOUMARICACID, HBENZALDEHYD, HCAFFEICACID, H3HYDROXYBENZALDEHYD, H4HYDROXYBENZALDEHYD, H34DIHYDROXYBENZALDEHYD]
spectra = [CCINNAMICACID, CPCOUMARICACID, CMCOUMARICACID, CBENZALDEHYD, CCAFFEICACID, C3HYDROXYBENZALDEHYD, C4HYDROXYBENZALDEHYD, C34DIHYDROXYBENZALDEHYD]
spectranames = ["CINNAMICACID", "PCOUMARICACID", "MCOUMARICACID", "BENZALDEHYD", "CAFFEICACID", "3HYDROXYBENZALDEHYD", "4HYDROXYBENZALDEHYD", "34DIHYDROXYBENZALDEHYD"]
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()