Ejemplo n.º 1
0
def plot(complex_lst):
    ## plot the cluster rmsd dist.
    plot = biggles.FramedPlot()
    inset = biggles.FramedPlot()

    ## plot title
    plot.title = '/'.join(string.split(absfile(options['o']), '/')[-5:-1])

    ## customize plot appearence
    plot.x1.label = 'cluster'
    plot.y2.label = 'size'
    plot.y1.label = 'rmsd'

    plot.x2.draw_ticks = 0
    plot.y2.draw_ticks = 0

    inset.frame.draw_ticks = 0
    inset.x1.draw_ticklabels = 0
    inset.y1.draw_ticklabels = 0
    inset.y2.draw_ticklabels = 1
    inset.y2.draw_ticks = 1
    inset.y2.ticks_style['color'] = 'red'

    ## get cluter and rmsd lists
    clst_list = []
    rms_list = []
    for compl in complex_lst:
        clst_list += [compl.info['hex_clst']]
        rms_list += [compl.info['rms']]

    ## get average, max, min and size of cluster
    data = []
    clst_range = range(1, max(clst_list) + 1)
    for clst in clst_range:
        rms = compress(equal(clst_list, clst), rms_list)
        data += [[average(rms), max(rms), min(rms), len(rms)]]
    data = transpose(data)

    ## Inset
    inset.add(biggles.Curve(clst_range, data[3], color='red'))

    ## Plot
    plot.add(biggles.ErrorBarsY(clst_range, data[1], data[2]))
    plot.add(biggles.Points(clst_range, data[0], type='cross', size=1))
    plot.add(biggles.Inset((0.0, 0.0), (1.0, 1.0), inset))
    plot.add(biggles.LineY(10, type='dot'))

    ## add label with info about 'good' solutions (average rmsd < 10A)
    good = []
    for clst in clst_range:
        if data[0][clst - 1] < 10:
            good += [clst]
    plot.add(biggles.PlotLabel(0.5, 0.98, 'Solutions with rmsd < 10A', size=1))
    plot.add(biggles.PlotLabel(0.5, 0.95, str(good), size=1))

    ## plot and save
    plot.show()
    plot.write_eps(string.split(options['o'], '.')[0] + '.eps')
Ejemplo n.º 2
0
    def ramachandran(self):
        """
        Create all the ramachandran plot points.

        @return: list of biggles.Point objects (all the points of the
                 plot)and a biggles.Inset object (property scale).
        @rtype: [ biggles.Point ], biggles.Inset
        """
        p = []

        ## calculate colors and create a legend if a property is given
        if self.profileName:
            palette = CS('plasma', 0, 100)
            col = palette.color_array(self.prof)

            legend = Legend(palette.legend())
            inset = biggles.Inset((1.1, 0.60), (1.2, .97), legend)

        else:
            col = ['black'] * len(self.phi)
            inset = None

        ## add data points to plot
        for i in range(len(self.phi)):
            ## don't add termini - has missing angles
            if self.phi[i] and self.psi[i]:
                if i in self.gly:
                    p += [
                        biggles.Point(self.psi[i],
                                      self.phi[i],
                                      type="star",
                                      size=1,
                                      color=col[i])
                    ]
                elif i in self.pro:
                    p += [
                        biggles.Point(self.psi[i],
                                      self.phi[i],
                                      type="filled square",
                                      size=1,
                                      color=col[i])
                    ]
                else:
                    p += [
                        biggles.Point(self.psi[i],
                                      self.phi[i],
                                      type="filled circle",
                                      size=1,
                                      color=col[i])
                    ]
        return p, inset
Ejemplo n.º 3
0
    def __make_legend(self):
        """
        Create and position the legend.

        @return: biggles legend object
        @rtype: biggles.Inset
        """
        l = self.palette.legend()

        legend = Legend(l)

        inset = biggles.Inset((1.1, 0.60), (1.2, .97), legend)

        return inset
Ejemplo n.º 4
0
def test_example4():
    x = numpy.arange(0, 2 * numpy.pi, numpy.pi / 20)
    s = numpy.sin(x)

    inset = biggles.FramedPlot()
    inset.title = "inset"
    inset.frame.draw_ticks = 0

    inset.add(biggles.Curve(x, s, type="dashed"))

    p = biggles.FramedPlot()
    p.aspect_ratio = 1.
    p.frame.tickdir = +1
    p.frame.draw_spine = 0

    p.add(biggles.SymmetricErrorBarsY(x, s, [0.2] * len(x)))
    p.add(biggles.Points(x, s, color="red"))
    p.add(biggles.Inset((.6, .6), (.95, .95), inset))

    _write_example(4, p)
Ejemplo n.º 5
0
biggles.configure('fontsize_min', 0.7)

for cg in cgList:
    ## path and name
    cgFile = os.path.abspath(cg)
    cgName = nameFromPath(cgFile)
    print 'Working on ', cgName

    ## collect data
    group = load(cgFile)
    data, clst_range = clustInfo(group)

    ## create framedArray
    plot = plotKey(data, cgName, 'fnrc_4.5')
    plot.add(biggles.Inset((0.0, 0.0), (1.0, 1.0), plotClusterSize(data)))
    plotList += [plot]

    ## gather cluster information
    dist += clusterDist(data, cgName)
    info += clusterInfo(data, cgName)

## grouping info
t2 = biggles.Table(1, 2)
stat1 = plotInfo(info)
stat2 = plotInfo(dist)
t2[0, 0] = stat2
t2[0, 1] = stat1

## add rfamedArrays to table
i = 0
Ejemplo n.º 6
0
    inset.y2.draw_ticks = 0
    dens = Biskit.hist.density(e_val[i], 25)
    inset.add(
        biggles.Curve(dens[:, 1],
                      dens[:, 0],
                      type='solid',
                      width=2,
                      color=spectrum[i]))
    p_histogram += [inset]

    ## population lines
    pop = [.2, .4, .6, .8]
    popName = ['p2', 'p4', 'p6', 'p8']
    for k in range(0, len(pop)):
        popName[k] = biggles.LineY(populationDist(e_val[i], pop[k]),
                                   type='dotted')
    p_popLines += [popName]

## plot and save
for i in range(len(p_energy)):
    p[i, 0].add(p_energy[i])
    p[i, 0].add(p_label[i])
    p[i, 0].add(p_average[i])
    p[i, 0].add(p_reference[i])
    p[i, 0].add(biggles.Inset((1.0, 0.00), (0.8, 1.0), p_histogram[i]))
    for j in range(shape(p_popLines)[1]):
        p[i, 0].add(p_popLines[i][j])

p.show()
p.write_eps(options['o'] + '/foldX_plot.eps', width="18cm", height="29cm")
Ejemplo n.º 7
0
#!/usr/bin/env python

import sys
sys.path.insert(1,'..')

import biggles
import math, numpy 

x = numpy.arange( 0, 2*math.pi, math.pi/20 )
s = numpy.sin(x)
c = numpy.cos(x)

inset = biggles.FramedPlot()
inset.title = "inset"
inset.frame.draw_ticks = 0

inset.add( biggles.Curve(x, s, type="dashed") )

p = biggles.FramedPlot()
p.aspect_ratio = 1.
p.frame.tickdir = +1
p.frame.draw_spine = 0

p.add( biggles.SymmetricErrorBarsY(x, s, [0.2]*len(x)) )
p.add( biggles.Points(x, s, color="red") )
p.add( biggles.Inset((.6,.6), (.95,.95), inset) )

#p.write_img( 400, 400, "example4.png" )
#p.write_eps( "example4.eps" )
p.show()