def hhC(Unit):
    CNCT = TopCmds.GETPAR("P 44")
    plH = TopCmds.GETPAR("PL" + Unit + " 44")
    plC = TopCmds.GETPAR("PL" + Unit + " 45")

    SP = "None"
    SP = TopCmds.GETPAR2("SPNAM 44")
    if SP == "" or SP == "None":
        SP = "None"
    return CNCT, plH, plC, SP
def Find_PWdec(Text):
    while i < len(Text):
        about = ''
        if Text[i].find("pcpd") >= 0: type = "PCPD"
        elif Text[i].find("p31") >= 0: type = "P 31"
        elif Text[i].find("p63") >= 0: type = "P 63"
        elif Text[i].find("p62") >= 0: type = "P 62"
        else:
            TopCmds.MSG("File for Decoupling not found; Exiting")
            TopCmds.EXIT()
def NH(Unit):
    CNCT = TopCmds.GETPAR("P 46")
    plH = TopCmds.GETPAR("SP" + Unit + " 46")
    plN = TopCmds.GETPAR("PL" + Unit + " 47")

    SP = "None"
    SP = TopCmds.GETPAR2("SPNAM 46")
    if SP == "" or SP == "None":
        SP = "None"
    return CNCT, plH, plN, SP
Beispiel #4
0
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
Beispiel #5
0
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 CH(Unit):
    CNCT = TopCmds.GETPAR("P 48")
    plH = TopCmds.GETPAR("SP" + Unit + " 48")
    plC = TopCmds.GETPAR("PL" + Unit + " 49")

    SP = "None"
    SP = TopCmds.GETPAR2("SPNAM 48")
    if SP == "" or SP == "None":
        SP = "None"
    return CNCT, plH, plC, SP
def HC(Unit):
    CNCT = TopCmds.GETPAR("P 15")
    #plC=TopCmds.GETPAR("PL"+Unit+" 40")
    #plH=TopCmds.GETPAR("PL"+Unit+" 41")
    plC = TopCmds.GETPAR("SP" + Unit + " 40")
    plH = TopCmds.GETPAR("SP" + Unit + " 41")
    SPC = TopCmds.GETPAR2("SPNAM 40")
    SPH = TopCmds.GETPAR2("SPNAM 41")
    #TopCmds.MSG("CNCT: "+CNCT+"\n plH: "+plH+"\n plC: "+plC+"\n SPH: "+SPH+"\n SPC: "+SPC)
    return CNCT, plH, plC, SPH, SPC
Beispiel #8
0
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
Beispiel #9
0
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"], [spc, ret], 30))
    if Wavename == None: TopCmds.EXIT()

    Filename = Wavename[8:len(Wavename) - 21]  #get rid of Java formatting
    #MSG( Filename + ' \n is the file name')
    return Filename
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
Beispiel #12
0
def abort(Home, Source, winfil):
  if winfil ==0 :
	TopCmds.SET_SELECTED_WIN(Source)
	TopCmds.CLOSEWIN(TopCmds.CURDATA())
	TopCmds.SET_SELECTED_WIN(Home)
	TopCmds.EXIT()
  if winfil ==1 :
	TopCmds.RE(Source)
	TopCmds.CLOSEWIN(TopCmds.CURDATA())
	TopCmds.RE(Home)
	TopCmds.EXIT()
def HN(Unit):
    CNCT = TopCmds.GETPAR("P 25")
    #plN=TopCmds.GETPAR("PL"+Unit+" 42")
    #plH=TopCmds.GETPAR("PL"+Unit+" 43")
    plH = TopCmds.GETPAR("SP" + Unit + " 42")
    plN = TopCmds.GETPAR("SP" + Unit + " 43")
    #TopCmds.MSG(TopCmds.GETPAR2("SPNAM 42"))
    SPN = TopCmds.GETPAR2("SPNAM 42")
    #TopCmds.MSG(TopCmds.GETPAR2("SPNAM 43"))
    SPH = TopCmds.GETPAR2("SPNAM 43")
    #TopCmds.MSG("CNCT: "+CNCT+"\n plH: "+plH+"\n plN: "+plN+"\n SPH: "+SPH+"\n SPN: "+SPN)
    return CNCT, plH, plN, SPH, SPN
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
Beispiel #15
0
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 SPC5_3(units):
    p90C = float(TopCmds.GETPAR("P 1"))
    ampC = float(TopCmds.GETPAR("PLdB 1"))
    MaxB1 = 1000000. / 4. / p90C
    C5B1 = 10.0 * MAS / 3.0
    adjust = 20 * (math.log10(C5B1 / MaxB1))
    Condition = ampC - adjust

    if units == "W":
        Condition = dBtoW(Condition)

    TopCmds.PUTPAR("PL" + units + " 15", str('%3.2f' % Condition))
    TopCmds.PUTPAR("L 5", str(10))
Beispiel #17
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 C72(units):
    p90C = float(TopCmds.GETPAR("P 1"))
    ampC = float(TopCmds.GETPAR("PLdB 1"))
    MaxB1 = 1000000. / 4. / p90C
    C7B1 = 7.0 * MAS
    adjust = 20 * (math.log10(C7B1 / MaxB1))
    Condition = ampC - adjust

    if units == "W":
        Condition = dBtoW(Condition)

    TopCmds.PUTPAR("PL" + units + " 17", str('%3.2f' % Condition))
    TopCmds.PUTPAR("L 7", str(14))
Beispiel #19
0
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]
Beispiel #20
0
class O4:
  OFFS=float(TopCmds.GETPAR("O4"))
  BF=float(TopCmds.GETPAR("BF4"))
  ref=float(TopCmds.GETPAR("SR"))
  RF=BF*1000000.
  RO=OFFS-ref

  def ppm2offs(self,ppm):
    frq=(O4.RF*ppm/1000000.)- O4.RO
    return frq

  def offs2ppm(self,frq):
    ppm=(1000000./O4.RF)*(frq+O4.RO)
    return ppm
Beispiel #21
0
def MAS(Home, Source, winfil, unit, qt):
    MAS = 0

    if winfil == 0: TopCmds.SET_SELECTED_WIN(Source)
    if winfil == 1: TopCmds.RE(Source, "n")
    MAS0 = Get.MAS(unit)

    if winfil == 0: TopCmds.SET_SELECTED_WIN(Home)
    if winfil == 1: TopCmds.RE(Home, "n")
    MAS1 = Get.MAS(unit)
    if MAS1 != MAS0:
        Put.MAS(MAS0, "")
    MAS = 1

    return MAS
def CPDparse(Ramp, Nuc):
    Dirs = get_dir()
    Name = find_file(Dirs, Ramp)

    pl_name = ''
    pw_name = ''

    # There is a problem if the files don't exist.
    if os.path.exists(Name) == 1:
        f = open(Name, 'r')
        text = f.readlines()
        f.close()
    else:
        if Nuc == "1H":
            TopCmds.XCMD(pul.pulDict['prgHDec'])
        if Nuc == "13C":
            TopCmds.XCMD(pul.pulDict['prgCDec'])
        if Nuc == "15N":
            TopCmds.XCMD(pul.pulDict['prgNDec'])
        if Nuc == "2H":
            TopCmds.XCMD(pul.pulDict['prgDDec'])

    for line in text:
        lines = line.rstrip()
        #print(lines)
        if lines.find("pl") >= 0:
            j = lines.find('=')
            pl_name = lines[j + 1:]

        if lines.find("pcpd") >= 0:
            pw_name = "pcpd"
        elif lines.find("p31") >= 0:
            pw_name = "p31"
        elif lines.find("p62") >= 0:
            pw_name = "p62"

    # Delve into the pulse program if we didn't find our power level in the cpd file
    if pl_name == '':
        pulprog = TopCmds.GETPAR("PULPROG")
        #TopCmds.MSG(pulprog)
        ppText = PProgtools.PPparse(pulprog)
        #ppText =TopCmds.GET_PULSPROG_TEXT(pulprog)

        #TopCmds.MSG(str(ppText))
        Lines = devide_into_lines(ppText)
        pl_name = get_cpd_plnam(Lines, Nuc)

    return pl_name, pw_name
Beispiel #23
0
def CC(units):
  
  dfltSP = "square.100"
  
  Title="CC DREAM Input"; SuTit="Carbon Carbon Adiabatic Mixing"
  Label=["Carbon B1 Field","C Ramp","Contact Time",\
         "H Decoupling"]

  In  =Title,SuTit,Label
  
  Title="Adjusting the DREAM parameters:"; Label="1H","13C"
  Out =Title,Label

  Match, Delta, Devia = CMatch()  #In Hz

  Ramp=pul.GetPar('sCdrm',"")
  GoRamp=TopCmds.SELECT("Ramp",\
    "Would you like to use the ramp: "+Ramp+\
    " \n Or make a new Tangent Ramp?",\
    ["Use Current","Make New"])
    
  if GoRamp:
    SP,Time=MakeRamp(Match,Delta,Devia,"13C")
  else:
    SP=Ramp; Time=pul.GetPar('pCdrm',"")

  CalDREAM('pC90',Match,'aCdrm','aHdrmDC','pCdrm',SP,'sCdrm',dfltSP,units,In,Out)
Beispiel #24
0
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
Beispiel #25
0
def make(Scale, input, name):
    import math
    ampl = []  #  normalized to 0...100
    ph = []  #  normalized to 0...100

    pi = 3.14159265

    durat = 1000 * float(input[2])
    RIRO = float(input[3])
    steps = int(input[4])
    Delta = float(input[5])

    RIOsteps = int(steps * RIRO / durat)
    Start = 100.0 - (Delta)
    End = 100.0 + (Delta)

    for i in range(steps):
        if i < RIOsteps:
            RF = 1.0 * i * Start / RIOsteps
        if i >= RIOsteps:
            RF = 1.0 * Start + (i - RIOsteps) * (End -
                                                 Start) / (steps -
                                                           (2 * RIOsteps))
        if i > (steps - RIOsteps):
            RF = 1.0 * End - (i - steps + RIOsteps) * End / RIOsteps
        ampl.append(Scale * RF)
        ph.append(0.0)
    TopCmds.SAVE_SHAPE(name[0], "NoRotation", ampl, ph)
def name(input):
    Cname = str("EXPORT_C_C" + input[4] + "_B" + input[5] + "_MAS" + input[2] +
                "_np" + input[3] + ".wave")
    Nname = str("EXPORT_N_C" + input[4] + "_B" + input[6] + "_MAS" + input[2] +
                "_np" + input[3] + ".wave")
    Cwave = pul.pulDict['sCexp']
    Nwave = pul.pulDict['sNexp']

    Wave = str(INPUT_DIALOG("EXPORT Files", "", ["C File = ","C Wave =","N File = ","N Wave =",],\
    [Cname,Cwave,Nname,Nwave],["","","",""],["1","1","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(",")
    ii = Files[i + 3:].find(",") + 3
    iii = Files[i + ii + 3:].find(",") + 3

    Cfile = Files[0:i - 1]
    Cwave = Files[i + 3:i + ii - 1]
    Nfile = Files[i + ii + 3:i + ii + iii - 1]
    Nwave = Files[i + ii + iii + 3:]

    #MSG( Cfile )
    #MSG( Cwave )
    #MSG( Nfile )
    #MSG( Nwave )

    pul.SetPar(str(Cwave), str(Cfile), "")
    pul.SetPar(str(Nwave), str(Nfile), "")

    return Cfile, Nfile
Beispiel #27
0
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)
Beispiel #28
0
def list():
    Nucl = []
    vers = Ver.get()

    dataset = TopCmds.CURDATA()
    if vers[1] == "2":
        path = dataset[3] + '/data/' + dataset[4] + '/nmr/' + dataset[
            0] + '/' + dataset[1]
    if vers[1] == "3":
        path = dataset[3] + '/' + dataset[0] + '/' + dataset[1]

    acqu = path + '/acqu'

    #TopCmds.MSG(acqu)

    f = open(acqu, 'r')
    text = f.readlines()
    f.close
    i = 0
    for line in text:
        lines = line.rstrip()
        if lines.find('##$NUC') >= 0:
            #  MSG("I found something: " + lines)
            j = lines.find('<')
            k = lines.find('>')
            if lines.find('off') <= 0:
                Nucl.append(lines[j + 1:k])
    return Nucl
def make(Name, Sc, Stps, Del, Be):
    import math
    ampl = []  #  normalized to 0...100
    ph = []  #  normalized to 0...100

    Scale = float(Sc)
    steps = int(Stps)
    Delta = float(Del)
    Beta = float(Be)

    pi = 3.14159265

    k = (steps - 1) / 2.0
    if Beta == 0.:
        alpha = 0.  #No division by Zero
    else:
        alpha = (2.0 / (steps - 1)) * math.atan(Delta / Beta)
    absBeta = math.fabs(Beta)

    for i in range(steps):
        di = absBeta * math.tan(alpha * (float(i - k)))
        di = di
        ampl.append(Scale * (100. + di) / 100.)
        ph.append(0.0)
    TopCmds.SAVE_SHAPE(Name, "NoRotation", ampl, ph)
Beispiel #30
0
def Merger():
  TopCmds.MSG("<html><p style='text-align: center;'><font size=14><font color=\'0000FF\'>"+\
  "Merging Help</p></font><br>"+\
  "\n\nMerge Parameters Between Experiments"+\
  "Requirements: Previous Experiments\n"+\
  "\n"+\
  "Arguments:\n"+\
  "-dB  : interact with db instead of watts (TS3+)\n"+\
  "-f   : open and close files instead of switching windows\n"+\
  "-EXPNO ##: grab from experiment number ## (default to n-1)\n"+\
  "-qt  : quiet all interaction- \n\n"+\
  "By default, the pulse program name is used to determine parameter\n"+\
  "To Specify Parameters input the elements separately or in a string.\n"+\
  "      Specify Hard pulses separately (hNCA H C)\n"+\
  "      H C N : Update hard pulses \n"+\
  "      HC HN NCO NCA NH CH hhC : Specified CP parameters\n"+\
  "      CX: PDSD/DARR \n"+\
  "      HDec: H-Dec\n"+\
  "      ph  : Phasing \n"+\
  "\nPath : "+str(root.UtilPath.getTopspinHome())+ "/exp/stan/nmr/py/BioPY/modules/\n"+\
  "modules: Merge, MergeGet, MergePut\n"+\
  "wrappers: MrMerger \n"+\
  "\n"+\
  "Failures: Incorrect dict keys\n"+\
  "")