Beispiel #1
0
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)
Beispiel #2
0
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