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))
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
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
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.'
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()
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()
def hex_base_color(self): if self.force_bw: return color2bw(HexColor(self.base_color)) else: return HexColor(self.base_color)