INNER CODE UNIT · Python
get_ref_loc
MariaNattestad/assemblytics · assemblytics/dotplot.py:44
def get_ref_loc(chrom, pos):
return chr_offsets[chrom] + pos
coords['ref_loc_start'] = coords.apply(lambda row: get_ref_loc(row['ref'], row['ref_start']), axis=1)
coords['ref_loc_stop'] = coords.apply(lambda row: get_ref_loc(row['ref'], row['ref_end']), axis=1)
# Calculate alignment length for query ordering
coords['alignment_length'] = abs(coords['query_start'] - coords['query_end'])
# Pick longest alignment for each query to decide query ordering
longest_alignments = coords.loc[coords.groupby('query')['alignment_length'].idxmax()]
ordered_queries = longest_alignments.sort_values('ref_loc_start')['query'].tolist()
# Get query lengths and calculate offsets
query_lengths = coords.groupby('query')['query_length'].max().reindex(ordered_queries).fillna(0)
query_offsets = query_lengths.cumsum().shift(1).fillna(0)
def get_query_loc(query, pos):