Exemple #1
0
def umi_visualization(bams, chrom, start, end, output, coor):
    doc = genomeview.Document(1000)
    global umi_colors
    umi_colors = {}
    # genome
    source = genomeview.FastaGenomeSource(REF_FA)
    gv = genomeview.GenomeView(chrom, max(0, start), end, "+", source)
    axis = genomeview.Axis()
    gv.add_track(axis)
    label_track = genomeview.track.TrackLabel('{}:{}-{}'.format(
        chrom, start, end))
    gv.tracks.insert(0, label_track)
    for bam in bams:
        # VCF/BAM track
        name = bam.split('/')[-1]
        if bam[-7:] == '.vcf.gz':  # VCF track
            variant_track = VCFTrack(bam, name, chrom, start, end)
            gv.add_track(variant_track)
        else:  # bam track
            track = genomeview.PairedEndBAMTrack(bam, name=name)
            #track = genomeview.SingleEndBAMTrack(bam, name=name)
            gv.add_track(track)
            track.nuc_colors = {
                "A": "blue",
                "C": "orange",
                "G": "green",
                "T": "black",
                "N": "gray"
            }
            track.quick_consensus = False
            # format
            global count, colors
            count, frag_draw, umi_draw, umi_all, any_umi = stats_umi(
                bam, chrom, start, end)

            if len(coor.split(':')) == 3:
                colors = ColorIter(umi_draw)  # color generater
                umi_ar = list(count.keys())
                for umi in umi_ar:
                    umi_n = count[umi]
                    if umi_n > 1 and umi not in umi_colors:
                        umi_colors[umi] = colors.next_color()
                track.color_fn = color_by_umi
                track.include_read_fn = filter_by_umi  # exculde reads out of
            else:
                colors = ColorIter(len(any_umi))  # color generater
                for umi in any_umi:
                    umi_colors[umi] = colors.next_color()
                track.include_read_fn = filter_by_coor  # exculde reads out of
                track.color_fn = color_by_umi
                #track.color_fn = lambda x: "lightgray"
    doc.elements.append(gv)
    genomeview.save(doc, '{}.svg'.format(output))
Exemple #2
0
def bam_doc():
    import genomeview
    source = genomeview.FastaGenomeSource(reference_path())

    doc = genomeview.Document(900)
    
    view = genomeview.GenomeView("chr4", 96549060, 96549060+250, "+", source)
    doc.add_view(view)

    bam_track_hg002 = genomeview.SingleEndBAMTrack("data/quick_consensus_test.bam", name="HG002")
    bam_track_hg002.min_indel_size = 3
    view.add_track(bam_track_hg002)

    axis_track = genomeview.Axis()
    view.add_track(axis_track)

    return doc
Exemple #3
0
def test_view_without_source():
    import genomeview

    doc = genomeview.Document(900)
    
    view = genomeview.GenomeView("chr4", 96549060, 96549060+1000, "+")
    doc.add_view(view)

    bam_track_hg002 = genomeview.SingleEndBAMTrack("data/quick_consensus_test.bam", name="HG002")
    bam_track_hg002.draw_mismatches = False
    view.add_track(bam_track_hg002)

    axis_track = genomeview.Axis()
    view.add_track(axis_track)

    genomeview.save(doc, "results/temp_without_source.svg")


    with pytest.raises(AssertionError):
        bam_track_hg002.draw_mismatches = True
        genomeview.save(doc, "results/temp_without_source_error.svg")
Exemple #4
0
 def add_axis():
     axis_track = genomeview.Axis("axis")
     view.add_track(axis_track)