From 2867cb8c2d854f47fb185e07c1515b5496e14162 Mon Sep 17 00:00:00 2001 From: mu061151 Date: Tue, 23 Jul 2024 13:22:12 +0200 Subject: [PATCH 01/11] Updated documentation for Read the Docs --- pilotpy/plot/__init__.py | 2 +- pilotpy/plot/pseudobulk_DE_analysis.py | 666 ----------------------- pilotpy/tools/patients_sub_clustering.py | 16 +- 3 files changed, 4 insertions(+), 680 deletions(-) delete mode 100644 pilotpy/plot/pseudobulk_DE_analysis.py diff --git a/pilotpy/plot/__init__.py b/pilotpy/plot/__init__.py index 30f49bc..8c3f41a 100644 --- a/pilotpy/plot/__init__.py +++ b/pilotpy/plot/__init__.py @@ -1,5 +1,5 @@ from .ploting import * from .curve_activity import * from .gene_selection_analysis import * -from .pseudobulk_DE_analysis import * + diff --git a/pilotpy/plot/pseudobulk_DE_analysis.py b/pilotpy/plot/pseudobulk_DE_analysis.py deleted file mode 100644 index 1846af5..0000000 --- a/pilotpy/plot/pseudobulk_DE_analysis.py +++ /dev/null @@ -1,666 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Created on Mon Apr 22 14:43:35 2024 - -@author: Mina Shaigan -""" - -import os -import pandas as pd -import numpy as np -import anndata as ad -import itertools -from sklearn.feature_selection import VarianceThreshold -from sklearn.decomposition import PCA -from matplotlib.lines import Line2D - -from adjustText import adjust_text -from gprofiler import GProfiler -import textwrap as tw -import seaborn as sns -import matplotlib.pyplot as plt - -import rpy2.robjects as robjects -import rpy2.robjects.numpy2ri -from rpy2.robjects import pandas2ri - -from rpy2.rinterface_lib.callbacks import logger as rpy2_logger -import logging -rpy2_logger.setLevel(logging.ERROR) -pandas2ri.activate() - - -def plot_cell_numbers(adata, proportion_df, - cell_type: str = None, - cluster_col: str = "Predicted_Labels", - celltype_col: str = "cell_types", - sample_col: str = "sampleID", - my_pal = None): - """ - - - Parameters - ---------- - adata : TYPE - DESCRIPTION. - proportion_df : TYPE - DESCRIPTION. - cell_type : str, optional - DESCRIPTION. The default is None. - cluster_col : str, optional - DESCRIPTION. The default is "Predicted_Labels". - celltype_col : str, optional - DESCRIPTION. The default is "cell_types". - sample_col : str, optional - DESCRIPTION. The default is "sampleID". - my_pal : TYPE, optional - DESCRIPTION. The default is None. - - Returns - ------- - None. - - """ - - copy_cells = adata.obs.copy() - copy_cells= copy_cells[copy_cells[celltype_col] == cell_type] - copy_cells['group'] = proportion_df.loc[copy_cells[sample_col]][cluster_col].values - data = copy_cells.groupby(['group', sample_col])[sample_col].count() - data = pd.DataFrame(data) - data = data.loc[~(data==0).all(axis=1)] - - n_groups = np.unique(data.index.get_level_values("group").values) - if my_pal is None: - if len(n_groups) == 3: - my_pal = dict(zip(n_groups, ["tab:red", "skyblue", "tab:blue"])) - else: - my_pal = dict(zip(n_groups, sns.color_palette("tab10", len(n_groups)))) - - plt.figure(figsize=(20,5)) - x_values = data.index.get_level_values(sample_col).values - plt.bar(range(data.shape[0]),data[sample_col].values, - color = [my_pal[key] for key in data.index.get_level_values("group").values], - tick_label = x_values) - plt.xticks(fontsize=24, rotation = 45, ha= 'center') - plt.yticks(fontsize=24) - - plt.title(cell_type, fontsize = 24) - plt.ylabel('Number of cells', fontsize = 24) - colors = my_pal - labels = list(colors.keys()) - handles = [plt.Rectangle((0,0),1,1, color=colors[label]) for label in labels] - plt.legend(handles, labels, fontsize = 24) - plt.show() - -def compute_pseudobulk_DE( - cluster_counts: pd.DataFrame = None, - cluster_metadata: pd.DataFrame = None, - group1: str = None, - group2: str = None, - cluster_col: str = None): - - """ - Parameters - ---------- - aggr_counts : pd.DataFrame, optional - DESCRIPTION. The default is None. - metadata : pd.DataFrame, optional - DESCRIPTION. The default is None. - cell_type : str, optional - DESCRIPTION. The default is None. - group1 : str, optional - DESCRIPTION. The default is None. - group2 : str, optional - DESCRIPTION. The default is None. - n_cpus : int, optional - DESCRIPTION. The default is 8. - - Returns - ------- - my_stat_res : TYPE - DESCRIPTION. - - """ - - # consider DE between two group of interest - my_cluster_metadata = cluster_metadata[ (cluster_metadata[cluster_col] == group1 ) | (cluster_metadata[cluster_col] == group2)] - my_cluster_counts = cluster_counts.loc[my_cluster_metadata.index] - - R = robjects.r - R('library(SingleCellExperiment)') - R('library(DESeq2)') - R('library(apeglm)') - R('library(tidyverse, verbose = FALSE)') - R.assign('cluster_counts', my_cluster_counts) - R.assign('cluster_metadata', my_cluster_metadata) - - try: - - R('dds <- DESeqDataSetFromMatrix(round(t(cluster_counts)), colData = cluster_metadata, design = ~ stage)') - R('rld <- rlog(dds, blind = TRUE)') - R('dds <- DESeq(dds)') - R(' \ - mylist <- list(resultsNames(dds)); \ - for(coef in resultsNames(dds)){ \ - if(coef != "Intercept"){ \ - print(coef); \ - res <- results(dds, name = coef, alpha = 0.05); \ - res <- lfcShrink(dds, coef = coef, res = res, type = "apeglm"); \ - res_tbl <- res %>% data.frame() %>% rownames_to_column(var = "gene") %>% as_tibble() %>% arrange(padj); \ - mylist[[coef]] <- res_tbl; \ - } \ - } \ - ') - - res = R('''mylist''') - return res - except rpy2.rinterface_lib.embedded.RRuntimeError: - return None - -def compute_pseudobulk_PCA( - cluster_counts: pd.DataFrame = None, - cluster_metadata: pd.DataFrame = None): - - """ - Parameters - ---------- - aggr_counts : pd.DataFrame, optional - DESCRIPTION. The default is None. - metadata : pd.DataFrame, optional - DESCRIPTION. The default is None. - cell_type : str, optional - DESCRIPTION. The default is None. - group1 : str, optional - DESCRIPTION. The default is None. - group2 : str, optional - DESCRIPTION. The default is None. - n_cpus : int, optional - DESCRIPTION. The default is 8. - - Returns - ------- - my_stat_res : TYPE - DESCRIPTION. - - """ - - - # consider DE between two group of interest - - R = robjects.r - R('library(SingleCellExperiment)') - R('library(DESeq2)') - R('library(apeglm)') - R('library(tidyverse, verbose = FALSE)') - R.assign('cluster_counts', cluster_counts) - R.assign('cluster_metadata', cluster_metadata) - - try: - - R('dds <- DESeqDataSetFromMatrix(round(t(cluster_counts)), colData = cluster_metadata, design = ~ stage)') - R('rld <- rlog(dds, blind = TRUE)') - R('dds <- DESeq(dds)') - rld = R('''as.data.frame(assay(rld))''') - return rld - except rpy2.rinterface_lib.embedded.RRuntimeError: - return None - -def plotPCA_subgroups(proportions, deseq2_counts, cell_type, my_pal, cluster_col): - # consider top variances features - selector = VarianceThreshold(0.2) - new_deseq2_counts = selector.fit_transform(deseq2_counts) - new_deseq2_counts = pd.DataFrame(new_deseq2_counts, index = deseq2_counts.index) - - # reduce dimension by PCA - pca = PCA(n_components=2) - X_pca = pca.fit_transform(new_deseq2_counts) - - # plot PCA - color_map = [my_pal[val] for val in proportions.loc[new_deseq2_counts.index, cluster_col]] - fig, ax = plt.subplots() - ax.scatter(X_pca[:, 0], X_pca[:, 1], - c = color_map, - cmap='viridis', edgecolor='k', s = 200) - plt.xlabel('PC1: ' + str(round(pca.explained_variance_ratio_[0]*100)) + "% variance", fontsize = 24) - plt.ylabel('PC2: ' + str(round(pca.explained_variance_ratio_[1]*100)) + "% variance", fontsize = 24) - plt.title('PCA ' + str(cell_type)) - legend_elements = [] - for k in my_pal.keys(): - legend_elements.append(Line2D([0], [0], marker='o', color='w', label=k, - markerfacecolor=my_pal[k], markersize=15)) - ax.legend(handles=legend_elements, loc=1) - plt.show() - -def map_color_ps(a, low_fc_thrr, high_fc_thrr, pv_thrr): - log2FoldChange, symbol, nlog10 = a - if log2FoldChange >= high_fc_thrr and nlog10 >= pv_thrr: - return 'very higher' - elif log2FoldChange <= -low_fc_thrr and nlog10 >= pv_thrr: - return 'very lower' - else: - return 'no' - -def volcano_plot_ps(data, symbol, foldchange, p_value, - cell_type, - feature1, - feature2, - low_fc_thr = 1, - high_fc_thr = 1, - pv_thr = 1, - figsize = (20,10), - output_path = None, - my_pal = None, - fontsize: int = 14 - ): - """ - - - Parameters - ---------- - data : TYPE - DESCRIPTION. - symbol : TYPE - DESCRIPTION. - foldchange : TYPE - DESCRIPTION. - p_value : TYPE - DESCRIPTION. - cell_type : TYPE - DESCRIPTION. - feature1 : TYPE - DESCRIPTION. - feature2 : TYPE - DESCRIPTION. - low_fc_thr : TYPE, optional - DESCRIPTION. The default is 1. - high_fc_thr : TYPE, optional - DESCRIPTION. The default is 1. - pv_thr : TYPE, optional - DESCRIPTION. The default is 1. - figsize : TYPE, optional - DESCRIPTION. The default is (20,10). - output_path : TYPE, optional - DESCRIPTION. The default is None. - my_pal : TYPE, optional - DESCRIPTION. The default is None. - fontsize : int, optional - DESCRIPTION. The default is 14. - - Returns - ------- - str - DESCRIPTION. - - """ - - df = pd.DataFrame(columns=['log2FoldChange', 'nlog10', 'symbol']) - df['log2FoldChange'] = data[foldchange] - df['nlog10'] = -np.log10(data[p_value].values) - df['symbol'] = data[symbol].values - - color1 = my_pal[feature1] - color2 = my_pal[feature2] - - df.replace([np.inf, -np.inf], np.nan, inplace=True) - df.dropna(subset=["nlog10"], how="all", inplace=True) - - - selected_labels = df.loc[ (df.log2FoldChange <= low_fc_thr) & (df.log2FoldChange >= high_fc_thr) & \ - (df['nlog10'] >= pv_thr)]['symbol'].values - - def map_shape(symbol): - if symbol in selected_labels: - return 'important' - return 'not' - - df['color'] = df[['log2FoldChange', 'symbol', 'nlog10']].apply(map_color_ps, low_fc_thrr = low_fc_thr, - high_fc_thrr = high_fc_thr, - pv_thrr = pv_thr, axis = 1) - df['shape'] = df.symbol.map(map_shape) - df['baseMean'] = df.nlog10*10 - - - plt.figure(figsize = figsize, frameon=False, dpi=100) - plt.style.use('default') - - ax = sns.scatterplot(data = df, x = 'log2FoldChange', y = 'nlog10', - hue = 'color', hue_order = ['no', 'very higher', 'very lower'], - palette = ['lightgrey', color2, color1], - style = 'shape', style_order = ['not', 'important'], - markers = ['o', 'o'], - size = 'baseMean', sizes = (40, 400) - ) - - ax.axhline(pv_thr, zorder = 0, c = 'k', lw = 2, ls = '--') - ax.axvline(high_fc_thr, zorder = 0, c = 'k', lw = 2, ls = '--') - ax.axvline(-low_fc_thr, zorder = 0, c = 'k', lw = 2, ls = '--') - - texts = [] - for i in range(len(df)): - if df.iloc[i].nlog10 >= pv_thr and (df.iloc[i].log2FoldChange >= high_fc_thr): - texts.append(plt.text(x = df.iloc[i].log2FoldChange, y = df.iloc[i].nlog10, s = df.iloc[i].symbol, - fontsize = fontsize, weight = 'bold', family = 'sans-serif')) - if df.iloc[i].nlog10 >= pv_thr and ( df.iloc[i].log2FoldChange <= -low_fc_thr): - texts.append(plt.text(x = df.iloc[i].log2FoldChange, y = df.iloc[i].nlog10, s = df.iloc[i].symbol, - fontsize = fontsize + 2, weight = 'bold', family = 'sans-serif')) - adjust_text(texts) - - custom_lines = [Line2D([0], [0], marker='o', color='w', markerfacecolor=color2, markersize=fontsize), - Line2D([0], [0], marker='o', color='w', markerfacecolor=color1, markersize=fontsize)] - - plt.legend(custom_lines, ['Higher expressions in ' + feature2, 'Higher expressions in ' + feature1], loc = 1, - bbox_to_anchor = (1,1.1), frameon = False, prop = {'weight': 'normal', 'size': fontsize}) - - for axis in ['bottom', 'left']: - ax.spines[axis].set_linewidth(2) - - ax.spines['top'].set_visible(False) - ax.spines['right'].set_visible(False) - - ax.tick_params(width = 2) - ax.set_ylim(bottom=0) - plt.title("Expression Score \n " + feature1 + " - " + feature2, fontsize = fontsize + 4) - plt.xticks(size = fontsize, weight = 'bold') - plt.yticks(size = fontsize, weight = 'bold') - - plt.xlabel("$log_{2}$ (Fold Change)", size = fontsize + 2) - plt.ylabel("-$log_{10}$ (P-value)", size = fontsize + 2) - - if output_path is not None: - plt.savefig(output_path + "/volcano_" + str(feature1) + "-" + str(feature2) + "_FC.pdf", - dpi = 100, bbox_inches = 'tight', facecolor = 'white') - plt.show() - -def gene_annotation_cell_type_subgroup(data: pd.DataFrame = None, - symbol: str = 'gene', - sig_col: str = 'significant_gene', - cell_type: str = None, - group: str = None, - sources: str = None, - num_gos: int = 10, - fig_h: int = 6, - fig_w: int = 4, - font_size: int = 14, - max_length:int = 50, - path_to_results: str = None, - my_pal = None - ): - """ - Plot to show the most relative GO terms for specifc cell-type of determind patient sub-group - - Parameters - ---------- - data : pd.DataFrame - DESCRIPTION. The default is None. - symbol : str, optional - DESCRIPTION. The default is 'gene'. - sig_col : str, optional - DESCRIPTION. The default is 'significant_gene'. - cell_type : str - DESCRIPTION. The default is None. - group : str - DESCRIPTION. The default is None. - sources : str, optional - DESCRIPTION. The default is None. - num_gos : int, optional - DESCRIPTION. The default is 10. - fig_h : int, optional - DESCRIPTION. The default is 6. - fig_w : int, optional - DESCRIPTION. The default is 4. - font_size : int, optional - DESCRIPTION. The default is 14. - max_length : int, optional - DESCRIPTION. The default is 50. - path_to_results : str, optional - DESCRIPTION. The default is None. - my_pal : TYPE, optional - DESCRIPTION. The default is None. - - Returns - ------- - None. - - """ - -# path_to_results = 'Results_PILOT' - - color = my_pal[group] - -# group_genes = pd.read_csv(path_to_results + \ -# "/significant_genes_" + cell_type + "_" + group + ".csv") - - group_genes = data.loc[data[sig_col] == group, symbol].values - gp = GProfiler(return_dataframe = True) - if list(group_genes): - gprofiler_results = gp.profile(organism = 'hsapiens', - query = list(group_genes), - no_evidences = False, - sources = sources) - else: - return "Genes list is empty!" - - if(gprofiler_results.shape[0] == 0): - return "Not enough information!" - elif(gprofiler_results.shape[0] < num_gos): - num_gos = gprofiler_results.shape[0] - - all_gprofiler_results = gprofiler_results.copy() - # display(all_gprofiler_results.head()) - - # print(len(list(group_genes['symbol'].values))) - # selected_gps = gprofiler_results.loc[0:num_gos,['name', 'p_value']] - selected_gps = gprofiler_results.head(num_gos)[['name', 'p_value']] - - selected_gps['nlog10'] = -np.log10(selected_gps['p_value'].values) - - for i in selected_gps.index: - split_name = "\n".join(tw.wrap(selected_gps.loc[i, 'name'], max_length)) - selected_gps.loc[i, 'name'] = split_name - - figsize = (fig_h, fig_w) - - plt.figure(figsize = figsize, dpi = 100) - plt.style.use('default') - sns.scatterplot(data = selected_gps, x = "nlog10", y = "name", s = 300, color = color) - - plt.title('GO enrichment in ' + cell_type + ' associated with ' + group + \ - '\n (number of genes: ' + str(len(list(group_genes))) + ")", fontsize = font_size + 2) - - plt.xticks(size = font_size) - plt.yticks(size = font_size) - - plt.ylabel("GO Terms", size = font_size) - plt.xlabel("-$log_{10}$ (P-value)", size = font_size) - - save_path = path_to_results + '/' - if not os.path.exists(save_path): - os.makedirs(save_path) -# plt.savefig(save_path + group + ".pdf", bbox_inches = 'tight', -# facecolor = 'white', transparent = False) - plt.show() - - all_gprofiler_results.to_csv(save_path + group + ".csv") - -def get_sig_genes(data, symbol, foldchange, p_value, cell_type, - feature1, feature2, - low_fc_thr = 1, high_fc_thr = 1, pv_thr = 1): - df = pd.DataFrame(columns=['log2FoldChange', 'nlog10', 'symbol']) - df['log2FoldChange'] = data[foldchange] - df['nlog10'] = -np.log10(data[p_value].values) - df['symbol'] = data[symbol].values - - df.replace([np.inf, -np.inf], np.nan, inplace = True) - df.dropna(subset = ["nlog10"], how = "all", inplace = True) - - data['significant_gene'] = "" - group1_selected_labels = df.loc[ (df.log2FoldChange <= -low_fc_thr) & (df['nlog10'] >= pv_thr), 'symbol'].values - data.loc[data[symbol].isin(group1_selected_labels), 'significant_gene'] = feature1 - - group2_selected_labels = df.loc[ (df.log2FoldChange >= high_fc_thr) & (df['nlog10'] >= pv_thr), 'symbol'].values - data.loc[data[symbol].isin(group2_selected_labels), 'significant_gene'] = feature2 - - return data - -def get_pseudobulk_DE(adata: ad.AnnData, - proportion_df: pd.DataFrame, - cell_type: str, - fc_thr: list, - pv_thr: float = 0.05, - celltype_col: str = "cell_types", - sample_col: str = "sampleID", - cluster_col: str = "Predicted_Labels", - remove_samples: list = [], - my_pal: dict = None, - path_to_results: str = 'Results_PILOT/', - figsize: tuple = (30, 15), - num_gos: int = 10, - fig_h: int = 6, - fig_w: int = 4, - sources: list = ['GO:CC', 'GO:PB', 'GO:MF'], - fontsize: int = 14, - load: bool = False - ): - """ - - - Parameters - ---------- - adata : ad.AnnData - DESCRIPTION. - proportion_df : pd.DataFrame - DESCRIPTION. - cell_type : str - DESCRIPTION. - fc_thr : list - DESCRIPTION. - pv_thr : float, optional - DESCRIPTION. The default is 0.05. - celltype_col : str, optional - DESCRIPTION. The default is "cell_types". - sample_col : str, optional - DESCRIPTION. The default is "sampleID". - cluster_col : str, optional - DESCRIPTION. The default is "Predicted_Labels". - remove_samples : list, optional - DESCRIPTION. The default is []. - my_pal : dict, optional - DESCRIPTION. The default is None. - path_to_results : str, optional - DESCRIPTION. The default is 'Results_PILOT/'. - figsize : tuple, optional - DESCRIPTION. The default is (30, 15). - num_gos : int, optional - DESCRIPTION. The default is 10. - fig_h : int, optional - DESCRIPTION. The default is 6. - fig_w : int, optional - DESCRIPTION. The default is 4. - sources : list, optional - DESCRIPTION. The default is ['GO:CC', 'GO:PB', 'GO:MF']. - fontsize : int, optional - DESCRIPTION. The default is 14. - load : bool, optional - DESCRIPTION. The default is False. - - Returns - ------- - None. - - """ - - - n_clusters = np.unique(proportion_df[cluster_col]) - if my_pal is None: - if len(n_clusters) == 3: - my_pal = dict(zip(n_clusters, ["tab:red", "skyblue", "tab:blue"])) - else: - my_pal = dict(zip(n_clusters, sns.color_palette("tab10", len(n_clusters)))) - - save_path = path_to_results + "/Diff_Expressions_Results/" + str(cell_type) + "/pseudobulk/" - log_pv_thr = -np.log10(pv_thr) - - print("Plot cells frequency for each sample... ") - plot_cell_numbers(adata, proportion_df, cell_type = cell_type, - cluster_col = cluster_col, celltype_col = celltype_col, - sample_col = sample_col, my_pal= my_pal) - - if load == False: - print("Aggregating the counts and metadata to the sample level...") - counts_df = adata.to_df() - counts_df[[celltype_col, sample_col]] = adata.obs[[celltype_col, sample_col]].values - - aggr_counts = counts_df.groupby([celltype_col, sample_col]).sum() - - - cluster_counts = aggr_counts.loc[cell_type] - cluster_metadata = proportion_df.loc[cluster_counts.index.values] - cluster_metadata['stage'] = cluster_metadata[cluster_col].values - - # remove unwanted samples - if not (remove_samples is None): - for sample in remove_samples: - if sample in cluster_metadata.index: - cluster_metadata = cluster_metadata.drop(index = sample) - if sample in cluster_counts.index: - cluster_counts = cluster_counts.drop(index = sample) - - cluster_metadata = cluster_metadata.loc[cluster_counts.index] - cluster_counts = cluster_counts.loc[:, (cluster_counts != 0).any(axis=0)] - - print("Use the median of ratios method for count normalization from DESeq2") - print("Use regularized log transform (rlog) of the normalized counts from DESeq2") - rld = compute_pseudobulk_PCA(cluster_counts, cluster_metadata) - - if rld is not None: - - if not os.path.exists(save_path): - os.makedirs(save_path) - rld.to_csv(save_path + "rld_PCA.csv") - else: - rld = pd.read_csv(save_path + "rld_PCA.csv", index_col = 0) - - deseq2_counts = rld.transpose() - print("Plot the first two principal components... ") - plotPCA_subgroups(proportion_df, deseq2_counts, cell_type, my_pal, cluster_col) - - print("Performing the DE analysis... ") - j = 0 - for groups in itertools.combinations(n_clusters, 2): - data = None - if load == False: - res = compute_pseudobulk_DE(cluster_counts, cluster_metadata, - group1 = groups[0], - group2 = groups[1], - cluster_col = cluster_col) - if res is not None: - with (robjects.default_converter + pandas2ri.converter).context(): - data = robjects.conversion.get_conversion().rpy2py(res[1]) - - data = get_sig_genes(data, 'gene', 'log2FoldChange', 'padj', cell_type, - groups[0], groups[1], fc_thr[j], fc_thr[j], log_pv_thr) - - data.to_csv(save_path + "/" + str(groups[1]) + "vs" + str(groups[0]) + "_DE.csv") - else: - data = pd.read_csv(save_path + "/" + str(groups[1]) + "vs" + str(groups[0]) + "_DE.csv", index_col = 0) - - if data is not None: - print("Plot volcano plot for " + str(groups[1]) + " vs " + str(groups[0])) - volcano_plot_ps(data, 'gene', 'log2FoldChange', 'padj', cell_type, - groups[0], groups[1], fc_thr[j], fc_thr[j], log_pv_thr, figsize = figsize, - output_path = save_path + "/", - my_pal = my_pal, fontsize = fontsize) - - print("Plot GO analysis for " + str(groups[1]) + " vs " + str(groups[0])) - gene_annotation_cell_type_subgroup(data, cell_type = cell_type, group = groups[0], - sources = sources, num_gos = num_gos, - fig_h = fig_h, fig_w = fig_w, font_size = fontsize, - path_to_results = save_path + "/" + str(groups[1]) + "vs" + str(groups[0]) + "/GOs/", - my_pal = my_pal) - gene_annotation_cell_type_subgroup(data, cell_type = cell_type, group = groups[1], - sources = sources, num_gos = num_gos, - fig_h = fig_h, fig_w = fig_w, font_size = fontsize, - path_to_results = save_path + "/" + str(groups[1]) + "vs" + str(groups[0]) + "/GOs/", - my_pal = my_pal) - j += 1 \ No newline at end of file diff --git a/pilotpy/tools/patients_sub_clustering.py b/pilotpy/tools/patients_sub_clustering.py index 648d3bc..a3a8710 100644 --- a/pilotpy/tools/patients_sub_clustering.py +++ b/pilotpy/tools/patients_sub_clustering.py @@ -181,7 +181,7 @@ def compute_diff_expressions(adata,cell_type: str = None, cells=adata.uns[cell_type] - + """ import rpy2.robjects as robjects import rpy2.robjects.numpy2ri from rpy2.robjects import pandas2ri @@ -239,7 +239,7 @@ def compute_diff_expressions(adata,cell_type: str = None, - + """ def install_r_packages(): """ Install R packages using rpy2. @@ -253,16 +253,6 @@ def install_r_packages(): None """ # Install R packages using rpy2 - import rpy2.robjects as robjects - - robjects.r(''' - if (!requireNamespace("BiocManager", quietly = TRUE)) - install.packages("BiocManager") - ''') - - robjects.r(''' - BiocManager::install("limma") - ''') - + print('Install rpy2 with conda') From c73840578f4a9ae35722324e622f5a26dbfd4368 Mon Sep 17 00:00:00 2001 From: mu061151 Date: Tue, 23 Jul 2024 13:28:33 +0200 Subject: [PATCH 02/11] Updated documentation for Read the Docs set --- setup.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 02f26d3..a127130 100644 --- a/setup.py +++ b/setup.py @@ -28,9 +28,7 @@ "elpigraph-python>=0.3.1,<0.4.0", "adjusttext>=0.8,<0.9", "gprofiler-official>=1.0.0,<1.1.0", - "rpy2>=3.5.11", - - + ], packages=find_packages() From 6bafd901ada6e7155a4a556efc2f98ddd56b04e3 Mon Sep 17 00:00:00 2001 From: Mehdi Joodaki <39383809+mehdijoodaki@users.noreply.github.com> Date: Fri, 22 Nov 2024 09:13:50 +0100 Subject: [PATCH 03/11] Update index.md --- docs/source/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.md b/docs/source/index.md index 843c6ef..8d03f0e 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -63,7 +63,7 @@ Myocardial_infarction ```{toctree} --- maxdepth: 2 -caption: Pathomics data Analysis +caption: Multimodal Integration using Pathomics Data Analysis --- Combination_Kidney_IgAN ``` From 24bbd595e1de2cb8a95ac3e9795d89930c5e3287 Mon Sep 17 00:00:00 2001 From: Mehdi Joodaki <39383809+mehdijoodaki@users.noreply.github.com> Date: Fri, 22 Nov 2024 09:27:32 +0100 Subject: [PATCH 04/11] Update Combination_Kidney_IgAN.md --- docs/source/Combination_Kidney_IgAN.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/source/Combination_Kidney_IgAN.md b/docs/source/Combination_Kidney_IgAN.md index 8f32d94..00c66f5 100644 --- a/docs/source/Combination_Kidney_IgAN.md +++ b/docs/source/Combination_Kidney_IgAN.md @@ -4,6 +4,7 @@ PILOT Welcome to the PILOT Package Tutorial for pathomics Data! +With this tutorial, we learn not only how to analyze the Pathomics Data but also how to integrate multimodal data with PILOT. You can find the pathomics data [here](https://github.com/CostaLab/PILOT/tree/main/Tutorial/Datasets). @@ -15,7 +16,7 @@ import pilotpy as pl import scanpy as sc ``` -#### Kidney_IgAN Tubuli +#### Kidney_IgAN Tubuli (first modality) ##### Reading Anndata
@@ -93,7 +94,7 @@ pl.pl.trajectory(adata_T, colors = ['red','blue','orange']) -#### Kidney_IgAN Glomeruli +#### Kidney_IgAN Glomeruli (second modality) ##### Reading Anndata
@@ -144,9 +145,9 @@ pl.pl.trajectory(adata_G, colors = ['red','blue','orange']) -#### Combination: +#### Integration of modalities:
-Here, we combine the distances of samples. We get the sum of distances of samples based on Tubuli and Glomeruli distances. +Here, we integrate the distances from the first (Tubuli) and second (Glomeruli) modalities. We get the sum of the distances of samples.
From 7458cade2a3f3519cd45a69250c7f6cbac7872eb Mon Sep 17 00:00:00 2001 From: Mehdi Joodaki <39383809+mehdijoodaki@users.noreply.github.com> Date: Fri, 22 Nov 2024 09:31:37 +0100 Subject: [PATCH 05/11] Update index.md --- docs/source/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.md b/docs/source/index.md index 8d03f0e..8862a3d 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -63,7 +63,7 @@ Myocardial_infarction ```{toctree} --- maxdepth: 2 -caption: Multimodal Integration using Pathomics Data Analysis +caption: Multimodal Integration with Pathomics Data --- Combination_Kidney_IgAN ``` From 1e4868100f398a6841daaeb03fce9ab90d093f67 Mon Sep 17 00:00:00 2001 From: Mehdi Joodaki <39383809+mehdijoodaki@users.noreply.github.com> Date: Fri, 22 Nov 2024 09:32:18 +0100 Subject: [PATCH 06/11] Update index.md --- docs/source/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.md b/docs/source/index.md index 8862a3d..4c11a8c 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -63,7 +63,7 @@ Myocardial_infarction ```{toctree} --- maxdepth: 2 -caption: Multimodal Integration with Pathomics Data +caption: Multimodal Integration --- Combination_Kidney_IgAN ``` From f4a867f9213bfeff7bd37c4b5291fc80cc32a26b Mon Sep 17 00:00:00 2001 From: Mehdi Joodaki <39383809+mehdijoodaki@users.noreply.github.com> Date: Fri, 22 Nov 2024 09:35:06 +0100 Subject: [PATCH 07/11] Update Combination_Kidney_IgAN.md --- docs/source/Combination_Kidney_IgAN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/Combination_Kidney_IgAN.md b/docs/source/Combination_Kidney_IgAN.md index 00c66f5..5752119 100644 --- a/docs/source/Combination_Kidney_IgAN.md +++ b/docs/source/Combination_Kidney_IgAN.md @@ -1,4 +1,4 @@ -### Trajectory Analysis of Kidney IgAN Data with PILOT +### Trajectory Analysis and Integration of Modalities using Kidney IgAN (Pathomics) Data with PILOT
PILOT From 097b6c6cca28a1e4b764892e189d7cee10399dcd Mon Sep 17 00:00:00 2001 From: Mina Shaigan Date: Mon, 24 Mar 2025 14:06:31 +0100 Subject: [PATCH 08/11] Add files via upload --- docs/source/Myocardial_infarction.md | 592 ++------------------------- 1 file changed, 43 insertions(+), 549 deletions(-) diff --git a/docs/source/Myocardial_infarction.md b/docs/source/Myocardial_infarction.md index 2082c88..f1e03c2 100644 --- a/docs/source/Myocardial_infarction.md +++ b/docs/source/Myocardial_infarction.md @@ -152,505 +152,6 @@ for cell in adata.uns['cellnames']: plot_genes = False) ``` -##### Cluster Specific Marker Changes: -
-The previous test only finds genes with significant changes over time for a given cell type. However, it does not consider if a similar pattern and expression values are found in other clusters. To further select genes, we use a Wald test that compares the fit of the gene in the cluster vs. the fit of the gene in other clusters. -In the code below, we consider top genes (regarding the regression fit) for two interesting cell types discussed in the manuscript (‘healthy CM’ and ‘Myofib’). -
- - -```python -pl.tl.gene_cluster_differentiation(adata,cellnames = ['healthy_CM','Myofib'], number_genes = 70) -``` - - - - - -
-Test results are saved in ‘gene_clusters_stats_extend.csv’. To find a final list of genes, we only consider genes with a fold change higher than 0.5, i.e. genes which expression is increased in the cluster at hand; and we sort the genes based on the Wald test p-value. These can be seen bellow. -
- - -```python -df = pl.tl.results_gene_cluster_differentiation(cluster_name = 'Myofib',).head(50) -df.head(15) -``` - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
geneclusterwaldStatpvalueFCExpression patternfit-pvaluefit-mod-rsquared
2642GAS7Myofib212.4772928.487275e-461.086644linear up quadratic down1.873033e-1070.570704
2151EXT1Myofib125.3831285.344198e-270.786136linear up quadratic down3.159831e-350.555757
4979PKNOX2Myofib89.7387122.492742e-190.855504quadratic down1.039404e-1170.544122
2529FN1Myofib70.6416963.110595e-151.573680linear down quadratic up2.947389e-1880.633774
1437COL6A3Myofib54.7511697.758841e-121.069156linear down quadratic up3.514298e-1720.608543
5775RORAMyofib52.4862952.359167e-110.899459quadratic down7.232834e-1740.587234
2832GXYLT2Myofib24.2471132.218154e-052.000205linear up quadratic down2.402171e-850.537920
3783MGPMyofib23.2444183.591226e-050.871041quadratic down1.327779e-2250.571374
4726PCDH9Myofib20.4396461.376052e-040.604830linear down0.000000e+000.596035
1231CHD9Myofib20.3895641.409364e-040.527488linear up quadratic down7.658862e-770.559604
1710DCNMyofib19.6563071.999818e-041.033697linear up quadratic down1.866152e-2840.588602
2824GSNMyofib18.0156124.366007e-040.638136linear up quadratic down2.942472e-2790.601684
1392COL3A1Myofib17.2764796.199787e-041.240454linear down quadratic up0.000000e+000.665616
1372COL1A2Myofib14.0688162.812963e-031.327753linear down quadratic up0.000000e+000.655032
7245VCANMyofib12.6101585.560192e-030.838764linear down quadratic up1.761922e-1640.571981
-
- - - -
-Here is the GO enrichment for the 50 first top genes of Myofib (FC >= 0.5 and p-value < 0.01). Plot is saved at Go folder. -
- - -```python -pl.pl.go_enrichment(df, cell_type = 'Myofib') -``` - - - -![png](Myocardial_infarction_files/Myocardial_infarction_23_0.png) - - - -
-We can visualize specific genes, for example the ones discussed in PILOT manuscript (COL1A2, DCN and EXT1). In the plot, the orange line indicates the fit in the target cell type (shown as orange lines) compared to other cell types (represented by grey lines). Plots of genes are saved at 'plot_genes_for_Myofib' folder. -
- - -```python -pl.pl.exploring_specific_genes(cluster_name = 'Myofib', gene_list = ['COL1A2','DCN','EXT1']) -``` - - - - - - -![png](Myocardial_infarction_files/Myocardial_infarction_25_1.png) - - - -
-We can repeat the same analysis for healthy_CM cell type by using the following commands. -
- - -```python -df=pl.tl.results_gene_cluster_differentiation(cluster_name = 'healthy_CM').head(50) -df.head(15) -``` - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
geneclusterwaldStatpvalueFCExpression patternfit-pvaluefit-mod-rsquared
6165SORBS1healthy_CM1574.6656040.000000e+001.296470linear down quadratic up8.946560e-050.522953
1772DLG2healthy_CM1055.3130301.801893e-2281.155496linear down quadratic up1.323610e-2560.556306
6733THSD4healthy_CM834.2882391.583902e-1801.671315linear down quadratic up6.088694e-2500.582085
1276CMYA5healthy_CM752.3014079.561746e-1631.559703linear down quadratic up3.774063e-660.527869
3281LDB3healthy_CM542.2394583.342198e-1171.426196linear down quadratic up1.511694e-2380.546327
36ABLIM1healthy_CM379.4238676.335728e-820.979378linear up3.296026e-130.513734
6903TNNT2healthy_CM373.0379571.530428e-801.392561linear down quadratic up2.329698e-1180.535236
2398FHOD3healthy_CM343.3413264.125161e-741.731741linear down quadratic up0.000000e+000.612758
6663TECRLhealthy_CM338.8480753.875199e-731.261289linear up quadratic down0.000000e+000.570571
4056MYBPC3healthy_CM296.1572976.751814e-640.686940linear up quadratic down0.000000e+000.557570
5652RCAN2healthy_CM287.9960903.940736e-621.214055linear down quadratic up0.000000e+000.566313
1830DOCK3healthy_CM269.6536433.667754e-580.534836linear down quadratic up2.678914e-2020.527979
4177MYOM1healthy_CM236.4828755.483541e-511.637375linear down1.381677e-2680.548281
1915EFNA5healthy_CM236.2639576.115035e-511.089847linear down1.127515e-1640.532078
5436PXDNLhealthy_CM227.0664185.957588e-491.284827linear down quadratic up1.815885e-030.518712
-
- - - -
-Plot is saved at Go folder. -
- - -```python -pl.pl.go_enrichment(df, cell_type = 'healthy_CM') -``` - - - -![png](Myocardial_infarction_files/Myocardial_infarction_29_0.png) - - - -
-Plots of genes are saved at 'plot_genes_for_healthy_CM' folder. -
- - -```python -pl.pl.exploring_specific_genes(cluster_name = 'healthy_CM', gene_list = ['MYBPC3','MYOM1','FHOD3']) -``` - -![png](Myocardial_infarction_files/Myocardial_infarction_31_1.png) ##### Group genes by pattern: @@ -720,12 +221,15 @@ body {font-family: Arial;} border: 1px solid #ccc; border-top: none; } +.tabcontent.active { + display: block; +} In each tab below, you can check the information for each cluster.
- + @@ -733,7 +237,7 @@ In each tab below, you can check the information for each cluster.
-
+
@@ -804,72 +308,62 @@ In the table, you can check the curves activities of some genes of the healthy_C The complete table can be found here: [healthy_CM_curves_activities.csv](https://costalab.ukaachen.de/open_data/PILOT/healthy_CM_curves_activities.csv) +##### Cluster Specific Marker Changes: +
+The previous test only finds genes with significant changes over time for a given cell type. However, it does not consider if a similar pattern and expression values are found in other clusters. To further select genes, we use a Wald test that compares the fit of the gene in the cluster vs. the fit of the gene in other clusters. +In the code below, we consider top genes (regarding the regression fit) for two interesting cell types discussed in the manuscript (‘healthy CM’ and ‘Myofib’). +
+ ```python -pl.pl.genes_selection_analysis(adata, 'Myofib', scaler_value = 0.5) +pl.tl.gene_cluster_differentiation(adata,cellnames = ['healthy_CM','Myofib'], number_genes = 70) ``` -![png](Myocardial_infarction_files/Myofib_heatmap.png) + + + + +
+Test results are saved in ‘gene_clusters_stats_extend.csv’. To find a final list of genes, we only consider genes with a fold change higher than 0.5, i.e. genes which expression is increased in the cluster at hand; and we sort the genes based on the Wald test p-value. These can be seen bellow. +
-Here, we utilize the [Enrichr](https://maayanlab.cloud/Enrichr/) tools to get the hallmarks of the clustered genes. The default dataset is MSigDB_Hallmark_2020, which you can change using the `gene_set_library` parameter. ```python -pl.pl.plot_hallmark_genes_clusters(adata, 'Myofib', 'MSigDB_Hallmark_2020') +df = pl.tl.results_gene_cluster_differentiation(cluster_name = 'healthy_CM',).head(50) +df.head(15) ``` +| gene | cluster | waldStat | pvalue | FC | Expression pattern | fit-pvalue | fit-mod-rsquared | +|----------|-----------|------------------|---------------|------------------|--------------------------|-----------------|------------------| +| SORBS1 | healthy_CM| 1574.665604 | 0.000000e+00 | 1.296470 | linear down quadratic up | 8.946560e-05 | 0.522953 | +| DLG2 | healthy_CM| 1055.313030 | 1.801893e-228 | 1.155496 | linear down quadratic up | 1.323610e-256 | 0.556306 | +| MYOM1 | healthy_CM| 236.482875 | 5.483541e-51 | 1.637375 | linear down | 1.381677e-268 | 0.548281 | +| FHOD3 | healthy_CM| 343.341326 | 4.125161e-74 | 1.731741 | linear down quadratic up | 0.000000e+00 | 0.612758 | +| MYBPC3 | healthy_CM| 296.157297 | 6.751814e-64 | 0.686940 | linear up quadratic down | 0.000000e+00 | 0.557570 | +| ... | ... | ... | ... | ... | ... | ... | ... | -![png](Myocardial_infarction_files/Myofib_hallmark.png) - -In each tab below, you can check the information for each cluster. -
- - - - +
+Here is the GO enrichment for the 50 first top genes of healthy_CM (FC >= 0.5 and p-value < 0.01). Plot is saved at Go folder.
-
- - - -
-
- - - -
+```python +pl.pl.go_enrichment(df, cell_type = 'healthy_CM') +``` +![png](Myocardial_infarction_files/Myocardial_infarction_29_0.png) + -
- - - No GO information for cluster 3! -
-
- - - +
+We can visualize specific genes, for example the ones discussed in PILOT manuscript (MYBPC3,MYOM1, and FHOD3). In the plot, the orange line indicates the fit in the target cell type (shown as orange lines) compared to other cell types (represented by grey lines). Plots of genes are saved at 'plot_genes_for_healthy_CM' folder.
-
-In the table, you can check the curves activities of some genes of the Myofib: -| Gene ID | Expression pattern | adjusted P-value | R-squared | mod_rsquared_adj | Terminal_logFC | Transient_logFC | Switching_time | area | cluster | -|---------|--------------------------|------------------|-----------|------------------|----------------|-----------------|----------------|-------|---------| -| LAMA2 | linear up quadratic down | 0.00 | 0.38 | 0.74 | -0.15 | 0.05 | 0.76 | 28.73 | 2 | -| COL1A1 | linear down quadratic up | 0.00 | 0.31 | 0.68 | 0.14 | -0.39 | 0.86 | 48.08 | 1 | -| NEGR1 | quadratic down | 0.00 | 0.28 | 0.67 | -0.17 | 0 | 0.64 | 16.17 | 2 | -| COL3A1 | linear down quadratic up | 0.00 | 0.28 | 0.67 | 0.12 | -0.63 | 0.89 | 54.59 | 1 | -| ZBTB20 | linear up quadratic down | 0.00 | 0.27 | 0.68 | -0.15 | 0.08 | 0.77 | 30.9 | 2 | -| ... | ... | ... | ... | ... | ... | ... | ... | | | -| MAN2A1 | quadratic down | 0.00 | -0.35 | 0.40 | -0.17 | 0 | 0.65 | 17.56 | 2 | -| ADGRD1 | linear down | 0.00 | -0.36 | 0.42 | -0.17 | 0 | 0.49 | 1.45 | 4 | -| ATR | quadratic down | 0.00 | -0.36 | 0.39 | -0.17 | 0 | 0.65 | 17.71 | 2 | -| URI1 | quadratic down | 0.00 | -0.36 | 0.39 | -0.17 | 0 | 0.65 | 17.49 | 2 | -| TRA2A | quadratic down | 0.01 | -0.39 | 0.38 | -0.17 | 0 | 0.65 | 17.01 | 2 | - -The complete table can be found here: [Myofib_curves_activities.csv](https://costalab.ukaachen.de/open_data/PILOT/Myofib_curves_activities.csv) +```python +pl.pl.exploring_specific_genes(cluster_name = 'healthy_CM', gene_list = ['MYBPC3','MYOM1','FHOD3']) +``` +![png](Myocardial_infarction_files/Myocardial_infarction_31_1.png) + ###### Plot specific genes:
From 761daa27aacedb1eccabf245b56565eeefd8c13b Mon Sep 17 00:00:00 2001 From: Mina Shaigan Date: Mon, 24 Mar 2025 14:11:42 +0100 Subject: [PATCH 09/11] Add files via upload --- .../Myocardial_infarction_31_1.png | Bin 831850 -> 181661 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/source/Myocardial_infarction_files/Myocardial_infarction_31_1.png b/docs/source/Myocardial_infarction_files/Myocardial_infarction_31_1.png index 6bf45a7e9b5328e852b6917c7e3693506327b675..ea8e6b95865f5097bf8aedf48a2e86598d016498 100644 GIT binary patch literal 181661 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