def LoadFromData(units): p90H = pul.GetPar('pH90', "") p90C = pul.GetPar('pC90', "") p90N = pul.GetPar('pN90', "") ampH = pul.GetPar('aH', units) ampC = pul.GetPar('aC', units) ampN = pul.GetPar('aN', units) MAS = pul.GetPar('MAS', "") index = TopCmds.INPUT_DIALOG("Mr Setup Input", "Pulse Widths and Power", \ ["1H 90 pw","1H ampl","13C 90 pw","13C ampl","15N 90 pw","15N ampl","MAS"],\ [str('%.2f' %p90H),str('%.2f' %ampH),str('%.2f' %p90C),str('%.2f' %ampC),str('%.2f' %p90N),str('%.2f' %ampN),str('%.2f' %MAS)],\ ["us",units,"us",units,"us",units," Hz"],\ ["1","1","1","1","1","1","1"],\ ["Accept","Close"], ['a','c'], 10) p90H = float(index[0]) ampH = float(index[1]) p90C = float(index[2]) ampC = float(index[3]) p90N = float(index[4]) ampN = float(index[5]) MAS = float(index[6]) TauR = 1000000. / MAS PutPars(p90H, ampH, p90C, ampC, p90N, ampN, MAS, units)
def CalS7purge(): p90C=float(TopCmds.GETPAR("P 1")) ampC=float(TopCmds.GETPAR("PLdB 1")) MaxB1 = 1000000./4./p90C p90sC=float(TopCmds.GETPAR("P 7")) SPname=(TopCmds.GETPAR("SPNAM7")) if p90sC == 0: p90sC = 1500000./MAS SP=SPname if SP == "gauss" : SP = "3pi2SINC.wtf" offs = float(TopCmds.GETPAR("SPOFFS 7")) index = TopCmds.INPUT_DIALOG("ON-resonance 90 purge", "S7 soft 90", \ ["Duration","Offset","Pulse Name (3pi/2 Sinc)"],\ [str(p90sC),str(offs),SP],\ ["us","Hz",""],\ ["1","1","1"],\ ["Accept","Close"], ['a','c'], 10) p90sC=float(index[0]) offs=float(index[1]) SP=index[2] AvgAmp=IntShape.Integrate(SP)/100. adjust=20*math.log10(p90C/p90sC/AvgAmp) Power=ampC-adjust TopCmds.PUTPAR("PLdB 27",str('%3.2f' %Power)) TopCmds.PUTPAR("SPNAM7",SP) TopCmds.PUTPAR("SPOFFS 7",str('%8.2f' %offs)) TopCmds.PUTPAR("P 7",str('%3.2f' %p90sC))
def name(input): name = str("DUO_C" + input[4] + "_B" + input[3] + "_MAS" + input[1] + "_np" + input[2] + ".wave") Wavename = str(TopCmds.INPUT_DIALOG("DUO File", "", ["Filename = "],[name],[""],["1"],["Accept","Close"], ['a','c'], 30)) Filename = Wavename[8:len(Wavename)-21] #get rid of Java formatting #MSG( Filename + ' \n is the file name') return Filename
def dialog(): input = TopCmds.INPUT_DIALOG("DUOinput", "", \ ["RF field = ", "MAS = ","steps" ,"B = ", "C = "], \ ["100","10000","100","3.5","0.5"],\ ["kHz","Hz","","lit=3.5","lit=0.5",], ["1", "1", "1", "1", "1"],\ ["Accept","Close"], ['a','c'],10) return input
def DREAM(): oldCDREAM=float(TopCmds.GETPAR("PLdB 22")) RAMP=TopCmds.GETPAR("SPNAM5") #AvgAmpOld=IntShape.Integrate(RAMP)/100. index = TopCmds.INPUT_DIALOG("DREAM MAS", "DREAM changes for MAS change", \ ["Old MAS rate","New MAS rate","Old 13C power","Mixing time (p20)","Ramp Name"],\ [str(MASR),str(MAS),str(ampC5),str(LoopC5),RAMP],\ ["kHz","kHz","dB",""],\ ["1","1","1","1"],\ ["Accept","Close"], ['a','c'], 10) OldMAS=float(index[0]) NewMAS=float(index[1]) olddB=float(index[2]) newmix=float(index[3]) RAMP =index[4] #AvgAmpNew=IntShape.Integrate(RAMP)/100. adjust=20*(math.log10(NewMAS/OldMAS)) newdB = olddB-adjust adjust=20*(math.log10(AvgAmpNew/AvgAmpOld)) #in case there is a Ramp change newdB = newdB-adjust TopCmds.PUTPAR("PLdB 22",str('%3.2f' %newdB)) TopCmds.PUTPAR("P 20",str('%3.2f' %newmix)) TopCmds.PUTPAR("SPNAM5",RAMP)
def HN(MAS0, MAS, units): p90H = pul.GetPar('pH90', "") ampH = pul.GetPar('aH', units) SPH = pul.GetPar('sHhn', "") ampHCP = pul.GetPar('aHhn', units) avgH = 1.0 p90X = pul.GetPar('pN90', "") ampX = pul.GetPar('aN', units) SPX = pul.GetPar('sNhn', "") ampXCP = pul.GetPar('aNhn', units) avgX = 1.0 CNCT = pul.GetPar('pHN', "") params = TopCmds.INPUT_DIALOG("HN CP MAS adjustment", "Proton Nitrogen Cross Polarization", \ ["Old MAS rate","New MAS rate","Old 1H power ("+pul.pulDict['aHhc']+")",\ "Old 15N power ("+pul.pulDict['aNhn']+")","Contact Time ("+pul.pulDict['pHN']+")",\ "H-Ramp ("+pul.pulDict['sHhc']+")","N-Ramp ("+pul.pulDict['sChc']+")"],\ [str(MAS0),str(MAS),str(ampXCP),str(ampHCP),str(CNCT),SPH,SPX],\ ["Hz","Hz",units,units,"us","",""],\ ["1","1","1","1","1","1","1"],\ ["Accept","Close"], [spc,ret], 10) if params == None: TopCmds.EXIT() if units == "W": params[2] = str(Setup.WtodB(float(params[2]))) params[3] = str(Setup.WtodB(float(params[3]))) ampH = Setup.WtodB(ampH) ampX = Setup.WtodB(ampX) if SPH != "None" and SPH != None and SPH != "Unused": avgH = IntShape.Integrate(SPH) / 100. if SPX != "None" and SPX != None and SPX != "Unused": avgX = IntShape.Integrate(SPX) / 100. pulses = p90H, ampH, p90X, ampX, avgH, avgX SelectorText="Adjust the HN CP parameters:","Calculate New Match for:",\ ["Proton","Nitrogen","Maximum for Both"] ampHCP, ampXCP = FindMatch(params, pulses, SelectorText) if units == "W": ampXCP = Setup.dBtoW(ampXCP) ampHCP = Setup.dBtoW(ampHCP) value = TopCmds.SELECT("Adjusting the HN CP parameters:",\ "This will set\n 1H power to: " + str('%3.2f' %ampHCP)+ " "+units+"\n \ 15N power to: " +str('%3.2f' %ampXCP) + " "+units,["Update", "Keep Previous"]) if value != 1: pul.SetPar('aHhn', ampHCP, units) pul.SetPar('aNhn', ampXCP, units) pul.SetPar('pHN', CNCT, "") pul.SetPar('sHhn', SPH, "") pul.SetPar('sNhn', SPX, "")
def dialog(): input = TopCmds.INPUT_DIALOG("DUOinput", "", \ ["RF field = ", "MAS = ","steps" ,"B = ", "C = "], \ ["100","10000","100","3.5","0.5"],\ ["kHz","Hz","","lit=3.5","lit=0.5",], ["1", "1", "1", "1", "1"],\ ["Accept","Close"], [spc,ret],10) if input == None: TopCmds.EXIT() return input
def HDec(units): Stuff = [] p90H = float(TopCmds.GETPAR("P 3")) ampH = float(TopCmds.GETPAR("PLdB 2")) MaxB1H = 1000000. / 4. / p90H CPD = TopCmds.GETPAR2("CPDPRG 2") if CPD == "mlev" or CPD == "None": TopCmds.XCMD("cpdprg2") CPD = (TopCmds.GETPAR2("CPDPRG 2")) Stuff = CPDtools.CPDparse(CPD, "1H") #TopCmds.MSG(str(Stuff)) amp0 = CPDtools.Find_old_pl(Stuff[0]) decpw0 = CPDtools.Find_old_pw(Stuff[1], "1H") B1_0 = MaxB1H * (math.pow(10, (ampH - amp0) / 20.)) / 1000. if B1_0 > 1.: B1out = '% .1f' % B1_0 if B1_0 <= 1.: B1out = '75.0' index = TopCmds.INPUT_DIALOG("Mr Setup Input", "Decoupling Window", \ ["Desired 1H Decoupling Amplitude","File"],\ [B1out,CPD],["kHz",""],["1","1",],\ ["Accept","Close"], ['a','c'], 10) TopCmds.PUTPAR("CPDPRG 2", index[1]) #print(index[0], MaxB1H) adjust = 20 * (math.log10(1000. * float(index[0]) / MaxB1H)) Hamp = ampH - adjust decpwH = (MaxB1H / 1000. / float(index[0])) * (170. / 180.) * 2 * p90H if units == "W": Hamp = dBtoW(Hamp) value = TopCmds.SELECT("Adjusting the H decoupling parameters:",\ "This will set\n 1H power ("+ Stuff[0] +") to: "+ str('%.2f' %Hamp)+" "+ units+"\n \ Pulse width (" + Stuff[1] +") to: " +str('%3.2f' %decpwH) + units,["Update", "Keep Previous"]) if value != 1: if Stuff[0] == 'pl12': TopCmds.PUTPAR("PL" + units + " 12", str('%3.2f' % Hamp)) elif Stuff[0] == 'pl13': TopCmds.PUTPAR("PL" + units + " 13", str('%3.2f' % Hamp)) elif Stuff[0] == 'pl14': TopCmds.PUTPAR("PL" + units + " 14", str('%3.2f' % Hamp)) if Stuff[1] == 'pcpd': TopCmds.PUTPAR("PCPD 2", str('%3.2f' % decpwH)) elif Stuff[1] == 'p31': TopCmds.PUTPAR("P 31", str('%3.2f' % decpwH)) TopCmds.PUTPAR("P 30", str('%3.2f' % decpwH)) elif Stuff[1] == 'p62': TopCmds.PUTPAR("P 61", str('%3.2f' % decpwH)) TopCmds.PUTPAR("P 62", str('%3.2f' % decpwH))
def name(input, SP): Name = str("TAN_" + input[2] + "D_" + input[3] + "B.wave") index = str(TopCmds.INPUT_DIALOG("TAN ramp Files", "", ["File = ","edWave =",],\ [Name,SP],["",""],["1","1"],["Accept","Close"], [spc,ret], 30)) File, SP = index if SP.find("SPNAM ") >= 0: TopCmds.PUTPAR(str(SP), str(File)) return File
def dialog(): MAS = TopCmds.GETPAR("CNST 31") #MSG(MAS) input = TopCmds.INPUT_DIALOG("EXPORTinput", "", \ ["13C field ","15N field ","MAS ", "steps in Export Element", "C(Ix+Sx)=CFx", "B Iy", "B Sy", "Initial Phase"],\ ["50","50",str(MAS),"100", "7.0", "0.375", "0.625", "90"],\ ["kHz","kHz","Hz","","","","",""],\ ["1","1", "1", "1", "1", "1", "1", "1"],\ ["Accept","Close"], ['a','c'], 10) return input
def S6purge(): p90C=float(TopCmds.GETPAR("P 1")) ampC=float(TopCmds.GETPAR("PLdB 1")) MAS =float(TopCmds.GETPAR("CNST 31")) MaxB1 = 1000000./4./p90C p90sC=float(TopCmds.GETPAR("P 6")) SPname=(TopCmds.GETPAR2("SPNAM 6")) if p90sC == 0: p90sC = 1500000./MAS SP=SPname #Check for existence and default if SP == "gauss" or SP == "None" : #TopCmds.MSG("Please set spnam6") TopCmds.XCMD("spnam6") SP=(TopCmds.GETPAR2("SPNAM 6")) offs = float(TopCmds.GETPAR("SPOFFS 6")) ppm=CFrq.offs2ppm(offs) if ppm > 140.0 : ppm=55.0 if ppm < -10.0 : ppm=55.0 index = TopCmds.INPUT_DIALOG("CA 90 purge", "S6 soft 90", \ ["Duration","Offset","Pulse Name (3pi/2 Sinc)"],\ [str('%3.2f' %p90sC),str('%3.2f' %ppm),SP],\ ["us","ppm",""],\ ["1","1","1"],\ ["Accept","Close"], ['a','c'], 10) p90sC=float(index[0]) ppm=float(index[1]) SP=index[2] offs=CFrq.ppm2offs(ppm) AvgAmp=IntShape.Integrate(SP)/100. adjust=20*math.log10(p90C/p90sC/AvgAmp) Power=ampC-adjust PowerW=pwr.dBtoW(Power) confirm = TopCmds.SELECT("Adjusting the S6 purge pulse:",\ "This will set\n \ 13C amp (pl26) to :" + str('%3.2f' %PowerW)+ " W\n \ Pulse offset to :" + str('%8.0f' %offs) + " Hz\n \ Equivalent to :" + str('%3.1f' %ppm ) + " ppm\n \ p6 to :" + str('%6.1f' %p90sC)+ " us\n "\ ,["Update", "Keep Previous"]) if confirm != 1: TopCmds.PUTPAR("PLdB 26",str('%3.2f' %Power)) TopCmds.PUTPAR("SPNAM 6",SP) TopCmds.PUTPAR("SPOFFS 6",str('%8.2f' %offs)) TopCmds.PUTPAR("P 6",str('%3.2f' %p90sC))
def dialog(Scale, Delta, Beta): MAS = float(TopCmds.GETPAR("CNST 31")) TauR = float(1000000 / MAS) input = TopCmds.INPUT_DIALOG("DREAM input", "", \ ["Total Duration","RI,RO duration","Scale","Ramp","Adiabicity"],\ ["1.0",str( '%3.2f' % TauR),str( '%3.1f' % Scale),str( '%3.1f' % Delta),str( '%3.1f' % Beta)],\ ["ms","us","%","+/- %",""],\ ["1","1","1","1","1","1","1"],\ ["Accept","Close"], ['a','c'], 10) return input
def dialog(): MAS = float(TopCmds.GETPAR("CNST 31")) TauR = float(1000000 / MAS) Data = TopCmds.INPUT_DIALOG("Tangent Ramp Input", "", \ ["Scaling","steps","Ramp (Delta)","Adiabicity (Beta)"],\ ["50","500","20","4"],\ ["%","","%",""],\ ["1","1","1","1"],\ ["Accept","Close"], ['a','c'], 10) return Data
def dialog(): MAS = float(TopCmds.GETPAR("CNST 31")) TauR = float(1000000 / MAS) input = TopCmds.INPUT_DIALOG("R2T input", "", \ ["Nominal RF ampl","MAS","R2T duration","RI,RO duration","steps","Ramp","I offset","S offset"],\ ["85",str('%.0f' % MAS),"1.5",str( '%3.2f' % (TauR)),"1000","20","8.000","6.000"],\ ["kHz"," Hz","ms","us","","+/- %","kHz","kHz"],\ ["1","1","1","1","1","1","1","1"],\ ["Accept","Close"], ['a','c'], 10) return input
def name_confirm(Ttot,RIRO,Sc,Del,Bet,key): Name = "DRM_" + str('%.0f'%Sc) +"Sc_"+str('%.0f'%Del)+"D_"+str('%.0f'%Bet)+"B.wave" SP=pul.pulDict[key] index=TopCmds.INPUT_DIALOG("DREAM Files", "", \ ["File = ","Wave =",],[Name,SP],["",""],["1","1"],\ ["Accept","Close"], [spc,ret], 30) if index == None:TopCmds.EXIT() pul.SetPar(key,index[0],"") return index[0]
def name_confirm(input): Name = str("R2T_" + input[1] + "MAS_" + input[6] + "I_" + input[7] + "S.wave") SP = str("SPNAM18") Wave = str(TopCmds.INPUT_DIALOG("R2T Files", "", ["C File = ","C Wave =",],\ [Name,SP],["",""],["1","1"],["Accept","Close"], ['a','c'], 30)) Files = Wave[8:len(Wave) - 21] #get rid of Java formatting i = Files.find(",") File = Files[0:i - 1] SP = Files[i + 3:] TopCmds.PUTPAR(str(SP), str(File)) return File, SP
def dialog(): MAS = pul.GetPar('MAS', "") TauR = float(1000000 / MAS) Data = TopCmds.INPUT_DIALOG("Tangent Ramp Input", "", \ ["Scaling","steps","Ramp (Delta)","Adiabicity (Beta)"],\ ["50","500","20","4"],\ ["%","","%",""],\ ["1","1","1","1"],\ ["Accept","Close"], [spc,ret], 10) if Data == None: TopCmds.EXIT() return Data
def name_confirm(Ttot, RIRO, Sc, Del, Bet): Name = "DREAM_" + Del + "D_" + Bet + "B_" + Sc + "Sc_" + Ttot + "ms_" + RIRO + "us_ri.wave" SP = "SPNAM 5" Wave = str(TopCmds.INPUT_DIALOG("DREAM Files", "", ["C File = ","C Wave =",],\ [Name,SP],["",""],["1","1"],["Accept","Close"], ['a','c'], 30)) Files = Wave[27:len(Wave) - 3] #get rid of Java formatting i = Files.find(",") File = Files[0:i - 1] SP = Files[i + 4:] TopCmds.PUTPAR(SP, File) return File, SP
def name(input, SP): Name = str("TAN_" + input[2] + "D_" + input[3] + "B.wave") Wave = str(TopCmds.INPUT_DIALOG("TAN ramp Files", "", ["C File = ","C Wave =",],\ [Name,SP],["",""],["1","1"],["Accept","Close"], ['a','c'], 30)) Files = Wave[27:len(Wave) - 3] #get rid of Java formatting #TopCmds.MSG(Wave) #TopCmds.MSG(Files) i = Files.find(",") File = Files[0:i - 1] #TopCmds.MSG(File) SP = Files[i + 4:] #TopCmds.MSG(SP) if SP.find("SPNAM ") >= 0: TopCmds.PUTPAR(str(SP), str(File)) return File
def Nhp(Home, Source, winfil, unit, qt): Nhp = 0 if winfil == 0: TopCmds.SET_SELECTED_WIN(Source) if winfil == 1: TopCmds.RE(Source, "n") p90, pamp = Get.NPul(unit) #TopCmds.MSG("From:\np90= "+str(p90)+"\npamp= "+str(pamp)) if winfil == 0: TopCmds.SET_SELECTED_WIN(Home) if winfil == 1: TopCmds.RE(Home, "n") p90_0, pamp0 = Get.NPul(unit) #TopCmds.MSG("Home:\np90_0= "+str(p90_0)+"\npamp_0= "+str(pamp0)) if p90_0 != p90 or pamp != pamp0: Title = "Nitrogen Hard Pulse Merger" Header = "" Inputs=\ "15N 90"+deg+" pulse : "+str(p90_0)+" us ("+str(pul.pulDict['pN90'])+")",\ "15N 90"+deg+" pwr : "+str(pamp0)+unit+" ("+str(pul.pulDict['aN'])+")" Values = str(p90), str(pamp) Comments = "us", unit Types = "1", "1" Buttons = "Accept", "Cancel" ShortCuts = 'a', 'c' columns = 5 if qt == 0: result = TopCmds.INPUT_DIALOG(Title, Header, Inputs, Values, Comments, Types, Buttons, ShortCuts, columns) if result != None: p90, pamp = result Nhp = 1 Put.NPul(p90, pamp, unit) else: abort(Home, Source, winfil) if qt != 0: Put.NPul(p90, pamp, unit) Nhp = 1 return Nhp
def NCO(Home, Source, winfil, unit, qt): NC = 0 if winfil == 0: TopCmds.SET_SELECTED_WIN(Source) if winfil == 1: TopCmds.RE(Source) CPcnct, aH, aX, aY, SPX, SPY = Get.NCO(unit) if winfil == 0: TopCmds.SET_SELECTED_WIN(Home) if winfil == 1: TopCmds.RE(Home) CPcnct0, aH0, aX0, aY0, SPX0, SPY0 = Get.NCO(unit) if CPcnct != CPcnct0 or aH != aH0 or aX != aX0 or aY != aY0 or SP != SP0: Title = "UPDATE N-CO CP" Header = "" Inputs=\ "Contact : "+str(CPcnct0)+" us ("+str(pul.pulDict['pNCO'])+")",\ "1H dec pwr : "+str(aH0)+" "+unit+" ("+str(pul.pulDict['aHnco'])+")",\ "13C pwr : "+str(aX0)+" "+unit+" ("+str(pul.pulDict['aCnco'])+")",\ "15N pwr : "+str(aY0)+" "+unit+" ("+str(pul.pulDict['aNnco'])+")",\ "13C shape : "+str(SP0)+" ("+str(pul.pulDict['sCnco'])+")" "15N shape : " + str(SP0) + " (" + str(pul.pulDict['aNnco']) + ")" Values = str(CPcnct), str(aH), str(aX), str(aY), str(SPX), str(SPY) Comments = "us", unit, unit, unit, "", "" Types = "1", "1", "1", "1", "1", "1" Buttons = "Accept", "Cancel" ShortCuts = 'a', 'c' columns = 15 if qt == 0: result = TopCmds.INPUT_DIALOG(Title, Header, Inputs, Values, Comments, Types, Buttons, ShortCuts, columns) if result != None: CPcnct, aH, aX, aY, SPX, SPY = result NC = 1 Put.NCO(CPcnct, aH, aX, aY, SPX, SPY, unit) else: abort(Home, Source, winfil) else: NCA = 1 Put.NCO(CPcnct, aH, aX, aY, SPX, SPY, unit) return NC
def NH2(Home, Source, winfil, unit, qt): NH2 = 0 if winfil == 0: TopCmds.SET_SELECTED_WIN(Source) if winfil == 1: TopCmds.RE(Source, "n") CPcnct, aHcp, aXcp, SPH, SPX = Get.NH2(unit) if winfil == 0: TopCmds.SET_SELECTED_WIN(Home) if winfil == 1: TopCmds.RE(Home, "n") CPcnct0, aHcp0, aXcp0, SPH0, SPX0 = Get.NH2(unit) if CPcnct != CPcnct0 or aHcp != aHcp0 or aXcp != aXcp0 or SPH != SPH0 or SPX != SPX0: Title = "UPDATE N-H CP (H-detect)" Header = "" Inputs=\ "Contact : "+str(CPcnct0)+" us ("+str(pul.pulDict['pNH2'])+")",\ "1H pwr : "+str(aHcp0)+" "+unit+" ("+str(pul.pulDict['aHnh2'])+")",\ "15N pwr : "+str(aXcp0)+" "+unit+" ("+str(pul.pulDict['aNnh2'])+")",\ "1H shape : "+str(SPH0)+" ("+str(pul.pulDict['sHnh2'])+")",\ "15N shape : "+str(SPX0)+" ("+str(pul.pulDict['sNnh2'])+")" Values = str(CPcnct), str(aHcp), str(aXcp), str(SPH), str(SPX) Comments = "us", unit, unit, "", "" Types = "1", "1", "1", "1", "1" Buttons = "Accept", "Cancel" ShortCuts = 'a', 'c' columns = 15 if qt == 0: result = TopCmds.INPUT_DIALOG(Title, Header, Inputs, Values, Comments, Types, Buttons, ShortCuts, columns) if result != None: CPcnct, aHcp, aXcp, SPH, SPX = result NH2 = 1 Put.NH2(CPcnct, aHcp, aXcp, SPH, SPX, unit) else: abort(Home, Source, winfil) if qt != 0: NH2 = 1 Put.NH2(CPcnct, aHcp, aXcp, SPH, SPX, unit) return NH2
def CPdec(amp, units, In, Out): """ amp : dict key for CP decoupling amp units : Watts (W) or decibel (dB) In : Title, Subtitle, and Label for Input Dialog Out : Title and Label for Selection/Confirmation Window """ P90 = pul.GetPar('pH90', "") Amp90 = pul.GetPar('aH', "dB") AmpD0 = pul.GetPar(amp, "dB") MaxB1D = 1000000. / 4. / P90 B1_0 = MaxB1D * (math.pow(10, (Amp90 - AmpD0) / 20.)) if B1_0 > 100.: Dcond = '% .1f' % B1_0 if B1_0 > MaxB1D: Dcond = '85000.0' if B1_0 <= 100.: Dcond = '85000.0' Val = [str('%3.3f' % (float(Dcond) / 1000.))] index=TopCmds.INPUT_DIALOG(In[0],In[1],In[2],\ Val,["kHz"],["1"],\ ["Accept","Close"], [spc,ret], 10) if index == None: TopCmds.EXIT() #Safety Damp = DecSafely(1000. * float(index[0]), amp, MaxB1D, 150000., Amp90, units) if units == "W": Damp = dBtoW(Damp) value = TopCmds.SELECT(Out[0],"This will set\n "+\ Out[1]+" power to: " + str('%3.2f' %Damp)+" "+ units,\ ["Update", "Keep Previous"],[spc,ret]) if value != 1: pul.SetPar(amp, Damp, units) return
def HDec(Home, Source, winfil, unit, qt): HDec = 0 if winfil == 0: TopCmds.SET_SELECTED_WIN(Source) if winfil == 1: TopCmds.RE(Source) cpd, pwname, pw, pampname, pamp = Get.HDec(unit) #TopCmds.MSG(cpd+pwname+str(pw)+pampname+str(pamp)) if winfil == 0: TopCmds.SET_SELECTED_WIN(Home) if winfil == 1: TopCmds.RE(Home) cpd0, pw0name, pw0, pamp0name, pamp0 = Get.HDec(unit) #TopCmds.MSG(cpd0+pw0name+str(pw0)+pamp0name+str(pamp0)) if cpd0 != cpd or pamp != pamp0 or pw != pw0 or pwname != pw0name or pampname != pamp0name: Title = "UPDATE Proton Decoupling parameters" Header = "(pl12, pcpd2, cpdprg2 only)" Inputs=\ "Compound pulse : "+str(cpd0),\ pwname+" : "+str(pw0)+" us ",\ pampname+" : "+str(pamp0)+unit Values = str(cpd), str(pw), str(pamp) Comments = "", "us", unit Types = "1", "1", "1" Buttons = "Accept", "Cancel" ShortCuts = 'a', 'c' columns = 15 if qt == 0: result = TopCmds.INPUT_DIALOG(Title, Header, Inputs, Values, Comments, Types, Buttons, ShortCuts, columns) if result != None: cpd, pw, pamp = result HDec = 1 Put.HDec(cpd, pwname, pw, pampname, pamp, unit) else: abort(Home, Source, winfil) if qt != 0: HDec = 1 Put.HDec(cpd, pwname, pw, pampname, pamp, unit) return HDec
def COs180(Home, Source, winfil, unit, qt): done = 0 if winfil == 0: TopCmds.SET_SELECTED_WIN(Source) if winfil == 1: TopCmds.RE(Source, "n") PW, Amp, SP, Off = Get.CO_S180(unit) if winfil == 0: TopCmds.SET_SELECTED_WIN(Home) if winfil == 1: TopCmds.RE(Home, "n") PW0, Amp0, SP0, Off0 = Get.CO_S180(unit) if CPcnct != CPcnct0 or aHcp != aHcp0 or aXcp != aXcp0 or SPH != SPH0 or SPX != SPX0: Title = "UPDATE CO soft 180 pulse" Header = "" Inputs=\ "Pulse : "+str(PW0)+" us ("+str(pul.pulDict['pCOr'])+")",\ "Ampl : "+str(Amp0)+" "+unit+" ("+str(pul.pulDict['aCOr'])+")",\ "Shape : "+str(SP0)+" ("+str(pul.pulDict['sCOr'])+")",\ "Offset : "+str(Off0)+" ("+str(pul.pulDict['oCOr'])+")" Values = str(PW), str(Amp), str(SP), str(Off) Comments = "us", unit, "", str(pul.pulDict['uoffs']) Types = "1", "1", "1", "1" Buttons = "Accept", "Cancel" ShortCuts = 'a', 'c' columns = 15 if qt == 0: result = TopCmds.INPUT_DIALOG(Title, Header, Inputs, Values, Comments, Types, Buttons, ShortCuts, columns) if result != None: PW, Amp, SP, Off = result done = 1 Put.CO_S18(PW, Amp, SP, Off, unit) else: abort(Home, Source, winfil) if qt != 0: done = 1 Put.CO_S180(PW, Amp, SP, Off, unit) return done
def name_confirm(): adbname = pul.GetPar('sCadb', "") if adbname == "gauss": adbname = "TanhTan" SP = pul.pulDict['sCadb'] Wave = str(TopCmds.INPUT_DIALOG("Adiabatic TOBSY", "",\ ["SP File = ","SP Wave =",],\ [adbname,SP],["",""],["1","1"],["Accept","Close"], [spc,ret], 30)) if Wave == None: TopCmds.EXIT() Files = Wave[8:len(Wave) - 21] #get rid of Java formatting i = Files.find(",") File = Files[0:i - 1] SP = Files[i + 3:] pul.SetPar(SP, str(File), "") pul.SetPar('sCadb', File, "")
def HN(Home,Source,winfil,unit,qt): HN=0 if winfil ==0 :TopCmds.SET_SELECTED_WIN(Source) if winfil ==1 :TopCmds.RE(Source,"n") CPcnct, aHcp, aXcp, SPH, SPX = Get.HN(unit) if winfil ==0 :TopCmds.SET_SELECTED_WIN(Home) if winfil ==1 :TopCmds.RE(Home,"n") CPcnct0, aHcp0, aXcp0, SPH0, SPX0 = Get.HN(unit) if CPcnct!=CPcnct0 or aHcp!=aHcp0 or aXcp!=aXcp0 or SPH!=SPH0 or SPX!=SPX0 : Title="UPDATE H-N CP" Header="" Inputs=\ "Contact : "+CPcnct0+" us ",\ "1H pwr : "+aHcp0+" "+unit,\ "13C pwr : "+aXcp0+" "+unit,\ "1H shape : "+SPH0,\ "13C shape : "+SPX0 Values=CPcnct,aHcp,aXcp,SPH,SPX Comments="us",unit,unit,"","" Types="1","1","1","1","1" Buttons="Accept","Cancel" ShortCuts='a','c' columns=15 if qt==0: result=TopCmds.INPUT_DIALOG(Title,Header,Inputs,Values,Comments,Types,Buttons,ShortCuts,columns) if result != None: CPcnct, aHcp, aXcp, SPH, SPX = result HN=1 Put.HN(CPcnct, aHcp, aXcp, SPH, SPX, unit) else: abort(Home,Source,winfil) else: HN=1 Put.HN(CPcnct, aHcp, aXcp, SPH, SPX, unit) return HN
def LoadDefault(units): # # Read the Prosol data (Defaults remain if no Prosol) # Still under development :( p90H = 2.5 p90C = 3.0 p90N = 5.0 if units == "W": ampH = 100. ampC = 200. ampN = 400. else: ampH = 0. ampC = 0. ampN = 0. MAS = 10000 #Read the Prosol data if it exists #XCMD('rprosol') #p90H, p90C, p90N, ampH, ampC, ampN, MAS = ReadHPFromData(units) index = TopCmds.INPUT_DIALOG("Mr Setup Input", "Pulse Widths and Power", \ ["1H 90 pw","1H ampl","13C 90 pw","13C ampl","15N 90 pw","15N ampl","MAS"],\ [str(p90H),str(ampH),str(p90C),str(ampC),str(p90N),str(ampN),str(MAS)],\ ["us",units,"us",units,"us",units," Hz"],\ ["1","1","1","1","1","1","1"],\ ["Accept","Close"], [spc,ret], 10) if index == None: TopCmds.EXIT() p90H = float(index[0]) ampH = float(index[1]) p90C = float(index[2]) ampC = float(index[3]) p90N = float(index[4]) ampN = float(index[5]) MAS = float(index[6]) TauR = 1000000. / MAS PutPars(p90H, ampH, p90C, ampC, p90N, ampN, MAS, units)
def LoadDefault(units): # # Should have an external file to read from, but for now, this will do. # #ReadPars(p90H,ampH,p90C,ampC,p90N,ampN,MAS) index = TopCmds.INPUT_DIALOG("Mr Setup Input", "Pulse Widths and Power", \ ["1H 90 pw","1H ampl","13C 90 pw","13C ampl","15N 90 pw","15N ampl","MAS"],\ ["2.5","100","3.0","200.0","5.0","500.0","10000"],\ ["us",units,"us",units,"us",units," Hz"],\ ["1","1","1","1","1","1","1"],\ ["Accept","Close"], ['a','c'], 10) p90H = float(index[0]) ampH = float(index[1]) p90C = float(index[2]) ampC = float(index[3]) p90N = float(index[4]) ampN = float(index[5]) MAS = float(index[6]) TauR = 1000000. / MAS PutPars(p90H, ampH, p90C, ampC, p90N, ampN, MAS, units)
def NCO(Home,Source,winfil,unit,qt): NCO=0 if winfil ==0 :TopCmds.SET_SELECTED_WIN(Source) if winfil ==1 :TopCmds.RE(Source) CPcnct, aH, aX, aY, SP = Get.NCO(unit) if winfil ==0 :TopCmds.SET_SELECTED_WIN(Home) if winfil ==1 :TopCmds.RE(Home) CPcnct0, aH0, aX0, aY0, SP0 = Get.NCO(unit) if CPcnct!=CPcnct0 or aH!=aH0 or aX!=aX0 or aY != aY0 or SP!=SP0 : Title="UPDATE N-CO CP" Header="" Inputs=\ "Contact : "+CPcnct0+" us ",\ "1H dec pwr : "+aH0+" "+unit,\ "13C pwr : "+aX0+" "+unit,\ "15N pwr : "+aY0+" "+unit,\ "13C shape : "+SP0 Values=CPcnct,aH,aX,aY,SP Comments="us",unit,unit,unit,"" Types="1","1","1","1","1" Buttons="Accept","Cancel" ShortCuts='a','c' columns=15 if qt==0: result=TopCmds.INPUT_DIALOG(Title,Header,Inputs,Values,Comments,Types,Buttons,ShortCuts,columns) if result != None: CPcnct, aH, aX, aY, SP = result NCO=1 Put.NCO(CPcnct, aH, aX, aY, SP, unit) else: abort(Home,Source,winfil) else: NCO=1 Put.NCO(CPcnct, aH, aX, aY, SP, unit) return NCO