INNER CODE UNIT · Python
create_straglr_bed
BirolLab/straglr · straglr_compare.py:15
def create_straglr_bed(alleles):
bed_str = ''
loci = defaultdict(dict)
max_num_alleles = 0
for locus in alleles:
if len(alleles[locus]) > max_num_alleles:
max_num_alleles = len(alleles[locus])
for allele in alleles[locus]:
loci[locus][float(allele)] = ','.join(alleles[locus][allele])
ncols = 5 + 2 * max_num_alleles
for locus in loci:
cols = list(locus)
for allele in sorted(loci[locus]):
cols.extend([str(allele), loci[locus][allele]])
if len(cols) < ncols:
cols.extend(['-'] * (ncols - len(cols)))
bed_str += '{}\n'.format('\t'.join(cols))