# Set Groups to include group = 2 # Spatial smoothing factor smooth_factor = 4 # Set analysis path analysis_folder = r'C:\Users\adamk\Dropbox\Adam_Ele\Last_Hope\Analysis\G2_VPI' #analysis_folder = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Comparison' #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Read summary list cfos_paths, behaviour_metrics, metric_labels = SZCFOS.read_summarylist( summaryListFile, normalized=True, change_base_path=True) cfos_paths = np.array(cfos_paths) behaviour_metrics = np.array(behaviour_metrics) # Assign metrics/paths for group group_indices = np.where(behaviour_metrics[:, 0] == group)[0].astype(np.uint) cfos_paths = cfos_paths[group_indices] n = len(cfos_paths) # ------------------------------------------------------------------ # Measure voxel-wise correlations # ------------------------------------------------------------------ # Extract relevant metric (explanatory variable) metric = behaviour_metrics[:, selected_metric]
VPI_max_A = 1.1 VPI_min_B = -1.1 VPI_max_B = 1.1 # Spatial smoothing factor smooth_factor = 4; # Set analysis path analysis_folder = r'C:\Users\adamk\Dropbox\Adam_Ele\Last_Hope\Analysis\G2vG4' #analysis_folder = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Comparison' #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Read summary list cfos_paths, behaviour_metrics, metric_labels = SZCFOS.read_summarylist(summaryListFile, normalized=True, change_base_path=True) cfos_paths = np.array(cfos_paths) behaviour_metrics = np.array(behaviour_metrics) # Assign metrics/paths for each group group_A_correct_id = (behaviour_metrics[:,0] == group_A) group_B_correct_id = (behaviour_metrics[:,0] == group_B) group_A_metric_in_range = (behaviour_metrics[:,2] > VPI_min_A) * (behaviour_metrics[:,2] <= VPI_max_A) group_B_metric_in_range = (behaviour_metrics[:,2] > VPI_min_B) * (behaviour_metrics[:,2] <= VPI_max_B) group_A_indices = np.where(group_A_correct_id * group_A_metric_in_range)[0].astype(np.uint) group_B_indices = np.where(group_B_correct_id * group_B_metric_in_range)[0].astype(np.uint) cfos_paths_A = cfos_paths[group_A_indices] cfos_paths_B = cfos_paths[group_B_indices]
# Set Folder List #folderListFile = base_path + r'\Folder_list\wt_list.txt' folderListFile = base_path + r'\Folder_list\isolation.txt' #folderListFile = base_path + r'\Folder_list\No_SC.txt' # Set Background Path #background_path = base_path + r'\Masks\Diencephalon_Area_10_DIL.tif' #background_path = base_path + r'\Masks\Diencephalon_Area_8.tif' background_path = base_path + r'\Masks\Tectum.labels.tif' #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Read folder list folder_names, test_ROIs, stim_ROIs, cfos_names, NS_names, S_names, fish_numbers = SZCFOS.read_folderlist( base_path, folderListFile) num_folders = len(folder_names) # Load background mask background_stack = SZCFOS.load_mask(background_path) num_background_voxels = np.sum(np.sum(np.sum(background_stack))) # ------------------------------------------------------------------ # Start Analysis # Analyze Behaviour for each folder (BPS and SPI for now) group_values = np.zeros(num_folders) bps_values = np.zeros(num_folders) spi_values = np.zeros(num_folders) vpi_values = np.zeros(num_folders) dist_values = np.zeros(num_folders)
#--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Set Summary List summaryListFile = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Excel_Sheets\Test_Comparison_2.xlsx' # Set Background and Normalization Mask Paths background_path = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Anatomical_Masks\Background_Mask\Bkg_No_Fish.tif' normalizer_path = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Anatomical_Masks\Background_Mask\Background_C_Fos_Brain_Area.tif' #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Read summary list cfos_paths, behaviour_metrics, metric_labels = SZCFOS.read_summarylist( summaryListFile, normalized=False) num_files = len(cfos_paths) # Load masks normalizer_stack = SZCFOS.load_mask(normalizer_path, transpose=True) num_normalizer_voxels = np.sum(np.sum(np.sum(normalizer_stack))) background_stack = SZCFOS.load_mask(background_path, transpose=True) num_background_voxels = np.sum(np.sum(np.sum(background_stack))) # ------------------------------------------------------------------ # Normalization # ------------------------------------------------------------------ # Measure cFOS in Mask (normalize to "background") background_values = np.zeros(num_files)
# Set Mask Path #mask_path = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Anatomical_Masks\BRAIN_DAPI_MASK_FINAL2.nii' mask_path = r'C:\Users\adamk\Dropbox\Adam_Ele\Last_Hope\C-Fos_Groups\BRAIN_DAPI_MASK_FINAL_ARK.nii' # Use the normalized stacks? normalized = True # Set analysis path analysis_folder = r'C:\Users\adamk\Dropbox\Adam_Ele\Last_Hope\Analysis\PCA' #analysis_folder = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Comparison' #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Load mask mask_data, mask_affine, mask_header = SZCFOS.load_nii(mask_path, normalized=True) mask_data = mask_data[:, :, :, 0] mask_planes = mask_data[:, :, analysis_planes] num_mask_voxels = np.sum(np.sum(mask_planes)) #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Read summary list cfos_paths, behaviour_metrics, metric_labels = SZCFOS.read_summarylist( summaryListFile, normalized=True, change_base_path=True) cfos_paths = np.array(cfos_paths) behaviour_metrics = np.array(behaviour_metrics) n = len(cfos_paths) # Extract z-planes from stacks and pre-process for PCA
import SZ_analysis as SZA #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Set Summary List summaryListFile = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Excel_Sheets\Test.xlsx' # Set Mask Path mask_path = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Anatomical_Masks\Diencephalon_Area_1_Caudal_Hypothalamus.tif' #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Read summary list cfos_paths, behaviour_metrics, metric_labels = SZCFOS.read_summarylist( summaryListFile, normalized=True) behaviour_metrics = np.array(behaviour_metrics) num_files = len(cfos_paths) # Load masks mask_stack = SZCFOS.load_mask(mask_path, transpose=True) num_mask_voxels = np.sum(np.sum(np.sum(mask_stack))) # ------------------------------------------------------------------ # cFos Analysis # ------------------------------------------------------------------ # Measure (normalized) cFOS in Mask ROI cFos_values = np.zeros(num_files) for i in range(num_files):
import SZ_cfos as SZCFOS import SZ_summary as SZS import SZ_analysis as SZA #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Set Summary List #summaryListFile = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Excel_Sheets\Test_Comparison_2.xlsx' summaryListFile = r'C:\Users\adamk\Dropbox\Adam_Ele\Last_Hope\Test_all_ARK.xlsx' #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Read summary list cfos_paths, behaviour_metrics, metric_labels = SZCFOS.read_summarylist( summaryListFile, normalized=False, change_base_path=True) num_files = len(cfos_paths) # ------------------------------------------------------------------ # Normalization # ------------------------------------------------------------------ # Subtract histogram offset and scale (divide) by mode for i in range(num_files): # Read histogram npz histogram_file = os.path.dirname(cfos_paths[i]) + r'\voxel_histogram.npz' npzfile = np.load(histogram_file) histogram = npzfile['histogram'] bin_centers = npzfile['bin_centers'] offset = npzfile['offset']
# Set Input stack #summaryListFile = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Excel_Sheets\Test_Comparison_1.xlsx' stackFolder = r'C:\Users\adamk\Dropbox\Adam_Ele\Last_Hope\Analysis\G1vG2spp' stackFile = stackFolder + r'\Diff_Stack.nii.gz' # Set Mask Path #mask_path = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Anatomical_Masks\BRAIN_DAPI_MASK_FINAL2.nii' mask_path = r'C:\Users\adamk\Dropbox\Adam_Ele\Last_Hope\C-Fos_Groups\BRAIN_DAPI_MASK_FINAL_ARK.nii' mask_slice_range_start = 0 mask_slice_range_stop = 251 #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Load mask mask_data, mask_affine, mask_header = SZCFOS.load_nii(mask_path, normalized=True) mask_data = mask_data[:,:,:,0] mask_data[:,:,:mask_slice_range_start] = 0 mask_data[:,:,mask_slice_range_stop:] = 0 num_mask_voxels = np.sum(np.sum(np.sum(mask_data))) # Load stack cfos_data, cfos_affine, cfos_header = SZCFOS.load_nii(stackFile, normalized=True) masked_values = cfos_data[mask_data == 1] n_stack_rows = np.size(cfos_data, 0) n_stack_cols = np.size(cfos_data, 1) n_stack_slices = np.size(cfos_data, 2) display_data = np.zeros((n_stack_rows, n_stack_cols, n_stack_slices), dtype = np.float32) # Compute stats min_val = np.min(cfos_data[:])
#--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Set Summary List #summaryListFile = r'\\128.40.155.187\data\D R E O S T I L A B\Isolation_Experiments\Social_Brain_Areas_Analisys\Excel_Sheets\Test_Comparison_2.xlsx' summaryListFile = r'C:\Users\adamk\Dropbox\Adam_Ele\Last_Hope\Test_all_ARK.xlsx' # Use the normalized stacks? normalized = True #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- # Read summary list cfos_paths, behaviour_metrics, metric_labels = SZCFOS.read_summarylist(summaryListFile, normalized=True, change_base_path=True) num_files = len(cfos_paths) # ------------------------------------------------------------------ # Load Histograms # ------------------------------------------------------------------ plt.figure() start = 0 #stop = 10 stop = num_files for i in range(start, stop, 1): # Read histogram npz if(normalized): histogram_file = os.path.dirname(cfos_paths[i]) + r'\voxel_histogram_normalized.npz'