/
bulkRNAana_1_loadCount.R
52 lines (34 loc) · 1.23 KB
/
bulkRNAana_1_loadCount.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# MESSAGE -----------------------------------------------------------------
#
# author: Yulin Lyu
# email: lvyulin@pku.edu.cn
#
# require: R whatever
#
# ---
# 1. Load packages --------------------------------------------------------
setwd("exampleData/RNA")
library(tidyverse)
library(magrittr)
library(data.table)
# 2. Load data ------------------------------------------------------------
# This file is the first 7 columns of the featureCount output file.
anno <- readRDS("../../data/hg19anno.rds")
dataPath <- "data"
usedData <- list.files(dataPath, "txt", full = T)
fread(usedData)
# the first 7 cols can be saved as an annotation file.
dataMtx <- map(usedData, ~ fread(.x)[, -1:-7]) %>% reduce(cbind) %>% as.matrix()
rownames(dataMtx) <- uniquifyName(anno$gene_name, anno$Geneid)
colnames(dataMtx) %<>% str_replace_all(".*map/|Aligned.*", "")
saveRDS(dataMtx, "mid/dataMtx.rds")
# Function ----------------------------------------------------------------
uniquifyName <- function(name, ID, sep = "-") {
if(any(duplicated(ID))) {
stop("Require unique IDs.", call. = F)
}
dupName <- unique(name[duplicated(name)])
out <- name
out[name %in% dupName] <- paste0(out[name %in% dupName], sep, ID[name %in% dupName])
out
}