distribution.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:treetime 作者: neherlab 项目源码 文件源码
def calc_fwhm(distribution, is_log=True):
        """
        Assess the width of the probability distribution. This returns
        full-width-half-max
        """

        if isinstance(distribution, interp1d):

            if is_log:
                ymin = distribution.y.min()
                prob = np.exp(-(distribution.y-ymin))
            else:
                prob = distribution.y

            xvals = distribution.x

        elif isinstance(distribution, Distribution):
            # Distribution always stores log-prob
            xvals = distribution._func.x
            prob = distribution.prob_relative(xvals)
        else:
            raise TypeError("Error in computing the FWHM for the distribution. "
                " The input should be either Distribution or interpolation object");

        x_idxs = binary_dilation(prob >= 0.4*(prob.max() - prob.min())+prob.min(), iterations=1)
        xs = xvals[x_idxs]
        if xs.shape[0] < 2:
            print ("Not enough points to compute FWHM: returning zero")
            return min(TINY_NUMBER, distribution.xmax - distribution.xmin)
        else:
            return xs.max() - xs.min()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号