Changeset 836


Ignore:
Timestamp:
Jan 21, 2013 10:59:15 AM (9 years ago)
Author:
vondreele
Message:

finish restraint rigid body input & display

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIconstrGUI.py

    r835 r836  
    629629           
    630630    Indx = {}
    631     plotDefaults = {'oldxy':[0.,0.],'Quaternion':[1.,0.,0.,0.],'cameraPos':20.,'viewDir':[0,0,1],}
     631    plotDefaults = {'oldxy':[0.,0.],'Quaternion':[1.,0.,0.,0.],'cameraPos':30.,'viewDir':[0,0,1],}
    632632
    633633    def OnPageChanged(event):
     
    703703        while macStr:
    704704            items = macStr.split()
    705             print items
    706705            if 'I' == items[0]:
    707706                rbId = ran.randint(0,sys.maxint)
     
    715714                    macStr = macro.readline().split()
    716715                    atName = macStr[0]
     716                    atType = macStr[1]
    717717                    atNames.append(atName)
    718                     rbXYZ.append([float(macStr[i]) for i in [1,2,3]])
    719                     atNames.append(atName[0])          #might not always work
    720                     if atName[0] not in AtInfo:
    721                         Info = G2elem.GetAtomInfo(atName[0])
    722                         AtInfo[atName[0]] = [Info['Drad'],Info['Color']]
     718                    rbXYZ.append([float(macStr[i]) for i in [2,3,4]])
     719                    rbTypes.append(atType)
     720                    if atType not in AtInfo:
     721                        Info = G2elem.GetAtomInfo(atType)
     722                        AtInfo[atType] = [Info['Drad'],Info['Color']]
    723723                rbXYZ = np.array(rbXYZ)-np.array(rbXYZ[nOrig-1])
    724724                for iSeq in range(nSeq):
     
    730730                        iBeg = int(macStr[0])-1
    731731                        iFin = int(macStr[1])-1
     732                        angle = 0.0
    732733                        nMove = int(macStr[2])
    733                         iMove = [int(macStr[i]) for i in range(3,nMove+3)]
    734                         rbseq.append([iBeg,iFin,iMove])
     734                        iMove = [int(macStr[i])-1 for i in range(3,nMove+3)]
     735                        rbseq.append([iBeg,iFin,angle,iMove])
    735736                    rbSeq.append(rbseq)
    736737                data['Residue'][rbId] = {'RBname':rbName,'rbXYZ':rbXYZ,'rbTypes':rbTypes,
    737                     'atNames':atNames,'rbRef':[nOrig-1,mRef-1,nRef-1],'rbSeq':rbSeq}
     738                    'atNames':atNames,'rbRef':[nOrig-1,mRef-1,nRef-1],'rbSeq':rbSeq,'SelSeq':[0,0,0]}
     739                print 'Residue '+rbName+' added'
    738740            macStr = macro.readline()
    739741        macro.close()
     742        UpdateResidueRB()
    740743       
    741744    def AddZMatrixRB():
     
    868871                for col in [4,5,6]:
    869872                    vecGrid.SetCellStyle(row,col,VERY_LIGHT_GREY,True)
     873            vecGrid.SetMargins(0,0)
     874            vecGrid.AutoSizeColumns(False)
    870875            vecSizer.Add(vecGrid)
    871876            return vecSizer
     
    895900       
    896901    def UpdateResidueRB():
     902        AtInfo = data['Residue']['AtInfo']
     903        Indx = {}
     904
     905        def rbNameSizer(rbId,rbData):
     906
     907            def OnRBName(event):
     908                Obj = event.GetEventObject()
     909                rbId = Indx[Obj.GetId()]
     910                rbData['RBname'] = Obj.GetValue()
     911               
     912            def OnDelRB(event):
     913                Obj = event.GetEventObject()
     914                rbId = Indx[Obj.GetId()]
     915                del data['Residue'][rbId]
     916                wx.CallAfter(UpdateResidueRB)
     917               
     918            def OnPlotRB(event):
     919                Obj = event.GetEventObject()
     920                rbId = Indx[Obj.GetId()]
     921                Obj.SetValue(False)
     922                G2plt.PlotRigidBody(G2frame,'Residue',AtInfo,rbData,plotDefaults)
     923           
     924            nameSizer = wx.BoxSizer(wx.HORIZONTAL)
     925            nameSizer.Add(wx.StaticText(ResidueRBDisplay,-1,'Residue name: '),
     926                0,wx.ALIGN_CENTER_VERTICAL)
     927            RBname = wx.TextCtrl(ResidueRBDisplay,-1,rbData['RBname'])
     928            Indx[RBname.GetId()] = rbId
     929            RBname.Bind(wx.EVT_TEXT_ENTER,OnRBName)
     930            RBname.Bind(wx.EVT_KILL_FOCUS,OnRBName)
     931            nameSizer.Add(RBname,0,wx.ALIGN_CENTER_VERTICAL)
     932            nameSizer.Add((5,0),)
     933            plotRB = wx.CheckBox(ResidueRBDisplay,-1,'Plot?')
     934            Indx[plotRB.GetId()] = rbId
     935            plotRB.Bind(wx.EVT_CHECKBOX,OnPlotRB)
     936            nameSizer.Add(plotRB,0,wx.ALIGN_CENTER_VERTICAL)
     937            nameSizer.Add((5,0),)
     938            delRB = wx.CheckBox(ResidueRBDisplay,-1,'Delete?')
     939            Indx[delRB.GetId()] = rbId
     940            delRB.Bind(wx.EVT_CHECKBOX,OnDelRB)
     941            nameSizer.Add(delRB,0,wx.ALIGN_CENTER_VERTICAL)
     942            return nameSizer
     943           
     944        def rbResidues(rbId,XYZ,rbData):
     945           
     946            def TypeSelect(event):
     947                AtInfo = data['Residue']['AtInfo']
     948                r,c = event.GetRow(),event.GetCol()
     949                if vecGrid.GetColLabelValue(c) == 'Type':
     950                    PE = G2elemGUI.PickElement(G2frame,oneOnly=True)
     951                    if PE.ShowModal() == wx.ID_OK:
     952                        if PE.Elem != 'None':
     953                            El = PE.Elem.strip().lower().capitalize()
     954                            if El not in AtInfo:
     955                                Info = G2elem.GetAtomInfo(El)
     956                                AtInfo[El] = [Info['Drad']['Color']]
     957                            rbData['rbTypes'][r] = El
     958                            vecGrid.SetCellValue(r,c,El)
     959                    PE.Destroy()
     960
     961            def ChangeCell(event):
     962                r,c =  event.GetRow(),event.GetCol()
     963                if r >= 0 and (0 <= c < 3):
     964                    try:
     965                        val = float(vecGrid.GetCellValue(r,c))
     966                        rbData['rbVect'][imag][r][c] = val
     967                    except ValueError:
     968                        pass
     969
     970            vecSizer = wx.BoxSizer()
     971            Types = 2*[wg.GRID_VALUE_STRING,]+3*[wg.GRID_VALUE_FLOAT+':10,5',]
     972            colLabels = ['Name','Type','Cart x','Cart y','Cart z']
     973            table = []
     974            rowLabels = []
     975            for ivec,xyz in enumerate(rbData['rbXYZ']):
     976                table.append([rbData['atNames'][ivec],]+[rbData['rbTypes'][ivec],]+list(xyz))
     977                rowLabels.append(str(ivec))
     978            vecTable = G2gd.Table(table,rowLabels=rowLabels,colLabels=colLabels,types=Types)
     979            vecGrid = G2gd.GSGrid(ResidueRBDisplay)
     980            vecGrid.SetTable(vecTable, True)
     981            vecGrid.Bind(wg.EVT_GRID_CELL_CHANGE, ChangeCell)
     982            vecGrid.Bind(wg.EVT_GRID_CELL_LEFT_DCLICK, TypeSelect)
     983            attr = wx.grid.GridCellAttr()
     984            attr.SetEditor(G2phG.GridFractionEditor(vecGrid))
     985            for c in range(3):
     986                vecGrid.SetColAttr(c, attr)
     987            for row in range(vecTable.GetNumberRows()):
     988                for col in [4,5,6]:
     989                    vecGrid.SetCellStyle(row,col,VERY_LIGHT_GREY,True)
     990            vecGrid.SetMargins(0,0)
     991            vecGrid.AutoSizeColumns(False)
     992            vecSizer.Add(vecGrid)
     993            return vecSizer
     994           
     995        def SeqSizer(angSlide,rbId,iSeq,Seq,atNames):
     996           
     997            def ChangeAngle(event):
     998                Obj = event.GetEventObject()
     999                rbId,iSeq,iseq,Seq = Indx[Obj.GetId()]
     1000                val = Seq[iseq][2]
     1001                try:
     1002                    val = float(Obj.GetValue())
     1003                    Seq[iseq][2] = val
     1004                except ValueError:
     1005                    pass
     1006                Obj.SetValue('%8.2f'%(val))
     1007                G2plt.PlotRigidBody(G2frame,'Residue',AtInfo,data['Residue'][rbId],plotDefaults)
     1008               
     1009            def OnRadBtn(event):
     1010                Obj = event.GetEventObject()
     1011                isel,Seq,iSeq,ang = Indx[Obj.GetId()]
     1012                data['Residue'][rbId]['SelSeq'] = [iSeq,isel,ang]
     1013                angSlide.SetValue(int(100*Seq[isel][2]))
     1014           
     1015            seqSizer = wx.FlexGridSizer(0,4,2,2)
     1016            seqSizer.AddGrowableCol(3,0)
     1017            for isel,sel in enumerate(Seq):
     1018                iBeg,iFin,angle,iMove = sel
     1019                ang = wx.TextCtrl(ResidueRBDisplay,-1,'%8.2f'%(angle),size=(50,20))
     1020                if not iSeq:
     1021                    radBt = wx.RadioButton(ResidueRBDisplay,-1,'',style=wx.RB_GROUP)
     1022                    data['Residue'][rbId]['SelSeq'] = [iSeq,isel,ang]
     1023                else:
     1024                    radBt = wx.RadioButton(ResidueRBDisplay,-1,'')
     1025                radBt.Bind(wx.EVT_RADIOBUTTON,OnRadBtn)                   
     1026                seqSizer.Add(radBt)
     1027                bond = wx.TextCtrl(ResidueRBDisplay,-1,'%s %s'%(atNames[iBeg],atNames[iFin]),size=(50,20))
     1028                seqSizer.Add(bond,0,wx.ALIGN_CENTER_VERTICAL)
     1029                Indx[radBt.GetId()] = [isel,Seq,iSeq,ang]
     1030                Indx[ang.GetId()] = [rbId,iSeq,isel,Seq]
     1031                ang.Bind(wx.EVT_TEXT_ENTER,ChangeAngle)
     1032                ang.Bind(wx.EVT_KILL_FOCUS,ChangeAngle)
     1033                seqSizer.Add(ang,0,wx.ALIGN_CENTER_VERTICAL)
     1034                atms = ''
     1035                for i in iMove:   
     1036                    atms += ' %s,'%(atNames[i])
     1037                moves = wx.TextCtrl(ResidueRBDisplay,-1,atms[:-1],size=(200,20))
     1038                seqSizer.Add(moves,1,wx.ALIGN_CENTER_VERTICAL|wx.EXPAND|wx.RIGHT)
     1039            return seqSizer
     1040           
     1041        def SlideSizer():
     1042           
     1043            def OnSlider(event):
     1044                Obj = event.GetEventObject()
     1045                rbData = Indx[Obj.GetId()]
     1046                iSeq,isel,ang = rbData['SelSeq']
     1047                val = float(Obj.GetValue())/100.
     1048                rbData['rbSeq'][iSeq][isel][2] = val
     1049                ang.SetValue('%8.2f'%(val))
     1050                G2plt.PlotRigidBody(G2frame,'Residue',AtInfo,rbData,plotDefaults)
     1051           
     1052            slideSizer = wx.BoxSizer(wx.HORIZONTAL)
     1053            slideSizer.Add(wx.StaticText(ResidueRBDisplay,-1,'Selected torsion angle:'),0)
     1054            iSeq,isel,ang = rbData['SelSeq']
     1055            angSlide = wx.Slider(ResidueRBDisplay,-1,
     1056                int(100*rbData['rbSeq'][iSeq][isel][2]),0,36000,size=(200,20),
     1057                style=wx.SL_HORIZONTAL)
     1058            angSlide.Bind(wx.EVT_SLIDER, OnSlider)
     1059            Indx[angSlide.GetId()] = rbData
     1060            slideSizer.Add(angSlide,0)           
     1061            return slideSizer,angSlide           
     1062           
    8971063        ResidueRB.DestroyChildren()
    8981064        ResidueRBDisplay = wx.Panel(ResidueRB)
    8991065        ResidueRBSizer = wx.BoxSizer(wx.VERTICAL)
    900         ResidueRBSizer.Add((5,5),0)       
    901 #        VectorRBSizer.Add(ConstSizer('Phase',PhaseDisplay))
     1066        rbKeys = data['Residue'].keys()
     1067        rbKeys.remove('AtInfo')
     1068        rbNames = [data['Residue'][k]['RBname'] for k in rbKeys]
     1069        rbIds = dict(zip(rbNames,rbKeys))
     1070        rbNames.sort()
     1071        for name in rbNames:
     1072            rbId = rbIds[name]
     1073            rbData = data['Residue'][rbId]
     1074            ResidueRBSizer.Add(rbNameSizer(rbId,rbData),0)
     1075            XYZ = np.array([[0.,0.,0.] for Ty in rbData['rbTypes']])
     1076            ResidueRBSizer.Add(rbResidues(rbId,XYZ,rbData),0)
     1077            ResidueRBSizer.Add((5,5),0)
     1078            slideSizer,angSlide = SlideSizer()
     1079            for iSeq,Seq in enumerate(rbData['rbSeq']):
     1080                ResidueRBSizer.Add(wx.StaticText(ResidueRBDisplay,-1,'Seq: %d'%(iSeq)),
     1081                    0,wx.ALIGN_CENTER_VERTICAL)
     1082                ResidueRBSizer.Add(wx.StaticText(ResidueRBDisplay,-1,
     1083                    'Sel  Bond             Angle      Riding atoms'),
     1084                    0,wx.ALIGN_CENTER_VERTICAL)                       
     1085                ResidueRBSizer.Add(SeqSizer(angSlide,rbId,iSeq,Seq,rbData['atNames']))
     1086            ResidueRBSizer.Add(slideSizer,)
     1087        ResidueRBSizer.Add((5,25),)
    9021088        ResidueRBSizer.Layout()   
    9031089        ResidueRBDisplay.SetSizer(ResidueRBSizer,True)
     
    9071093        ResidueRBDisplay.SetSize(Size)
    9081094        ResidueRB.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1)
    909 #        Size[1] = min(Size[1],250)
    9101095        G2frame.dataFrame.setSizePosLeft(Size)
    9111096       
  • trunk/GSASIImacros/residue-rb.mac

    r835 r836  
    11!standard amino acid flexible rigid body models - Engh & Huber
    22I ALA 5 1 2 1 3
    3 N      1.181   0.790  -0.043
    4 CA     0.017  -0.069   0.143
    5 C      0.143  -0.898   1.417
    6 O     -0.834  -1.095   2.139
    7 CB    -0.173  -0.973  -1.065
     3N   N   1.181   0.790  -0.043
     4CA  C   0.017  -0.069   0.143
     5C   C   0.143  -0.898   1.417
     6O   O  -0.834  -1.095   2.139
     7CB  C  -0.173  -0.973  -1.065
    881
    992 3 1 4
    1010I ARG 11 2 2 1 3
    11 N     0.731  -1.155  -0.509
    12 CA    0.002  -0.007   0.017
    13 C    -1.472  -0.337   0.225
    14 O    -2.037  -0.056   1.282
    15 CB    0.144   1.194  -0.921
    16 CG    1.557   1.750  -1.008
    17 CD    1.637   2.901  -1.996
    18 NE    2.982   3.466  -2.071
    19 CZ    3.323   4.481  -2.857
    20 NH1   2.417   5.048  -3.643
    21 NH2   4.571   4.931  -2.859
     11N   N  0.731  -1.155  -0.509
     12CA  C  0.002  -0.007   0.017
     13C   C -1.472  -0.337   0.225
     14O   O -2.037  -0.056   1.282
     15CB  C  0.144   1.194  -0.921
     16CG  C  1.557   1.750  -1.008
     17CD  C  1.637   2.901  -1.996
     18NE  N  2.982   3.466  -2.071
     19CZ  C  3.323   4.481  -2.857
     20NH1 N  2.417   5.048  -3.643
     21NH2 N  4.571   4.931  -2.859
    22221
    23232 3 1 4
     
    28287 8 3 9 10 11
    2929I ASN 8 2 2 1 3
    30 N      0.249   0.264   1.459
    31 CA    -0.058   0.172   0.037
    32 C     -0.948  -1.024  -0.285
    33 O     -0.740  -1.713  -1.284
    34 CB     1.230   0.106  -0.786
    35 CG     2.052   1.375  -0.684
    36 OD1    1.536   2.437  -0.337
    37 ND2    3.341   1.272  -0.988
     30N   N   0.249   0.264   1.459
     31CA  C  -0.058   0.172   0.037
     32C   C  -0.948  -1.024  -0.285
     33O   O  -0.740  -1.713  -1.284
     34CB  C   1.230   0.106  -0.786
     35CG  C   2.052   1.375  -0.684
     36OD1 O   1.536   2.437  -0.337
     37ND2 N   3.341   1.272  -0.988
    38381
    39392 3 1 4
     
    42425 6 2 7 8
    4343I ASP 8 2 2 1 3
    44 N     1.073  -0.812  -0.461
    45 CA    0.043   0.016   0.155
    46 C    -1.286  -0.121  -0.579
    47 O    -1.341  -0.040  -1.806
    48 CB    0.480   1.482   0.182
    49 CG    1.569   1.746   1.204
    50 OD1   1.796   0.877   2.072
    51 OD2   2.197   2.824   1.140
     44N   N   1.073  -0.812  -0.461
     45CA  C   0.043   0.016   0.155
     46C   C -1.286  -0.121  -0.579
     47O   O -1.341  -0.040  -1.806
     48CB  C   0.480   1.482   0.182
     49CG  C   1.569   1.746   1.204
     50OD1 O   1.796   0.877   2.072
     51OD2 O   2.197   2.824   1.140
    52521
    53532 3 1 4
     
    56565 6 2 7 8
    5757I CYS 6 2 2 1 3
    58 N     1.531   0.067  -0.615
    59 CA    0.255   0.007   0.087
    60 C     0.283  -1.043   1.192
    61 O    -0.326  -0.864   2.248
    62 CB  -0.882  -0.290  -0.892
    63 SG  -1.220   1.039  -2.070
     58N   N   1.531   0.067  -0.615
     59CA  C   0.255   0.007   0.087
     60C   C   0.283  -1.043   1.192
     61O   O -0.326  -0.864   2.248
     62CB  C -0.882  -0.290  -0.892
     63SG  S -1.220   1.039  -2.070
    64641
    65652 3 1 4
     
    67672 5 1 6
    6868I GLN 9 2 2 1 3
    69 N     -1.328   0.837  -0.534
    70 CA    -0.136   0.182  -0.007
    71 C      0.801   1.190   0.650
    72 O      1.837   0.821   1.202
    73 CB     0.598  -0.571  -1.119
    74 CG    -0.074  -1.869  -1.536
    75 CD     0.725  -2.628  -2.577
    76 OE1    1.566  -2.057  -3.270
    77 NE2    0.465  -3.927  -2.691
     69N   N  -1.328   0.837  -0.534
     70CA  C  -0.136   0.182  -0.007
     71C   C   0.801   1.190   0.650
     72O   O   1.837   0.821   1.202
     73CB  C   0.598  -0.571  -1.119
     74CG  C  -0.074  -1.869  -1.536
     75CD  C   0.725  -2.628  -2.577
     76OE1 O   1.566  -2.057  -3.270
     77NE2 N   0.465  -3.927  -2.691
    78781
    79792 3 1 4
     
    83836 7 2 8 9
    8484I GLU 9 2 2 1 3
    85 N     0.006   1.197  -0.667
    86 CA    0.008  -0.079   0.038
    87 C     0.139   0.123   1.544
    88 O    -0.635  -0.432   2.324
    89 CB    1.141  -0.972  -0.473
    90 CG    0.977  -1.417  -1.917
    91 CD    2.122  -2.290  -2.391
    92 OE1   3.128  -2.402  -1.660
    93 OE2   2.016  -2.865  -3.495
     85N   N  0.006   1.197  -0.667
     86CA  C  0.008  -0.079   0.038
     87C   C  0.139   0.123   1.544
     88O   O -0.635  -0.432   2.324
     89CB  C  1.141  -0.972  -0.473
     90CG  C  0.977  -1.417  -1.917
     91CD  C  2.122  -2.290  -2.391
     92OE1 O  3.128  -2.402  -1.660
     93OE2 O  2.016  -2.865  -3.495
    94941
    95952 3 1 4
     
    99996 7 2 8 9
    100100I GLY 4 1 2 1 3
    101 N    0.869  -0.868  -0.771 
    102 CA  0.103   0.122  -0.038 
    103 C    0.914   1.363   0.282 
    104 O    0.604   2.092   1.224
     101N   N 0.869  -0.868  -0.771 
     102CA  C 0.103   0.122  -0.038 
     103C   C 0.914   1.363   0.282 
     104O   O 0.604   2.092   1.224
    1051051
    1061062 3 1 4
    107107I HIS 10 2 2 1 3
    108 N    -0.431   0.288  -1.347
    109 CA    0.054  -0.006  -0.004
    110 C    -0.276   1.127   0.962
    111 O     0.168   1.126   2.110
    112 CB    1.563  -0.259  -0.022
    113 CG    1.951  -1.548  -0.678
    114 ND1   1.644  -2.779  -0.140
    115 CD2   2.623  -1.796  -1.827
    116 CE1   2.109  -3.730  -0.930
    117 NE2   2.707  -3.161  -1.960
     108N   N -0.431   0.288  -1.347
     109CA  C  0.054  -0.006  -0.004
     110C   C -0.276   1.127   0.962
     111O   O  0.168   1.126   2.110
     112CB  C  1.563  -0.259  -0.022
     113CG  C  1.951  -1.548  -0.678
     114ND1 N  1.644  -2.779  -0.140
     115CD2 C  2.623  -1.796  -1.827
     116CE1 C  2.109  -3.730  -0.930
     117NE2 N  2.707  -3.161  -1.960
    1181181
    1191192 3 1 4
     
    1221225 6 4 7 8 9 10
    123123I ILE 8 2 2 1 3
    124 N      0.540  -1.033   0.745
    125 CA    -0.080  -0.048  -0.133
    126 C     -0.144   1.322   0.532
    127 O     -0.148   2.351  -0.143
    128 CB    -1.501  -0.475  -0.546
    129 CG1   -1.450  -1.743  -1.400
    130 CG2   -2.199   0.650  -1.295
    131 CD1   -2.789  -2.431  -1.552
     124N   N  0.540  -1.033   0.745
     125CA  C -0.080  -0.048  -0.133
     126C   C -0.144   1.322   0.532
     127O   O -0.148   2.351  -0.143
     128CB  C -1.501  -0.475  -0.546
     129CG1 C -1.450  -1.743  -1.400
     130CG2 C -2.199   0.650  -1.295
     131CD1 C -2.789  -2.431  -1.552
    1321321
    1331332 3 1 4
     
    1361365 6 1 8
    137137I LEU 8 2 2 1 3
    138 N    -0.200  -0.298  -1.331
    139 CA    0.054  -0.042   0.081
    140 C    -1.084   0.753   0.712
    141 O    -1.513   0.462   1.828
    142 CB    1.378   0.704   0.260
    143 CG    2.646  -0.065  -0.116
    144 CD1   3.866   0.840  -0.041
    145 CD2   2.821  -1.283   0.778
     138N   N -0.200  -0.298  -1.331
     139CA  C  0.054  -0.042   0.081
     140C   C -1.084   0.753   0.712
     141O   O -1.513   0.462   1.828
     142CB  C  1.378   0.704   0.260
     143CG  C  2.646  -0.065  -0.116
     144CD1 C  3.866   0.840  -0.041
     145CD2 C  2.821  -1.283   0.778
    1461461
    1471472 3 1 4
     
    1501505 6 2 7 8
    151151I LYS 9 2 2 1 3
    152 N      -1.083  -0.104   1.281
    153 CA     -0.121   0.120   0.210
    154 C       1.234   0.548   0.767
    155 O       2.267  -0.025   0.420
    156 CB     -0.643   1.174  -0.769
    157 CG     -1.822   0.711  -1.608
    158 CD     -2.263   1.792  -2.582
    159 CE     -3.472   1.346  -3.389
    160 NZ     -3.916   2.394  -4.349
     152N   N  -1.083  -0.104   1.281
     153CA  C  -0.121   0.120   0.210
     154C   C   1.234   0.548   0.767
     155O   O   2.267  -0.025   0.420
     156CB  C  -0.643   1.174  -0.769
     157CG  C  -1.822   0.711  -1.608
     158CD  C  -2.263   1.792  -2.582
     159CE  C  -3.472   1.346  -3.389
     160NZ  N  -3.916   2.394  -4.349
    1611611
    1621622 3 1 4
     
    1671677 8 1 9
    168168I MET 8 2 2 1 3
    169 N    0.162  -0.583  -1.383
    170 CA  0.094   0.197  -0.153
    171 C   -1.352   0.486   0.237
    172 O   -1.723   0.377   1.406
    173 CB  0.869   1.507  -0.306
    174 CG  2.367   1.324  -0.491
    175 SD  3.154   0.556   0.937
    176 CE  3.066   1.889   2.131
     169N    0.162  -0.583  -1.383
     170CA  0.094   0.197  -0.153
     171C   -1.352   0.486   0.237
     172O   -1.723   0.377   1.406
     173CB  0.869   1.507  -0.306
     174CG  2.367   1.324  -0.491
     175SD  3.154   0.556   0.937
     176CE  3.066   1.889   2.131
    1771771
    1781782 3 1 4
     
    1821826 7 1 8
    183183I PHE 11 2 2 1 3
    184 N       1.370  -0.225   0.247
    185 CA      0.010   0.195  -0.068
    186 C       0.004   1.308  -1.111
    187 O       0.881   2.172  -1.116
    188 CB     -0.713   0.658   1.198
    189 CG     -0.938  -0.436   2.203
    190 CD1    -2.037  -1.274   2.101
    191 CD2    -0.050  -0.628   3.248
    192 CE1    -2.245  -2.280   3.023
    193 CE2    -0.254  -1.633   4.173
    194 CZ     -1.353  -2.461   4.061
     184N   N   1.370  -0.225   0.247
     185CA  C   0.010   0.195  -0.068
     186C   C   0.004   1.308  -1.111
     187O   O   0.881   2.172  -1.116
     188CB  C  -0.713   0.658   1.198
     189CG  C  -0.938  -0.436   2.203
     190CD1 C  -2.037  -1.274   2.101
     191CD2 C  -0.050  -0.628   3.248
     192CE1 C  -2.245  -2.280   3.023
     193CE2 C  -0.254  -1.633   4.173
     194CZ  C  -1.353  -2.461   4.061
    1951951
    1961962 3 1 4
     
    1991995 6 5 7 8 9 10 11
    200200I PRO 7 2 2 1 3
    201 N       -1.331   0.065   0.548
    202 CA       0.003   0.087  -0.060
    203 C        0.081   1.078  -1.217
    204 O       -0.839   1.148  -2.031
    205 CB       0.169  -1.342  -0.580
    206 CG      -0.683  -2.165   0.319
    207 CD      -1.864  -1.304   0.667
     201N   N   -1.331   0.065   0.548
     202CA  C    0.003   0.087  -0.060
     203C   C    0.081   1.078  -1.217
     204O   O   -0.839   1.148  -2.031
     205CB  C    0.169  -1.342  -0.580
     206CG  C   -0.683  -2.165   0.319
     207CD  C   -1.864  -1.304   0.667
    2082081
    2092092 3 1 4
     
    2112115 7 1 6
    212212I SER 6 2 2 1 3
    213 N      0.661   0.320   1.266
    214 CA    -0.010  -0.128   0.053
    215 C      0.845  -1.131  -0.713
    216 O      2.060  -1.196  -0.527
    217 CB    -0.350   1.066  -0.843
    218 OG     0.824   1.745  -1.254
     213N   N   0.661   0.320   1.266
     214CA  C  -0.010  -0.128   0.053
     215C   C   0.845  -1.131  -0.713
     216O   O   2.060  -1.196  -0.527
     217CB  C  -0.350   1.066  -0.843
     218OG  O   0.824   1.745  -1.254
    2192191
    2202202 3 1 4
     
    2222222 5 1 6
    223223I THR 7 2 2 1 3
    224 N       0.367   0.079   1.675
    225 CA      0.100  -0.061   0.249
    226 C      -1.368   0.204  -0.066
    227 O      -2.249  -0.087   0.743
    228 CB      0.479  -1.464  -0.261
    229 OG1    -0.318  -2.450   0.407
    230 CG2     1.951  -1.746   0.001
     224N   N   0.367   0.079   1.675
     225CA  C   0.100  -0.061   0.249
     226C   C  -1.368   0.204  -0.066
     227O   O  -2.249  -0.087   0.743
     228CB  C   0.479  -1.464  -0.261
     229OG1 O  -0.318  -2.450   0.407
     230CG2 C   1.951  -1.746   0.001
    2312311
    2322322 3 1 4
     
    2342342 5 2 6 7
    235235I TRP 14 2 2 1 3
    236 N      -0.613   1.274  -0.329
    237 CA      0.018  -0.016  -0.080
    238 C       0.871  -0.450  -1.267
    239 O       1.967  -0.986  -1.093
    240 CB     -1.039  -1.080   0.225
    241 CG     -1.774  -0.845   1.508
    242 CD1    -2.973  -0.212   1.663
    243 CD2    -1.357  -1.241   2.821
    244 NE1    -3.328  -0.189   2.991
    245 CE2    -2.353  -0.815   3.722
    246 CE3    -0.239  -1.915   3.322
    247 CZ2    -2.265  -1.040   5.094
    248 CZ3    -0.153  -2.137   4.684
    249 CH2    -1.159  -1.701   5.554
     236N   N  -0.613   1.274  -0.329
     237CA  C   0.018  -0.016  -0.080
     238C   C   0.871  -0.450  -1.267
     239O   O   1.967  -0.986  -1.093
     240CB  C  -1.039  -1.080   0.225
     241CG  C  -1.774  -0.845   1.508
     242CD1 C  -2.973  -0.212   1.663
     243CD2 C  -1.357  -1.241   2.821
     244NE1 N  -3.328  -0.189   2.991
     245CE2 C  -2.353  -0.815   3.722
     246CE3 C  -0.239  -1.915   3.322
     247CZ2 C  -2.265  -1.040   5.094
     248CZ3 C  -0.153  -2.137   4.684
     249CH2 C  -1.159  -1.701   5.554
    2502501
    2512512 3 1 4
     
    2542545 6 8 7 8 9 10 11 12 13 14
    255255I TYR 12 2 2 1 3
    256 N     0.415   1.207   0.724
    257 CA  -0.002   0.027  -0.024
    258 C    -1.299   0.284  -0.783
    259 O    -2.281   0.757  -0.210
    260 CB  -0.169  -1.170   0.913
    261 CG    1.125  -1.648   1.533
    262 CD1   1.963  -2.521   0.852
    263 CD2   1.507  -1.227   2.800
    264 CE1   3.146  -2.960   1.415
    265 CE2   2.689  -1.661   3.371
    266 CZ    3.504  -2.527   2.674
    267 OH    4.681  -2.962   3.238
     256N   N  0.415   1.207   0.724
     257CA  C -0.002   0.027  -0.024
     258C   C -1.299   0.284  -0.783
     259O   O -2.281   0.757  -0.210
     260CB  C -0.169  -1.170   0.913
     261CG  C  1.125  -1.648   1.533
     262CD1 C  1.963  -2.521   0.852
     263CD2 C  1.507  -1.227   2.800
     264CE1 C  3.146  -2.960   1.415
     265CE2 C  2.689  -1.661   3.371
     266CZ  C  3.504  -2.527   2.674
     267OH  O  4.681  -2.962   3.238
    2682681
    2692692 3 1 4
     
    2722725 6 6 7 8 9 10 11 12
    273273I VAL 7 2 2 1 3
    274 N     -0.284  -0.939   1.089
    275 CA    -0.131   0.113   0.092
    276 C     -1.318   0.144  -0.864
    277 O     -1.439  -0.707  -1.746
    278 CB     1.166  -0.064  -0.720
    279 CG1    1.264   1.000  -1.803
    280 CG2    2.378  -0.014   0.199
     274N   N -0.284  -0.939   1.089
     275CA  C -0.131   0.113   0.092
     276C   C -1.318   0.144  -0.864
     277O   O -1.439  -0.707  -1.746
     278CB  C  1.166  -0.064  -0.720
     279CG1 C  1.264   1.000  -1.803
     280CG2 C  2.378  -0.014   0.199
    2812811
    2822822 3 1 4
     
    2842842 5 2 6 7
    285285I MSE 8 2 2 1 3
    286 N     0.642   0.785   0.970
    287 CA    0.090  -0.118  -0.034
    288 C    -0.846   0.621  -0.985
    289 O    -0.837   0.373  -2.190
    290 CB  -0.651  -1.276   0.637
    291 CG    0.241  -2.184   1.467
    292 SE    1.629  -3.050   0.405
    293 CE    0.500  -4.207  -0.684
     286N   N  0.642   0.785   0.970
     287CA  C  0.090  -0.118  -0.034
     288C   C -0.846   0.621  -0.985
     289O   O -0.837   0.373  -2.190
     290CB  C -0.651  -1.276   0.637
     291CG  C  0.241  -2.184   1.467
     292SE  Se 1.629  -3.050   0.405
     293CE  C  0.500  -4.207  -0.684
    2942941
    2952952 3 1 4
  • trunk/GSASIIplot.py

    r835 r836  
    34063406    uColors = [Rd,Gr,Bl]
    34073407    if rbType == 'Vector':
     3408        atNames = [str(i)+':'+Ty for i,Ty in enumerate(rbData['rbTypes'])]
    34083409        XYZ = np.array([[0.,0.,0.] for Ty in rbData['rbTypes']])
    34093410        for imag,mag in enumerate(rbData['VectMag']):
     
    34113412        Bonds = FindBonds(XYZ)
    34123413    elif rbType == 'Residue':
    3413         pass
     3414        atNames = [str(i)+':'+Ty for i,Ty in enumerate(rbData['atNames'])]
     3415        XYZ = np.copy(rbData['rbXYZ'])      #don't mess with original!
     3416        Seq = rbData['rbSeq']
     3417        for seq in Seq:
     3418            for ia,ib,ang,mv in seq:
     3419                va = XYZ[ia]-XYZ[ib]
     3420                Q = G2mth.AVdeg2Q(ang,va)
     3421                for im in mv:
     3422                    vb = XYZ[im]-XYZ[ib]
     3423                    vb = G2mth.prodQVQ(Q,vb)
     3424                    XYZ[im] = XYZ[ib]+vb
     3425        Bonds = FindBonds(XYZ)
    34143426    elif rbType == 'Z-matrix':
    34153427        pass
     
    35423554        glTranslate(x,y,z)
    35433555        glDisable(GL_LIGHTING)
    3544         glColor3f(0,1.,0)
     3556        glColor3f(1.0,1.0,1.0)
    35453557        glRasterPos3f(r,r,r)
    35463558        for c in list(label):
     
    35833595            RenderSphere(x,y,z,radius,color)
    35843596            RenderBonds(x,y,z,Bonds[iat],0.1,color)
    3585             RenderLabel(x,y,z,str(iat),radius)
     3597            RenderLabel(x,y,z,atNames[iat],radius)
    35863598        Page.canvas.SwapBuffers()
    35873599
Note: See TracChangeset for help on using the changeset viewer.