Changeset 3245


Ignore:
Timestamp:
Jan 27, 2018 8:49:12 AM (4 years ago)
Author:
vondreele
Message:

fix problem with incommensurate magnetic structures from CIFhklReader
make "Edit Body" as "Edit Residue Body" in RB menu
change protein validation bar plots to be vertical
change 'twin' to 'flag' in Reflection List table & add '-2' as 'free' (for proteins - not yet implemented)
fix PDB phase import to get atom type from 76:78 of ATOM record
change importer names for single crystal TOF data to be more explicit (SNS vs ISIS)
change cif structure factor importer - F2, sig(F2) & Fcalc now allowed

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIdataGUI.py

    r3243 r3245  
    46974697        self.ResidueRBMenu.Append(G2G.wxID_RESIDUETORSSEQ,'Define sequence','Define torsion sequence')
    46984698        self.ResidueRBMenu.Append(G2G.wxID_RIGIDBODYADD,'Import residues','Import residue rigid bodies from macro file')
    4699         self.RigidBodyMenu.Append(menu=self.ResidueRBMenu, title='Edit Body')
     4699        self.RigidBodyMenu.Append(menu=self.ResidueRBMenu, title='Edit Residue Body')
    47004700        self.PostfillDataMenu()
    47014701
  • trunk/GSASIIphsGUI.py

    r3244 r3245  
    18641864                SpGrp += " 1'"
    18651865            modSizer.Add(wx.StaticText(General,label=' Superspace group: %s '%SpGrp),0,WACV)
    1866             SSChoice = G2spc.SSChoice(generalData['SGData'])
    1867             if generalData['SGData']['SGGray']:
    1868                 SSChoice = [item+'s' for item in SSChoice]
    18691866            Choice = []
    18701867            if not generalData['SGData']['SGFixed']:
     1868                SSChoice = G2spc.SSChoice(generalData['SGData'])
     1869                if generalData['SGData']['SGGray']:
     1870                    SSChoice = [item+'s' for item in SSChoice]
    18711871                for item in SSChoice:
    18721872                    E,SSG = G2spc.SSpcGroup(generalData['SGData'],item)
  • trunk/GSASIIplot.py

    r3240 r3245  
    32323232##### PlotHist
    32333233################################################################################
    3234 def PlotAAProb(G2frame,resNames,Probs1,Probs2,Title='',thresh=None,newPlot=True):
    3235 
    3236 
    3237     global xylim
     3234def PlotAAProb(G2frame,resNames,Probs1,Probs2,Title='',thresh=None):
     3235
    32383236    def OnMotion(event):
    3239         xpos = event.xdata
    3240         if xpos:                                        #avoid out of frame mouse position
    3241             ypos = int(event.ydata)
     3237        xpos,ypos = event.xdata,event.ydata
     3238        if xpos:
     3239            xylim = Page.xylim                                        #avoid out of frame mouse position
     3240            xpos = xpos*(xylim[0][1]-xylim[0][0])+xylim[0][0]
     3241            xpos = int(xpos+.5)
     3242            if 0 <= xpos < len(resNames):
     3243                resName = resNames[xpos]
     3244            else:
     3245                resName = ''
     3246            if 0.55 <= ypos <= 1.00:
     3247                ypos = (ypos-.55)/0.45*xylim[1][1]
     3248            elif 0. <= ypos <= 0.45:
     3249                ypos = ypos/0.45*xylim[2][1]
     3250            else:
     3251                ypos = 0.0
    32423252            Page.canvas.SetCursor(wx.CROSS_CURSOR)
    32433253            try:
    3244                 if 0 <= ypos < len(resNames):
    3245                     G2frame.G2plotNB.status.SetStatusText('Residue: %s score: %.2f'%(resNames[ypos],xpos),1)
     3254                if 0 <= xpos < len(resNames):
     3255                    G2frame.G2plotNB.status.SetStatusText('Residue: %s score: %.2f'%(resName,ypos),1)
    32463256            except TypeError:
    32473257                G2frame.G2plotNB.status.SetStatusText('Select AA error plot first',1)
    32483258   
    32493259    def Draw():
    3250         global xylim
     3260        global Plot1,Plot2
    32513261        Plot.clear()
    32523262        Plot.set_title(Title)
    32533263        Plot.set_axis_off()
    32543264        Plot1 = Page.figure.add_subplot(211)
    3255         Plot1.set_xlabel(r'Error score 1',fontsize=14)
    3256         Plot1.set_ylabel(r'Residue',fontsize=14)
     3265        Plot1.set_ylabel(r'Error score 1',fontsize=14)
     3266        Plot1.set_xlabel(r'Residue',fontsize=14)
    32573267        colors = list(np.where(np.array(Probs1)>thresh[0][1],'r','b'))
    3258         Plot1.barh(np.arange(len(resNames)),Probs1,color=colors,linewidth=0)
     3268        resNums = np.arange(len(resNames))
     3269        Plot1.bar(resNums,Probs1,color=colors,linewidth=0)
    32593270        if thresh is not None:
    32603271            for item in thresh[0]:
    3261                 Plot1.axvline(item,dashes=(5,5),picker=False)
    3262         Plot2 = Page.figure.add_subplot(212)
    3263         Plot2.set_xlabel(r'Error score 2',fontsize=14)
    3264         Plot2.set_ylabel(r'Residue',fontsize=14)       
     3272                Plot1.axhline(item,dashes=(5,5),picker=False)
     3273        Plot2 = Page.figure.add_subplot(212,sharex=Plot1)
     3274        Plot2.set_ylabel(r'Error score 2',fontsize=14)
     3275        Plot2.set_xlabel(r'Residue',fontsize=14)       
    32653276        colors = list(np.where(np.array(Probs2)>thresh[1][1],'r','b'))
    3266         Plot2.barh(np.arange(len(resNames)),Probs2,color=colors,linewidth=0)
     3277        Plot2.bar(resNums,Probs2,color=colors,linewidth=0)
    32673278        if thresh is not None:
    32683279            for item in thresh[1]:
    3269                 Plot2.axvline(item,dashes=(5,5),picker=False)
     3280                Plot2.axhline(item,dashes=(5,5),picker=False)
     3281        Page.xylim = [Plot1.get_xlim(),Plot1.get_ylim(),Plot2.get_ylim()]
    32703282        Page.canvas.draw()
    32713283   
    32723284    new,plotNum,Page,Plot,lim = G2frame.G2plotNB.FindPlotTab(Title,'mpl')
    3273     Page.Offset = [0,0]
    3274     if not new:
    3275         if not newPlot:
    3276             xylim = lim
    3277     else:
    3278         newPlot = True
    32793285#        Page.canvas.mpl_connect('key_press_event', OnKeyPress)
    3280         Page.canvas.mpl_connect('motion_notify_event', OnMotion)
    3281         Page.Offset = [0,0]
    3282         Page.Choice = None
    3283    
     3286    Page.canvas.mpl_connect('motion_notify_event', OnMotion)
    32843287    Draw()
    32853288
  • trunk/GSASIIpwdGUI.py

    r3234 r3245  
    35273527            [wg.GRID_VALUE_FLOAT+':10,3',]
    35283528        if HKLF:
    3529             colLabels = ['H','K','L','twin','d','Fosq','sig','Fcsq','FoTsq','FcTsq','phase','ExtC',]
     3529            colLabels = ['H','K','L','flag','d','Fosq','sig','Fcsq','FoTsq','FcTsq','phase','ExtC',]
    35303530            if 'T' in Inst['Type'][0]:
    3531                 colLabels = ['H','K','L','twin','d','Fosq','sig','Fcsq','FoTsq','FcTsq','phase','ExtC','wave','tbar']
     3531                colLabels = ['H','K','L','flag','d','Fosq','sig','Fcsq','FoTsq','FcTsq','phase','ExtC','wave','tbar']
    35323532                Types += 2*[wg.GRID_VALUE_FLOAT+':10,3',]
    35333533            if Super:
     
    35763576        G2frame.SetTitle('Reflection List for '+phaseName)
    35773577        if HKLF:
    3578             G2frame.GetStatusBar().SetStatusText('abs(DF)/sig > 10 red; > 3 yellow; twin < 0 (user rejected) red; twin=0 (sp. gp. absent) red',1)
     3578            G2frame.GetStatusBar().SetStatusText('abs(DF)/sig > 10 red; > 3 yellow; flag:>0 twin no., 0 sp.gp absent, -1 user rejected, -2 Rfree',1)
    35793579        else:
    35803580            G2frame.GetStatusBar().SetStatusText('Prfo < 0. in red; if excluded Fosq in red & mul < 0',1)
  • trunk/GSASIIspc.py

    r3242 r3245  
    14501450    SSGData = {'SSpGrp':SGData['SpGrp']+SSymbol,'modQ':modQ,'modSymb':modsym,'SSGKl':SSGKl}
    14511451    SSCen = np.zeros((len(SGData['SGCen']),4))
    1452     if SGData['SGFixed']:
    1453         for icen,cen in enumerate(SGData['SGCen']):
    1454             SSCen[icen] = cen
    1455     else:
     1452#    if SGData['SGFixed']:
     1453#        for icen,cen in enumerate(SGData['SGCen']):
     1454#            SSCen[icen] = cen
     1455#    else:
     1456    if True:
    14561457        for icen,cen in enumerate(SGData['SGCen']):
    14571458            SSCen[icen,0:3] = cen
     
    14621463        T = np.zeros(4)
    14631464        ssop = np.zeros((4,4))
    1464         if SGData['SGFixed']:
    1465             ssop = op[0]
    1466             T = op[1]
    1467         else:
     1465#        if SGData['SGFixed']:
     1466#            ssop = op[0]
     1467#            T = op[1]
     1468#        else:
     1469        if True:
    14681470            ssop[:3,:3] = op[0]
    14691471            T[:3] = op[1]
  • trunk/GSASIIstrMath.py

    r3240 r3245  
    725725#reflection processing begins here - big arrays!
    726726    iBeg = 0
    727     time0 = time.time()
    728727    while iBeg < nRef:
    729728        iFin = min(iBeg+blkSize,nRef)
  • trunk/exports/G2export_PDB.py

    r3200 r3245  
    185185                        atom[ct-2].strip(),atom[ct-4].rjust(4),xyz[0],xyz[1],xyz[2],atom[cx+3], \
    186186                        Biso,atom[ct].rjust(12)))
     187                #if atim[cia] == 'a':
     188                #   put in 'ANISOU' record
     189                #'ANISOU    1  N   ALA A 340     4392   4159   4615    249   -189     73       N' 
    187190                iatom += 1
    188191           
  • trunk/imports/G2phase.py

    r3243 r3245  
    131131                SytSym,Mult = G2spc.SytSym(XYZ,SGData)[:2]
    132132                Uiso = float(S[61:67])/EightPiSq
    133                 Type = S[12:14].lower()
    134                 if Type[0] in '123456789':
    135                     Type = Type[1:]
     133                Type = S[76:78].lower()
    136134                Atom = [S[22:27].strip(),S[17:20].upper(),S[20:22],
    137135                    S[12:17].strip(),Type.strip().capitalize(),'',XYZ[0],XYZ[1],XYZ[2],
  • trunk/imports/G2sfact.py

    r3136 r3245  
    431431    def __init__(self):
    432432        if 'linux' in sys.platform:  # wx 3.0.0.0 on gtk does not like Unicode in menus
    433             formatName = 'Neutron TOF HKL F2'
    434             longFormatName = 'Neutron TOF [hkl, Fo2, sig(Fo2),...] Structure factor text file'
    435         else:
    436             formatName = u'Neutron TOF HKL F\u00b2'
    437             longFormatName = u'Neutron TOF [hkl, Fo\u00b2, sig(Fo\u00b2),...] Structure factor text file'
     433            formatName = 'Neutron SNS TOF HKL F2'
     434            longFormatName = 'Neutron SNS TOF [hkl, Fo2, sig(Fo2),...] Structure factor text file'
     435        else:
     436            formatName = u'Neutron SNS TOF HKL F\u00b2'
     437            longFormatName = u'Neutron SNS TOF [hkl, Fo\u00b2, sig(Fo\u00b2),...] Structure factor text file'
    438438        super(self.__class__,self).__init__( # fancy way to self-reference
    439439            extensionlist=('.hkl','.HKL'),
     
    465465        fp = open(filename,'r')
    466466        for line,S in enumerate(fp):
     467            if not S:
     468                break
    467469            self.errors = '  Error reading line '+str(line+1)
    468470            if S[0] == '#': continue       #ignore comments, if any
     
    567569    def __init__(self):
    568570        if 'linux' in sys.platform:  # wx 3.0.0.0 on gtk does not like Unicode in menus
    569             formatName = u'Neutron SXD TOF HKL F2'
    570             longFormatName = u'Neutron SXD TOF [hkl, Fo2, sig(Fo2),...] Structure factor text file'
    571         else:
    572             formatName = u'Neutron SXD TOF HKL F\u00b2'
    573             longFormatName = u'Neutron SXD TOF [hkl, Fo\u00b2, sig(Fo\u00b2),...] Structure factor text file'
     571            formatName = u'Neutron ISIS SXD TOF HKL F2'
     572            longFormatName = u'Neutron ISIS SXD TOF [hkl, Fo2, sig(Fo2),...] Structure factor text file'
     573        else:
     574            formatName = u'Neutron ISIS SXD TOF HKL F\u00b2'
     575            longFormatName = u'Neutron ISIS SXD TOF [hkl, Fo\u00b2, sig(Fo\u00b2),...] Structure factor text file'
    574576        super(self.__class__,self).__init__( # fancy way to self-reference
    575577            extensionlist=('.int','.INT'),
  • trunk/imports/G2sfact_CIF.py

    r3136 r3245  
    7676       
    7777        F2signames = ('_refln_f_squared_meas_sigma','_refln.f_squared_meas_sigma',
    78                       '_refln_f_squared_sigma',
     78                      '_refln_f_squared_sigma','_refln.f_squared_sigma',
    7979                      '_refln_intensity_meas_sigma','_refln.intensity_meas_sigma',
    8080                      '_refln.intensity_sigma',)
     
    198198            itemkeys[key.lower()] = i
    199199           
    200         # scan for data names:
     200        # scan for obs & sig data names:
    201201        F2dn = None
    202202        Fdn = None
     
    206206        Fsdn = None
    207207        Phdn = None
    208         FcalcPresent = False
    209208        for dn in F2datanames:
    210209            if dn in itemkeys:
    211210                F2dn = dn
    212                 for dm in F2calcnames:
    213                     if dm in itemkeys:
    214                         F2cdn = dm
    215                         FcalcPresent = True
    216                         break
    217211                for dm in F2signames:
    218212                    if dm in itemkeys:
     
    224218                if dn in itemkeys:
    225219                    Fdn = dn
    226                     for dm in Fcalcnames:
    227                         if dm in itemkeys:
    228                             Fcdn = dm
    229                             break
    230220                    for dm in Fsignames:
    231221                        if dm in itemkeys:
     
    240230                self.errors += msg                       
    241231                return False
     232       
     233        # scan for calc data names - might be different!
     234        for dm in F2calcnames:
     235            if dm in itemkeys:
     236                F2cdn = dm
     237                break
     238        for dm in Fcalcnames:
     239            if dm in itemkeys:
     240                Fcdn = dm
     241                break
     242
    242243        for dn in phasenames:
    243244            if dn in itemkeys:
     
    273274                    else:
    274275                        F2 = float(F2)
    275                     try:
    276                         if F2cdn:
    277                             F2c = float(item[itemkeys[F2cdn]])
    278                     except:
    279                         pass
    280276                else:
    281277                    F = item[itemkeys[Fdn]]
     
    290286                    F2 = F**2
    291287                    sigF2 = 2.0*F*sig
    292                     try:
    293                         if Fcdn:
    294                             Fc = float(item[itemkeys[Fcdn]])
    295                             F2c = Fc*Fc
    296                     except:
    297                         pass
     288                   
     289                try:
     290                    if F2cdn:
     291                        F2c = float(item[itemkeys[F2cdn]])
     292                except:
     293                    pass
     294                try:
     295                    if Fcdn:
     296                        Fc = float(item[itemkeys[Fcdn]])
     297                        F2c = Fc*Fc
     298                except:
     299                    pass
    298300                           
    299301                ref[8+im] = F2
Note: See TracChangeset for help on using the changeset viewer.