{
"cells": [
{
"cell_type": "code",
"execution_count": 22,
"id": "e6f1f271",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import csv\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import os\n",
"import glob\n",
"from pybedtools import BedTool\n",
"import bioframe as bf"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "9f587f9e",
"metadata": {},
"outputs": [],
"source": [
"#open wgs peaks annotated to EGFR exon regions and rename headers\n",
"wgs_peaks_AA = pd.read_table('path.txt', header=None, skiprows=1)\n",
"wgs_peaks_columns_new = ['PeakID', 'chrom', 'start', 'end', 'strand', 'peak score', 'focusratio', 'annotation', 'detailed annot', 'distTSS', 'gap', 'gap', 'gap', 'Nearest ReqSeq', 'Nearest Ensembl', 'Gene', 'Gene Alias', 'Gene Descrp', 'Gene Type', 'E26_CL']\n",
"wgs_peaks_AA.rename(columns=dict(zip(wgs_peaks_AA.columns, wgs_peaks_columns_new)), inplace=True)\n",
"\n",
"#open RNA peaks annotated to EGFR exons, rename the headers and add a row for exon size\n",
"rna_egfr_exons = pd.read_table('path.txt', header=None, skiprows=1) \n",
"rna_egfr_exons_new = ['PeakID', 'chrom', 'start', 'end', 'strand', 'peak score', 'focusratio', 'annotation', 'detailed annot', 'distTSS', 'gap', 'gap', 'gap', 'Nearest ReqSeq', 'Nearest Ensembl', 'Gene', 'Gene Alias', 'Gene Descrp', 'Gene Type', 'E26_exon', 'E28_exon']\n",
"rna_egfr_exons.rename(columns=dict(zip(rna_egfr_exons.columns, rna_egfr_exons_new)), inplace=True)\n",
"rna_egfr_exons['exon_size']=rna_egfr_exons['end']-rna_egfr_exons['start']"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "67a5586a",
"metadata": {},
"outputs": [],
"source": [
"#wgs_peaks_AA['E26_CN_block']=wgs_peaks_AA['E26_CL']/wgs_peaks_AA['E26_B']\n",
"wgs_peaks_AA['region_size']=wgs_peaks_AA['end']-wgs_peaks_AA['start']\n",
"wgs_peaks_AA['counts_per_region']=wgs_peaks_AA['E26_CL']"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "134de7a9",
"metadata": {},
"outputs": [],
"source": [
"#annotate whether wgs_peaks_AA is chrom or ecDNA\n",
"block_number = pd.Series(['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28'], index=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])\n",
"wgs_peaks_AA_sort = wgs_peaks_AA.sort_values(['start']).reset_index(drop=True)\n",
"wgs_peaks_AA_sort_set = wgs_peaks_AA_sort[['chrom', 'start','end']]\n",
"#wgs_peaks_AA_sort"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "7a8cb2c2",
"metadata": {},
"outputs": [],
"source": [
"#naming blocks as either chromosomal or ecDNA in a cell line with AA-predicted EGFR exon 2-7 deletion in ecDNA\n",
"wgs_peaks_AA_sort['block_number'] = block_number.values\n",
"wgs_peaks_AA_sort['block_type']='ecDNA'\n",
"blocks_chrom=['2','3','4','5','6','7']\n",
"wgs_peaks_AA_sort.loc[wgs_peaks_AA_sort['block_number'].isin(blocks_chrom), 'block_type']='chrom'"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "324cd765",
"metadata": {},
"outputs": [],
"source": [
"#calculate copy number per AA block and abbreviate the columns\n",
"wgs_peaks_AA_blocks = wgs_peaks_AA_sort[['chrom','start','end','E26_CL','counts_per_region','block_number','block_type', 'region_size']]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "4c7bbaa0",
"metadata": {},
"outputs": [],
"source": [
"#merge wgs_peaks_AA_blocks with rna_egfr_exons to combine WGS and RNA-seq data\n",
"combined_overlap = bf.overlap(wgs_peaks_AA_blocks, rna_egfr_exons, how='right', suffixes=('_1', '_2'))\n",
"combined_overlap_brief = combined_overlap[['counts_per_region_1', 'block_number_1','block_type_1', 'E26_exon_2', 'start_2', 'end_2','exon_size_2']]\n",
"#combined_overlap_brief"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "3cb91a0e",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-18-b31f78a93d19>:2: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" combined_overlap_brief['RNA_DNA_ratio']=combined_overlap_brief.loc[:,'E26_exon_2']/combined_overlap_brief.loc[:,'counts_per_region_1']\n"
]
}
],
"source": [
"#calculate the RNA:DNA ratio for each EGFR exon (RNA/WGS)\n",
"combined_overlap_brief['RNA_DNA_ratio']=combined_overlap_brief.loc[:,'E26_exon_2']/combined_overlap_brief.loc[:,'counts_per_region_1']\n",
"#combined_overlap_brief"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "c88ab5bf",
"metadata": {},
"outputs": [],
"source": [
"#To save output to csv\n",
"combined_overlap_brief.to_csv('Annotated_peaks_AA_exons201_WGS_RNA_only.csv')"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "26f16c6e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#in-python graphical representation of result\n",
"g = sns.catplot(data=combined_overlap_brief, x='block_type_1', y='RNA_DNA_ratio', kind = 'swarm', palette ='colorblind')\n",
"g.savefig('E26_merged_exons_only.png', dpi=300)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}