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))
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
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")
def add_axis(): axis_track = genomeview.Axis("axis") view.add_track(axis_track)