In [ ]:
from environment import *

with open("../project.json") as io:

    PROJECT_JSON = json.load(io)

PATH = make_path_dict(PROJECT_JSON)

In [ ]:
target_x_sample = pd.read_csv(PATH["target_x_sample.tsv"], sep="\t", index_col=0)

gene_set_x_sample = pd.read_csv(PATH["gene_set_x_sample.tsv"], sep="\t", index_col=0)

In [ ]:
figure_name_data_name_indices = {
    "Summary": {
        "Stem": (
            "GOTZMANN_EPITHELIAL_TO_MESENCHYMAL_TRANSITION_UP",
            "MIKKELSEN_IPS_LCP_WITH_H3K4ME3",
            "IVANOVA_HEMATOPOIESIS_STEM_CELL_AND_PROGENITOR",
            "HOEBEKE_LYMPHOID_STEM_CELL_UP",
            "BENPORATH_ES_WITH_H3K27ME3",
            "MIKKELSEN_IPS_WITH_HCP_H3K27ME3",
            "Cancer Stem Cell",
            "BENPORATH_ES_CORE_NINE",
        ),
        "Oncogenic": (
            "BIOCARTA_WNT_PATHWAY",
            "E2F3_UP.V1_UP",
            "HALLMARK_WNT_BETA_CATENIN_SIGNALING",
            "HALLMARK_E2F_TARGETS",
            "PRC2_EZH2_UP.V1_UP",
            "HALLMARK_TGF_BETA_SIGNALING",
            "HALLMARK_NOTCH_SIGNALING",
        ),
        "NFkB": ("TIAN_TNF_SIGNALING_VIA_NFKB", "HINATA_NFKB_TARGETS_KERATINOCYTE_UP"),
        "Differentiation": (
            "RODRIGUES_THYROID_CARCINOMA_POORLY_DIFFERENTIATED_UP",
            "MA_MYELOID_DIFFERENTIATION_UP",
            "ADDYA_ERYTHROID_DIFFERENTIATION_BY_HEMIN",
        ),
    }
}

In [ ]:
for target_name, target_values in target_x_sample.iterrows():

    target_values = target_values[target_values != -1]

    if target_values.value_counts().min() < 2:

        continue

    output_directory_path = os.path.join(PATH["summarize_gene_set/"], target_name)

    kraft.establish_path(output_directory_path, "directory")

    for figure_name, data_name_indices in figure_name_data_name_indices.items():

        data_dicts = {}

        score_moe_p_value_fdr_dicts = {}

        for data_name, indices in data_name_indices.items():

            data_dicts[data_name] = {
                "dataframe": gene_set_x_sample.reindex(index=indices),
                "type": "continuous",
            }

            score_moe_p_value_fdr_dicts[data_name] = pd.read_csv(
                os.path.join(
                    PATH["find_differentially_expressed_gene_set/"],
                    target_name,
                    "all.tsv",
                ),
                sep="\t",
                index_col=0,
            )

        kraft.make_summary_match_panel(
            target_values,
            data_dicts,
            score_moe_p_value_fdr_dicts,
            target_data_type="binary",
            plot_std=PROJECT_JSON["plot_std"],
            title_text=figure_name,
            html_file_path=os.path.join(output_directory_path, f"{figure_name}.html"),
        )