def archiv_txt (v, I, J, r): td = Multiplet(v , I, [(J, r)]) grafica = mplplot(td.peaklist(), points=1000) intensidades = (grafica[1]) no_datos = len(grafica[1]) intensidades1 = [] for i in range (len(intensidades)): intensidades1.append(round(intensidades[i], 6)) #Datos en x Hz = (grafica[0]) min_Hz = (Hz[0]) max_Hz = (Hz[no_datos - 1]) oracion1 = f"Number of data points : {no_datos} \n" oracion2 = f"Chemical shift range (ppm) : 1 1\n" oracion3 = f"Chemical shift range (Hz) : {min_Hz} {max_Hz}\n" #escritura del archivo para guardar los datos f = open('multiplete7.slc','w') f.write(oracion1) f.write(oracion2) f.write(oracion3) for i in range (len(intensidades1)): f.write(str(intensidades1[i])+"\n") f.close()
def multiplet(v, I, J, r): #La simulacion tan famosa que ya conoces min_x = v - 20 max_x = v + 20 td = Multiplet(v, I, [(J, r)]) grafica = mplplot(td.peaklist(), points=1000, w=0.5, limits=(min_x, max_x)) return grafica
def test_mplplot(): doublet = [(399, 1), (401, 1)] limits = (410, 390) # deliberately opposite order x, y = mplplot(doublet, points=200, limits=limits) # test was written before normalization of height vs width was built into # lorentz(). Fudge-factor added to scale old accepted data. y = y * 2 print(np.array([x, y]).T) print(np.array(ADD_SIGNALS_DATASET)) assert np.allclose(np.array([x, y]).T, np.array(ADD_SIGNALS_DATASET))
def escritura_json (x): nombre = f"W_{x}Hz.json" with open(nombre, 'w') as archivo: json.dump(Jota_0_5Hz, archivo) #print("Archivo exportado con éxito") return for i in range (len(jotas)): # v = 1200 Hz, I = intensidad, J = cte. acoplamiento, r = vecinos J = jotas[i] v = 1200.0 min_x = v - 20 max_x = v + 20 td = Multiplet(v , 1, [(J, 1)]) #aqui entra en juego jotas grafica = mplplot(td.peaklist(), points=1000, w =1.5, limits= (min_x, max_x)) #para crear el archivo de texto intensidades = (grafica[1]) * 10000 #aqui lo multiplico x10000 por que si no me da valores bien pequeños, pero si lo ves innecesario piedes quitarlo no_datos = len(grafica[1]) intensidades1 = [] #creo esta lista por que como ves en el buclesito de abajo, guardo los valores hasta 6 cifras para no hacer el archivo de texto bien pesado for i in range (len(intensidades)): intensidades1.append(round(intensidades[i], 6)) Hz = (grafica[0])# Son los valores en x (Hz)de la simulacion que nos daba grafica, y grafica[1] son los valores en y de esa simulacion (intensidades) min_Hz = (Hz[0]) max_Hz = (Hz[no_datos - 1]) oracion1 = f"Number of data points : {no_datos} \n" oracion2 = f"Chemical shift range (ppm) : 1 1\n"
def nmr_sim (v, I, J, r): td = Multiplet(v , I, [(J, r)]) grafica = mplplot(td.peaklist(), points=1000) return grafica
# delta = xs[n] tam = len(ys) + n y_new = np.zeros(tam) for i in range( 0, tam ): if i < len(ys): y_new[i] += ys[i] if i >= n: y_new[i] += -ys[i-n] return y_new for i in range (len(ref)): # 1200 Hz, 2H, td, J= 7.1, 1.1 Hz td = Multiplet(1200 , 1, [(ref[i], 1)]) #aqui entra en juego ref grafica = mplplot(td.peaklist(), points=1000) #para crear el archivo de texto intensidades = (grafica[1]) * 10000 no_datos = len(grafica[1]) intensidades1 = [] for i in range (len(intensidades)): intensidades1.append(round(intensidades[i], 6)) Hz = (grafica[0]) min_Hz = (Hz[0]) max_Hz = (Hz[no_datos - 1]) oracion1 = f"Number of data points : {no_datos} \n" oracion2 = f"Chemical shift range (ppm) : 1 1\n"
import numpy as np from nmrsim import Multiplet from nmrsim.plt import mplplot import matplotlib.pyplot as plt import numpy as np import csv from scipy.signal import argrelextrema # 1200 Hz, 2H, td, J= 7.1, 1.1 Hz td = Multiplet(1200.0, 1, [(7.1, 1)]) print(td.v) print(td.I) print(td.J) grafica = mplplot(td.peaklist()) #para cuando quiero recuperar la imagen del multiplete plt.plot(grafica[0], grafica[1]) plt.xlabel("Frecuencia (Hz)") plt.ylim(0,1) plt.show() #para crear el archivo de texto intensidades = (grafica[1]) * 10000 no_datos = len(grafica[1]) intensidades1 = [] for i in range (len(intensidades)): intensidades1.append(round(intensidades[i], 8))
def test_mplplot_limit_error(limits): doublet = [(399, 1), (401, 1)] with pytest.raises((AttributeError, TypeError, ValueError)): mplplot(doublet, limits=limits) # noqa
def test_mplplot_defaults(): doublet = [(399, 1), (401, 1)] x, y = mplplot(doublet) assert len(x) == 800 assert x[0] == 399 - 50 assert x[-1] == 401 + 50
def multiplet (v, I, J, r): #La simulacion tan famosa que ya conoces td = Multiplet(v , I, [(J, r)]) grafica = mplplot(td.peaklist(), points=1000, w=0.5, limits=[]) return grafica