Example #1
0
 def _compose_crosslink(self, index, result, features1, features2):
     for f1, f2, col in result:
         if f1 is None: continue
         if self.no_color: col = colors.color2bw(col)
         tf1 = features1.add_feature(f1, color=col, border=col)
         tf2 = features2.add_feature(f2, color=col, border=col)
         self.diagram.cross_track_links.append(CrossLink(tf1, tf2, col, col))
Example #2
0
    def test0(self):
        "Test color2bw function on all named colors."

        cols = list(colors.getAllNamedColors().values())
        for col in cols:
            gray = colors.color2bw(col)
            r, g, b = gray.red, gray.green, gray.blue
            assert r == g == b
Example #3
0
    def test0(self):
        "Test color2bw function on all named colors."

        cols = colors.getAllNamedColors().values()
        for col in cols:
            gray = colors.color2bw(col)
            r, g, b = gray.red, gray.green, gray.blue
            assert r == g == b
Example #4
0
 def draw_clusters(self):
     print 'Creating cluster diagram.'
     # create diagram
     self.diagram = GenomeDiagram.Diagram(self.name)
     # add tracks
     max_len = max(len(c) for c in self.clusters)
     normal_color = colors.grey if self.no_color else colors.black
     mark_color = colors.black if self.no_color else colors.red
     for cluster in self.clusters:
         col = mark_color if cluster.marked else normal_color
         track = self.diagram.new_track(1,
                                        name=cluster.label,
                                        greytrack=1, height=0.4,
                                        greytrack_fontcolor=col,
                                        greytrack_labels=1,
                                        greytrack_fontsize=self.name_size,
                                        scale=False,
                                        start=0, end=max_len)
         self.fsets.append(track.new_set())
     # add crosslink features
     if self.add_crosslinks:
         self._compose_crosslinks()
     # add CDS-es
     for ci, cluster in enumerate(self.clusters):
         gene_id = 0
         for f in cluster.CDS:
             known = False
             fname = 'NONE'
             if gene_id < len(cluster.genes):
                 fname = cluster.genes[gene_id]
                 fcolor = self.colors.get(fname, self.default_color)
             if fname == 'NONE':
                 fname = self._feature_name(f, default='')
                 fcolor = self.default_color
             else:
                 #decapitalize gene names if they are marked as proteins
                 # fname = fname[:1].lower() + fname[1:] if fname else ''
                 known = True
             if self.no_color: fcolor = colors.color2bw(fcolor)
             self.fsets[ci].add_feature(f, sigil="BIGARROW",
                                        color=fcolor,
                                        border=fcolor if self.no_border else colors.black,
                                        name=fname, label=True,
                                        label_position="middle",
                                        label_size=self.gene_size if known else self.unknown_gene_size,
                                        label_color=colors.black if known else colors.grey,
                                        label_angle=self.gene_angle)
             gene_id += 1
     self.diagram.draw(format="linear", pagesize=self.pagesize, fragments=1,
                       start=0, end=max_len)
     for ptype in ('PDF', 'EPS', 'SVG'):
         dianame = '%s.%s' % (self.name, ptype.lower())
         print 'Saving: %s' % dianame
         self.diagram.write(dianame, ptype)
     print 'Done.'
Example #5
0
    def test5(self):
        "List and display all named colors and their gray equivalents."

        canvas = reportlab.pdfgen.canvas.Canvas(
            outputfile('test_lib_colors.pdf'))

        #do all named colors
        framePage(canvas, 'Color Demo - page %d' % canvas.getPageNumber())

        all_colors = list(reportlab.lib.colors.getAllNamedColors().items())
        all_colors.sort()  # alpha order by name
        canvas.setFont('Times-Roman', 10)
        text = 'This shows all the named colors in the HTML standard (plus their gray and CMYK equivalents).'
        canvas.drawString(72, 740, text)

        canvas.drawString(200, 725, 'Pure RGB')
        canvas.drawString(300, 725, 'B&W Approx')
        canvas.drawString(400, 725, 'CMYK Approx')

        y = 700
        for (name, color) in all_colors:
            canvas.setFillColor(colors.black)
            canvas.drawString(100, y, name)
            canvas.setFillColor(color)
            canvas.rect(200, y - 10, 80, 30, fill=1)
            canvas.setFillColor(colors.color2bw(color))
            canvas.rect(300, y - 10, 80, 30, fill=1)

            c, m, yel, k = colors.rgb2cmyk(color.red, color.green, color.blue)
            CMYK = colors.CMYKColor(c, m, yel, k)
            canvas.setFillColor(CMYK)
            canvas.rect(400, y - 10, 80, 30, fill=1)

            y = y - 40
            if y < 100:
                canvas.showPage()
                framePage(canvas,
                          'Color Demo - page %d' % canvas.getPageNumber())
                canvas.setFont('Times-Roman', 10)
                y = 700
                canvas.drawString(200, 725, 'Pure RGB')
                canvas.drawString(300, 725, 'B&W Approx')
                canvas.drawString(400, 725, 'CMYK Approx')

        canvas.save()
Example #6
0
    def test5(self):
        "List and display all named colors and their gray equivalents."

        canvas = reportlab.pdfgen.canvas.Canvas(outputfile('test_lib_colors.pdf'))

        #do all named colors
        framePage(canvas, 'Color Demo - page %d' % canvas.getPageNumber())

        all_colors = reportlab.lib.colors.getAllNamedColors().items()
        all_colors.sort() # alpha order by name
        canvas.setFont('Times-Roman', 10)
        text = 'This shows all the named colors in the HTML standard (plus their gray and CMYK equivalents).'
        canvas.drawString(72,740, text)

        canvas.drawString(200,725,'Pure RGB')
        canvas.drawString(300,725,'B&W Approx')
        canvas.drawString(400,725,'CMYK Approx')

        y = 700
        for (name, color) in all_colors:
            canvas.setFillColor(colors.black)
            canvas.drawString(100, y, name)
            canvas.setFillColor(color)
            canvas.rect(200, y-10, 80, 30, fill=1)
            canvas.setFillColor(colors.color2bw(color))
            canvas.rect(300, y-10, 80, 30, fill=1)

            c, m, yel, k = colors.rgb2cmyk(color.red, color.green, color.blue)
            CMYK = colors.CMYKColor(c,m,yel,k)
            canvas.setFillColor(CMYK)
            canvas.rect(400, y-10, 80, 30, fill=1)

            y = y - 40
            if y < 100:
                canvas.showPage()
                framePage(canvas, 'Color Demo - page %d' % canvas.getPageNumber())
                canvas.setFont('Times-Roman', 10)
                y = 700
                canvas.drawString(200,725,'Pure RGB')
                canvas.drawString(300,725,'B&W Approx')
                canvas.drawString(400,725,'CMYK Approx')

        canvas.save()
Example #7
0
 def hex_base_color(self):
     if self.force_bw:
         return color2bw(HexColor(self.base_color))
     else:
         return HexColor(self.base_color)
 def hex_base_color(self):
     if self.force_bw:
         return color2bw(HexColor(self.base_color))
     else:
         return HexColor(self.base_color)