Ejemplo n.º 1
0
# 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]
Ejemplo n.º 2
0
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):
Ejemplo n.º 7
0
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']
Ejemplo n.º 8
0
# 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'