-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.R
More file actions
34 lines (27 loc) · 1.16 KB
/
Copy pathutils.R
File metadata and controls
34 lines (27 loc) · 1.16 KB
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
#' Fonction utilitaire pour charger et pré-traité les données
#' Spécifique aux jeux de données accessible ici :
#' https://www.genepattern.org/datasets#gsc.tab=0
#'
#' Les fichiers .res sont supposés être transformés en csv (par ex. simple ouverture dans Excel)
#'
#' @author R. Bordas A. Hollands
load_gene_data <- function(filename, output_name) {
df <- read.csv(filename, sep = ";", header = FALSE, skip = 3)
df <- t(df)
df <- df[3:dim(df)[1],]
genes_express_idxes <- seq(1, dim(df)[1], by = 2)
df <- as.data.frame(df[genes_express_idxes,])
df <- df %>% mutate(across(everything(), as.integer))
dim(df)
cls <- read.delim(str_replace(filename, ".csv", ".cls"), comment.char = "#", header = FALSE)
header <- stringr::str_trim(cls[1, ])
cls <- stringr::str_trim(cls[2,])
cls <- as.numeric(stringr::str_split(cls, " ")[[1]])
# vérification que le nombre de gènes est cohérent avec le header
n <- as.numeric(stringr::str_split(header, " ")[[1]][1])
if (n != dim(df)[1]) {
stop("Inconsistent number of observations between the cls and the csv files")
}
write.csv(df, file=output_name)
return(list(data=df, classes=cls))
}