def get_reads_base_sds(chrm_strand_reads, chrm_len, rev_strand):
base_sd_sums = np.zeros(chrm_len)
base_cov = np.zeros(chrm_len, dtype=np.int_)
for r_data in chrm_strand_reads:
# extract read means data so data across all chrms is not
# in RAM at one time
try:
read_data = h5py.File(r_data.fn, 'r')
except IOError:
# probably truncated file
continue
events_slot = '/'.join((
'/Analyses', r_data.corr_group, 'Events'))
if events_slot not in read_data:
continue
read_sds = read_data[events_slot]['norm_stdev']
if rev_strand:
read_sds = read_sds[::-1]
base_sd_sums[r_data.start:
r_data.start + len(read_sds)] += read_sds
base_cov[r_data.start:r_data.start + len(read_sds)] += 1
return base_sd_sums / base_cov
评论列表
文章目录