コード例 #1
0
ファイル: make_liftover_tab.py プロジェクト: sperfu/genome
def main():
    args = parse_args()

    from_gdb = genome.db.GenomeDB(assembly=args.from_assembly)
    to_gdb = genome.db.GenomeDB(assembly=args.to_assembly)

    chain_list = chain.read_chain_file(args.liftover_file, from_gdb, to_gdb)

    sys.stderr.write("initializing tables\n")
    track = create_tables(from_gdb, args.tabname)

    sys.stderr.write("writing to tables\n")
    for c in chain_list:
        sys.stderr.write("  current chain: %s\n" % str(c))
        
        tab = track.h5f.getNode("/%s" % c.from_coord.chrom.name)
        to_chr_id = c.to_coord.chrom.idnum

        for block in c.blocks:
            # update table with mappings to new chromosomal locations
            to_pos = np.arange(block.to_start, block.to_end+1)
            block_size = block.to_end - block.to_start + 1
            to_chr_id = np.repeat(c.to_coord.chrom.idnum, block_size)
            ori = np.repeat(c.ori, block_size)
            vals = np.transpose(np.vstack((to_chr_id, to_pos, ori)))
            tab[block.from_start-1:block.from_end, :] = vals
コード例 #2
0
def liftover_data(chain_file, from_gdb, to_gdb, from_track, rev_from_track,
                  to_track, rev_to_track):

    sys.stderr.write("reading chain file\n")
    chain_list = read_chain_file(chain_file, from_gdb, to_gdb)

    sys.stderr.write("copying data\n")
    for chain in chain_list:
        sys.stderr.write("  current chain: %s\n" % str(chain))
        for block in chain.blocks:
            # liftover the data data for this block
            copy_data(from_track, rev_from_track, chain.from_coord.chrom,
                      block.from_start, block.from_end, to_track, rev_to_track,
                      chain.to_coord.chrom, block.to_start, block.to_end,
                      chain.ori)
コード例 #3
0
ファイル: liftover_track.py プロジェクト: melsiddieg/genome
def liftover_data(chain_file, from_gdb, to_gdb, from_track, rev_from_track, to_track, rev_to_track):

    sys.stderr.write("reading chain file\n")
    chain_list = read_chain_file(chain_file, from_gdb, to_gdb)

    sys.stderr.write("copying data\n")
    for chain in chain_list:
        sys.stderr.write("  current chain: %s\n" % str(chain))
        for block in chain.blocks:
            # liftover the data data for this block
            copy_data(
                from_track,
                rev_from_track,
                chain.from_coord.chrom,
                block.from_start,
                block.from_end,
                to_track,
                rev_to_track,
                chain.to_coord.chrom,
                block.to_start,
                block.to_end,
                chain.ori,
            )