예제 #1
0
                    np.transpose(fm_std, [1, 0, 2]).astype("float32"))

    tifffile.imsave(os.path.join(pvaldst, "mf_mean.tif"),
                    np.transpose(mf_mean, [1, 0, 2]).astype("float32"))
    tifffile.imsave(os.path.join(pvaldst, "mf_std.tif"),
                    np.transpose(mf_std, [1, 0, 2]).astype("float32"))

    #Generate the p-values map
    ##########################
    cutoff = 0.05  #set p-value cutoff

    #first comparison: mm vs. fm
    comparison = "fm_v_mm"
    #pcutoff: only display pixels below this level of significance
    pvals, psign = stat.tTestVoxelization(mm.astype("float"),
                                          fm.astype("float"),
                                          signed=True,
                                          pcutoff=cutoff)
    #color the p-values according to their sign
    #(defined by the sign of the difference of the means between the 2 groups)
    pvalsc = stat.colorPValues(pvals, psign, positive=[0, 1], negative=[1, 0])
    tifffile.imsave(os.path.join(pvaldst, "pvalues_%s.tif" % comparison),
                    np.transpose(pvalsc, [1, 0, 2, 3]).astype("float32"),
                    photometric="minisblack",
                    planarconfig="contig",
                    bigtiff=True)

    #second comparison: mm vs. mf
    comparison = "mf_v_mm"
    pvals, psign = stat.tTestVoxelization(mm.astype("float"),
                                          mf.astype("float"),
                                          signed=True,
예제 #2
0
g2s = numpy.std(g2,axis = 0);

io.writeData(os.path.join(baseDirectory, 'group1_mean.raw'), rsp.sagittalToCoronalData(g1a));
io.writeData(os.path.join(baseDirectory, 'group1_std.raw'), rsp.sagittalToCoronalData(g1s));

io.writeData(os.path.join(baseDirectory, 'group2_fast_mean.raw'), rsp.sagittalToCoronalData(g2a));
io.writeData(os.path.join(baseDirectory, 'group2_fast_std.raw'), rsp.sagittalToCoronalData(g2s));





#Generate the p-values map
##########################
#pcutoff: only display pixels below this level of significance
pvals, psign = stat.tTestVoxelization(g1.astype('float'), g2.astype('float'), signed = True, pcutoff = 0.05);

#color the p-values according to their sign (defined by the sign of the difference of the means between the 2 groups)
pvalsc = stat.colorPValues(pvals, psign, positive = [0,1], negative = [1,0]);
io.writeData(os.path.join(baseDirectory, 'pvalues.tif'), rsp.sagittalToCoronalData(pvalsc.astype('float32')));



#############################################################################

# Regions-based statistics:
###########################



group1 = ['/home/yourname/experiment/sample1/cells_transformed_to_Atlas.npy',
def generate_p_value_maps(src):
    """ 
    generates p-value maps as per ClearMap/analysis.py
    #TODO: generalise function
    """
    #Load the data (heat maps generated previously )
    #make groups
    groupA = [
        os.path.join(flds, fld) for fld in os.listdir(flds)
        if conditions[os.path.basename(fld)] == "homecage_control"
    ]
    groupA.sort()
    groupB = [
        os.path.join(flds, fld) for fld in os.listdir(flds)
        if conditions[os.path.basename(fld)] == "CNO_control_no_reversal"
    ]
    groupB.sort()
    groupC = [
        os.path.join(flds, fld) for fld in os.listdir(flds)
        if conditions[os.path.basename(fld)] == "CNO_control_reversal"
    ]
    groupC.sort()
    groupD = [
        os.path.join(flds, fld) for fld in os.listdir(flds)
        if conditions[os.path.basename(fld)] == "DREADDs"
    ]
    groupC.sort()

    group_a = [xx + "/cells_heatmap_60um_erosion.tif" for xx in groupA]
    group_b = [xx + "/cells_heatmap_60um_erosion.tif" for xx in groupB]
    group_c = [xx + "/cells_heatmap_60um_erosion.tif" for xx in groupC]
    group_d = [xx + "/cells_heatmap_60um_erosion.tif" for xx in groupD]

    grp_a = stat.readDataGroup(group_a)
    grp_b = stat.readDataGroup(group_b)
    grp_c = stat.readDataGroup(group_c)
    grp_d = stat.readDataGroup(group_d)

    #Generated average and standard deviation maps
    ##############################################
    grp_aa = np.mean(grp_a, axis=0)
    grp_as = np.std(grp_a, axis=0)

    grp_ba = np.mean(grp_b, axis=0)
    grp_bs = np.std(grp_b, axis=0)

    grp_ca = np.mean(grp_c, axis=0)
    grp_cs = np.std(grp_c, axis=0)

    grp_da = np.mean(grp_d, axis=0)
    grp_ds = np.std(grp_d, axis=0)

    io.writeData(os.path.join(src, "group_a_mean.raw"),
                 rsp.sagittalToCoronalData(grp_aa))
    io.writeData(os.path.join(src, "group_a_std.raw"),
                 rsp.sagittalToCoronalData(grp_as))

    io.writeData(os.path.join(src, "group_b_mean.raw"),
                 rsp.sagittalToCoronalData(grp_ba))
    io.writeData(os.path.join(src, "group_b_std.raw"),
                 rsp.sagittalToCoronalData(grp_bs))

    io.writeData(os.path.join(src, "group_c_mean.raw"),
                 rsp.sagittalToCoronalData(grp_ca))
    io.writeData(os.path.join(src, "group_c_std.raw"),
                 rsp.sagittalToCoronalData(grp_cs))

    io.writeData(os.path.join(src, "group_d_mean.raw"),
                 rsp.sagittalToCoronalData(grp_da))
    io.writeData(os.path.join(src, "group_d_std.raw"),
                 rsp.sagittalToCoronalData(grp_ds))

    #Generate the p-values map
    ##########################
    #first comparison
    #pcutoff: only display pixels below this level of significance
    pvals, psign = stat.tTestVoxelization(grp_a.astype("float"),
                                          grp_d.astype("float"),
                                          signed=True,
                                          pcutoff=0.05)

    #color the p-values according to their sign (defined by the sign of the difference of the means between the 2 groups)
    pvalsc = stat.colorPValues(pvals, psign, positive=[0, 1], negative=[1, 0])
    io.writeData(os.path.join(src, "pvalues_homecage_control_vs_DREADDs.tif"),
                 rsp.sagittalToCoronalData(pvalsc.astype("float32")))

    #second comparison
    pvals, psign = stat.tTestVoxelization(grp_a.astype("float"),
                                          grp_b.astype("float"),
                                          signed=True,
                                          pcutoff=0.05)
    pvalsc = stat.colorPValues(pvals, psign, positive=[0, 1], negative=[1, 0])
    io.writeData(
        os.path.join(
            src, "pvalues_homecage_control_vs_CNO_control_no_reversal.tif"),
        rsp.sagittalToCoronalData(pvalsc.astype("float32")))

    #third comparison
    pvals, psign = stat.tTestVoxelization(grp_b.astype("float"),
                                          grp_c.astype("float"),
                                          signed=True,
                                          pcutoff=0.05)
    pvalsc = stat.colorPValues(pvals, psign, positive=[0, 1], negative=[1, 0])
    io.writeData(
        os.path.join(
            src,
            "pvalues_CNO_control_no_reversal_vs_CNO_control_reversal.tif"),
        rsp.sagittalToCoronalData(pvalsc.astype("float32")))

    #fourth comparison
    pvals, psign = stat.tTestVoxelization(grp_c.astype("float"),
                                          grp_d.astype("float"),
                                          signed=True,
                                          pcutoff=0.05)
    pvalsc = stat.colorPValues(pvals, psign, positive=[0, 1], negative=[1, 0])
    io.writeData(
        os.path.join(src, "pvalues_CNO_control_reversal_vs_DREADDs.tif"),
        rsp.sagittalToCoronalData(pvalsc.astype("float32")))
예제 #4
0
io.writeData(os.path.join(baseDirectory, 'group1_mean.raw'),
             rsp.sagittalToCoronalData(g1a))
io.writeData(os.path.join(baseDirectory, 'group1_std.raw'),
             rsp.sagittalToCoronalData(g1s))

io.writeData(os.path.join(baseDirectory, 'group2_fast_mean.raw'),
             rsp.sagittalToCoronalData(g2a))
io.writeData(os.path.join(baseDirectory, 'group2_fast_std.raw'),
             rsp.sagittalToCoronalData(g2s))

#Generate the p-values map
##########################
#pcutoff: only display pixels below this level of significance
pvals, psign = stat.tTestVoxelization(g1.astype('float'),
                                      g2.astype('float'),
                                      signed=True,
                                      pcutoff=0.05)

#color the p-values according to their sign (defined by the sign of the difference of the means between the 2 groups)
pvalsc = stat.colorPValues(pvals, psign, positive=[0, 1], negative=[1, 0])
io.writeData(os.path.join(baseDirectory, 'pvalues.tif'),
             rsp.sagittalToCoronalData(pvalsc.astype('float32')))

#############################################################################

# Regions-based statistics:
###########################

group1 = [
    '/home/yourname/experiment/sample1/cells_transformed_to_Atlas.npy',
    '/home/yourname/experiment/sample2/cells_transformed_to_Atlas.npy',
    io.writeData(os.path.join(pvaldst, "dorsal_up/observers_mean.raw"),
                 rsp.sagittalToCoronalData(oa))
    io.writeData(os.path.join(pvaldst, "dorsal_up/observers_std.raw"),
                 rsp.sagittalToCoronalData(ostd))

    io.writeData(os.path.join(pvaldst, "dorsal_up/demonstrators_mean.raw"),
                 rsp.sagittalToCoronalData(da))
    io.writeData(os.path.join(pvaldst, "dorsal_up/demonstrators_std.raw"),
                 rsp.sagittalToCoronalData(dstd))

    #Generate the p-values map
    ##########################
    #first comparison
    #pcutoff: only display pixels below this level of significance
    pvals, psign = stat.tTestVoxelization(o.astype("float"),
                                          c.astype("float"),
                                          signed=True,
                                          pcutoff=0.05)

    #color the p-values according to their sign (defined by the sign of the difference of the means between the 2 groups)
    pvalsc = stat.colorPValues(pvals, psign, positive=[0, 1], negative=[1, 0])
    dst = os.path.join(
        pvaldst, "dorsal_up/observer_v_control/pvalues_observer_v_control.tif")
    makedir(os.path.dirname(dst))
    io.writeData(dst, rsp.sagittalToCoronalData(pvalsc.astype("float32")))

    #second comparison
    pvals, psign = stat.tTestVoxelization(d.astype("float"),
                                          c.astype("float"),
                                          signed=True,
                                          pcutoff=0.05)
    pvalsc = stat.colorPValues(pvals, psign, positive=[0, 1], negative=[1, 0])