コード例 #1
0
    def write_schemadelica_plot(self):
        """Write schemadelica plot as SVG and PDF."""
        gd_diagram = GenomeDiagram.Diagram("Primer Scheme", track_size=0.15)
        primer_feature_set = GenomeDiagram.FeatureSet()

        # make the gc track
        window = 50
        gc_set = GenomeDiagram.GraphSet("GC content")
        graphdata1 = self.apply_to_window(self.primary_ref.seq, window,
                                          self.calc_gc)
        gc_set.new_graph(
            graphdata1,
            "GC content",
            style="line",
            color=colors.violet,
            altcolor=colors.purple,
        )
        gc_track = GenomeDiagram.Track("GC content",
                                       height=1.5,
                                       greytrack=0,
                                       scale_largetick_interval=1e3)
        gc_track.add_set(gc_set)

        # make the primer track
        for r in self.regions:
            region = str(r.region_num)
            strand = 1 if r.region_num % 2 else -1

            fwd_feature = SeqFeature(
                FeatureLocation(r.left.start, r.left.end, strand=strand))
            rev_feature = SeqFeature(
                FeatureLocation(r.right.end, r.right.start, strand=strand))
            region_feature = SeqFeature(
                FeatureLocation(r.left.start, r.right.start, strand=strand))

            primer_color = colors.red
            region_color = colors.palevioletred

            primer_feature_set.add_feature(
                region_feature,
                color=region_color,
                name=region,
                label=True,
                label_position="middle",
                label_angle=0 if strand == 1 else -180,
            )
            primer_feature_set.add_feature(fwd_feature,
                                           color=primer_color,
                                           name=region)
            primer_feature_set.add_feature(rev_feature,
                                           color=primer_color,
                                           name=region)

        primer_track = GenomeDiagram.Track(name="Annotated Features", height=1)
        primer_track.add_set(primer_feature_set)

        gd_diagram.add_track(primer_track, 2)
        gd_diagram.add_track(gc_track, 1)

        rows = max(2, int(round(len(self.primary_ref) / 10000.0)))
        gd_diagram.draw(
            format="linear",
            pagesize=(300 * rows, 200 * rows),
            fragments=rows,
            start=0,
            end=len(self.primary_ref),
        )

        pdf_filepath = self.outpath / f"{self.prefix}.plot.pdf"
        svg_filepath = self.outpath / f"{self.prefix}.plot.svg"
        logger.info(f"Writing {pdf_filepath}")
        logger.info(f"Writing {svg_filepath}")
        gd_diagram.write(str(pdf_filepath), "PDF", dpi=300)
        gd_diagram.write(str(svg_filepath), "SVG", dpi=300)
コード例 #2
0
    def write_schemadelica_plot(self, path='./'):
        logger.info('Writing plot')

        #print(dir(GenomeDiagram))
        gd_diagram = GenomeDiagram.Diagram("Primer Scheme", track_size=0.15)
        primer_feature_set = GenomeDiagram.FeatureSet()

        #make the gc track
        window = 50
        gc_set = GenomeDiagram.GraphSet('GC skew')
        graphdata1 = self.apply_to_window(self.primary_reference.seq, window,
                                          self.calc_gc_skew)
        gc_set.new_graph(graphdata1,
                         'GC Skew',
                         style='line',
                         color=colors.violet,
                         altcolor=colors.purple)
        gc_track = GenomeDiagram.Track('GC Skew',
                                       height=1.5,
                                       greytrack=0,
                                       scale_largetick_interval=1e3)
        gc_track.add_set(gc_set)

        #make the primer track
        for r in self.regions:
            region = str(r.region_num)
            strand = 1 if r.region_num % 2 else -1

            fwd_feature = SeqFeature(
                FeatureLocation(r.top_pair.left.start,
                                r.top_pair.left.end,
                                strand=strand))
            rev_feature = SeqFeature(
                FeatureLocation(r.top_pair.right.end,
                                r.top_pair.right.start,
                                strand=strand))
            region_feature = SeqFeature(
                FeatureLocation(r.top_pair.left.start,
                                r.top_pair.right.start,
                                strand=strand))

            primer_color = colors.red  #if strand == 1 else colors.blue
            region_color = colors.palevioletred  #if strand == 1 else colors.lightblue

            primer_feature_set.add_feature(
                region_feature,
                color=region_color,
                name=region,
                label=True,
                label_position="middle",
                label_angle=0 if strand == 1 else -180)
            primer_feature_set.add_feature(fwd_feature,
                                           color=primer_color,
                                           name=region)
            primer_feature_set.add_feature(rev_feature,
                                           color=primer_color,
                                           name=region)

        primer_track = GenomeDiagram.Track(name="Annotated Features", height=1)
        primer_track.add_set(primer_feature_set)

        gd_diagram.add_track(primer_track, 2)
        gd_diagram.add_track(gc_track, 1)

        rows = max(2, int(round(len(self.primary_reference) / 10000.0)))
        gd_diagram.draw(format='linear',
                        pagesize=(300 * rows, 200 * rows),
                        fragments=rows,
                        start=0,
                        end=len(self.primary_reference))

        pdf_filepath = os.path.join(path, '{}.pdf'.format(self.prefix))
        svg_filepath = os.path.join(path, '{}.svg'.format(self.prefix))
        gd_diagram.write(pdf_filepath, 'PDF', dpi=300)
        gd_diagram.write(svg_filepath, 'SVG', dpi=300)
コード例 #3
0
ファイル: main.py プロジェクト: 0xrutvij/Archive
                               label_angle=0)
    if (len(track_list) == 0 or len(track_list) == 4):
        track_for_this_feature = GenomeDiagram.Track(
            name=feature.qualifiers.get('gene'),
            scale=1,
            scale_fontsize=15,
            scale_ticks=1,
            scale_largeticks=0.5,
            scale_largetick_interval=500)
    else:
        track_for_this_feature = GenomeDiagram.Track(
            name=feature.qualifiers.get('gene'))
    track_for_this_feature.add_set(gd_feature_set)
    track_list.append(track_for_this_feature)

gdgs = GenomeDiagram.GraphSet('GC Content')

seq_string = str(record.seq)


def chunkstring(string, length):
    return (string[0 + i:length + i] for i in range(0, len(string), length))


def gdps(str_list):
    ret_list = []
    i = 50
    for strng in str_list:
        ret_list.append((i, SeqUtils.GC(strng)))
        i = i + 100
    return ret_list
コード例 #4
0
SNV_track = GenomeDiagram.Track('SNV',
                                greytrack=False,
                                scale=True,
                                scale_format='SInt',
                                scale_fontsize=10,
                                scale_fontangle=90,
                                scale_largetick_interval=5000,
                                scale_smalltick_interval=1000,
                                scale_largeticks=0.5,
                                scale_smallticks=0.2)

SNV_track.add_set(feature_set_SNV)

#%%

entropy_graph_set = GenomeDiagram.GraphSet('entropy')
entropy_graph = entropy_graph_set.new_graph(alignment_entropy,
                                            name='entropy',
                                            style='line')

entropy_track = GenomeDiagram.Track('entropy')
entropy_track.add_set(entropy_graph_set)

HUMAN_YFV_diagram = GenomeDiagram.Diagram("YFV Human Infections",
                                          pagesize='A4',
                                          orientation='portrait',
                                          x=0.2,
                                          y=0.3,
                                          tracklines=False)
HUMAN_YFV_diagram.add_track(genes_track, 1)
HUMAN_YFV_diagram.add_track(entropy_track, 2)