###First, let’s load RMarkdown
library(rmarkdown)
knitr::opts_chunk$set(echo = TRUE, message=FALSE,warning=FALSE,collapse = TRUE)
library(reshape2)
library(ggplot2)
library(dplyr)
library(plotly)
library(viridis)
library(data.table)
library(pheatmap)
library(tidyverse)
library(ggthemes)
library(clipr)
library(tidyr)
library(Rcpp)
mycolors<-c(viridis(15))
felix_cols<-mycolors[c(5,2)]
felix_4cols<-mycolors[c(15,10,8,2)]
plain_cols1<-c("blue","gray")
plain_cols2<-c("red","gray")
pats_cols<-colorRampPalette(c("#FDE725FF", "white","#440154FF"))(21)
leos_cols<-colorRampPalette(c("white","blue"))(10)
## load the dataset
BC_data <- read_csv(file="breast_cancer_cells.csv")
## make some new columns that store the log ratios
BC_data <- BC_data %>% mutate(
log_MCF7=log2((MCF7_1+MCF7_2)/(MCF10A_1+MCF10A_2)),
log_MDA231=log2((MDA231_1+MDA231_2)/(MCF10A_1+MCF10A_2)),
log_MDA468=log2((MDA468_1+MDA468_2)/(MCF10A_1+MCF10A_2)),
log_SKBR3=log2((SKBR3_1+SKBR3_2)/(MCF10A_1+MCF10A_2)))
## make a matrix of just the data
BC_mat1<- BC_data %>% select(log_MCF7:log_SKBR3) %>% as.matrix() %>% round(.,2)
head(BC_mat1)
## log_MCF7 log_MDA231 log_MDA468 log_SKBR3
## [1,] -0.43 1.90 -0.74 0
## [2,] -0.96 -0.35 -0.71 0
## [3,] 0.27 0.29 -0.04 0
## [4,] 0.88 0.78 -0.05 0
## [5,] 0.79 1.19 0.92 0
## [6,] -0.79 -0.90 -1.28 0
## make a heatmap from the data
pheatmap(BC_mat1, color=pats_cols,cellwidth=30,cellheight=.03,cluster_cols=FALSE,cluster_rows=FALSE,legend=TRUE,fontsize = 7,scale="column")
##BASIC VOLCANO PLOT
## Add a column that stores the negative log of the pvalue of interest
BC_data<- BC_data %>% mutate(neglog_MCF7=-log10(pvalue_MCF7_vs_MCF10A))
## Use ggplot to plot the log ratio a column (cell line or treatment) of interest against the -log p-value of that same column of interest
volcano_plot<-BC_data %>% ggplot(aes(x=log_MCF7,y=neglog_MCF7,description=Gene_Symbol))+
geom_point(alpha=0.7,color="royalblue")
volcano_plot
## BETTER VOLCANO PLOT
## Define the significant ones so they can be colored
BC_data<-BC_data %>% mutate(significance=ifelse((log_MCF7>2 & neglog_MCF7>2.99),"UP", ifelse((log_MCF7<c(-2) & neglog_MCF7>2.99),"DOWN","NOT SIG")))
## Some standard colors
plain_cols3<-c("red","gray","blue")
## volcano plot as before with some added graph features
better_volcano_plot<-BC_data %>% ggplot(aes(x=log_MCF7,y=neglog_MCF7,description=Gene_Symbol,color=significance))+
geom_point(alpha=0.7)+
scale_color_manual(values=plain_cols3)+
xlim(-6,6)+
theme_bw()+
theme(axis.text = element_text(colour = "black",size=14))+
theme(text = element_text(size=14))+
labs(x="log ratio of MCF7 line compared to control (MCF10A)",y="-log(MCF7)")
better_volcano_plot
## use ggplotly to see hover over the points to see the gene names
ggplotly(better_volcano_plot)
## EXAMPLES OF A COUPLE PROTEINS or GENES
BC_long<-pivot_longer(BC_data, cols = c(MCF10A_1:SKBR3_2), names_to = 'variable')%>% select(-c(pvalue_MCF7_vs_MCF10A:significance))%>%select(-Description)
# Make a pivot longer table of the data for initial columns. Exclude the p-values and log columns
head(BC_long)
## # A tibble: 6 × 4
## Gene_Symbol Peptides variable value
## <chr> <dbl> <chr> <dbl>
## 1 NES 7 MCF10A_1 9.54
## 2 NES 7 MCF10A_2 4.58
## 3 NES 7 MCF7_1 5.07
## 4 NES 7 MCF7_2 5.42
## 5 NES 7 MDA231_1 25.4
## 6 NES 7 MDA231_2 27.4
## based on the gene symbols from plotly, select a few proteins from the table. Select just the data and gene symbols from the pivot longer table you just made
Examples_Down<-BC_long %>% filter(Gene_Symbol=="GFRA1" | Gene_Symbol=="HLA-C" | Gene_Symbol=="SOX9")
head(Examples_Down)
## # A tibble: 6 × 4
## Gene_Symbol Peptides variable value
## <chr> <dbl> <chr> <dbl>
## 1 GFRA1 1 MCF10A_1 0.001
## 2 GFRA1 1 MCF10A_2 2.58
## 3 GFRA1 1 MCF7_1 46.1
## 4 GFRA1 1 MCF7_2 44.0
## 5 GFRA1 1 MDA231_1 1.56
## 6 GFRA1 1 MDA231_2 1.9
## make barplots facetted by Gene Symbol (if copying COVID example - change x=order to x = variable)
Example_plot_down<-Examples_Down %>%
ggplot(aes(x=variable,y=value))+
geom_bar(stat="identity",fill="red")+
facet_wrap(~Gene_Symbol)+
theme_bw()+
theme(axis.text = element_text(colour = "black",size=10))+
theme(text = element_text(size=14))+
theme(axis.text.x = element_text(angle=45, hjust=1))+
labs(x="sample",y="relative intensity")
Example_plot_down
## Same process for the upregulated ones
Examples_Up<-BC_long %>% filter(Gene_Symbol=="GFRA1" | Gene_Symbol=="DST")
head(Examples_Up)
## # A tibble: 6 × 4
## Gene_Symbol Peptides variable value
## <chr> <dbl> <chr> <dbl>
## 1 GFRA1 1 MCF10A_1 0.001
## 2 GFRA1 1 MCF10A_2 2.58
## 3 GFRA1 1 MCF7_1 46.1
## 4 GFRA1 1 MCF7_2 44.0
## 5 GFRA1 1 MDA231_1 1.56
## 6 GFRA1 1 MDA231_2 1.9
Example_plot_up<-Examples_Up %>% ggplot(aes(x=variable,y=value))+
geom_bar(stat="identity",fill="royalblue")+
facet_wrap(~Gene_Symbol)+
theme_bw()+
theme(axis.text = element_text(colour = "black",size=10))+
theme(text = element_text(size=14))+
theme(axis.text.x = element_text(angle=45, hjust=1))+
labs(x="sample",y="relative intensity")
Example_plot_up
#your original table contains descriptions of each gene. Write some code to create yourself a table to filter for your gene symbols of interest and select for the gene symbol, description, and peptides. Do this for both the significantly upregulated and downregulated points of interest.
#Downregulated
downregulated <- BC_data %>%
filter(significance == 'DOWN') %>%
select(Gene_Symbol, Description, Peptides)
downregulated
## # A tibble: 12 × 3
## Gene_Symbol Description Pepti…¹
## <chr> <chr> <dbl>
## 1 FMNL1 Isoform 2 of Formin-like protein 1 OS=Homo sapiens GN=FM… 1
## 2 HLA-B HLA class I histocompatibility antigen, B-52 alpha chain… 1
## 3 CTSZ Cathepsin Z OS=Homo sapiens GN=CTSZ PE=1 SV=1 8
## 4 PLAU Isoform 2 of Urokinase-type plasminogen activator OS=Hom… 2
## 5 HIST1H1A Histone H1.1 OS=Homo sapiens GN=HIST1H1A PE=1 SV=3 1
## 6 TMBIM1 Transmembrane BAX inhibitor motif-containing protein 1 O… 1
## 7 ADCK3 Isoform 3 of Chaperone activity of bc1 complex-like, mit… 2
## 8 METTL7A Methyltransferase-like protein 7A OS=Homo sapiens GN=MET… 3
## 9 EXOG Nuclease EXOG, mitochondrial OS=Homo sapiens GN=EXOG PE=… 3
## 10 PKP2 Isoform 1 of Plakophilin-2 OS=Homo sapiens GN=PKP2 7
## 11 HLA-A HLA class I histocompatibility antigen, A-1 alpha chain … 1
## 12 APOA1 Apolipoprotein A-I OS=Homo sapiens GN=APOA1 PE=1 SV=1 2
## # … with abbreviated variable name ¹Peptides
#Upregulated
upregulated <- BC_data %>%
filter(significance == 'UP') %>%
select(Gene_Symbol, Description, Peptides)
upregulated
## # A tibble: 57 × 3
## Gene_Symbol Description Pepti…¹
## <chr> <chr> <dbl>
## 1 MUC5B Mucin-5B OS=Homo sapiens GN=MUC5B PE=1 SV=3 2
## 2 AGR3 Anterior gradient protein 3 homolog OS=Homo sapiens GN=A… 5
## 3 USP32 Ubiquitin carboxyl-terminal hydrolase 32 OS=Homo sapiens… 2
## 4 AARS Alanyl-tRNA synthetase, cytoplasmic OS=Homo sapiens GN=A… 23
## 5 EPB41L5 Isoform 2 of Band 4.1-like protein 5 OS=Homo sapiens GN=… 5
## 6 FBP1 Fructose-1,6-bisphosphatase 1 OS=Homo sapiens GN=FBP1 PE… 8
## 7 ISOC1 Isochorismatase domain-containing protein 1 OS=Homo sapi… 6
## 8 ELP3 Isoform 2 of Elongator complex protein 3 OS=Homo sapiens… 2
## 9 SYTL2 Isoform 8 of Synaptotagmin-like protein 2 OS=Homo sapien… 1
## 10 EML1 Isoform 3 of Echinoderm microtubule-associated protein-l… 2
## # … with 47 more rows, and abbreviated variable name ¹Peptides