From 0dca27dac2d7b922d295feca47673321a0ae5326 Mon Sep 17 00:00:00 2001 From: oneillkza Date: Tue, 5 Mar 2024 01:33:00 +0000 Subject: [PATCH] Apply automatic changes --- Figures/Methylation/Methylation_Fig4a.html | 7640 ++++++++++++++++ Figures/Methylation/Methylation_Fig4a.md | 102 + Figures/Methylation/Methylation_Fig4a.pdf | Bin 58878 -> 58878 bytes .../Methylation_Fig4a_5_0.png | Bin 0 -> 151774 bytes ...gene_methylation_HRDetect_correlation.html | 7908 ++++++++++++++++ ...R_gene_methylation_HRDetect_correlation.md | 379 + ...otype_specific_methylation_DNA_repair.html | 8077 +++++++++++++++++ ...plotype_specific_methylation_DNA_repair.md | 540 ++ 8 files changed, 24646 insertions(+) create mode 100644 Figures/Methylation/Methylation_Fig4a.html create mode 100644 Figures/Methylation/Methylation_Fig4a.md create mode 100644 Figures/Methylation/Methylation_Fig4a_files/Methylation_Fig4a_5_0.png create mode 100644 Figures/ts_methylation/HR_gene_methylation_HRDetect_correlation.html create mode 100644 Figures/ts_methylation/HR_gene_methylation_HRDetect_correlation.md create mode 100644 Figures/ts_methylation/haplotype_specific_methylation_DNA_repair.html create mode 100644 Figures/ts_methylation/haplotype_specific_methylation_DNA_repair.md diff --git a/Figures/Methylation/Methylation_Fig4a.html b/Figures/Methylation/Methylation_Fig4a.html new file mode 100644 index 0000000..86f77b2 --- /dev/null +++ b/Figures/Methylation/Methylation_Fig4a.html @@ -0,0 +1,7640 @@ + + + + + +Methylation_Fig4a + + + + + + + + + + + + +
+
+ + diff --git a/Figures/Methylation/Methylation_Fig4a.md b/Figures/Methylation/Methylation_Fig4a.md new file mode 100644 index 0000000..255450e --- /dev/null +++ b/Figures/Methylation/Methylation_Fig4a.md @@ -0,0 +1,102 @@ +```python +# Modules to import - get rid of any not used - add to dockfile in github +import pandas as pd +import scipy +import datashader as ds +from datashader.mpl_ext import dsshow +import scipy.stats +import matplotlib.pyplot as plt +from matplotlib.colors import LinearSegmentedColormap +import ssl +from urllib.request import urlopen + +``` + + +```python +# import data - make sure to change to data from GSC website + +# use ssl to securely open csv before loading into pandas dataframe +data_loc = 'https://www.bcgsc.ca/downloads/nanopore_pog/Methylation/POG044_BS_Nanopolish_Meth.bed.gz' + +context=ssl.create_default_context() +context.set_ciphers("DEFAULT") +result = urlopen(data_loc, context=context) + +POG044_BS_Nano_df = pd.read_csv(result, sep="\t",header=None, compression='gzip') + +``` + + +```python +# get columns of interest and drop null rows - i.e. BS methylation frequency and nanopore frequency +POG044_BS_Nano_df_filt = POG044_BS_Nano_df.iloc[:,[2,3]].dropna() +``` + + +```python +# calculate rho and value using pearson correlation for BS and Nanopolish frequencies +r_BS_Nano, p_BS_Nano = scipy.stats.pearsonr(POG044_BS_Nano_df_filt[2].values, POG044_BS_Nano_df_filt[3].values) + +``` + + +```python +#Visualize Methylation Correlation using datashader - use figure axe +def using_datashader(ax, x, y): + + # create dataframe + df = pd.DataFrame(dict(x=x, y=y)) + + # plot data using viridis cmap and 1 to 1 scale + dsartist = dsshow( + df, + ds.Point("x", "y"), + ds.count(), + norm="eq_hist", + aspect="auto", + cmap=viridis_cmap, + width_scale=1, + height_scale=1, + ax=ax + ) + +#viridis cmap +viridis_cmap = LinearSegmentedColormap.from_list('white_viridis', [ + (0, '#440053'), + (0.20, '#404388'), + (0.40, '#2a788e'), + (0.60, '#21a784'), + (0.80, '#78d151'), + (1, '#fde624'), +], N=256) +``` + + +```python + + +# Plot 5mC Results +fig, ax = plt.subplots() +using_datashader(ax, POG044_BS_Nano_df_filt[2], POG044_BS_Nano_df_filt[3]) +# set background color and make aspect equal +ax.set_facecolor('#440053') +ax.set_aspect('equal', adjustable='box') +# set lables +plt.ylabel('WGBS', fontsize = 14, weight="bold") +plt.xlabel('Nanopolish', fontsize = 14, weight="bold") +plt.xlim(0,1) +plt.ylim(0,1) +plt.text(0.5, 1.1, f'Correlation: {round(r_BS_Nano,2)}', transform=ax.transAxes, ha='center', fontsize = 12, weight="bold") +plt.text(0.5, 1.05, f'N: {len(POG044_BS_Nano_df_filt)}', transform=ax.transAxes, ha='center', fontsize = 12, weight="bold") +ax.tick_params(axis='both', labelsize=12) +plt.tight_layout() + +plt.savefig("Methylation_Fig4a.pdf", format="pdf", dpi = 70) +``` + + + +![png](Methylation_Fig4a_files/Methylation_Fig4a_5_0.png) + + diff --git a/Figures/Methylation/Methylation_Fig4a.pdf b/Figures/Methylation/Methylation_Fig4a.pdf index d545c2a463277a3d77fa9849033235aa470baa0e..e83ebf8dfd359906ac3a73dd659942688db9c488 100644 GIT binary patch delta 19 bcmex&n)%;p<_($;S&WTL%{J>kyvPCoV3G*E delta 19 bcmex&n)%;p<_($;S&WR0O*ZR3yvPCoV0Q?) diff --git a/Figures/Methylation/Methylation_Fig4a_files/Methylation_Fig4a_5_0.png b/Figures/Methylation/Methylation_Fig4a_files/Methylation_Fig4a_5_0.png new file mode 100644 index 0000000000000000000000000000000000000000..eaebe5e5c7be2ae37cb199d8d0c151216e282043 GIT binary patch literal 151774 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⩔a^ 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
+
+ + diff --git a/Figures/ts_methylation/HR_gene_methylation_HRDetect_correlation.md b/Figures/ts_methylation/HR_gene_methylation_HRDetect_correlation.md new file mode 100644 index 0000000..32b6277 --- /dev/null +++ b/Figures/ts_methylation/HR_gene_methylation_HRDetect_correlation.md @@ -0,0 +1,379 @@ +```python +import pandas as pd +import logging +import numpy as np +import matplotlib.collections as mcollections +from matplotlib.pylab import plt +import seaborn as sns +from matplotlib.lines import Line2D +import warnings +%matplotlib inline + +warnings.filterwarnings("ignore") + +params = {"font.family":"Arial", +"legend.fontsize": 10, + "axes.labelsize": 12, + "axes.titlesize": 12, + "xtick.labelsize": 12, + "ytick.labelsize": 12, + "svg.fonttype": 'none'} +plt.rcParams.update(params) + +logger = logging.getLogger(__name__) +logging.basicConfig(level=logging.INFO) + +### COLORS FOR ALTERATIONS +cmap_1 = plt.cm.get_cmap("Set2") +cmap_2 = plt.cm.get_cmap("tab20c") +GERMLINE_COLOR = cmap_1(5) +SOMATIC_COLOR = cmap_1(1) +GERMLINE_SOMATIC_COLOR = cmap_1(0) +BOXPLOT_COLOR = cmap_2(19) +NO_ALT_COLOR = cmap_2(17) + + +PALETTE = {"no alt":NO_ALT_COLOR, "germline+somatic":GERMLINE_SOMATIC_COLOR, "germline":GERMLINE_COLOR, "somatic":SOMATIC_COLOR} +OFFSET_METHYLATED = {"BRCA1": 0.65, + "RAD51C": 0.55} +``` + + +```python +########################################################################################### +##### correlate fraction of methylation sites in HR genes and HRDetect results ############ +########################################################################################### + +def generate_HRDetect_plot_BRC_OVA(df_methyl_BRC_OVA, df_methyl_non_BRC_OVA, palette, offset_methylated): + + tumour_types = ["BRC_OVA", "non_BRC_OVA"] + + for tumour_type in tumour_types: + if tumour_type == "BRC_OVA": + ### Figure5a + logger.info("generating HRDetect plots for BRC and OVA samples") + df_methyl = df_methyl_BRC_OVA + else: + ### Ex Figure 5a + logger.info("generating HRDetect plots for non BRC and OVA samples") + df_methyl = df_methyl_non_BRC_OVA + + goi = ["BRCA1", "RAD51C"] + + fig_HRDetect, ax_HRDetect = plt.subplots(1, 2, sharex = False, sharey = False, figsize = (8.5, 4.5), dpi = 600) + ax_HRDetect = ax_HRDetect.flatten() + ### dummy figure + fig_swarm, ax_swarm = plt.subplots(1, 2, sharex = False, sharey = True, figsize = (8.5, 4.5), dpi = 150) + ax_swarm= ax_swarm.flatten() + + for gene_index, gene in enumerate(goi): + logger.info(gene) + df_plot_offset = df_methyl.copy() + loh_column = gene+"_loh" + + for i in df_plot_offset.index: + if gene == "BRCA1": + if df_plot_offset.loc[i, gene] >= offset_methylated[gene]: + df_plot_offset.loc[i, "methylated"] = "yes" + else: + df_plot_offset.loc[i, "methylated"] = "no" + else: + if df_plot_offset.loc[i, gene] >= offset_methylated[gene]: + df_plot_offset.loc[i, "methylated"] = "yes" + else: + df_plot_offset.loc[i, "methylated"] = "no" + + df_plot_offset["LOH"] = np.nan + for i in df_plot_offset.index: + if "LOH" in df_plot_offset.loc[i, loh_column]: + df_plot_offset.loc[i, "LOH"] = "yes" + else: + df_plot_offset.loc[i, "LOH"] = "no" + + swarm = sns.swarmplot(x="methylated", y = "HRDetect", data=df_plot_offset, ax = ax_swarm[gene_index]) + artists = swarm.get_children() + offsets = {} + for index, a in enumerate(artists): + if (type(a) is mcollections.PathCollection) and len(a.get_offsets()) > 0: + offsets[index] = a.get_offsets() + + plt.close(fig_swarm) + + for index in df_plot_offset.index: + if df_plot_offset.loc[index, "methylated"] == "no": + offset_index = 0 + else: + offset_index = 1 + + minx = offsets[offset_index][0, 0] + miny = offsets[offset_index][0, 1] + for (x, y) in offsets[offset_index]: + + hrd = df_plot_offset.loc[index, "HRDetect"] + + if abs(miny - hrd) > abs(y - hrd): + miny = y + minx = x + + df_plot_offset.loc[index, "x"] = minx + df_plot_offset.loc[index, "y"] = miny + + sns.boxplot(x= "methylated", y = "HRDetect", data = df_plot_offset, ax = ax_HRDetect[gene_index], fliersize =2, linewidth = 0.6, color = "white") + alt = None + color = None + for pog in df_plot_offset.index: + alt = df_plot_offset.loc[pog, "HR_alt"] + color = palette[alt] + if df_plot_offset.loc[pog, "LOH"] == "yes": + ax_HRDetect[gene_index].scatter(df_plot_offset.loc[pog, "x"], df_plot_offset.loc[pog, "y"], marker = "o", s = 40, facecolors = "none", edgecolors = color, linewidth = 1.2) + else: + ax_HRDetect[gene_index].scatter(df_plot_offset.loc[pog, "x"], df_plot_offset.loc[pog, "y"], marker = "o", s = 40, facecolors = color, edgecolors = color, linewidth = 1.0) + + somatic_circle = Line2D([0], [0], marker="o", color="w", label="somatic", markerfacecolor=SOMATIC_COLOR, markersize=8) + germline_somatic_circle = Line2D([0], [0], marker="o", color="w", label="germline&somatic", markerfacecolor=GERMLINE_SOMATIC_COLOR, markersize=8) + no_alt_circle = Line2D([0], [0], marker="o", color="w", label="no alteration", markerfacecolor=NO_ALT_COLOR, markersize=8) + loh_circle = Line2D([0], [0], marker="o", color="w", label="w LOH", markerfacecolor="white", markeredgecolor=NO_ALT_COLOR, markersize=6) + no_loh_circle = Line2D([0], [0], marker="o", color="w", label="wo LOH", markerfacecolor=NO_ALT_COLOR, markersize=8) + + ax_HRDetect[gene_index].spines["right"].set_visible(False) + ax_HRDetect[gene_index].spines["top"].set_visible(False) + + ax_HRDetect[gene_index].set_title(gene) + ax_HRDetect[gene_index].set_xticks(range(0,2)) + + + ax_HRDetect[gene_index].set_ylabel(None) + ax_HRDetect[gene_index].set_xlabel(None) + + if gene_index == 0: + ax_HRDetect[gene_index].set_ylabel("HRDetect score") + + ax_HRDetect[gene_index].set_xlabel("promoter methylation") + + if gene_index == 1: + ax_HRDetect[gene_index].set_yticklabels("") + + fig_HRDetect.legend(handles = [no_alt_circle, somatic_circle, germline_somatic_circle, loh_circle, no_loh_circle], frameon=False, ncol= 5, loc="lower center", bbox_to_anchor=(0.5, -0.05), handletextpad=0.05, columnspacing=0.2) + fig_HRDetect.tight_layout() + + +def generate_TPM_plot_BRCA_OVA(df_methyl_BRC_OVA, df_BRCA1_RAD51C_logTPM, palette): + logger.info("generating TPM plots for BRC and OVA samples") + + goi = ["BRCA1", "RAD51C"] + fig_TPM_BRC_OVA, ax_TPM_BRC_OVA = plt.subplots(1, 2, sharex = False, sharey = False, figsize = (8.5, 4.5), dpi = 600) + ax_TPM_BRC_OVA = ax_TPM_BRC_OVA.flatten() + ### dummy figure + fig_swarm, ax_swarm = plt.subplots(1, 2, sharex = False, sharey = False, figsize = (9, 5), dpi = 150) + ax_swarm= ax_swarm.flatten() + + for gene_index, gene in enumerate(goi): + logger.info(gene) + loh_column = gene+"_loh" + df_fraction_plot = df_methyl_BRC_OVA[gene].to_frame() + df_TPM_plot = df_BRCA1_RAD51C_logTPM[gene].to_frame() + + df_TPM_fraction = df_fraction_plot.merge(df_TPM_plot, how = "left", left_index = True, right_index = True) + df_TPM_fraction.columns = ["fraction", "log2(TPM)"] + + for i in df_TPM_fraction.index: + if gene == "BRCA1": + if df_TPM_fraction.loc[i, "fraction"] >= 0.65: + df_TPM_fraction.loc[i, "methylated"] = "yes" + else: + df_TPM_fraction.loc[i, "methylated"] = "no" + else: + if df_TPM_fraction.loc[i, "fraction"] >= 0.55: + df_TPM_fraction.loc[i, "methylated"] = "yes" + else: + df_TPM_fraction.loc[i, "methylated"] = "no" + + for pog in df_TPM_fraction.index: + HR_alt = df_methyl_BRC_OVA.loc[pog, "HR_alt"] + BRCA1_loh = df_methyl_BRC_OVA.loc[pog, "BRCA1_loh"] + RAD51C_loh = df_methyl_BRC_OVA.loc[pog, "RAD51C_loh"] + df_TPM_fraction.loc[pog, "HR_alt"] = HR_alt + df_TPM_fraction.loc[pog, "BRCA1_loh"] = BRCA1_loh + df_TPM_fraction.loc[pog, "RAD51C_loh"] = RAD51C_loh + + df_TPM_fraction["LOH"] = np.nan + for i in df_TPM_fraction.index: + if "LOH" in df_TPM_fraction.loc[i, loh_column]: + df_TPM_fraction.loc[i, "LOH"] = "yes" + else: + df_TPM_fraction.loc[i, "LOH"] = "no" + + swarm = sns.swarmplot(x="methylated", y = "log2(TPM)", data=df_TPM_fraction, ax = ax_swarm[gene_index]) + artists = swarm.get_children() + offsets = {} + for index, a in enumerate(artists): + if (type(a) is mcollections.PathCollection) and len(a.get_offsets()) > 0: + offsets[index] = a.get_offsets() + + plt.close(fig_swarm) + + for index in df_TPM_fraction.index: + if df_TPM_fraction.loc[index, "methylated"] == "no": + offset_index = 0 + else: + offset_index = 1 + + minx = offsets[offset_index][0, 0] + miny = offsets[offset_index][0, 1] + for (x, y) in offsets[offset_index]: + + tpm = df_TPM_fraction.loc[index, "log2(TPM)"] + + if abs(miny - tpm) > abs(y - tpm): + miny = y + minx = x + + df_TPM_fraction.loc[index, "x"] = minx + df_TPM_fraction.loc[index, "y"] = miny + + sns.boxplot(x= "methylated", y = "log2(TPM)", data = df_TPM_fraction, ax = ax_TPM_BRC_OVA[gene_index], fliersize =2, linewidth = 0.6, color = "white") + alt = None + color = None + for pog in df_TPM_fraction.index: + alt = df_TPM_fraction.loc[pog, "HR_alt"] + color = palette[alt] + if df_TPM_fraction.loc[pog, "LOH"] == "yes": + ax_TPM_BRC_OVA[gene_index].scatter(df_TPM_fraction.loc[pog, "x"], df_TPM_fraction.loc[pog, "y"], marker = "o", s= 40, facecolors = "none", edgecolors = color, linewidth = 1.2) + else: + ax_TPM_BRC_OVA[gene_index].scatter(df_TPM_fraction.loc[pog, "x"], df_TPM_fraction.loc[pog, "y"], marker = "o", s= 40, facecolors = color, edgecolors = color, linewidth = 1.0) + + somatic_circle = Line2D([0], [0], marker="o", color="w", label="somatic", markerfacecolor=SOMATIC_COLOR, markersize=8) + germline_somatic_circle = Line2D([0], [0], marker="o", color="w", label="germline&somatic", markerfacecolor=GERMLINE_SOMATIC_COLOR, markersize=8) + no_alt_circle = Line2D([0], [0], marker="o", color="w", label="no alteration", markerfacecolor=NO_ALT_COLOR, markersize=8) + loh_circle = Line2D([0], [0], marker="o", color="w", label="w LOH", markerfacecolor="white", markeredgecolor=NO_ALT_COLOR, markersize=6) + no_loh_circle = Line2D([0], [0], marker="o", color="w", label="wo LOH", markerfacecolor=NO_ALT_COLOR, markersize=8) + + ax_TPM_BRC_OVA[gene_index].spines["right"].set_visible(False) + ax_TPM_BRC_OVA[gene_index].spines["top"].set_visible(False) + + ax_TPM_BRC_OVA[gene_index].set_title(gene) + ax_TPM_BRC_OVA[gene_index].set_xticks(range(0,2)) + + ax_TPM_BRC_OVA[gene_index].set_ylabel(None) + ax_TPM_BRC_OVA[gene_index].set_xlabel(None) + + ax_TPM_BRC_OVA[gene_index].set_yticks(range(0,8)) + ax_TPM_BRC_OVA[gene_index].set_ylim(-1.2, 6) + + if gene_index == 0: + ax_TPM_BRC_OVA[gene_index].set_ylabel("log2(TPM)") + + if gene_index == 1: + # ax_TPM_BRC_OVA[gene_index].spines["left"].set_visible(False) + ax_TPM_BRC_OVA[gene_index].set_yticklabels("") + # ax_TPM_BRC_OVA[gene_index].set_yticks([]) + + ax_TPM_BRC_OVA[gene_index].set_xlabel("promoter methylation") + + fig_TPM_BRC_OVA.legend(handles = [no_alt_circle, somatic_circle, germline_somatic_circle, loh_circle, no_loh_circle], frameon=False, ncol= 5, loc="lower center", bbox_to_anchor=(0.5, -0.05), handletextpad=0.05, columnspacing=0.2) + fig_TPM_BRC_OVA.tight_layout() + +``` + + +```python +def main(): + filename_methyl_fraction_BRC_OVA =r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation//BRCA1_RAD51C_fraction_of_methylated_sites_BRC_OVA.tsv" + filename_methyl_fraction_non_BRC_OVA = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation//BRCA1_RAD51C_fraction_of_methylated_sites_non_BRC_OVA.tsv" + filename_BRCA1_RAD51C_logTPM = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation//BRCA1_RAD51C_logTPM.tsv" + + df_methyl_BRC_OVA = pd.read_csv(filename_methyl_fraction_BRC_OVA, sep = "\t", index_col = "tumour_original_source") + df_methyl_non_BRC_OVA = pd.read_csv(filename_methyl_fraction_non_BRC_OVA, sep = "\t", index_col = "tumour_original_source") + df_BRCA1_RAD51C_logTPM = pd.read_csv(filename_BRCA1_RAD51C_logTPM, sep = "\t", index_col = "tumour_original_source") + + + generate_HRDetect_plot_BRC_OVA(df_methyl_BRC_OVA, df_methyl_non_BRC_OVA, PALETTE, OFFSET_METHYLATED) + + generate_TPM_plot_BRCA_OVA(df_methyl_BRC_OVA, df_BRCA1_RAD51C_logTPM, PALETTE) + +if __name__ == "__main__": + try: + main() + except Exception as err: + logger.critical("Failure: %s", err, exc_info=True) +``` + + CRITICAL:__main__:Failure: + Traceback (most recent call last): + File "/opt/conda/lib/python3.11/urllib/request.py", line 1348, in do_open + h.request(req.get_method(), req.selector, req.data, headers, + File "/opt/conda/lib/python3.11/http/client.py", line 1286, in request + self._send_request(method, url, body, headers, encode_chunked) + File "/opt/conda/lib/python3.11/http/client.py", line 1332, in _send_request + self.endheaders(body, encode_chunked=encode_chunked) + File "/opt/conda/lib/python3.11/http/client.py", line 1281, in endheaders + self._send_output(message_body, encode_chunked=encode_chunked) + File "/opt/conda/lib/python3.11/http/client.py", line 1041, in _send_output + self.send(msg) + File "/opt/conda/lib/python3.11/http/client.py", line 979, in send + self.connect() + File "/opt/conda/lib/python3.11/http/client.py", line 1458, in connect + self.sock = self._context.wrap_socket(self.sock, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/ssl.py", line 517, in wrap_socket + return self.sslsocket_class._create( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/ssl.py", line 1108, in _create + self.do_handshake() + File "/opt/conda/lib/python3.11/ssl.py", line 1379, in do_handshake + self._sslobj.do_handshake() + ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1006) + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/tmp/ipykernel_147/4130098315.py", line 17, in + main() + File "/tmp/ipykernel_147/4130098315.py", line 6, in main + df_methyl_BRC_OVA = pd.read_csv(filename_methyl_fraction_BRC_OVA, sep = "\t", index_col = "tumour_original_source") + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py", line 1026, in read_csv + return _read(filepath_or_buffer, kwds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py", line 620, in _read + parser = TextFileReader(filepath_or_buffer, **kwds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py", line 1620, in __init__ + self._engine = self._make_engine(f, self.engine) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py", line 1880, in _make_engine + self.handles = get_handle( + ^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/common.py", line 728, in get_handle + ioargs = _get_filepath_or_buffer( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/common.py", line 384, in _get_filepath_or_buffer + with urlopen(req_info) as req: + ^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/common.py", line 289, in urlopen + return urllib.request.urlopen(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 216, in urlopen + return opener.open(url, data, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 519, in open + response = self._open(req, data) + ^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 536, in _open + result = self._call_chain(self.handle_open, protocol, protocol + + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 496, in _call_chain + result = func(*args) + ^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 1391, in https_open + return self.do_open(http.client.HTTPSConnection, req, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 1351, in do_open + raise URLError(err) + urllib.error.URLError: + + + +```python + +``` diff --git a/Figures/ts_methylation/haplotype_specific_methylation_DNA_repair.html b/Figures/ts_methylation/haplotype_specific_methylation_DNA_repair.html new file mode 100644 index 0000000..43a239a --- /dev/null +++ b/Figures/ts_methylation/haplotype_specific_methylation_DNA_repair.html @@ -0,0 +1,8077 @@ + + + + + +haplotype_specific_methylation_DNA_repair + + + + + + + + + + + + +
+
+ + diff --git a/Figures/ts_methylation/haplotype_specific_methylation_DNA_repair.md b/Figures/ts_methylation/haplotype_specific_methylation_DNA_repair.md new file mode 100644 index 0000000..81f8ba2 --- /dev/null +++ b/Figures/ts_methylation/haplotype_specific_methylation_DNA_repair.md @@ -0,0 +1,540 @@ +```python +import pandas as pd +import logging +import numpy as np +from matplotlib.pylab import plt +from statsmodels.nonparametric.smoothers_lowess import lowess +%matplotlib inline + +params = {"font.family":"Arial", +"legend.fontsize": 10, + "axes.labelsize": 12, + "axes.titlesize": 12, + "xtick.labelsize": 12, + "ytick.labelsize": 12, + "svg.fonttype": 'none'} +# plt.rcParams['svg.fonttype'] = 'none' +plt.rcParams.update(params) + +logger = logging.getLogger(__name__) +logging.basicConfig(level=logging.INFO) + +### COLORS #### +TUMOUR_COLOR_HP1 = "#7C3A88" +TUMOUR_COLOR_HP2 = "#8A7EC7" +NORMAL_COLOR_HP1= "#69BDC3" +NORMAL_COLOR_HP2 = "#0B8892" + +### CASES WITH PROMOTER METHYLATION +BRCA1_METHYLATED_CASES_BRC_OVA = ["POG804", "POG507", "POG425"] +BRCA1_METHYLATED_CASES_NON_BRC_OVA = ["POG277", "POG1041", "POG650"] +BRCA1_LOH_CASES = ["POG804", "POG507", "POG425", "POG1041", "POG650"] + +RAD51C_METHYLATED_CASES_BRC_OVA = ["POG356", "POG894", "POG846"] +RAD51C_METHYLATED_CASES_NON_BRC_OVA = ["POG785", "POG266", "POG044"] +RAD51C_LOH_CASES = ["POG356", "POG894", "POG846"] +MLH1_METHYLATED_CASES = ["POG986", "POG041"] +MLH1_LOH_CASE = ["POG986"] +``` + + +```python +################ +#### BRCA1 ##### +################ + +def generate_BRCA1_haplotype_plots(BRCA1_files, BRCA1_methylated_cases_BRC_OVA, BRCA1_methylated_cases_non_BRC_OVA, BRCA1_loh_cases): + + tumour_types = ["BRC_OVA", "non_BRC_OVA"] + + for tumour_type in tumour_types: + df_blood = pd.DataFrame() + df_tumour = pd.DataFrame() + + if tumour_type == "BRC_OVA": + ### Figure 5c + case_list = BRCA1_methylated_cases_BRC_OVA + + else: + ### Ex Fig 5b + case_list = BRCA1_methylated_cases_non_BRC_OVA + + files_BRCA1 = BRCA1_files[tumour_type] + logger.info("generating BRCA1 haplotype plots for {}".format(tumour_type)) + + if len(files_BRCA1[0]) >0: + df_blood = pd.read_csv(files_BRCA1[0], sep = "\t", index_col = ["gene","start", "end"]) + if len(files_BRCA1[1])>0: + df_tumour = pd.read_csv(files_BRCA1[1], sep = "\t", index_col = ["gene","start", "end"]) + + + fig_BRCA1, ax_BRCA1 = plt.subplots(ncols=1, nrows=3, sharex = True, figsize = (8.5, 4.2), dpi = 600) + + for patient_index, patient in enumerate(case_list): + + LOH = "" + + hp1_column = f"{patient}_HP1" + hp2_column = f"{patient}_HP2" + + if patient in BRCA1_loh_cases: + LOH = "yes" + + if not df_tumour.empty: + hp1 = df_tumour[hp1_column] + hp2 = df_tumour[hp2_column] + xpos = [value[1] for value in df_tumour.index] + + ### LOESS SMOOTHING TUMOUR + filtered_hp1 = lowess(hp1, xpos, is_sorted=True, frac=0.25, it=0) + x_hp1 = filtered_hp1[:, 0] + y_hp1 = filtered_hp1[:, 1] + + filtered_hp2 = lowess(hp2, xpos, is_sorted=True, frac=0.25, it=0) + x_hp2 = filtered_hp2[:, 0] + y_hp2 = filtered_hp2[:, 1] + + if not df_blood.empty: + if hp1_column in df_blood.columns: + hp1_blood = df_blood[hp1_column] + hp2_blood = df_blood[hp2_column] + xpos_blood = [value[1] for value in df_blood.index] + + ### LOESS SMOOTHING BLOOD + filtered_hp1_blood = lowess(hp1_blood, xpos_blood, is_sorted=True, frac=0.25, it=0) + x_hp1_blood = filtered_hp1_blood[:, 0] + y_hp1_blood = filtered_hp1_blood[:, 1] + + filtered_hp2_blood = lowess(hp2_blood, xpos_blood, is_sorted=True, frac=0.25, it=0) + x_hp2_blood = filtered_hp2_blood[:, 0] + y_hp2_blood = filtered_hp2_blood[:, 1] + + if not df_tumour.empty: + if LOH == "yes": + if patient != "POG507": + ax_BRCA1[patient_index].plot(x_hp1, y_hp1, "-", color = TUMOUR_COLOR_HP1, markerfacecolor=TUMOUR_COLOR_HP1, mec = TUMOUR_COLOR_HP1, marker="o", markersize = 4, linewidth = 0.8, label = "HP1_tumour") + ax_BRCA1[patient_index].plot(x_hp2, y_hp2, "-", color = TUMOUR_COLOR_HP2, markerfacecolor="none", mec = TUMOUR_COLOR_HP2, mew = 0.5, marker="o", markersize = 4.5, linewidth = 0.8, label = "HP2_tumour") + + ### flipping color because the haplotype was aribitary set for the cases + else: + ax_BRCA1[patient_index].plot(x_hp2, y_hp2, "-", color = TUMOUR_COLOR_HP1, markerfacecolor=TUMOUR_COLOR_HP1, mec = TUMOUR_COLOR_HP1, marker="o", markersize = 4, linewidth = 0.8, label = "HP1_tumour") + ax_BRCA1[patient_index].plot(x_hp1, y_hp1, "-", color = TUMOUR_COLOR_HP2, markerfacecolor="none", mec = TUMOUR_COLOR_HP2, mew = 0.5, marker="o", markersize = 4.5, linewidth = 0.8, label = "HP2_tumour") + else: + ax_BRCA1[patient_index].plot(x_hp1, y_hp1, "-", color = TUMOUR_COLOR_HP1, markerfacecolor=TUMOUR_COLOR_HP1, mec = TUMOUR_COLOR_HP1, marker="o", markersize = 4, linewidth = 0.8, label = "HP1_tumour") + ax_BRCA1[patient_index].plot(x_hp2, y_hp2, "-", color = TUMOUR_COLOR_HP2, markerfacecolor=TUMOUR_COLOR_HP2, mec = TUMOUR_COLOR_HP2, marker="o", markersize = 4, linewidth = 0.8, label = "HP2_tumour") + + if not df_blood.empty: + ax_BRCA1[patient_index].plot(x_hp1_blood, y_hp1_blood, "-", color = NORMAL_COLOR_HP1, markerfacecolor=NORMAL_COLOR_HP1, mec = NORMAL_COLOR_HP1, marker="^", markersize = 4, linewidth = 0.8, label = "HP1_blood") + ax_BRCA1[patient_index].plot(x_hp2_blood, y_hp2_blood, "-", color = NORMAL_COLOR_HP2, markerfacecolor=NORMAL_COLOR_HP2, mec = NORMAL_COLOR_HP2, marker="^", markersize = 4, linewidth = 0.8, label = "HP2_blood") + + + ax_BRCA1[patient_index].set_ylim(-0.05, 1.1) + + xlims = plt.gca().get_xlim() + + xticks = ax_BRCA1[patient_index].get_xticks() + xticks = np.linspace(*xlims, 6) + ax_BRCA1[patient_index].set_xticks(xticks) + + + if patient_index >1: + + xticks = [str(int(value)) for value in xticks] + ax_BRCA1[patient_index].set_xticklabels(xticks) + + yticks = [0.0, 0.5, 1.0] + ax_BRCA1[patient_index].set_yticks(yticks) + yticks = [str(float(value)) for value in yticks] + ax_BRCA1[patient_index].set_yticklabels(yticks) + + ax_BRCA1[patient_index].tick_params(axis="both") + ax_BRCA1[patient_index].set_xlabel("genomic coordinates") + ax_BRCA1[patient_index].spines["right"].set_visible(False) + ax_BRCA1[patient_index].spines["top"].set_visible(False) + + else: + ax_BRCA1[patient_index].set_xticklabels("") + + yticks = [0.0, 0.5, 1.0] + ax_BRCA1[patient_index].set_yticks(yticks) + yticks = [str(float(value)) for value in yticks] + ax_BRCA1[patient_index].set_yticklabels(yticks) + + ax_BRCA1[patient_index].tick_params(axis="both") + + if patient_index == 1: + ax_BRCA1[patient_index].set_ylabel("methyl frequencies") + + ax_BRCA1[patient_index].set_ylim(-0.1, 1.05) + ax_BRCA1[patient_index].spines["right"].set_visible(False) + ax_BRCA1[patient_index].spines["top"].set_visible(False) + + ax_BRCA1[patient_index].text(43126965, -0.05, patient, size = "medium", weight = "bold") + + for i in range(3): + ax_BRCA1[i].set_xlim(ax_BRCA1[i].get_xlim()[::-1]) + + plt.legend(frameon=False, loc="lower left", bbox_to_anchor=(0.9, -0.05)) + plt.tight_layout() + +``` + + +```python +################### +##### RAD51C ###### +################### + +def generate_RAD51C_haplotype_plots(RAD51C_files, RAD51C_methylated_cases_BRC_OVA, RAD51C_methylated_cases_non_BRC_OVA, RAD51C_loh_cases): + + tumour_types = ["BRC_OVA", "non_BRC_OVA"] + + for tumour_type in tumour_types: + df_blood = pd.DataFrame() + df_tumour = pd.DataFrame() + + if tumour_type == "BRC_OVA": + ### Figure 5d + case_list = RAD51C_methylated_cases_BRC_OVA + + else: + ### Ex Fig 5c + case_list = RAD51C_methylated_cases_non_BRC_OVA + + files_RAD51C = RAD51C_files[tumour_type] + + if len(files_RAD51C[0]) >0: + df_blood = pd.read_csv(files_RAD51C[0], sep = "\t", index_col = ["gene","start", "end"]) + if len(files_RAD51C[1])>0: + df_tumour = pd.read_csv(files_RAD51C[1], sep = "\t", index_col = ["gene","start", "end"]) + + logger.info("generating RAD51C haplotype plots for {}".format(tumour_type)) + + fig_RAD51C, ax_RAD51C = plt.subplots(ncols=1, nrows=3,sharex = True, figsize = (8.5, 4.2), dpi = 600) + + for patient_index, patient in enumerate(case_list): + LOH = "" + hp1_column = f"{patient}_HP1" + hp2_column = f"{patient}_HP2" + + if patient in RAD51C_loh_cases: + LOH = "yes" + + + if not df_tumour.empty: + + hp1 = df_tumour[hp1_column] + hp2 = df_tumour[hp2_column] + xpos = [value[1] for value in df_tumour.index] + + ### LOESS SMOOTHING TUMOUR + filtered_hp1 = lowess(hp1, xpos, is_sorted=True, frac=0.25, it=0) + x_hp1 = filtered_hp1[:, 0] + y_hp1 = filtered_hp1[:, 1] + + filtered_hp2 = lowess(hp2, xpos, is_sorted=True, frac=0.25, it=0) + x_hp2 = filtered_hp2[:, 0] + y_hp2 = filtered_hp2[:, 1] + + if not df_blood.empty: + if hp1_column in df_blood.columns: + hp1_blood = df_blood[hp1_column] + hp2_blood = df_blood[hp2_column] + xpos_blood = [value[1] for value in df_blood.index] + + ### LOESS SMOOTHING BLOOD + filtered_hp1_blood = lowess(hp1_blood, xpos_blood, is_sorted=True, frac=0.25, it=0) + x_hp1_blood = filtered_hp1_blood[:, 0] + y_hp1_blood = filtered_hp1_blood[:, 1] + + filtered_hp2_blood = lowess(hp2_blood, xpos_blood, is_sorted=True, frac=0.25, it=0) + x_hp2_blood = filtered_hp2_blood[:, 0] + y_hp2_blood = filtered_hp2_blood[:, 1] + else: + x_hp1_blood = [] + y_hp1_blood = [] + x_hp2_blood = [] + y_hp2_blood = [] + + if not df_tumour.empty: + if LOH == "yes": + ax_RAD51C[patient_index].plot(x_hp1, y_hp1, "-", color = TUMOUR_COLOR_HP1, markerfacecolor=TUMOUR_COLOR_HP1, mec = TUMOUR_COLOR_HP1, marker="o", markersize = 4, linewidth = 0.8, label = "HP1_tumour") + ax_RAD51C[patient_index].plot(x_hp2, y_hp2, "-", color = TUMOUR_COLOR_HP2, markerfacecolor="none", mec = TUMOUR_COLOR_HP2, mew = 0.5, marker="o", markersize = 4.5, linewidth = 0.8, label = "HP2_tumour") + else: + ax_RAD51C[patient_index].plot(x_hp1, y_hp1, "-", color = TUMOUR_COLOR_HP1, markerfacecolor=TUMOUR_COLOR_HP1, mec = TUMOUR_COLOR_HP1, marker="o", markersize = 4, linewidth = 0.8, label = "HP1_tumour") + ax_RAD51C[patient_index].plot(x_hp2, y_hp2, "-", color = TUMOUR_COLOR_HP2, markerfacecolor=TUMOUR_COLOR_HP2, mec = TUMOUR_COLOR_HP2, marker="o", markersize = 4, linewidth = 0.8, label = "HP2_tumour") + if not df_blood.empty: + ax_RAD51C[patient_index].plot(x_hp1_blood, y_hp1_blood, "-", color = NORMAL_COLOR_HP1, markerfacecolor=NORMAL_COLOR_HP1, mec = NORMAL_COLOR_HP1, marker="^", markersize = 4, linewidth = 0.8, label = "HP1_blood") + ax_RAD51C[patient_index].plot(x_hp2_blood, y_hp2_blood, "-", color = NORMAL_COLOR_HP2, markerfacecolor=NORMAL_COLOR_HP2, mec = NORMAL_COLOR_HP2, marker="^", markersize = 4, linewidth = 0.8, label = "HP2_blood") + + ax_RAD51C[patient_index].set_ylim(-0.05, 1.2) + + xlims = plt.gca().get_xlim() + xticks = ax_RAD51C[patient_index].get_xticks() + xticks = np.linspace(*xlims, 6) + ax_RAD51C[patient_index].set_xticks(xticks) + + if patient_index >1: + + xticks = [str(int(value)) for value in xticks] + ax_RAD51C[patient_index].set_xticklabels(xticks) + + yticks = [0.0, 0.5, 1.0] + ax_RAD51C[patient_index].set_yticks(yticks) + yticks = [str(float(value)) for value in yticks] + ax_RAD51C[patient_index].set_yticklabels(yticks) + + ax_RAD51C[patient_index].tick_params(axis="both") + ax_RAD51C[patient_index].set_xlabel("genomic coordinates") + ax_RAD51C[patient_index].spines["right"].set_visible(False) + ax_RAD51C[patient_index].spines["top"].set_visible(False) + else: + ax_RAD51C[patient_index].set_xticklabels("") + + yticks = [0.0, 0.5, 1.0] + ax_RAD51C[patient_index].set_yticks(yticks) + yticks = [str(float(value)) for value in yticks] + ax_RAD51C[patient_index].set_yticklabels(yticks) + + ax_RAD51C[patient_index].tick_params(axis="both") + + + if patient_index == 1: + ax_RAD51C[patient_index].set_ylabel("methyl frequencies") + # ax[patient_index].legend(bbox_to_anchor=(1.04, 0.5), loc = "center left", fontsize = 9) + + ax_RAD51C[patient_index].set_ylim(-0.1, 1.05) + ax_RAD51C[patient_index].spines["right"].set_visible(False) + ax_RAD51C[patient_index].spines["top"].set_visible(False) + + ax_RAD51C[patient_index].text(58690993, -0.05, patient, size = "medium", weight = "bold") + + plt.legend(frameon=False, loc="lower left", bbox_to_anchor=(0.9, -0.05)) + plt.tight_layout() +``` + + +```python +################## +##### MLH1 ####### +################## + +def generate_MLH1_haplotype_plots(filename_MLH1_blood, filename_MLH1_tumour, MLH1_methylated_cases, MLH1_loh_case): + + logger.info("generating MLH1 haplotype plots") + + df_blood = pd.read_csv(filename_MLH1_blood, sep = "\t", index_col = ["gene","start", "end"]) + df_tumour = pd.read_csv(filename_MLH1_tumour, sep = "\t", index_col = ["gene","start", "end"]) + + fig_MLH1, ax_MLH1 = plt.subplots(ncols=1, nrows=2, sharex = True, figsize = (5.2, 4), dpi = 600) + + for patient_index, patient in enumerate(MLH1_methylated_cases): + LOH = "" + if patient in MLH1_loh_case: + LOH = "yes" + + if not df_tumour.empty: + hp1_column = f"{patient}_HP1" + hp2_column = f"{patient}_HP2" + + hp1 = df_tumour[hp1_column] + hp2 = df_tumour[hp2_column] + xpos = [value[1] for value in df_tumour.index] + + filtered_hp1 = lowess(hp1, xpos, is_sorted=True, frac=0.25, it=0) + x_hp1 = filtered_hp1[:, 0] + y_hp1 = filtered_hp1[:, 1] + + filtered_hp2 = lowess(hp2, xpos, is_sorted=True, frac=0.25, it=0) + x_hp2 = filtered_hp2[:, 0] + y_hp2 = filtered_hp2[:, 1] + + + if not df_blood.empty: + if hp1_column in df_blood.columns: + hp1_blood = df_blood[hp1_column] + hp2_blood = df_blood[hp2_column] + xpos_blood = [value[1] for value in df_blood.index] + + ### LOESS SMOOTHING BLOOD + filtered_hp1_blood = lowess(hp1_blood, xpos_blood, is_sorted=True, frac=0.25, it=0) + x_hp1_blood = filtered_hp1_blood[:, 0] + y_hp1_blood = filtered_hp1_blood[:, 1] + + filtered_hp2_blood = lowess(hp2_blood, xpos_blood, is_sorted=True, frac=0.25, it=0) + x_hp2_blood = filtered_hp2_blood[:, 0] + y_hp2_blood = filtered_hp2_blood[:, 1] + else: + x_hp1_blood = [] + y_hp1_blood = [] + x_hp2_blood = [] + y_hp2_blood = [] + + if LOH == "yes": + + if not df_tumour.empty: + ax_MLH1[patient_index].plot(x_hp1, y_hp1, "-", color = TUMOUR_COLOR_HP1, markerfacecolor="none", mec = TUMOUR_COLOR_HP1, mew = 0.5, marker="o", markersize = 4.5, linewidth = 0.8, label = "HP1_tumour") + ax_MLH1[patient_index].plot(x_hp2, y_hp2, "-", color = TUMOUR_COLOR_HP2, markerfacecolor=TUMOUR_COLOR_HP2, mec = TUMOUR_COLOR_HP2, marker="o", markersize = 4, linewidth = 0.8, label = "HP2_tumour") + + if not df_blood.empty: + ax_MLH1[patient_index].plot(x_hp2_blood, y_hp2_blood, "-", color = NORMAL_COLOR_HP1, markerfacecolor=NORMAL_COLOR_HP1, mec = NORMAL_COLOR_HP1, marker="^", markersize = 4, linewidth = 0.8, label = "HP1_blood") + ax_MLH1[patient_index].plot(x_hp1_blood, y_hp1_blood, "-", color = NORMAL_COLOR_HP2, markerfacecolor=NORMAL_COLOR_HP2, mec = NORMAL_COLOR_HP2, marker="^", markersize = 4, linewidth = 0.8, label = "HP2_blood") + + else: + if not df_tumour.empty: + ax_MLH1[patient_index].plot(x_hp1, y_hp1, "-", color = TUMOUR_COLOR_HP1, markerfacecolor=TUMOUR_COLOR_HP1, mec = TUMOUR_COLOR_HP1, marker="o", markersize = 4, linewidth = 0.8, label = "HP1_tumour") + ax_MLH1[patient_index].plot(x_hp2, y_hp2, "-", color = TUMOUR_COLOR_HP2, markerfacecolor=TUMOUR_COLOR_HP2, mec = TUMOUR_COLOR_HP2, marker="o", markersize = 4, linewidth = 0.8, label = "HP2_tumour") + + if not df_blood.empty: + ax_MLH1[patient_index].plot(x_hp2_blood, y_hp2_blood, "-", color = NORMAL_COLOR_HP1, markerfacecolor=NORMAL_COLOR_HP1, mec = NORMAL_COLOR_HP1, marker="^", markersize = 4, linewidth = 0.8, label = "HP1_blood") + ax_MLH1[patient_index].plot(x_hp1_blood, y_hp1_blood, "-", color = NORMAL_COLOR_HP2, markerfacecolor=NORMAL_COLOR_HP2, mec = NORMAL_COLOR_HP2, marker="^", markersize = 4, linewidth = 0.8, label = "HP2_blood") + + ax_MLH1[patient_index].set_ylim(-0.05, 1.1) + + ax_MLH1[patient_index].set_ylabel("methyl frequencies") + + xlims = plt.gca().get_xlim() + xticks = ax_MLH1[patient_index].get_xticks() + xticks = np.linspace(*xlims, 5) + ax_MLH1[patient_index].set_xticks(xticks) + + if patient_index >0: + + xticks = [str(int(value)) for value in xticks] + ax_MLH1[patient_index].set_xticklabels(xticks) + ax_MLH1[patient_index].tick_params(axis="both") + ax_MLH1[patient_index].set_xlabel("genomic coordinates") + ax_MLH1[patient_index].spines["right"].set_visible(False) + ax_MLH1[patient_index].spines["top"].set_visible(False) + else: + ax_MLH1[patient_index].set_xticklabels("") + ax_MLH1[patient_index].tick_params(axis="both") + + ax_MLH1[patient_index].spines["right"].set_visible(False) + ax_MLH1[patient_index].spines["top"].set_visible(False) + ax_MLH1[patient_index].text(36991870, -0.03, patient, size = "medium", weight = "bold") + + plt.legend(frameon=False, loc="lower left", bbox_to_anchor=(0.75, -0.05)) + plt.tight_layout() +``` + + +```python +def main(): + + ### BRCA1 Fig 5c + filename_BRCA1_BRC_OVA_blood = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation/BRCA1_blood_haplotype_methyl_freq_BRC_OVA.tsv" + filename_BRCA1_BRC_OVA_tumour = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation/BRCA1_tumour_haplotype_methyl_freq_BRC_OVA.tsv" + ### BRCA1 Ex Fig5b + filename_BRCA1_non_BRC_OVA_blood = r"" + filename_BRCA1_non_BRC_OVA_tumour = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation//BRCA1_tumour_haplotype_methyl_freq_non_BRC_OVA.tsv" + + BRCA1_files = {"BRC_OVA": [filename_BRCA1_BRC_OVA_blood, filename_BRCA1_BRC_OVA_tumour], + "non_BRC_OVA":[filename_BRCA1_non_BRC_OVA_blood, filename_BRCA1_non_BRC_OVA_tumour]} + + + generate_BRCA1_haplotype_plots(BRCA1_files, BRCA1_METHYLATED_CASES_BRC_OVA, BRCA1_METHYLATED_CASES_NON_BRC_OVA, BRCA1_LOH_CASES) + + ### RAD51C Fig 5d + filename_RAD51C_BRC_OVA_blood = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation/RAD51C_blood_haplotype_methyl_freq_BRC_OVA.tsv" + filename_RAD51C_BRC_OVA_tumour = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation/RAD51C_tumour_haplotype_methyl_freq_BRC_OVA.tsv" + ### RAD51C Ex Fig5c + filename_RAD51C_non_BRC_OVA_blood = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation/RAD51C_blood_haplotype_methyl_freq_non_BRC_OVA.tsv" + filename_RAD51C_non_BRC_OVA_tumour = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation/RAD51C_tumour_haplotype_methyl_freq_non_BRC_OVA.tsv" + + RAD51C_files = {"BRC_OVA": [filename_RAD51C_BRC_OVA_blood, filename_RAD51C_BRC_OVA_tumour], + "non_BRC_OVA":[filename_RAD51C_non_BRC_OVA_blood, filename_RAD51C_non_BRC_OVA_tumour]} + + + generate_RAD51C_haplotype_plots(RAD51C_files, RAD51C_METHYLATED_CASES_BRC_OVA, RAD51C_METHYLATED_CASES_NON_BRC_OVA, RAD51C_LOH_CASES) + + ### MLH1 Fig 5f + filename_MLH1_blood = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation/MLH1_blood_haplotype_methyl_freq.tsv" + filename_MLH1_tumour = r"https://www.bcgsc.ca/downloads/nanopore_pog/ts_methylation/MLH1_tumour_haplotype_methyl_freq.tsv" + + generate_MLH1_haplotype_plots(filename_MLH1_blood, filename_MLH1_tumour, MLH1_METHYLATED_CASES, MLH1_LOH_CASE) + +if __name__ == "__main__": + try: + main() + except Exception as err: + logger.critical("Failure: %s", err, exc_info=True) +``` + + INFO:__main__:generating BRCA1 haplotype plots for BRC_OVA + CRITICAL:__main__:Failure: + Traceback (most recent call last): + File "/opt/conda/lib/python3.11/urllib/request.py", line 1348, in do_open + h.request(req.get_method(), req.selector, req.data, headers, + File "/opt/conda/lib/python3.11/http/client.py", line 1286, in request + self._send_request(method, url, body, headers, encode_chunked) + File "/opt/conda/lib/python3.11/http/client.py", line 1332, in _send_request + self.endheaders(body, encode_chunked=encode_chunked) + File "/opt/conda/lib/python3.11/http/client.py", line 1281, in endheaders + self._send_output(message_body, encode_chunked=encode_chunked) + File "/opt/conda/lib/python3.11/http/client.py", line 1041, in _send_output + self.send(msg) + File "/opt/conda/lib/python3.11/http/client.py", line 979, in send + self.connect() + File "/opt/conda/lib/python3.11/http/client.py", line 1458, in connect + self.sock = self._context.wrap_socket(self.sock, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/ssl.py", line 517, in wrap_socket + return self.sslsocket_class._create( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/ssl.py", line 1108, in _create + self.do_handshake() + File "/opt/conda/lib/python3.11/ssl.py", line 1379, in do_handshake + self._sslobj.do_handshake() + ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1006) + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/tmp/ipykernel_186/2671134438.py", line 37, in + main() + File "/tmp/ipykernel_186/2671134438.py", line 14, in main + generate_BRCA1_haplotype_plots(BRCA1_files, BRCA1_METHYLATED_CASES_BRC_OVA, BRCA1_METHYLATED_CASES_NON_BRC_OVA, BRCA1_LOH_CASES) + File "/tmp/ipykernel_186/1885639513.py", line 25, in generate_BRCA1_haplotype_plots + df_blood = pd.read_csv(files_BRCA1[0], sep = "\t", index_col = ["gene","start", "end"]) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py", line 1026, in read_csv + return _read(filepath_or_buffer, kwds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py", line 620, in _read + parser = TextFileReader(filepath_or_buffer, **kwds) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py", line 1620, in __init__ + self._engine = self._make_engine(f, self.engine) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py", line 1880, in _make_engine + self.handles = get_handle( + ^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/common.py", line 728, in get_handle + ioargs = _get_filepath_or_buffer( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/common.py", line 384, in _get_filepath_or_buffer + with urlopen(req_info) as req: + ^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/site-packages/pandas/io/common.py", line 289, in urlopen + return urllib.request.urlopen(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 216, in urlopen + return opener.open(url, data, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 519, in open + response = self._open(req, data) + ^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 536, in _open + result = self._call_chain(self.handle_open, protocol, protocol + + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 496, in _call_chain + result = func(*args) + ^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 1391, in https_open + return self.do_open(http.client.HTTPSConnection, req, + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/opt/conda/lib/python3.11/urllib/request.py", line 1351, in do_open + raise URLError(err) + urllib.error.URLError: +

!UI?Ye9nv#l4R06I(NeKnf_O_#Kgghi05ezpm7 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%0D8Q^4kT&5ZrbvBFjRsQXrU>63^{&HtIx#W7XjkN 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 HOh5lGgL`M< literal 0 HcmV?d00001 diff --git a/Figures/ts_methylation/HR_gene_methylation_HRDetect_correlation.html b/Figures/ts_methylation/HR_gene_methylation_HRDetect_correlation.html new file mode 100644 index 0000000..e63e5d3 --- /dev/null +++ b/Figures/ts_methylation/HR_gene_methylation_HRDetect_correlation.html @@ -0,0 +1,7908 @@ + + + + + +HR_gene_methylation_HRDetect_correlation + + + + + + + + + + + + +