def make_reports(self): pham_counter = 0 total_no = len(self._phams.keys()) pham_items = self._phams.items() pham_items.sort( key=lambda item: (item[1][0].start_codon_location, item[0])) sorted_keys = [item[0] for item in pham_items] for pham_no in sorted_keys: if pham_no is not None: pham_counter += 1 gene_name = self._phams[pham_no][0].gene_id self.update_gui( "Aligning and Graphing %s \nPham %s (%d of %d)" % (gene_name, pham_no, pham_counter, total_no), (float(pham_counter) / total_no)) gene_report = GeneReport(self.base_name, self.phage_) pham_no = gene_report.get_pham(pham_no) pham = gene_report.make_report(whole=True) print pham_no genes = self._phams[pham_no] for gene in genes: print gene.gene_id phage_gene = pham.genes[gene.gene_id] gene_no = phamgene.get_gene_number(gene.gene_id) self.phage_genes[gene_no] = { 'suggested_start': phage_gene.suggested_start["most_called"], 'gene': pham.genes[gene.gene_id], 'pham_no': pham_no }
def make_reports(self): self.phage_genes = {} pham_counter = 0 total_no = len(self._phams) for pham_no in self._phams: genes = self._phams[pham_no] if pham_no is not None: self.update_gui( "Aligning and Graphing Pham %s \n Pham %d of %d" % (pham_no, pham_counter, total_no), float(pham_counter) / total_no) gene_report = GeneReport(self.base_name, self.name, whole_phage=True) pham_no = gene_report.get_pham(pham_no, genes) pham = gene_report.make_report(True) for gene in genes: phage_gene = pham.genes[gene.gene_id] gene_no = phamgene.get_gene_number(gene.gene_id) self.phage_genes[gene_no] = { 'suggested_start': phage_gene.suggested_start["most_called"], 'gene': gene, 'pham_no': pham_no } else: for gene in genes: self.phage_genes[gene.gene_id] = { 'pham_no': None, "gene": gene, "suggested_start": None } pham_counter += 1
def make_pham_genome(phage_genes, phage_name, length, file_path): file_name = os.path.join(file_path, '%sPhamsGraph.pdf' % phage_name) if check_file(file_name): return pham_colors = phams.get_pham_colors() gd_diagram = GenomeDiagram.Diagram(phage_name) gd_track = gd_diagram.new_track(1, name=phage_name, greytrack=1) gd_pham_set = gd_track.new_set() print "making genome page" for gene_id in sorted(phage_genes.iterkeys()): phage_gene = phage_genes[gene_id] pham_no = phage_gene["pham_no"] gene = phage_gene["gene"] print pham_no, gene.gene_id if pham_no is None: pham_no = "None" pham_color = 'Black' else: pham_color = colors.HexColor(pham_colors[str(pham_no)]) if gene.orientation == 'F': gene_location = FeatureLocation(gene.start, gene.stop) strand = 1 else: strand = -1 gene_location = FeatureLocation(gene.stop, gene.start) gene_feature = SeqFeature(gene_location, strand=strand) gene_number = phamgene.get_gene_number(gene.gene_id) # label the gene with the gene number gd_pham_set.add_feature(gene_feature, name=str(gene_number), label=True, label_size=6, label_angle=75) # label gene with pham color and name gd_pham_set.add_feature(gene_feature, color=pham_color, name=str(pham_no), label=True, label_position='middle') print type(length), length gd_diagram.draw(format='linear', orientation='portrait', pagesize=reportlab.lib.pagesizes.letter, fragments=8, start=0, end=length) gd_diagram.write(file_name, "PDF")
def make_reports(self): self.phage_genes = {} pham_counter = 0 total_no = len(self._phams.keys()) for pham_no in self._phams.keys(): if pham_no is not None: pham_counter += 1 self.update_gui("Aligning and Graphing Pham %s \n Pham %d of %d" % (pham_no, pham_counter, total_no), (float(pham_counter)/total_no)) gene_report = GeneReport(self.base_name, self.phage_) pham_no = gene_report.get_pham(pham_no) pham = gene_report.make_report(whole=True) print pham_no genes = self._phams[pham_no] for gene in genes: print gene.gene_id phage_gene = pham.genes[gene.gene_id] gene_no = phamgene.get_gene_number(gene.gene_id) self.phage_genes[gene_no] = {'suggested_start': phage_gene.suggested_start["most_called"], 'gene': gene, 'pham_no': pham_no}
def make_reports(self): self.phage_genes = {} pham_counter = 0 total_no = len(self._phams) for pham_no in self._phams: genes = self._phams[pham_no] if pham_no is not None: self.update_gui("Aligning and Graphing Pham %s \n Pham %d of %d" % (pham_no, pham_counter, total_no), float(pham_counter)/total_no) gene_report = GeneReport(self.base_name, self.name, whole_phage=True) pham_no = gene_report.get_pham(pham_no, genes) pham = gene_report.make_report(True) for gene in genes: phage_gene = pham.genes[gene.gene_id] gene_no = phamgene.get_gene_number(gene.gene_id) self.phage_genes[gene_no] = {'suggested_start': phage_gene.suggested_start["most_called"], 'gene': gene, 'pham_no': pham_no} else: for gene in genes: self.phage_genes[gene.gene_id] = {'pham_no': None, "gene": gene, "suggested_start": None} pham_counter += 1
def make_pham_genome(phage_genes, phage_name, length, file_path): file_name = os.path.join(file_path,'%sPhamsGraph.pdf' % (phage_name)) if check_file(file_name): return pham_colors = phams.get_pham_colors() gd_diagram = GenomeDiagram.Diagram(phage_name) gd_track = gd_diagram.new_track(1, name=phage_name, greytrack=1) gd_pham_set = gd_track.new_set() print "making genome page" for gene_id in sorted(phage_genes.iterkeys()): phage_gene = phage_genes[gene_id] pham_no = phage_gene["pham_no"] gene = phage_gene["gene"] print pham_no, gene.gene_id if pham_no == None: pham_no = "None" pham_color = 'Black' else: pham_color = colors.HexColor(pham_colors[str(pham_no)]) if gene.orientation == 'F': gene_location = FeatureLocation(gene.start, gene.stop) strand = 1 else: strand = -1 gene_location = FeatureLocation(gene.stop, gene.start) gene_feature = SeqFeature(gene_location, strand=strand) gene_number = phamgene.get_gene_number(gene.gene_id) # label the gene with the gene number gd_pham_set.add_feature(gene_feature, name=str(gene_number), label=True, label_size=6, label_angle=75) # label gene with pham color and name gd_pham_set.add_feature(gene_feature, color=pham_color, name=str(pham_no), label=True, label_position='middle') print type(length), length gd_diagram.draw(format='linear', orientation='portrait', pagesize=letter, fragments=8, start=0, end=length) gd_diagram.write(file_name, "PDF")