From 0e8e488c2d5f5dd18197a9b3a1e8f6b6719d8a02 Mon Sep 17 00:00:00 2001 From: Venkat Malladi <Venkat.Malladi@utsouthwestern.edu> Date: Tue, 6 Jun 2017 14:09:40 -0500 Subject: [PATCH] Update Histone analysis. --- GRO_seq_TFSEE/rank_order.py | 51 +++++++ .../box_plot_cluster_2_genes_fpkm.png | Bin 0 -> 36056 bytes .../box_plot_cluster_3_genes_fpkm.png | Bin 0 -> 36071 bytes Histone_TFSEE/closest_genes.py | 124 ++++++++++++++++++ Histone_TFSEE/closest_genes.sh | 6 + 5 files changed, 181 insertions(+) create mode 100644 Histone_TFSEE/box_plot_cluster_2_genes_fpkm.png create mode 100644 Histone_TFSEE/box_plot_cluster_3_genes_fpkm.png create mode 100644 Histone_TFSEE/closest_genes.py create mode 100644 Histone_TFSEE/closest_genes.sh diff --git a/GRO_seq_TFSEE/rank_order.py b/GRO_seq_TFSEE/rank_order.py index c55da37..d633ec2 100644 --- a/GRO_seq_TFSEE/rank_order.py +++ b/GRO_seq_TFSEE/rank_order.py @@ -59,3 +59,54 @@ plt.xlabel('Rank Order',fontsize=8, fontweight='bold') plt.ylabel('delta z',fontsize=8, fontweight='bold') plt.savefig('cluster3_enriched_tfs.png') plt.clf() + +tfsee_cluster2 = tfsee[tfsee['cluster'] == 1] + + +tfsee_cluster2['early'] = tfsee_cluster2[['ES_D0','ES_D2','ES_D7','ES_D10']].mean(axis=1) +tfsee_cluster2['late'] = tfsee_cluster2[['ES_D5']].mean(axis=1) +tfsee_cluster2['diff'] = tfsee_cluster2['late'] - tfsee_cluster2['early'] +tfsee_cluster2['rank'] = tfsee_cluster2['diff'].rank() + +x = list(tfsee_cluster2['rank']) + +z = np.polyfit(tfsee_cluster2['rank'], tfsee_cluster2['diff'], 3) +f = np.poly1d(z) +x_new = np.linspace(1, 24, num=len(x)*10) + + +plt.figure(figsize=(25,20)) +plt.plot(x_new, f(x_new), color = 'k', linewidth=4.0) +plt.scatter(x=tfsee_cluster2['rank'], y=tfsee_cluster2['diff'], color='#C42555', s=600) +plt.ylim([-0.5,3.0]) +plt.suptitle('GT TFS', fontsize=8, fontweight='bold') +plt.xlabel('Rank Order',fontsize=8, fontweight='bold') +plt.ylabel('delta z',fontsize=8, fontweight='bold') +plt.savefig('cluster2_enriched_tfs.png') +plt.clf() + + +tfsee_cluster1 = tfsee[tfsee['cluster'] == 0] + + +tfsee_cluster1['early'] = tfsee_cluster1[['ES_D0','ES_D2','ES_D7','ES_D10']].mean(axis=1) +tfsee_cluster1['late'] = tfsee_cluster1[['ES_D5']].mean(axis=1) +tfsee_cluster1['diff'] = tfsee_cluster1['early'] - tfsee_cluster1['late'] +tfsee_cluster1['rank'] = tfsee_cluster1['diff'].rank() + +x = list(tfsee_cluster1['rank']) + +z = np.polyfit(tfsee_cluster1['rank'], tfsee_cluster1['diff'], 3) +f = np.poly1d(z) +x_new = np.linspace(1, 64, num=len(x)*10) + + +plt.figure(figsize=(25,20)) +plt.plot(x_new, f(x_new), color = 'k', linewidth=4.0) +plt.scatter(x=tfsee_cluster1['rank'], y=tfsee_cluster1['diff'], color='#DACF5D', s=600) +plt.ylim([-1.0,1.5]) +plt.suptitle('Not GT TFS', fontsize=8, fontweight='bold') +plt.xlabel('Rank Order',fontsize=8, fontweight='bold') +plt.ylabel('delta z',fontsize=8, fontweight='bold') +plt.savefig('cluster1_enriched_tfs.png') +plt.clf() diff --git a/Histone_TFSEE/box_plot_cluster_2_genes_fpkm.png b/Histone_TFSEE/box_plot_cluster_2_genes_fpkm.png new file mode 100644 index 0000000000000000000000000000000000000000..d4032c391d7e7df8e875065f4acbcd6622385983 GIT binary patch literal 36056 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 V=~vy4r_lYJmX?=F`1#7s{{vfgIH~{u literal 0 HcmV?d00001 diff --git a/Histone_TFSEE/box_plot_cluster_3_genes_fpkm.png b/Histone_TFSEE/box_plot_cluster_3_genes_fpkm.png new file mode 100644 index 0000000000000000000000000000000000000000..5bfd380cb29770e43db70f3d4fe98e819a8cc092 GIT binary patch literal 36071 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 H!Oi~zI)(y) literal 0 HcmV?d00001 diff --git a/Histone_TFSEE/closest_genes.py b/Histone_TFSEE/closest_genes.py new file mode 100644 index 0000000..9130809 --- /dev/null +++ b/Histone_TFSEE/closest_genes.py @@ -0,0 +1,124 @@ +import pandas as pd +import numpy as np +import csv +import matplotlib.pyplot as plt +import seaborn as sns +import scipy + +# Find nearest genes + +# Grab TF FPKM levels +fpkm = pd.read_table("rna.tsv") +gene_names_mapping = pd.read_csv("../gencode.v19.annotation_protein_coding_ids.txt",names=['gene_id', 'symbol']) +fpkm_symbol = fpkm.merge(gene_names_mapping) +fpkm_symbol = fpkm.set_index(['gene_id']) + +# Enhancers +enhancers_universe = pd.DataFrame.from_csv("Histone_pe_filtered_peaks.bed", sep="\t", header=None, index_col=3) + + + + +# Read in cluster 3 enhancers +cluster_3 = pd.DataFrame.from_csv("cluster_3_enhancers.csv", sep=",", header=0, index_col=0) + +# Choose enhacners exprssed in cluster 3 +enhancers_universe_cluster_3 = enhancers_universe.loc[cluster_3.index.values] +enhancers_universe_cluster_3.to_csv("cluster_3_enhancers_locations.bed", sep="\t",header=None, index=False) + + +# Read in nearest genes +genes_id = pd.DataFrame.from_csv("cluster_3_genes.txt", sep="\t", header=None, index_col=None) + +needed_rows = [row for row in fpkm_symbol.index if row in genes_id[0].values] +cluster3_genes_expressed = fpkm_symbol.loc[needed_rows] + + +# col_colors +plt.style.use('classic') +colors = ["#FFD66F","#2E6A44","#862743", "#4FA6C7", "#3398CC"] +medianprops = dict(linestyle='-', linewidth=12, color='black') +box = cluster3_genes_expressed.boxplot(column=['ES_D0', 'ES_D2', 'ES_D5', 'ES_D7', 'ES_D10'],patch_artist=True,showfliers=False,manage_xticks=False,widths = 0.6, medianprops = medianprops) +plt.setp(box['whiskers'], color='k', linestyle='-', linewidth = 12) +plt.setp(box['boxes'], color='k', linestyle='-', linewidth = 12) + +for patch, color in zip(box['boxes'], colors): + patch.set_facecolor(color) + +plt.tick_params(axis='y', direction='out') +plt.tick_params(axis='x', direction='out') +plt.tick_params(top='off', right='off') +plt.grid(b=False) +plt.ylim((-5,70)) +plt.xticks([1,2,3,4,5], ['ES_D0', 'ES_D2', 'ES_D5', 'ES_D7', 'ES_D10']) +plt.savefig('box_plot_cluster_3_genes_fpkm.png') +plt.clf() + +# Cluster tfs 1 0.05 +scipy.stats.ranksums(cluster3_genes_expressed['ES_D0'],cluster3_genes_expressed['ES_D2']) +scipy.stats.ranksums(cluster3_genes_expressed['ES_D0'],cluster3_genes_expressed['ES_D5']) +scipy.stats.ranksums(cluster3_genes_expressed['ES_D0'],cluster3_genes_expressed['ES_D7']) +scipy.stats.ranksums(cluster3_genes_expressed['ES_D0'],cluster3_genes_expressed['ES_D10']) + + +scipy.stats.ranksums(cluster3_genes_expressed['ES_D2'],cluster3_genes_expressed['ES_D5']) +scipy.stats.ranksums(cluster3_genes_expressed['ES_D2'],cluster3_genes_expressed['ES_D7']) +scipy.stats.ranksums(cluster3_genes_expressed['ES_D2'],cluster3_genes_expressed['ES_D10']) + +scipy.stats.ranksums(cluster3_genes_expressed['ES_D5'],cluster3_genes_expressed['ES_D7']) +scipy.stats.ranksums(cluster3_genes_expressed['ES_D5'],cluster3_genes_expressed['ES_D10']) + +scipy.stats.ranksums(cluster3_genes_expressed['ES_D7'],cluster3_genes_expressed['ES_D10']) + + + +# Read in cluster 2 enhancers +cluster_2 = pd.DataFrame.from_csv("cluster_2_enhancers.csv", sep=",", header=0, index_col=0) + +# Choose enhacners exprssed in cluster 2 +enhancers_universe_cluster_2 = enhancers_universe.loc[cluster_2.index.values] +enhancers_universe_cluster_2.to_csv("cluster_2_enhancers_locations.bed", sep="\t",header=None, index=False) + + +# Read in nearest genes +genes_id = pd.DataFrame.from_csv("cluster_2_genes.txt", sep="\t", header=None, index_col=None) + +needed_rows = [row for row in fpkm_symbol.index if row in genes_id[0].values] +cluster2_genes_expressed = fpkm_symbol.loc[needed_rows] + + +# col_colors +plt.style.use('classic') +colors = ["#FFD66F","#2E6A44","#862743", "#4FA6C7", "#3398CC"] +medianprops = dict(linestyle='-', linewidth=12, color='black') +box = cluster2_genes_expressed.boxplot(column=['ES_D0', 'ES_D2', 'ES_D5', 'ES_D7', 'ES_D10'],patch_artist=True,showfliers=False,manage_xticks=False,widths = 0.6, medianprops = medianprops) +plt.setp(box['whiskers'], color='k', linestyle='-', linewidth = 12) +plt.setp(box['boxes'], color='k', linestyle='-', linewidth = 12) + +for patch, color in zip(box['boxes'], colors): + patch.set_facecolor(color) + +plt.tick_params(axis='y', direction='out') +plt.tick_params(axis='x', direction='out') +plt.tick_params(top='off', right='off') +plt.grid(b=False) +plt.ylim((-5,70)) +plt.xticks([1,2,3,4,5], ['ES_D0', 'ES_D2', 'ES_D5', 'ES_D7', 'ES_D10']) +plt.savefig('box_plot_cluster_2_genes_fpkm.png') +plt.clf() + +# Cluster tfs 1 e-4 +scipy.stats.ranksums(cluster2_genes_expressed['ES_D0'],cluster2_genes_expressed['ES_D2']) +scipy.stats.ranksums(cluster2_genes_expressed['ES_D0'],cluster2_genes_expressed['ES_D5']) +scipy.stats.ranksums(cluster2_genes_expressed['ES_D0'],cluster2_genes_expressed['ES_D7']) +scipy.stats.ranksums(cluster2_genes_expressed['ES_D0'],cluster2_genes_expressed['ES_D10']) + + +scipy.stats.ranksums(cluster2_genes_expressed['ES_D2'],cluster2_genes_expressed['ES_D5']) +scipy.stats.ranksums(cluster2_genes_expressed['ES_D2'],cluster2_genes_expressed['ES_D7']) +scipy.stats.ranksums(cluster2_genes_expressed['ES_D2'],cluster2_genes_expressed['ES_D10']) + +scipy.stats.ranksums(cluster2_genes_expressed['ES_D5'],cluster2_genes_expressed['ES_D7']) +scipy.stats.ranksums(cluster2_genes_expressed['ES_D5'],cluster2_genes_expressed['ES_D10']) + +scipy.stats.ranksums(cluster2_genes_expressed['ES_D7'],cluster2_genes_expressed['ES_D10']) diff --git a/Histone_TFSEE/closest_genes.sh b/Histone_TFSEE/closest_genes.sh new file mode 100644 index 0000000..517ce84 --- /dev/null +++ b/Histone_TFSEE/closest_genes.sh @@ -0,0 +1,6 @@ +#Closest genes Cluster 3 +bedtools sort -i cluster_3_enhancers_locations.bed | bedtools closest -a - -b gencode.v19.annotation_protein_coding_sorted.gtf | cut -f12 | cut -f1 -d ';' | cut -f2 -d ' ' | sort | uniq | sed 's/"//g' > cluster_3_genes.txt + + +#Closest genes Cluster 2 +bedtools sort -i cluster_2_enhancers_locations.bed | bedtools closest -a - -b gencode.v19.annotation_protein_coding_sorted.gtf | cut -f12 | cut -f1 -d ';' | cut -f2 -d ' ' | sort | uniq | sed 's/"//g' > cluster_2_genes.txt -- GitLab