def get_metrics_per_contact_type(predicted_cmap, target_cmap):
L = predicted_cmap.shape[0]
short_range = np.zeros((L, L), dtype = np.bool)
medium_range = np.zeros((L, L), dtype = np.bool)
long_range = np.zeros((L, L), dtype = np.bool)
more_than_6 = np.tril_indices(L, -6)
more_than_12 = np.tril_indices(L, -12)
more_than_24 = np.tril_indices(L, -24)
short_range[more_than_6] = True
short_range[more_than_12] = False
medium_range[more_than_12] = True
medium_range[more_than_24] = False
long_range[more_than_24] = True
short_range = np.logical_or(short_range, short_range.T)
medium_range = np.logical_or(medium_range, medium_range.T)
long_range = np.logical_or(long_range, long_range.T)
short_range_metrics = get_metrics(predicted_cmap[short_range], target_cmap[short_range])
medium_range_metrics = get_metrics(predicted_cmap[medium_range], target_cmap[medium_range])
long_range_metrics = get_metrics(predicted_cmap[long_range], target_cmap[long_range])
return short_range_metrics, medium_range_metrics, long_range_metrics
评论列表
文章目录