plot.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:shabam 作者: dlrice 项目源码 文件源码
def covplot(seqfiles, chrom, start, end, fastafile, out=None):
    '''
    '''
    if type(seqfiles) is not list:
        seqfiles = [seqfiles]

    chrom = str(chrom)
    with pysam.FastaFile(fastafile) as handle:
        reference = handle.fetch(start=start, end=end, region=chrom)
        ref = reference

    axis_offset = 75
    cov_height = 200
    height = len(seqfiles) * cov_height + (len(seqfiles) - 1 ) * 50 + axis_offset

    out_type, surface = fileformat(out, width=(end - start) * 10, height=height)
    context = cairo.Context(surface)

    plot_axis(context, start, end, axis_offset - 10)
    plot_grid(context, start, end, axis_offset, height)

    for seqfile in seqfiles:
        seq = pysam.AlignmentFile(seqfile, 'rb')
        coords = OrderedDict({0: -1e9})
        reps = ( parse_read(x, coords, ref, start) for x in seq.fetch(chrom, start, end) )

        plot_coverage(context, get_coverage(reps), axis_offset, start, (end - start) * 10, cov_height)
        axis_offset += cov_height

        if seqfiles.index(seqfile) < len(seqfiles) - 1:
            insert_spacer(context, coords, start, end)
            axis_offset += 50

    context.save()

    if out_type == 'png':
        surface.write_to_png(out)
    elif out_type is None:
        return surface.write_to_png()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号