美文网首页
python中简单的概率计算

python中简单的概率计算

作者: 无话_ | 来源:发表于2022-07-17 12:26 被阅读0次

    实验室室间质评项目绕不开的大佬——李金明,前一段时间看基因谷发了他的PPT(但是水印怎么是基因狐啊喂),正好从中了解些的临床的相关规范(其实我想找生信相关要点,但好像并没有...)。
    说实话,之前在上家做微生物多样性相关科研服务时候,对参数这块定的不是特别死,有时候流程固定参数达不到合同要求交付的测序量,经常会改改overlap,改改最大错配。可能也是因为这种比较低端,pipeline不断,每天流水线式的能交100来个,颇有种来测序、送分析的意思。
    简单记录下其中几个概率的计算

    二项式分布概率


    python计算二项式分布概率

    #先写计算公式
    import  math
    #单次概率p,重复m次实验,出现n次的概率
    def Binomial_distribution_pr(p,all_events,part_events):
        pr = math.factorial(all_events) / (math.factorial(part_events) * math.factorial(all_events - part_events)) * \
        pow(p,part_events) * pow(1-p,all_events-part_events) 
        return pr
    

    题为:平常病人阳性率为10%,一次检测25个标本,求获得6个阳性或6个以上结果的概率,概率为1-(获得0个或1个或2个或3个或4个或5个阳性结果的概率)

    # 1-(P(0)+P(1)+P(2)+P(3)+P(4)+P(5))
    y=0
    for x in range(6):
        y+=Binomial_distribution_pr(0.1,25,x)
    print(1-y)
    #0.033399944611494425
    

    注:细看ppt其实是有些小问题的,没有写P(5)

    二项式分布概率


    python计算泊松分布概率

    #单次概率p,重复m次实验,出现n次,概率;泊松分布用于p极小,m极大情况
    import  math
    def Poisson_distribution_pr(p,n,k):
        pr = pow(n*p,k)* math.exp(-n*p) / math.factorial(k)
        return pr
    

    题为:一个实验室中,一个项目每次检测结果阳性率为2%,100个样本中出现8个阳性结果概率

    print(Poisson_distribution_pr(100,0.02,8))
    #0.0008592716395975409
    

    样本间交叉污染概率


    python计算样本间交叉污染概率

    #m次实验,连续n次结果相同
    
    def same_happen_pr(all_events,same_events):
        pr= (all_events - same_events +1) / (math.factorial(all_events) / (math.factorial(same_events) * math.factorial(all_events - same_events)))
        return pr
    

    题为:一次检测100个标本的项目中,2个阳性结果连续出现的概率

    print(same_happen_pr(100,2))
    #0.02
    

    题为:一次检测100个标本的项目中,3个阳性结果连续出现的概率

    print(same_happen_pr(100,2))
    #0.0006060606060606061
    

    注:样本间交叉污染的概率解读
    首先假设每次检测样本,是阴性或是阳性都是独立的事件,那么
    做n个样本,任意取其中r个,相邻的情况有 n-r+1 种
    做n个样本,任意取其中r个,所有情况有 C^r_m=\frac{m!}{r!(m-r)!}
    P=\frac{n-r+1}{C^r_m}=\frac{(n-r+1)r!(m-r)!}{m!}

    胡思乱想一下

    假定检测样本的结果都是独立的,那么其r个阳性连续出现概率大于P,则说明r次连续的阳性结果存在正相关,可能是样本间污染(小概率事件在小规模样本数中发生)
    那么,当样本数极大时候,如果其r个阳性连续出现概率小于P,那么也能说明r次连续的阳性结果存在负相关,相邻样本间结果存在拮抗(小概率事件在大规模样本数中仍不发生)

    李金明:临床基因扩增检测质量保证(PPT全文)

    相关文章

      网友评论

          本文标题:python中简单的概率计算

          本文链接:https://www.haomeiwen.com/subject/skwkirtx.html