Exemplo n.º 1
0
 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
                 }
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
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")
Exemplo n.º 4
0
 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}
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
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")