Beispiel #1
0
    def __init__(self, nb):
        Tab.__init__(self, nb)
        self.project_list = wx.ListCtrl(self, -1, style=wx.LC_REPORT, size=(700, 400))
        self.project_list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self._load_project)
        
        self._il = wx.ImageList(16,16)
        self._il.Add(bitmaps.fetch_icon_bitmap("actions", "agt_action_success", scale=(16,16)))
        self.project_list.SetImageList(self._il, wx.IMAGE_LIST_SMALL)        

        titles = ['', 'Title', '# Jobs', 'Last Action']
        sizes = [20,400, 100,140]
        for i,t in enumerate(titles):
            self.project_list.InsertColumn(i, t)
            self.project_list.SetColumnWidth(i, sizes[i])
        
        self.sidebar = wx.BoxSizer(wx.VERTICAL)
        
        new = metallicbutton.MetallicButton(self, -1, 'New', '', bitmaps.fetch_icon_bitmap("actions", "folder_new"), size=(120,40))
        delete = metallicbutton.MetallicButton(self, -1, 'Delete', '', bitmaps.fetch_icon_bitmap("actions", "fileclose"), size=(120,40))
        load = metallicbutton.MetallicButton(self, -1, 'Load', '', bitmaps.fetch_icon_bitmap("actions", "folder"), size=(120,40))
         
        self.Bind(wx.EVT_BUTTON, self._new_project, new)
        self.Bind(wx.EVT_BUTTON, self._load_project, load)
        self.Bind(wx.EVT_BUTTON, self._delete_project, delete)
                
        self.sidebar.Add(new, 0, wx.EXPAND|wx.ALL, 5)
        self.sidebar.Add(load, 0, wx.EXPAND|wx.ALL, 5)
        self.sidebar.Add(delete, 0, wx.EXPAND|wx.ALL, 5)
        
        self.sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.sizer.Add(self.project_list, 0, wx.EXPAND | wx.ALL, 5)
        self.sizer.Add(self.sidebar, 0, wx.EXPAND | wx.ALL, 5)
        
        self.SetSizer(self.sizer)
Beispiel #2
0
 def __init__(self, nb):
     Tab.__init__(self, nb)
     
     Refinement.set_proot(self.s.proot)
     
     # plot
     self.dpi = 100
     self.fig = Figure((5.0, 4.0), dpi=self.dpi)
     col = wx.SystemSettings.GetColour(wx.SYS_COLOUR_BACKGROUND)
     self.fig.patch.set_facecolor((col[0]/255.0, col[1]/255.0, col[2]/255.0))
     self.canvas = FigCanvas(self, -1, self.fig)
     self.ax1 = self.fig.add_subplot(111)
     self.ax1.set_position([0.115,0.17,0.80,0.79])
     [i.set_linewidth(0.5) for i in self.ax1.spines.itervalues()]
     self.ax2 = self.ax1.twinx()
     self.ax2.set_position([0.115,0.17,0.80,0.79])
     self._clear_figure()
             
     # stats
     self.stats_sizer = wx.FlexGridSizer(cols=2, rows=9, hgap=5, vgap=5)
     self._labels = [
         wx.StaticText(self, -1, 'Title'),
         wx.StaticText(self, -1, 'Status'),
         wx.StaticText(self, -1, 'Cycle'),
         wx.StaticText(self, -1, 'Resolution (A)'),
         wx.StaticText(self, -1, 'R-work (%)'),
         wx.StaticText(self, -1, 'R-free (%)'),
         wx.StaticText(self, -1, '# of Reflections'),
         wx.StaticText(self, -1, 'Parameters'),
         wx.StaticText(self, -1, 'Data:Parameter')
     ]
     
     self._labels[0].Wrap(200)
     self._values = [ wx.StaticText(self, -1, '') for x in range(len(self._labels)) ]
     
     rows = [1,2,3,4,6]
     for i in range(len(self._labels)):
         self.stats_sizer.Add(self._labels[i], 0, wx.EXPAND|wx.TOP, i in rows and 15 or 5)
         self.stats_sizer.Add(self._values[i], 0, wx.EXPAND|wx.TOP, i in rows and 15 or 5)
     
     self.vbox = wx.BoxSizer(wx.VERTICAL)
     self.vbox.Add(self.stats_sizer, 0, wx.ALL, 10)
             
     self.button_sizer = wx.BoxSizer(wx.HORIZONTAL)
     self.vbox.Add(self.button_sizer, 0, wx.EXPAND|wx.CENTER, 10)
             
     self.hbox = wx.BoxSizer(wx.HORIZONTAL)
     self.hbox.Add(self.vbox, 1, wx.EXPAND|wx.ALL, 10)
     self.hbox.Add(self.canvas, 4, wx.EXPAND|wx.ALL, 10)
 
     self.SetSizer(self.hbox)
     self.hbox.Fit(self)
     
     self._refinement = None
Beispiel #3
0
    def __init__(self, window):
        self.databaseWindow = window

        store = Gtk.TreeStore(str)
        Tab.__init__(self, store)

        renderer = Gtk.CellRendererText()

        column = Gtk.TreeViewColumn("Name", renderer, text=0)
        column.set_resizable(True)
        column.set_expand(True)
        self.tree.append_column(column)
Beispiel #4
0
    def __init__(self, nb):
        Tab.__init__(self, nb)
        
        Holder.set_finished_callback(self._job_finished)
                
        self._tabs = wx.aui.AuiNotebook(self, -1, size=(700,750))
        
        self.main = wx.BoxSizer(wx.HORIZONTAL)
        self.main.Add(self._tabs, 1 , wx.EXPAND)
        self.SetSizer(self.main)

        self._auto_manager = AutoProcessManager()
        AutoProcess.set_start_refinement(self.start_new_refinement)
        
        self._running = 0
Beispiel #5
0
    def __init__(self, nb):
        Tab.__init__(self, nb)

        #Process.set_finished_callback(self.refinement_finished)
        
        self._tabs = wx.aui.AuiNotebook(self, -1, style=wx.NB_TOP, size=(850,750))
        self._tab_list = []
        
        self._stats = Process(self)
        self._stats.set_finished_callback(self.refinement_finished)
        self._tabs.AddPage(self._stats, 'Refinement')

        self.sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.sizer.Add(self._tabs, 1, wx.EXPAND)
            
        self.SetSizer(self.sizer)
Beispiel #6
0
    def __init__(self, windowDatabase):
        self.windowDatabase = windowDatabase
        store = Gtk.ListStore(int, str, str)
        Tab.__init__(self, store)

        for i, value in enumerate(itemModel):
            renderer = Gtk.CellRendererText()
            if value != "ID":
                renderer.set_property("editable", True)
            renderer.connect("edited", self.editRenderer, value)
            column = Gtk.TreeViewColumn(value, renderer, text=i)
            column.set_resizable(True)
            column.set_expand(True)
            self.tree.append_column(column)

        self.itemCapacities = list()
Beispiel #7
0
    def __init__(self, nb):
        Tab.__init__(self, nb)

        self._tabs = wx.aui.AuiNotebook(self, -1, style=wx.NB_TOP, size=(850,750))
        self.sheet1 = Projects(self._tabs)
        
                
        self.sheet2 = Jobs(self._tabs)

        self._tabs.AddPage(self.sheet1, "Projects")
        self._tabs.AddPage(self.sheet2, "Job List")
            
        self.main = wx.BoxSizer(wx.HORIZONTAL)
        self.main.Add(self._tabs, 1, wx.EXPAND)
        
        self.SetSizer(self.main)
Beispiel #8
0
    def __init__(self, nb):
        Tab.__init__(self, nb)
        
        self.job_list = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.LC_SINGLE_SEL, size=(700, 400))
        self.job_list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self._load_job)
        
        titles = ['ID', 'Date', 'Title', 'Type', 'Status', 'R']
        sizes = [65,135,225,130,80,60]
        for i,t in enumerate(titles):
            self.job_list.InsertColumn(i, t, width=sizes[i])

        new = metallicbutton.MetallicButton(self, -1, 'New', '', bitmaps.fetch_icon_bitmap("actions", "window_new"), size=(120,40))
        load = metallicbutton.MetallicButton(self, -1, 'Load', '', bitmaps.fetch_icon_bitmap("actions", "fileopen"), size=(120,40))
        delete = metallicbutton.MetallicButton(self, -1, 'Delete', '', bitmaps.fetch_icon_bitmap("actions", "fileclose"), size=(120,40))
        sum = metallicbutton.MetallicButton(self, -1, 'Summary', '', bitmaps.fetch_icon_bitmap("actions", "info"), size=(120,40))
                
        self.Bind(wx.EVT_BUTTON, self._new_job, new)
        self.Bind(wx.EVT_BUTTON, self._load_job, load)
        self.Bind(wx.EVT_BUTTON, self._delete_job, delete)
        self.Bind(wx.EVT_BUTTON, self._show_summary, sum)
                
        import_cif = metallicbutton.MetallicButton(self, -1, 'Import HKL', '', icons.hkl_file.GetBitmap(), size=(120,40))
        import_pdb = metallicbutton.MetallicButton(self, -1, 'Import PDB', '', icons.pdb_file.GetBitmap(), size=(120,40))
        rcsb_dl = metallicbutton.MetallicButton(self, -1, 'RCSB PDB', '', bitmaps.fetch_icon_bitmap("actions", "down"), size=(120,40))
        self.Bind(wx.EVT_BUTTON, self._import_pbd, import_pdb)
        self.Bind(wx.EVT_BUTTON, self._import_cif, import_cif)
        self.Bind(wx.EVT_BUTTON, self._download_files, rcsb_dl)
        
        self.sidebar = wx.BoxSizer(wx.VERTICAL)
        self.sidebar.Add(new, 0, wx.EXPAND | wx.ALL, 5)
        self.sidebar.Add(load, 0, wx.EXPAND | wx.ALL, 5)
        self.sidebar.Add(sum, 0, wx.EXPAND | wx.ALL, 5)
        self.sidebar.Add(delete, 0, wx.EXPAND | wx.ALL, 5)
        self.sidebar.AddSpacer(20)
                
        self.sidebar.Add(import_cif, 0, wx.EXPAND | wx.ALL, 5)
        self.sidebar.Add(import_pdb, 0, wx.EXPAND | wx.ALL, 5)
        self.sidebar.AddSpacer(10)
        self.sidebar.Add(rcsb_dl, 0, wx.EXPAND | wx.ALL, 5)
                
        self.main = wx.BoxSizer(wx.HORIZONTAL)
        self.main.Add(self.job_list, 0, wx.EXPAND|wx.ALL, 5)
        self.main.Add(self.sidebar, 0, wx.EXPAND|wx.ALL, 5)
        
        self.SetSizer(self.main)
Beispiel #9
0
 def __init__(self, store):
     Tab.__init__(self, store)
Beispiel #10
0
    def __init__(self, nb):
        Tab.__init__(self, nb)
        
        self.fig = Figure((5.0, 4.0), dpi=100)
        col = wx.SystemSettings.GetColour(wx.SYS_COLOUR_BACKGROUND)
        self.fig.patch.set_facecolor((col[0]/255.0, col[1]/255.0, col[2]/255.0))
        self.canvas = FigCanvas(self, -1, self.fig)
        self.ax1 = self.fig.add_subplot(111)        
        self.ax1.set_position([0.1,0.1,0.85,0.86])
        self.ax1.set_ylabel('sig(x)', fontsize=9)
        self.ax1.set_xlabel('Resolution', fontsize=9)
        self.ax1.tick_params(labelsize=8)
        [i.set_linewidth(0.5) for i in self.ax1.spines.itervalues()]
        
        self.side_sizer = wx.FlexGridSizer(rows=0, cols=2, vgap=5, hgap=5)
        
        self.side_sizer.Add(wx.StaticText(self, -1, 'Vm'), 0, wx.EXPAND)
        self._mv = wx.StaticText(self, -1, '')
        self.side_sizer.Add(self._mv, 0, wx.EXPAND)

        self.side_sizer.Add(wx.StaticText(self, -1, 'Solvent'), 0, wx.EXPAND)
        self._s = wx.StaticText(self, -1, '')
        self.side_sizer.Add(self._s, 0, wx.EXPAND)
        
        self.side_sizer.Add(wx.StaticText(self, -1, 'Resolution'), 0, wx.EXPAND)
        self._dmin = wx.StaticText(self, -1, '')
        self.side_sizer.Add(self._dmin, 0, wx.EXPAND)

        self.side_sizer.Add(wx.StaticText(self, -1, 'Completeness'), 0, wx.EXPAND)
        self._c = wx.StaticText(self, -1, '')
        self.side_sizer.Add(self._c, 0, wx.EXPAND)

        self.side_sizer.Add(wx.StaticText(self, -1, 'R Factor'), 0, wx.EXPAND)
        self._r = wx.StaticText(self, -1, '')
        self.side_sizer.Add(self._r, 0, wx.EXPAND)

        self.side_sizer.Add(wx.StaticText(self, -1, 'R Free'), 0, wx.EXPAND)
        self._rfree = wx.StaticText(self, -1, '')
        self.side_sizer.Add(self._rfree, 0, wx.EXPAND)

        self.side_sizer.AddSpacer(20)
        self.side_sizer.AddSpacer(20)
        
        self.side_sizer.Add(wx.StaticText(self, -1, 'sig(x) R'), 0, wx.EXPAND)
        self._sigxr = wx.StaticText(self, -1, '')
        self.side_sizer.Add(self._sigxr, 0, wx.EXPAND)
        
        self.side_sizer.Add(wx.StaticText(self, -1, 'sig(x) Rfree'), 0, wx.EXPAND)
        self._sigxrf = wx.StaticText(self, -1, '')
        self.side_sizer.Add(self._sigxrf, 0, wx.EXPAND)
        
        self.side_sizer.AddSpacer(20)
        self.side_sizer.AddSpacer(20)
        
        self.side_sizer.Add(wx.StaticText(self, -1, 'sig(x) - 3sig (ASP)'), 0, wx.EXPAND)
        self.side_sizer.Add(wx.StaticText(self, -1, '0.024'), 0, wx.EXPAND)
        
        self.side_sizer.Add(wx.StaticText(self, -1, 'sig(x) - 3sig (HIS)'), 0, wx.EXPAND)
        self.side_sizer.Add(wx.StaticText(self, -1, ''), 0, wx.EXPAND)
        
        self.sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.sizer.Add(self.side_sizer, 0, wx.EXPAND|wx.ALL, 10)
        self.sizer.Add(self.canvas, 1, wx.EXPAND|wx.ALL, 5)
        
        
        self.SetSizer(self.sizer)
Beispiel #11
0
    def __init__(self, nb):
        Tab.__init__(self, nb)

        self.fig = Figure((5.0, 4.0), dpi=100)
        col = wx.SystemSettings.GetColour(wx.SYS_COLOUR_BACKGROUND)
        self.fig.patch.set_facecolor((col[0]/255.0, col[1]/255.0, col[2]/255.0))
        self.canvas = FigCanvas(self, -1, self.fig)
        self.canvas.mpl_connect('button_press_event', self._on_click)
        self.ax1 = self.fig.add_subplot(111)
        self.ax1.set_position([0.10,0.153,0.80,0.81])
        #self.ax2 = self.ax1.twinx()
        self.ax1.tick_params(labelsize=8)
        #self.ax2.tick_params(labelsize=8)   
        
        self.hist_fig = Figure((2,1.5), dpi=100)
        self.hist_fig.set_facecolor((col[0]/255.0, col[1]/255.0, col[2]/255.0))
        self.hist_canvas = FigCanvas(self, -1, self.hist_fig)
        self.hist_ax1 = self.hist_fig.add_subplot(111)
        
        self.shist_fig = Figure((2,1.5), dpi=100)
        self.shist_fig.set_facecolor((col[0]/255.0, col[1]/255.0, col[2]/255.0))
        self.shist_canvas = FigCanvas(self, -1, self.shist_fig)
        self.shist_ax1 = self.shist_fig.add_subplot(111)
        
        self.refinements = wx.ListBox(self, 26, wx.DefaultPosition, (60, 100), [], wx.LB_MULTIPLE)
        self.refinements.Bind(wx.EVT_LISTBOX, self._set_refinements)
        
        self.res_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.res_sizer.Add(wx.StaticText(self, -1, 'Residue Type'), 0, wx.EXPAND)
        self.res_type = wx.ComboBox(self, -1, choices=[], style=wx.CB_READONLY)
        self.res_type.Bind(wx.EVT_COMBOBOX, self._set_residue_type)
        self.res_sizer.Add(self.res_type, 0, wx.EXPAND)

        self._flds = [ wx.StaticText(self, -1, '') for i in range(4) ]
        
        self.avg_info = wx.FlexGridSizer(rows=0, cols=2, vgap=5, hgap=5)
        self.avg_info.Add(wx.StaticText(self, -1, 'Average Std Dev'), 0, wx.EXPAND)
        self.avg_info.Add(self._flds[0], 0, wx.EXPAND)
        #self.avg_info.Add(wx.StaticText(self, -1, 'Number of Vals'), wx.EXPAND|wx.ALL, 5)
        #self.avg_info.Add(self._flds[1], wx.EXPAND|wx.ALL, 5)
        
        self.res_info = wx.FlexGridSizer(rows=0, cols=2, vgap=5, hgap=5)
        self.res_info.Add(wx.StaticText(self, -1, 'Average Values'), 0, wx.EXPAND)
        self.res_info.Add(self._flds[1], 0, wx.EXPAND)
        self.res_info.Add(wx.StaticText(self, -1, 'Standard Dev'), 0, wx.EXPAND)
        self.res_info.Add(self._flds[2], 0, wx.EXPAND)
        #self.res_info.Add(wx.StaticText(self, -1, 'Number of Vals'), wx.EXPAND|wx.ALL, 5)
        #self.res_info.Add(self._flds[3], wx.EXPAND|wx.ALL, 5)
        
        self.side_sizer = wx.BoxSizer(wx.VERTICAL)
        self.side_sizer.Add(wx.StaticText(self, -1, 'Refinements'), 0, wx.EXPAND|wx.LEFT, 5)
        self.side_sizer.Add(self.refinements, 0, wx.EXPAND|wx.LEFT, 5)
        self.side_sizer.Add(self.res_sizer, 0, wx.EXPAND|wx.LEFT, 5)
        self.side_sizer.Add(self.avg_info, 0, wx.EXPAND|wx.LEFT, 5)
        self.side_sizer.Add(self.shist_canvas, 1, wx.EXPAND|wx.LEFT, 5)
        self.side_sizer.Add(self.res_info, 0, wx.EXPAND|wx.LEFT, 5)
        self.side_sizer.Add(self.hist_canvas, 1, wx.EXPAND|wx.LEFT, 5)
        
        
        self.sizer = wx.BoxSizer(wx.HORIZONTAL)
        
        self.sizer.Add(self.side_sizer, 0, wx.EXPAND|wx.ALL, 5)
        self.sizer.Add(self.canvas, 1, wx.EXPAND|wx.ALL, 5)
        
        self._rtypes = ['Aspartate', 'Glutamate', 'Histidine', 'Arginine']
        self._rtypess = ['Asp', 'Glu', 'His', 'Arg']
        
        self._residue_type = 0
        self._highlight = -1
        self._selected_residue = -1
        self._residue_types = []
        self._all_data = []
        self._averaged = []
        self._files = []
                            
        self.SetSizer(self.sizer)
        self.Fit()
Beispiel #12
0
 def __init__(self, nb):
     Tab.__init__(self, nb)
     
     self.sizer = wx.BoxSizer(wx.HORIZONTAL)
     self.SetSizer(self.sizer)
Beispiel #13
0
    def __init__(self, nb):
        Tab.__init__(self, nb)

        self.fig = Figure((5.0, 4.0), dpi=100)
        col = wx.SystemSettings.GetColour(wx.SYS_COLOUR_BACKGROUND)
        self.fig.patch.set_facecolor((col[0]/255.0, col[1]/255.0, col[2]/255.0))
        self.canvas = FigCanvas(self, -1, self.fig)             

        self.res = wx.StaticBitmap(self, size=(200,237))
        self.res.SetBitmap(wx.EmptyImage( 200,237 ).ConvertToBitmap())

        self._rtypes = ['Aspartate', 'Glutamate', 'Histidine', 'Arginine']
        self._rtypess = ['Asp', 'Glu', 'His', 'Arg']
        
        self.ax1 = self.fig.add_subplot(111)
        self.ax1.set_position([0.10,0.153,0.80,0.81])
        self.ax2 = self.ax1.twinx()
        self.ax1.tick_params(labelsize=8)
        self.ax2.tick_params(labelsize=8)   
        
        self._highlight = 0
        
        self._bond_lengths = ''
        self._std_devs = ''
        self._residue_selection = []
        
        self._residue_type = 0
        
        self._residues = {'asp': {}, 'glu': {}, 'his': {}, 'arg': {}}
        self._omitted = {'asp': [], 'glu': [], 'his': [], 'arg': []}
        
        self.omitted_title = wx.StaticBox( self, -1, "Omitted" ) 
        self.omitted_sizer = wx.StaticBoxSizer( self.omitted_title, wx.HORIZONTAL)        
        
        self.selected_title = wx.StaticBox( self, -1, "Displayed" ) 
        self.selected_sizer = wx.StaticBoxSizer( self.selected_title, wx.HORIZONTAL)        
        
        self.residue_info_title = wx.StaticBox( self, -1, "Residue Info: " ) 
        self.residue_info_sizer = wx.StaticBoxSizer( self.residue_info_title, wx.HORIZONTAL)        
        
        self._labels = [ 
                        wx.StaticText(self, -1, 'D(C-O)'),
                        wx.StaticText(self, -1, 'S(D(C-O))'),
                        wx.StaticText(self, -1, 'Level'),
                        
                        wx.StaticText(self, -1, 'Avg S'),
                        wx.StaticText(self, -1, 'Avg B'),
                      ]
                      
        self._values = [ wx.StaticText(self, -1, '') for x in range(len(self._labels)) ]
                              
                              
        self.residue_info = wx.GridSizer(rows=5, cols=2, vgap=5, hgap=5)
        for i in range(len(self._labels)):
            self.residue_info.Add(self._labels[i], 0, wx.EXPAND)
            self.residue_info.Add(self._values[i], 0, wx.EXPAND)
        
        self.residue_info_sizer.Add(self.residue_info, 0)
        self.residue_info_sizer.Add(self.res, 0)        
        
        self.residue_sel = wx.ListBox(self, 26, wx.DefaultPosition, (80, 100), [], wx.LB_MULTIPLE)
        self.residue_sel.Bind(wx.EVT_LISTBOX, self._update_sel)
        self.omitted_res = wx.ListBox(self, 26, wx.DefaultPosition, (80, 100), [], wx.LB_SINGLE)
        self.omitted_res.Bind(wx.EVT_LISTBOX, self._goto_omitted)
                
        self._data_widgets = [ wx.StaticText(self, -1, 'Bond Lengths'),
                               wx.ComboBox(self, -1, '', choices=[], style=wx.CB_READONLY),
                               wx.StaticText(self, -1, 'Standard Deviations'),
                               wx.ComboBox(self, -1, choices=[], style=wx.CB_READONLY),
                               wx.StaticText(self, -1, 'Residue Type'),
                               wx.ComboBox(self, -1, choices=[], style=wx.CB_READONLY)]

        self._data_widgets[1].Bind(wx.EVT_COMBOBOX, self._set_data)
        self._data_widgets[3].Bind(wx.EVT_COMBOBOX, self._set_data)
        self._data_widgets[5].Bind(wx.EVT_COMBOBOX, self._set_residue_type)
        self._data_widgets[5].SetStringSelection('Aspartate')

        self.data_box = wx.GridSizer(rows=3, cols=2, vgap=5, hgap=5)
        for i in range(len(self._data_widgets)):
            self.data_box.Add(self._data_widgets[i], 0, wx.EXPAND)  
        
        self.omitted_sizer.Add(self.omitted_res)
        self.selected_sizer.Add(self.residue_sel)
        
        self.button_sizer = wx.BoxSizer(wx.VERTICAL)
        
        coot = wx.BitmapButton(self, 1, wx.Image('Resources/Icons/coot_logo.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap())
        pymol = wx.BitmapButton(self, 2, wx.Image('Resources/Icons/pymol.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap())
        plot = wx.BitmapButton(self, 3, wx.Image('Resources/Icons/plot_tiny.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap())        
        self.button_sizer.Add(coot, 0, wx.EXPAND)
        self.button_sizer.Add(pymol, 0, wx.EXPAND)                        
        self.button_sizer.Add(plot, 0, wx.EXPAND)                      
        plot.Bind(wx.EVT_BUTTON, self._save_figure)
                                                 
        self.ressel_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.ressel_sizer.Add(self.omitted_sizer)
        self.ressel_sizer.Add(self.selected_sizer)
        self.ressel_sizer.Add(self.button_sizer)
                                            
        self.residue_box = wx.BoxSizer(wx.VERTICAL)
        self.residue_box.Add(self.data_box)
        self.residue_box.Add(self.residue_info_sizer, 0, wx.EXPAND | wx.TOP, 10)
        self.residue_box.Add(self.ressel_sizer)
        
        self.main = wx.BoxSizer(wx.HORIZONTAL)
        self.main.Add(self.residue_box, 0, wx.ALL, 10)
        self.main.Add(self.canvas, 0, wx.ALL, 5)
        
        self.SetSizer(self.main)
        self.main.Fit(self)
        
        self.canvas.mpl_connect('button_press_event', self._on_click)
        self.update_inputs()
Beispiel #14
0
    def __init__(self, nb):
        Tab.__init__(self, nb)

        self._pdbt = PDBTools()
        
        self._res_size = (200,170)
        self._to_save = []
        
        self.fig = Figure((5.0, 4.0), dpi=100)
        col = wx.SystemSettings.GetColour(wx.SYS_COLOUR_BACKGROUND)
        self.fig.patch.set_facecolor((col[0]/255.0, col[1]/255.0, col[2]/255.0))
        self.canvas = FigCanvas(self, -1, self.fig)

        self.res = wx.StaticBitmap(self, size=self._res_size)
        self.res.SetBitmap(wx.EmptyImage(self._res_size[0], self._res_size[1]).ConvertToBitmap())

        self._rtypes = ['Aspartate', 'Glutamate', 'Histidine', 'Arginine']
        self._rtypess = ['Asp', 'Glu', 'His', 'Arg']
        
        self.ax1 = self.fig.add_subplot(111)
        self.ax1.set_position([0.10,0.153,0.80,0.81])
        #self.ax1.set_frame_on(False)
        [i.set_linewidth(0.5) for i in self.ax1.spines.itervalues()]
        self.ax2 = self.ax1.twinx()
        self.ax2.set_position([0.10,0.153,0.80,0.81])
        self.ax1.tick_params(labelsize=8)
        self.ax2.tick_params(labelsize=8)   
        
        self._highlight = -2
        
        self._bond_lengths = ''
        self._std_devs = ''
        self._residue_selection = []
        self._chain_lookup = {}
        
        self._residue_type = 0
        
        self._residues = {'asp': {}, 'glu': {}, 'his': {}, 'arg': {}}
        self._omitted = {'asp': [], 'glu': [], 'his': [], 'arg': []}
        
        self.omitted_title = wx.StaticBox( self, -1, "Omitted" ) 
        self.omitted_sizer = wx.StaticBoxSizer( self.omitted_title, wx.HORIZONTAL)        
        
        self.selected_title = wx.StaticBox( self, -1, "Displayed" ) 
        self.selected_sizer = wx.StaticBoxSizer( self.selected_title, wx.HORIZONTAL)        
        
        self.residue_info_title = wx.StaticBox( self, -1, "Residue Info: " ) 
        self.residue_info_sizer = wx.StaticBoxSizer( self.residue_info_title, wx.VERTICAL)
        
        #self.residue_info = wx.FlexGridSizer(rows=0, cols=2, vgap=5, hgap=5)
        
        #self.residue_info.Add(wx.StaticText(self, -1, 'D(C-O)'))
        #self._dco = wx.StaticText(self, -1, '')
        #self.residue_info.Add(self._dco)

        #self.residue_info.Add(wx.StaticText(self, -1, 'S(D(C-O))'))
        #self._sdco = wx.StaticText(self, -1, '')
        #self.residue_info.Add(self._sdco)
            
        #self.residue_info.Add(wx.StaticText(self, -1, 'Level'))
        #self._lev = wx.StaticText(self, -1, '')
        #self.residue_info.Add(self._lev)
        
        #self.residue_info_sizer.Add(self.residue_info, 0)
        self.residue_info_sizer.Add(self.res, 0)        
        
        self.residue_sel = wx.ListBox(self, 26, wx.DefaultPosition, (70, 80), [], wx.LB_MULTIPLE)
        self.residue_sel.Bind(wx.EVT_LISTBOX, self._update_sel)
        self.omitted_res = wx.ListBox(self, 26, wx.DefaultPosition, (70, 80), [], wx.LB_SINGLE)
        self.omitted_res.Bind(wx.EVT_LISTBOX, self._goto_omitted)

        self.data_box = wx.BoxSizer(wx.HORIZONTAL)
        self.data_box.Add(wx.StaticText(self, -1, 'Residue Type'), 0, wx.EXPAND|wx.ALL, 5)

        self.res_type = wx.ComboBox(self, -1, choices=[], style=wx.CB_READONLY)
        self.res_type.Bind(wx.EVT_COMBOBOX, self._set_residue_type)
        self.data_box.Add(self.res_type, 0, wx.EXPAND|wx.ALL, 5)

        self.omitted_sizer.Add(self.omitted_res, 1, wx.EXPAND|wx.ALL, 0)
        self.selected_sizer.Add(self.residue_sel, 1, wx.EXPAND|wx.ALL, 0)
                                                 
        self.ressel_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.ressel_sizer.Add(self.omitted_sizer, 1, wx.EXPAND|wx.ALL, 5)
        self.ressel_sizer.Add(self.selected_sizer, 1, wx.EXPAND|wx.ALL, 5)
        
        lig = metallicbutton.MetallicButton(self, -1, 'Ligands', '', bitmaps.fetch_icon_bitmap('actions', 'viewmag', scale=(16,16)), size=(75, 25))
        save = metallicbutton.MetallicButton(self, -1, 'Figure', '', bitmaps.fetch_icon_bitmap('actions', 'save_all', scale=(16,16)), size=(65, 25))
        tab = metallicbutton.MetallicButton(self, -1, 'Data', '', bitmaps.fetch_icon_bitmap('actions', 'save_all', scale=(16,16)), size=(65, 25))
        self.Bind(wx.EVT_BUTTON, self._view_ligands, lig)
        self.Bind(wx.EVT_BUTTON, self._save_figure, save)
        self.Bind(wx.EVT_BUTTON, self._save_data, tab)
        
        self.button_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.button_sizer.Add(save, 0, wx.LEFT, 5)
        self.button_sizer.Add(tab, 0, wx.LEFT, 5)
        self.button_sizer.Add(lig, 0, wx.LEFT, 5)
        
        self.residue_box = wx.BoxSizer(wx.VERTICAL)
        self.residue_box.Add(self.data_box, 0)
        self.residue_box.Add(self.residue_info_sizer, 0, wx.EXPAND, 10)
        self.residue_box.Add(self.ressel_sizer, 0)
        self.residue_box.Add(self.button_sizer, 0)
        
        self.main = wx.BoxSizer(wx.HORIZONTAL)
        self.main.Add(self.residue_box, 1, wx.EXPAND|wx.ALL, 5)
        
        self.averages = wx.StaticText(self, -1, '', style=wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        self.bottom_sizer = wx.BoxSizer(wx.HORIZONTAL)
        #self.bottom_sizer.Add(self.button_sizer, 0)
        self.bottom_sizer.Add(self.averages, 1, wx.EXPAND)
        
        self.canvas_sizer = wx.BoxSizer(wx.VERTICAL)
        self.canvas_sizer.Add(self.canvas, 1, wx.EXPAND|wx.ALL)
        self.canvas_sizer.Add(self.bottom_sizer, 0, wx.EXPAND)
                
        self.main.Add(self.canvas_sizer, 3, wx.EXPAND|wx.ALL, 5)
        
        self.SetSizer(self.main)
        self.main.Fit(self)
        
        self.canvas.mpl_connect('button_press_event', self._on_click)
        self.canvas.mpl_connect('pick_event', self._show_series)