diff --git a/src/nt_composition/config.py b/src/nt_composition/config.py index 14f0a395501be622c4175fc7c9c0a990fbd78ba0..504ca2ab68c73848a357eeba6f06d2aad0cab1bb 100644 --- a/src/nt_composition/config.py +++ b/src/nt_composition/config.py @@ -10,25 +10,37 @@ file that will be produced by this module. from ..db_utils.config import Config -def get_weight_folder(weight: int): +def get_weight_folder(weight: int, global_weight: int): """ Get the weight folder. :param weight: The weight of interaction to consider + :param global_weight: The global weight to consider. if \ + the global weight is equal to 0 then then density figure are calculated \ + by project, else all projet are merge together and the interaction \ + seen in `global_weight` project are taken into account :return: The folder that will contains the interaction with a weight \ greater or equal to `weigh` in ChIA-PET projects """ - weight_folder = ConfigNt.density_folder / f"weight:{weight}" + if global_weight == 0: + weight_folder = ConfigNt.density_folder / f"project_weight:{weight}" + else: + weight_folder = ConfigNt.density_folder / \ + f"weight:{weight}-global_weight:{global_weight}" weight_folder.mkdir(parents=True, exist_ok=True) return weight_folder -def get_density_file(weight: int, project: str, ft_type: str, ft: str, - fig: bool = False): +def get_density_file(weight: int, global_weight: int, project: str, + ft_type: str, ft: str, fig: bool = False): """ Get the filename that will contain the density data or figure. :param weight: The weight of interaction to consider + :param global_weight: The global weight to consider. if \ + the global weight is equal to 0 then then density figure are calculated \ + by project, else all projet are merge together and the interaction \ + seen in `global_weight` project are taken into account :param project: A project name :param ft_type: A feature type :param ft: A feature @@ -39,16 +51,21 @@ def get_density_file(weight: int, project: str, ft_type: str, ft: str, ext = "pdf" else: ext = "txt" - res_folder = get_weight_folder(weight) / project + res_folder = get_weight_folder(weight, global_weight) / project res_folder.mkdir(exist_ok=True, parents=True) return res_folder / f"{project}_{ft_type}_{ft}_density.{ext}" -def get_density_recap(weight: int, ft_type: str, ft: str, fig: bool = False): +def get_density_recap(weight: int, global_weight: int, + ft_type: str, ft: str, fig: bool = False): """ Get the density correlation recap file. :param weight: The weight of interaction to consider + :param global_weight: The global weight to consider. if \ + the global weight is equal to 0 then then density figure are calculated \ + by project, else all projet are merge together and the interaction \ + seen in `global_weight` project are taken into account :param ft_type: A feature type :param ft: A feature :return: @@ -57,7 +74,7 @@ def get_density_recap(weight: int, ft_type: str, ft: str, fig: bool = False): ext = "pdf" else: ext = "txt" - outfolder = get_weight_folder(weight) + outfolder = get_weight_folder(weight, global_weight) outfolder.mkdir(exist_ok=True, parents=True) return outfolder / f"{ft_type}_{ft}_density_recap.{ext}"