def uniform_doseless(start, end, height=None): scaled = False if height is None: height = 1 / (end - start) scaled = True conditional = SplineModelConditional() conditional.add_segment(SplineModel.neginf, start, [SplineModel.neginf]) conditional.add_segment(start, end, [math.log(height)]) conditional.add_segment(end, SplineModel.posinf, [SplineModel.neginf]) return SplineModel(True, [''], [conditional], scaled)
def uniform_doseless(start, end, height=None): scaled = False if height is None: height = 1 / (end - start) scaled = True conditional = SplineModelConditional() conditional.add_segment(SplineModel.neginf, start, [SplineModel.neginf]) conditional.add_segment(start, end, [math.log(height)]) conditional.add_segment(end, SplineModel.posinf, [SplineModel.neginf]) return SplineModel(True, [''], [conditional], scaled)
def skew_gaussian_construct(ys, lps, low_segment, high_segment): mid_segment = SplineModelConditional.make_conditional_from_spline(InterpolatedUnivariateSpline(ys, lps, k=2), (low_segment.y1s[0], high_segment.y0s[0])) conditional = SplineModelConditional() conditional.add_segment(low_segment.y0s[0], low_segment.y1s[0], copy.copy(low_segment.coeffs[0])) for ii in range(mid_segment.size()): conditional.add_segment(mid_segment.y0s[ii], mid_segment.y1s[ii], mid_segment.coeffs[ii]) conditional.add_segment(high_segment.y0s[0], high_segment.y1s[0], copy.copy(high_segment.coeffs[0])) try: conditional.rescale() except: return None return conditional
def skew_gaussian_construct(ys, lps, low_segment, high_segment): mid_segment = SplineModelConditional.make_conditional_from_spline( InterpolatedUnivariateSpline(ys, lps, k=2), (low_segment.y1s[0], high_segment.y0s[0])) conditional = SplineModelConditional() conditional.add_segment(low_segment.y0s[0], low_segment.y1s[0], copy.copy(low_segment.coeffs[0])) for ii in range(mid_segment.size()): conditional.add_segment(mid_segment.y0s[ii], mid_segment.y1s[ii], mid_segment.coeffs[ii]) conditional.add_segment(high_segment.y0s[0], high_segment.y1s[0], copy.copy(high_segment.coeffs[0])) try: conditional.rescale() except: return None return conditional