Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# compute observed/expected
seq_hic_obsexp = observed_over_expected(seq_hic_interpolated, ~seq_hic_nan)[0]
# todo: allow passing a global expected rather than computing locally
# log
seq_hic_obsexp = np.log(seq_hic_obsexp)
# set nan to 0
seq_hic_obsexp = np.nan_to_num(seq_hic_obsexp)
# todo: make obsexp_clip an option for obs/exp
seq_hic = np.clip(seq_hic_obsexp,-2,2)
else:
# interpolate all missing bins
seq_hic_interpolated = interp_nan(seq_hic_smoothed)
# rescale
seq_hic = 100000* seq_hic_interpolated
# todo add extra smoothing
except ValueError:
print("WARNING: %s doesn't see %s. Setting to all zeros." % (genome_hic_file, mseq_str))
seq_hic = np.zeros((seq_len_pool,seq_len_pool), dtype='float16')
# write
seqs_hic_open['seqs_hic'][si,:,:] = seq_hic.astype('float16')
# close sequences coverage file
seqs_hic_open.close()
seq_hic_obsexp = interp_nan(seq_hic_obsexp)
for i in range(-options.diagonal_offset+1, options.diagonal_offset): set_diag(seq_hic_obsexp, 0,i)
else:
seq_hic_obsexp = np.clip(seq_hic_obsexp, 0, options.clip)
seq_hic_obsexp = interp_nan(seq_hic_obsexp)
for i in range(-options.diagonal_offset+1, options.diagonal_offset): set_diag(seq_hic_obsexp, 1,i)
# apply kernel
if kernel is not None:
seq_hic = convolve(seq_hic_obsexp, kernel)
else:
seq_hic = seq_hic_obsexp
else:
# interpolate all missing bins
seq_hic_interpolated = interp_nan(seq_hic_smoothed)
# rescale, reclip
seq_hic = 100000*seq_hic_interpolated
clipval = np.nanmedian(np.diag(seq_hic,options.diagonal_offset))
for i in range(-options.diagonal_offset+1, options.diagonal_offset):
set_diag(seq_hic,clipval,i)
seq_hic = np.clip(seq_hic, 0, clipval)
#extra smoothing. todo pass kernel specs
if kernel is not None:
seq_hic = convolve(seq_hic, kernel)
except ValueError:
print("WARNING: %s doesn't see %s. Setting to all zeros." % (genome_hic_file, mseq_str))
seq_hic = np.zeros((seq_len_pool,seq_len_pool), dtype='float16')
exp_map= np.zeros((seq_len_pool,seq_len_pool))
for i in range(seq_len_pool):
set_diag(exp_map,exp_chr['balanced.avg'].values[i],i)
set_diag(exp_map,exp_chr['balanced.avg'].values[i],-i)
seq_hic_obsexp = seq_hic_smoothed / exp_map
for i in range(-options.diagonal_offset+1,options.diagonal_offset): set_diag(seq_hic_obsexp,1.0,i)
seq_hic_obsexp[seq_hic_nan] = np.nan
else: # compute local obs/exp
seq_hic_obsexp = observed_over_expected(seq_hic_smoothed, ~seq_hic_nan)[0]
# log
if options.no_log==False:
seq_hic_obsexp = np.log(seq_hic_obsexp)
seq_hic_obsexp = np.clip(seq_hic_obsexp, -options.clip, options.clip)
seq_hic_obsexp = interp_nan(seq_hic_obsexp)
for i in range(-options.diagonal_offset+1, options.diagonal_offset): set_diag(seq_hic_obsexp, 0,i)
else:
seq_hic_obsexp = np.clip(seq_hic_obsexp, 0, options.clip)
seq_hic_obsexp = interp_nan(seq_hic_obsexp)
for i in range(-options.diagonal_offset+1, options.diagonal_offset): set_diag(seq_hic_obsexp, 1,i)
# apply kernel
if kernel is not None:
seq_hic = convolve(seq_hic_obsexp, kernel)
else:
seq_hic = seq_hic_obsexp
else:
# interpolate all missing bins
seq_hic_interpolated = interp_nan(seq_hic_smoothed)