Using publicly available gene expression data from ENCODE, I looked at a tsv file with over 16,000 identified genes for analysis (ID:ENCFF166SFX). The goal is to explore the data to gain insight into gene expression of brain tissue of a 90 year old woman from the RUSH Alzheimer’s study (ID:ENCSR562BUN).
library(tidyverse)
## Warning: package 'ggplot2' was built under R version 4.4.3
## Warning: package 'tibble' was built under R version 4.4.3
## Warning: package 'tidyr' was built under R version 4.4.3
## Warning: package 'readr' was built under R version 4.4.3
## Warning: package 'purrr' was built under R version 4.4.3
## Warning: package 'dplyr' was built under R version 4.4.3
## Warning: package 'lubridate' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.2.0 ✔ readr 2.2.0
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.2 ✔ tibble 3.3.1
## ✔ lubridate 1.9.5 ✔ tidyr 1.3.2
## ✔ purrr 1.2.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
myGex <- read.table('ENCFF166SFX.tsv', header=TRUE)
This plot shows how many genes occur at different lengths.
ggplot(myGex,aes(x=length)) +
geom_histogram(binwidth = 50, fill='red') +
labs(
title = "Distribution of Gene Lengths",
x = "Length",
y = "Count")
As we can see, genes within brain tissue do not have the same length. The plot shows heavy saturation of genes with the length < 10,0000. Showing us overall the structure of the genes differ within brain tissue.
This plot shows the distribution of genes that are less than 10,000 bases in length. This threshold was chosen due to the above plot.
normalLength <- myGex |>
filter(length < 10000)
ggplot(normalLength, aes(x = length)) +
geom_histogram(binwidth = 1000, fill = 'pink') +
labs(
title = "Distribution of Gene Lengths < 10,000",
x = "Length",
y = "Count")
This plot gives a closer look of the shorter genes (< 10,000) in the data, showing that there is variation in gene length and that some lengths have more genes than others. Looking at this more closely helps identify where most of the genes fall in length
This plot shows genes with their FPKM values >5000.
hiEx <- myGex |>
filter(FPKM > 5000)
ggplot(hiEx, aes(x = gene_id, y = FPKM, fill = FPKM)) +
geom_col(fill='orange') +
theme(axis.text.x = element_text(angle = 90, vjust = 1, hjust = 1)) +
labs(
title = "Highly Expressed Genes",
x = "Gene ID",
y = "FPKM")
The above image shows what genes have high expression levels in the tissue sample. Knowing what genes are highly expressed can help determine which biological processes are active and present within different stages of life