Gene Expression in Correlation to Alzhiemer’s

Overview

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).

Downloading Packages and Reading in the Data

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)

Distribution of Gene Lengths

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.

Gene Distribution < 10,000 in Length

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

Highly Expressed Genes

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