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,
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")))
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])