Ejemplo n.º 1
0
 def test_lineshape(self):
     m1 = Multiplet(100, 1, [(10, 2)])
     m2 = Multiplet(80, 1, [(10, 2)], w=1.0)  # also test w
     # also test vmin/vmax work
     spectrum = Spectrum([m1, m2], vmin=0.0, vmax=200.0)
     x = np.linspace(0.0, 200.0, 1000)
     y1 = add_lorentzians(x, m1.peaklist(), m1.w)
     y2 = add_lorentzians(x, m2.peaklist(), m2.w)
     y_sum = [sum(i) for i in zip(y1, y2)]
     spec_x, spec_y = spectrum.lineshape(points=1000)
     assert np.allclose(spec_x, x)
     assert np.allclose(spec_y, y_sum)
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()
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
 def test_instantiates(self, td):
     v, I, J = td
     td_multiplet = Multiplet(v, I, J, 1.5)
     assert td_multiplet.v == 1200.0
     assert td_multiplet.I == 2
     assert td_multiplet.J == [(7.1, 2), (1.1, 1)]
     assert td_multiplet.w == 1.5
     expected_peaklist = [(1192.35, 0.25), (1193.45, 0.25), (1199.45, 0.5),
                          (1200.55, 0.5), (1206.55, 0.25), (1207.65, 0.25)]
     assert np.allclose(td_multiplet.peaklist(), expected_peaklist)
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"
Ejemplo n.º 6
0
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 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