def check_bed_coords(in_file, data):
    """Ensure BED file coordinates match reference genome.

    Catches errors like using a hg38 BED file for an hg19 genome run.
    """
    if dd.get_ref_file(data):
        contig_sizes = {}
        for contig in ref.file_contigs(dd.get_ref_file(data)):
            contig_sizes[contig.name] = contig.size
        with utils.open_gzipsafe(in_file) as in_handle:
            for line in in_handle:
                if not line.startswith(("#", "track", "browser", "@")) and line.strip():
                    parts = line.split()
                    if len(parts) > 3:
                        try:
                            end = int(parts[2])
                        except ValueError:
                            continue
                        contig = parts[0]
                        check_size = contig_sizes.get(contig)
                        if check_size and end > check_size:
                            raise ValueError("Found BED coordinate off the end of the chromosome:\n%s%s\n"
                                             "Is the input BED from the right genome build?" %
                                             (line, in_file))
def check_bed_coords ( in_file , data ) : if dd . get_ref_file ( data ) : contig_sizes = { } for contig in ref . file_contigs ( dd . get_ref_file ( data ) ) : contig_sizes [ contig . name ] = contig . size with utils . open_gzipsafe ( in_file ) as in_handle : for line in in_handle : if not line . startswith ( ( "#" , "track" , "browser" , "@" ) ) and line . strip ( ) : parts = line . split ( ) if len ( parts ) > 3 : try : end = int ( parts [ 2 ] ) except ValueError : continue contig = parts [ 0 ] check_size = contig_sizes . get ( contig ) if check_size and end > check_size : raise ValueError ( "Found BED coordinate off the end of the chromosome:\n%s%s\n" "Is the input BED from the right genome build?" % ( line , in_file ) )
Ensure BED file coordinates match reference genome.

    Catches errors like using a hg38 BED file for an hg19 genome run.