library(stringr)
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 ✔ purrr 1.2.1
## ✔ forcats 1.0.1 ✔ readr 2.2.0
## ✔ ggplot2 4.0.2 ✔ tibble 3.3.1
## ✔ lubridate 1.9.5 ✔ tidyr 1.3.2
## ── 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
Load in all the data files: CC, MF, and BP.
CC <- read.table("~/Desktop/BIN521L/labels_CC.csv",sep = "\n", header = FALSE, stringsAsFactors = FALSE)
MF <- read.table("~/Desktop/BIN521L/labels_MF.csv",sep = "\n", header = FALSE, stringsAsFactors = FALSE)
BP <- read.table("~/Desktop/BIN521L/labels_BP.csv",sep = "\n", header = FALSE, stringsAsFactors = FALSE)
Create a concise file for all three data sets. Separate the files
into three coloumns, and name each coloumn. Remove any extra rows that
have no named genes, and the status coloumn.
datalist <- list(CC,MF,BP)
datalist <- lapply(datalist, function(x) {str_split_fixed(x$V1, ",", 3)})
datalist <- lapply(datalist, as.data.frame)
datalist[[1]] <- setNames(datalist[[1]], c("gene", "status", "CC"))
datalist[[2]] <- setNames(datalist[[2]], c("gene", "status", "MF"))
datalist[[3]] <- setNames(datalist[[3]], c("gene", "status", "BP"))
datalist <- lapply(datalist, function(x) {
x <- x[x$gene != "gene", ]
x <- x[!grepl("_", x$gene), ]
x})
datalist <- lapply(datalist, function(x) {
x$status <- NULL
x})
Merge together all of the three datafiles. Look at the final product
and then download it as a new csv file.
merged <- Reduce(function(x, y) merge(x, y, by = "gene"), datalist)
head(merged)
## gene CC MF
## 1 YAL001C nucle RNA polymerase,transcription
## 2 YAL002W membrane
## 3 YAL003W
## 4 YAL004W cellular_component molecular_function
## 5 YAL005C membrane,nucle,cytoplasm tRNA,ATP
## 6 YAL007C molecular_function
## BP
## 1 ion,protein
## 2 protein,targeting,transport
## 3 ion,regulation,negative
## 4 biological_process
## 5 protein,ion,targeting,catabolic process,negative,regulation
## 6 protein,ion,transport
write.csv(merged, "yeastPt1", row.names = FALSE)