for i in range(1, len(imageset.images) - 1): arr = peripheral_profiles[np.random.choice( peripheral_profiles.shape[0], i, replace=True)] rand_idx = randint(0, peripheral_profiles.shape[0] - 1) mean_arr = np.mean(arr, axis=0) arr_diff = mean_arr - peripheral_profiles[rand_idx, :] mse = helpers.mean_absolute_deviation(arr_diff) mads.append(mse) total_mads.append(mads) return total_mads # Figure 2.D Mean Absolute Deviation of Arhgdia mRNA distribution for peripheral fraction descriptors of a randomly selected cell # from a pooled average of up to ~40 cells for cultured and micropatterned cells. constants.init_config(analysis_config_js_path=pathlib.Path( global_root_dir, "src/analysis/stability/config_original.json")) dataset_root_fp = pathlib.Path( constants.analysis_config['DATASET_CONFIG_PATH'].format( root_dir=global_root_dir)).parent primary_fp = pathlib.Path(dataset_root_fp, constants.dataset_config['PRIMARY_FILE_NAME']) secondary_fp = pathlib.Path(dataset_root_fp, constants.dataset_config['SECONDARY_FILE_NAME']) analysis_repo = H5RepositoryWithCheckpoint(repo_path=primary_fp, secondary_repo_path=secondary_fp) total_mads = [] for gene in constants.analysis_config['MRNA_GENES']: total_mads.append(compute_stability(gene, bootstrap=500)) tgt_image_name = constants.analysis_config['FIGURE_NAME_FORMAT']
["src/analysis/colocalization/config_nocodazole_pard3.json"] ] # Figure 6C top Peripheral Colocalization Score (CS) for original data # Figure 6C top Cytoplasmic Colocalization Score (CS) for original data # Figure 6D Colocalization Score (CS) for original data (4 figures) # Figure 7F top left Colocalization Score (CS) for arhgdia data # Figure 7F top right Colocalization Score (CS) for nocodazole arhgdia data # Figure 7F bottom left Colocalization Score (CS) for pard3 data # Figure 7F bottom right Colocalization Score (CS) for nocodazole pard3 data if __name__ == '__main__': np.random.seed(int(round(time.time()))) for conf in configurations: logger.info("Colocalization Score") conf_full_path = pathlib.Path(global_root_dir, conf[0]) constants.init_config(analysis_config_js_path=conf_full_path) repo = helpers.open_repo() peripheral_flag = "periph" in conf[0] stripes = constants.analysis_config["STRIPE_NUM"] mrna_densities = compute_relative_densities( repo, 'mrna', quadrants_num=8, peripheral_flag=peripheral_flag) prot_densities = compute_relative_densities( repo, 'protein', quadrants_num=8, peripheral_flag=peripheral_flag) css, results = [], {} for gene in constants.analysis_config['PROTEINS']: cs, p, ranking = helpers.calculate_colocalization_score( mrna_densities[gene], prot_densities[gene], constants.dataset_config['TIMEPOINTS_NUM_MRNA'], constants.dataset_config['TIMEPOINTS_NUM_PROTEIN'],
#!/usr/bin/env python # -*- coding: utf-8 -*- # Credits: Benjamin Dartigues, Emmanuel Bouilhol, Hayssam Soueidan, Macha Nikolski import pathlib import warnings from unittest import TestCase import constants import image_processing as ip import path from imageWithSpots import ImageWithSpots from repository import H5RepositoryWithCheckpoint constants.init_config(analysis_config_js_path=path.test_config_path) class TestImageWithSpots(TestCase): def setUp(self) -> None: self.h5_sample_path = pathlib.Path(path.global_example_data, "basic.h5") self.repo = H5RepositoryWithCheckpoint(repo_path=self.h5_sample_path) self.img = ImageWithSpots(repository=self.repo, image_path="mrna/arhgdia/2h/1") def tearDown(self) -> None: self.repo.clear() def test_get_spots(self): self.assertEqual(self.img.get_spots().shape, (218, 3))
def compute_zline_distance(repo, molecule_list, timepoints, z_line_spacing): all_median_profiles = [] for molecule in molecule_list: for timepoint in timepoints: image_set = ImageSet(repo, [f"{'mrna'}/{molecule}/{timepoint}/"]) if image_set.__sizeof__() < 5: logger.warning("Image set is small for {}", molecule) total_profile = image_set.compute_zline_distance(z_line_spacing) all_median_profiles.append(np.median(total_profile, axis=0)) return all_median_profiles # figure 8B mRNA enrichment between z-lines in muscle fibers constants.init_config(analysis_config_js_path=pathlib.Path( global_root_dir, "src/analysis/muscle/config_muscle.json")) dataset_root_fp = pathlib.Path( constants.analysis_config['DATASET_CONFIG_PATH'].format( root_dir=global_root_dir)).parent primary_fp = pathlib.Path(dataset_root_fp, constants.dataset_config['PRIMARY_FILE_NAME']) secondary_fp = pathlib.Path(dataset_root_fp, constants.dataset_config['SECONDARY_FILE_NAME']) analysis_repo = H5RepositoryWithCheckpoint(repo_path=primary_fp, secondary_repo_path=secondary_fp) z_line_spacing = constants.analysis_config['Z_LINE_SPACING'] molecule_list = ['actn2', 'gapdh'] timepoints = ['mature'] all_median_profiles_mature = compute_zline_distance(analysis_repo, molecule_list, timepoints,
# Credits: Benjamin Dartigues, Emmanuel Bouilhol, Hayssam Soueidan, Macha Nikolski import pathlib from unittest import TestCase import numpy as np from loguru import logger import constants import helpers import image_processing as ip import path from image3d import Image3d from repository import H5RepositoryWithCheckpoint constants.init_config( analysis_config_js_path=path.test_config_path) # TODO this is annoying class TestImage3d(TestCase): def setUp(self) -> None: self.h5_sample_path = pathlib.Path(path.global_example_data, "basic.h5") self.repo = H5RepositoryWithCheckpoint(repo_path=self.h5_sample_path) self.img = Image3d(repository=self.repo, image_path="mrna/arhgdia/2h/1") def tearDown(self) -> None: self.repo.clear() def test_compute_cell_mask_slices(self): cell_mask = helpers.unit_circle(15, 7)