test / app /R /heatmap_utils.R
okata's picture
Upload 42 files
bd8cdd3 verified
groupnodeheatmap <- function(lipidclassproperties,data,metadata,class,levels,inputclass,input){
# lipidclassproperties
if(input$filetype == "MS-DIAL export"){
lipid_data_classmean <<- right_join(lipidclassproperties,lipidmeancalforgroupnode(data,metadata,input$w) ,by = c("LbmClass"="Ontology"))
}
if(input$filetype == "Sample in rows"){
colnames(data) <- data[1,]
data <- data[-1,]
data[, -c(1:2)] <- apply(data[, -c(1:2)], 2, as.numeric)
colnames(data)[1] <- "name"
colnames(metadata)[1] <- "name"
lipid <- data %>% pivot_longer(cols = -c(1:2),names_to = "Metabolite name") %>%
inner_join(metadata,by = c("name","Class")) %>%
select(c(paste(input$w,"",sep=""),`Metabolite name`,name,value)) %>%
group_by_at(c("Metabolite name",input$w)) %>%
mutate(mean = mean(value)) %>%
ungroup() %>%
distinct(`Metabolite name`,!!as.symbol(input$w),.keep_all = T) %>%
select(c(1,2,5)) %>%
pivot_wider(names_from = paste(input$w,"",sep=""),values_from = mean)
lipidont <- read.csv(input$ontfile$datapath,check.names = F)
lipid <- inner_join(lipidont,lipid,by =c("lipid" = "Metabolite name"))
lipid <- rename(lipid,`Metabolite name` = lipid)
lipid_data_classmean <- right_join(lipidclassproperties,lipid,by = c("LbmClass"="Ontology")) %>% filter(TotalChain != 0)# %>% filter(`Annotation tag (VS1.0)` == "410")
}
#lipid_data_classmean <- right_join(lipidclassproperties,lipidmeancalforgroupnode(data,metadata,paste(class,"",sep="")) ,by = c("LbmClass"="Ontology")) # %>% filter(`Annotation tag (VS1.0)` == "410")
lipid_data_classmean <- filter(lipid_data_classmean,LbmClass == inputclass)
if(unique(lipid_data_classmean$TotalChain) == "1"){
targetmonoacylchain <- c("16:0","16:1","18:0","18:1","18:2","18:3","20:3","20:4","20:5","22:4","22:5","22:6")
monoacyl <- lipid_data_classmean %>% filter(TotalChain == "1") %>% filter(!LbmClass %in% c("AHexCS","AHexSTS"))
targetlipidclass <- monoacyl$LbmClass %>% unique()
monoacyl <- monoacyl[,-c(2:7)]
if(input$acylfilter == T){
acyllist <- list()
for (i in 1:nrow(monoacyl)) {
a <- unlist(str_split(monoacyl$`Metabolite name`[i],pattern = " "))[2]
if (str_detect(a,pattern = ";") == TRUE){
acyl <- a %>% str_split(pattern = ";") %>% unlist()
if(str_detect(acyl[1],pattern = "-")){
acyl <- acyl[1] %>% str_split(pattern = "-") %>% unlist()
acyllist[i] <- a[2]
}else{
acyllist[i] <- acyl[1]
}
}else if(str_detect(a,pattern = "/")==TRUE){
acyl <- a %>% str_split(pattern = "/") %>% unlist()
acyllist[i] <- acyl[2]
}else{
if(str_detect(a,pattern = "-")){
acyl <- a %>% str_split(pattern = "-") %>% unlist()
acyllist[i] <- acyl[2]
}else{
acyllist[i] <- a
}
}
}
monoacyl$acyl <- unlist(acyllist)
#
targetmonoacyllipid <- monoacyl %>% filter(acyl %in% targetmonoacylchain) %>% select(-c(acyl))
}
else{
targetmonoacyllipid <- monoacyl
}
targetlipidclass <- unique(targetmonoacyllipid$LbmClass)
monoacyl <- targetmonoacyllipid
Lipidclassdata<- filter(monoacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
if(length(Lipidclassdata$LbmClass) != 0){
d <- Lipidclassdata
rowname <- as.matrix((d$`Metabolite name`))
d <- select(d,-c(LbmClass))
n <- nrow(d)
BreaksList <- seq(-2,2, by = 0.5)
height <- n*0.9
list <- c(-2,0,2)
lipid <- d
lipid <- lipid[,-1]
rownames(lipid) <- rowname
lipid <- scale_rows(lipid) %>% as.data.frame()
lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
) + theme(axis.text.x = element_text(angle = 90, hjust = 0),axis.text = element_text(size = input$Fontsize))
print(ghm)
}}
if(unique(lipid_data_classmean$TotalChain) == "2"&& unique(lipid_data_classmean$Categories) != "Sphingolipids" && unique(lipid_data_classmean$Categories) != "Sterol Lipids"){
targetdiacylchain <- c("16:0","16:1","18:0","18:1","18:2","18:3","20:3","20:4","20:5","22:4","22:5","22:6")
diacyl <- lipid_data_classmean %>% filter(TotalChain == "2", Categories != "Sphingolipids")
targetlipidclass <- diacyl$LbmClass %>% unique()
diacyl <- diacyl[,-c(3:7)]
if(input$acylfilter == T){
acyl1list <- list()
acyl2list <- list()
for (i in 1:nrow(diacyl) ) {
if(str_detect(diacyl$`Metabolite name`[i],pattern = "\\|") == TRUE){
a <- unlist(str_split(diacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ") %>% unlist()
if(str_detect(a[2],pattern = "_") == TRUE){
a <- a[2] %>% str_split(pattern = "_") %>% unlist()
if(str_detect(a[1],pattern = "-") == TRUE){
acyl1 <- a[1] %>% str_split(pattern = "-") %>% unlist()
acyl1list[i] <- acyl1[2]
}else{
acyl1list[i] <- a[1]
}
if(str_detect(a[2],pattern = ";") == TRUE){
acyl2 <- a[2] %>% str_split(pattern = ";") %>% unlist()
acyl2list[i] <- acyl2[1]
}else{
acyl2list[i] <- a[2]
}
}else{
a <- unlist(a)[2] %>% str_split(pattern = "\\)") %>% unlist()
acyl1 <- a[1] %>% str_split(pattern = " ") %>% unlist()
acyl1list[i] <- acyl1[2]
acyl2list[i] <- a[2]
}
}
else{
acyl1list[i] <- NA
acyl2list[i] <- NA
}
}
diacyl$acyl1 <- unlist(acyl1list)
diacyl$acyl2 <- unlist(acyl2list)
targetdiacyllipid <- diacyl %>% filter(acyl1 %in% targetdiacylchain, acyl2 %in% targetdiacylchain)
# if(input$sn == T){
# targetdiacyllipid$acyl1 <- paste(targetdiacyllipid$LbmClass," ",targetdiacyllipid$acyl1," (sn-1)",sep ="")
# targetdiacyllipid$acyl2 <- paste(targetdiacyllipid$LbmClass," ",targetdiacyllipid$acyl2," (sn-2)",sep ="")
# targetdiacyllipid <- targetdiacyllipid %>% select( `Metabolite name`,LbmClass,acyl1,acyl2,everything()) %>% pivot_longer(cols = -c(1:4)) %>% group_by(name,acyl1) %>% mutate(mean1 = mean(value)) %>% ungroup() %>% group_by(name,acyl2) %>% mutate(mean2 = mean(value)) %>% ungroup()
# sn1 <- select(targetdiacyllipid,c(LbmClass,name,acyl1,mean1)) %>% distinct(name,acyl1,.keep_all = T)
# colnames(sn1) <- c("LbmClass","name","Metabolite name","value")
# sn2 <- select(targetdiacyllipid,c(LbmClass,name,acyl2,mean2))%>% distinct(name,acyl2,.keep_all = T)
# colnames(sn2) <- c("LbmClass","name","Metabolite name","value")
# diacyl <- rbind(sn1,sn2) %>% pivot_wider(names_from = "name",values_from = "value") #%>% data.frame()
# }
diacyl <- targetdiacyllipid %>% select(-c(acyl1,acyl2))
}
else{}
Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
if(length(Lipidclassdata$LbmClass) != 0){
d <- Lipidclassdata
rowname <- as.matrix((d$`Metabolite name`))
d <- select(d,-c(`Metabolite name`,LbmClass))
BreaksList <- seq(-2,2, by = 0.5)
# print(d)
n <- nrow(d)
height <- n/10*3
list <- c(-2,0,2)
lipid <- d
lipid <- lipid[,-1]
rownames(lipid) <- rowname
lipid <- scale_rows(lipid) %>% as.data.frame()
lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
print(ghm)
}}
if(unique(lipid_data_classmean$TotalChain) == "2"&& unique(lipid_data_classmean$Categories) == "Sterol Lipids" && unique(lipid_data_classmean$LbmClass) != "WE"){
targetdiacylchain <- c("16:0","16:1","18:0","18:1","18:2","18:3","20:3","20:4","20:5","22:4","22:5","22:6")
diacyl <- lipid_data_classmean %>% filter(TotalChain == "2", LbmClass != "WE")# %>%
targetlipidclass <- diacyl$LbmClass %>% unique()
diacyl <- diacyl[,-c(3:7)]
if(input$acylfilter == T){
acyl1list <- list()
acyl2list <- list()
for (i in 1:nrow(diacyl) ) {
if(str_detect(diacyl$`Metabolite name`[i],pattern = "\\|") == TRUE){
a <- unlist(str_split(diacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ") %>% unlist()
if(str_detect(a[2],pattern = "/") == TRUE){
a <- a[2] %>% str_split(pattern = "/") %>% unlist()
acyl1list[i] <- a[1]
acyl2list[i] <- a[2]
}
}
else{
acyl1list[i] <- NA
acyl2list[i] <- NA
}
}
diacyl$acyl1 <- unlist(acyl1list)
diacyl$acyl2 <- unlist(acyl2list)
targetdiacyllipid <- diacyl %>% filter(acyl1 %in% targetdiacylchain, acyl2 %in% targetdiacylchain)
# if(input$sn == T){
# targetdiacyllipid$acyl1 <- paste(targetdiacyllipid$LbmClass," ",targetdiacyllipid$acyl1," (sn-1)",sep ="")
# targetdiacyllipid$acyl2 <- paste(targetdiacyllipid$LbmClass," ",targetdiacyllipid$acyl2," (sn-2)",sep ="")
# targetdiacyllipid <- targetdiacyllipid %>% select( `Metabolite name`,LbmClass,acyl1,acyl2,everything()) %>% pivot_longer(cols = -c(1:4)) %>% group_by(name,acyl1) %>% mutate(mean1 = mean(value)) %>% ungroup() %>% group_by(name,acyl2) %>% mutate(mean2 = mean(value)) %>% ungroup()
# sn1 <- select(targetdiacyllipid,c(LbmClass,name,acyl1,mean1)) %>% distinct(name,acyl1,.keep_all = T)
# colnames(sn1) <- c("LbmClass","name","Metabolite name","value")
# sn2 <- select(targetdiacyllipid,c(LbmClass,name,acyl2,mean2))%>% distinct(name,acyl2,.keep_all = T)
# colnames(sn2) <- c("LbmClass","name","Metabolite name","value")
# diacyl <- rbind(sn1,sn2) %>% pivot_wider(names_from = "name",values_from = "value") #%>% data.frame()
# }
diacyl <- targetdiacyllipid %>% select(-c(acyl1,acyl2))
}
else{}
Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
if(length(Lipidclassdata$LbmClass) != 0){
d <- Lipidclassdata
rowname <- as.matrix((d$`Metabolite name`))
d <- select(d,-c(`Metabolite name`,LbmClass))
BreaksList <- seq(-2,2, by = 0.5)
n <- nrow(d)
height <- n/10*3
list <- c(-2,0,2)
lipid <- d
lipid <- lipid[,-1]
rownames(lipid) <- rowname
lipid <- scale_rows(lipid) %>% as.data.frame()
lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
print(ghm)
}}
if(unique(lipid_data_classmean$TotalChain) == "2"&&unique(lipid_data_classmean$Categories) == "Sphingolipids"&&unique(lipid_data_classmean$LbmClass) != "ASM"){
targetSphingoidBase <- c("18:0;O2","18:1;O2","18:2;O2","18:0;O3","18:0;2O","18:1;2O","18:2;2O","18:0;3O")
targetnacylchain <- c("16:0","16:1","18:0", "20:0", "22:0", "24:0", "24:1", "26:0", "26:1")
epidermalacylceramide <- c("Cer_EODS","Cer_EOS","Cer_EBDS","HexCer_EOS")
epidermalacylceramidetargetacylchain <- c("18:2")
diacyl <- lipid_data_classmean %>% filter(TotalChain == "2",Categories == "Sphingolipids",LbmClass != "ASM")
targetlipidclass <- diacyl$LbmClass %>% unique()
diacyl <- diacyl[,-c(3:7)]
if(input$acylfilter == T){
acyl1list <- list()
acyl2list <- list()
for (i in 1:nrow(diacyl)) {
if(str_detect(diacyl$`Metabolite name`[i],pattern = "\\|") == TRUE){
a <- unlist(str_split(diacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
if(str_detect(unlist(a)[2],pattern = "/") == TRUE){
a <- unlist(a)[2] %>% str_split(pattern = "/") %>% unlist()
acyl1list[i] <- a[1]
if(str_detect(a[2],pattern = ";") == TRUE){
acyl2 <- a[2] %>% str_split(pattern = ";") %>% unlist()
acyl2list[i] <- acyl2[1]
}
else if(str_detect(a[2],pattern = "\\(") == TRUE){
acyl2 <- a[2] %>% str_split(pattern = "\\(") %>% unlist()
acyl2list[i] <- acyl2[1]
}
else{
acyl2list[i] <- a[2]
}
}
else{
acyl1list[i] <- NA
acyl2list[i] <- NA
}
}
else{
acyl1list[i] <- NA
acyl2list[i] <- NA
}
}
diacyl$acyl1 <- unlist(acyl1list)
diacyl$acyl2 <- unlist(acyl2list)
targetdiacyllipidnotEOS <- diacyl %>% filter(!Categories %in% epidermalacylceramide) %>% filter(acyl1 %in% targetSphingoidBase, acyl2 %in% targetnacylchain)
targetdiacyllipidEOS <- diacyl %>% filter(Categories %in% epidermalacylceramide) %>% filter(acyl1 %in% targetSphingoidBase, acyl2 %in% epidermalacylceramidetargetacylchain)
targetdiacyllipid <- rbind(targetdiacyllipidEOS,targetdiacyllipidnotEOS)
targetlipidclass <- unique(targetdiacyllipid$LbmClass)
# if(input$sn == T){
# targetdiacyllipid$acyl1 <- paste(targetdiacyllipid$LbmClass," C",targetdiacyllipid$acyl1,sep ="")
# targetdiacyllipid$acyl2 <- paste(targetdiacyllipid$LbmClass," C",targetdiacyllipid$acyl2,sep ="")
# targetdiacyllipid <- targetdiacyllipid %>% select( `Metabolite name`,LbmClass,acyl1,acyl2,everything()) %>% pivot_longer(cols = -c(1:4)) %>% group_by(name,acyl1) %>% mutate(mean1 = mean(value)) %>% ungroup() %>% group_by(name,acyl2) %>% mutate(mean2 = mean(value)) %>% ungroup()
# sn1 <- select(targetdiacyllipid,c(LbmClass,name,acyl1,mean1)) %>% distinct(name,acyl1,.keep_all = T)
# colnames(sn1) <- c("LbmClass","name","Metabolite name","value")
# sn2 <- select(targetdiacyllipid,c(LbmClass,name,acyl2,mean2))%>% distinct(name,acyl2,.keep_all = T)
# colnames(sn2) <- c("LbmClass","name","Metabolite name","value")
# diacyl <- sn2 %>% pivot_wider(names_from = "name",values_from = "value")
# }
diacyl <- targetdiacyllipid %>% select(-c(acyl1,acyl2))
}
else{
}
Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
if(length(Lipidclassdata$LbmClass) != 0){
d <- Lipidclassdata
rowname <- as.matrix((d$`Metabolite name`))
d <- select(d,-c(`Metabolite name`,LbmClass))
n <- nrow(d)
BreaksList <- seq(-2,2, by = 0.5)
n <- nrow(d)
height <- n/10*3
list <- c(-2,0,2)
lipid <- d
lipid <- lipid[,-1]
rownames(lipid) <- rowname
lipid <- scale_rows(lipid) %>% as.data.frame()
lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
print(ghm)
}}
if(unique(lipid_data_classmean$LbmClass) == "ASM"){
targetnacylchain <- c("16:0","16:1","18:0", "20:0", "22:0", "24:0", "24:1", "26:0", "26:1")
diacyl <- lipid_data_classmean %>% filter(LbmClass == "ASM")# %>%
targetlipidclass <- diacyl$LbmClass %>% unique()
diacyl <- diacyl[,-c(3:7)]
if(input$acylfilter == T){
acyl1list <- list()
for (i in 1:nrow(diacyl)) {
if(str_detect(diacyl$`Metabolite name`[i],pattern = "\\(") == TRUE){
a <- str_split(diacyl$`Metabolite name`[i],pattern = "\\(") %>% unlist()
a1 <- a[2] %>% str_split(pattern = "\\)") %>% unlist()
a2 <- a1[1] %>% str_split(pattern = " ") %>% unlist()
acyl1list[i] <- a2[2]
}
else{
acyl1list[i] <- NA
}
}
diacyl$acyl1 <- unlist(acyl1list)
targetdiacyllipid <- diacyl %>% filter(acyl1 %in% targetnacylchain) %>% select(-c(Categories))
targetlipidclass <- unique(targetdiacyllipid$LbmClass)
diacyl <- targetdiacyllipid %>% select(-c(acyl1))
}
else{
}
Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
if(length(Lipidclassdata$LbmClass) != 0){
d <- Lipidclassdata
rowname <- as.matrix((d$`Metabolite name`))
d <- select(d,-c(`Metabolite name`,LbmClass))
n <- nrow(d)
BreaksList <- seq(-2,2, by = 0.5)
n <- nrow(d)
height <- n/10*3
list <- c(-2,0,2)
lipid <- d
lipid <- lipid[,-1]
rownames(lipid) <- rowname
lipid <- scale_rows(lipid) %>% as.data.frame()
lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
print(ghm)
}
}
if(unique(lipid_data_classmean$TotalChain) == "0"){
targetnacylchain <- c("16:0","16:1","18:0", "20:0", "22:0", "24:0", "24:1", "26:0", "26:1")
diacyl <- lipid_data_classmean %>% filter(TotalChain == "0")# %>%
targetlipidclass <- diacyl$LbmClass %>% unique()
diacyl <- diacyl[,-c(3:7)]
if(input$acylfilter == T){
acyl1list <- list()
acyl2list <- list()
for (i in 1:nrow(diacyl)) {
acyl1list[i] <- NA
}
diacyl$acyl1 <- unlist(acyl1list)
targetdiacyllipid <- diacyl %>% filter(acyl1 %in% targetnacylchain) %>% select(-c(Categories))
targetlipidclass <- unique(targetdiacyllipid$LbmClass)
namelist <- list()
pathlist <- list()
diacyl <- targetdiacyllipid %>% select(-c(acyl1))
}
else{
}
Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
if(length(Lipidclassdata$LbmClass) != 0){
d <- Lipidclassdata
rowname <- as.matrix((d$`Metabolite name`))
d <- select(d,-c(`Metabolite name`,LbmClass))
n <- nrow(d)
BreaksList <- seq(-2,2, by = 0.5)
n <- nrow(d)
height <- n/10*3
list <- c(-2,0,2)
lipid <- d
lipid <- lipid[,-1]
rownames(lipid) <- rowname
lipid <- scale_rows(lipid) %>% as.data.frame()
lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
print(ghm)
}}
if(unique(lipid_data_classmean$TotalChain) > 2 && unique(lipid_data_classmean$LbmClass) %in% c("TG","OxTG","HBMP","EtherTG")){
targettriacylchain <- c("16:0","16:1","18:0","18:1","18:2","18:3","20:3","20:4","20:5","22:4","22:5","22:6")
Triacyl <- lipid_data_classmean %>% filter(TotalChain > 2, LbmClass %in% c("TG","OxTG","HBMP","EtherTG"))
targetlipidclass <- Triacyl$LbmClass %>% unique()
Triacyl <- Triacyl[,-c(3:7)]
if(input$acylfilter == T){
acyllist1 <- list()
acyllist2 <- list()
acyllist3 <- list()
for (i in 1:nrow(Triacyl)) {
if(Triacyl$LbmClass[i] == "TG"){
a <- unlist(str_split(Triacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
a <- unlist(a)[2] %>% str_split(pattern = "_") %>% unlist()
acyllist1[i] <- a[1]
acyllist2[i] <- a[2]
acyllist3[i] <- a[3]
}else if(Triacyl$LbmClass[i] =="OxTG"){
a <- unlist(str_split(Triacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
a <- unlist(a)[2] %>% str_split(pattern = "_") %>% unlist()
acyllist1[i] <- a[1]
acyllist2[i] <- a[2]
b <- a[3] %>% str_split(pattern = ";") %>% unlist()
acyllist3[i] <- b[1]
}else if(Triacyl$LbmClass[i] =="HBMP"){
a <- unlist(str_split(Triacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
a <- unlist(a)[2] %>% str_split(pattern = "_") %>% unlist()
b <- a[1] %>% str_split(pattern = "/") %>% unlist()
acyllist1[i] <- b[1]
acyllist2[i] <- b[2]
acyllist3[i] <- a[2]
}else if(Triacyl$LbmClass[i] =="EtherTG"){
a <- unlist(str_split(Triacyl$`Metabolite name`[i],pattern = "\\|"))[2] %>% str_split(pattern = " ")
a <- unlist(a)[2] %>% str_split(pattern = "_") %>% unlist()
acyl <- a[1] %>% str_split(pattern = "-") %>% unlist()
acyllist1[i] <- acyl[2]
acyllist2[i] <- a[2]
acyllist3[i]<- a[3]
}
}
Triacyl$acyl1 <- unlist(acyllist1)
Triacyl$acyl2 <- unlist(acyllist2)
Triacyl$acyl3 <- unlist(acyllist3)
targettriacyllipid <- Triacyl %>% filter(acyl1 %in% targettriacylchain, acyl2 %in% targettriacylchain,acyl3 %in% targettriacylchain) %>% select(-c(acyl1,acyl2,acyl3,Categories))
}
else{
targettriacyllipid <- Triacyl
}
Triacyl <- targettriacyllipid
# i <-
Lipidclassdata<- filter(Triacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
if(length(Lipidclassdata$LbmClass) != 0){
d <- Lipidclassdata
rowname <- as.matrix((d$`Metabolite name`))
d <- select(d,-c(`Metabolite name`,LbmClass))
BreaksList <- seq(-2,2, by = 0.5)
n <- nrow(d)
height <- n/10*3
list <- c(-2,0,2)
lipid <- d
lipid <- lipid[,-1]
rownames(lipid) <- rowname
lipid <- scale_rows(lipid) %>% as.data.frame()
lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
print(ghm)
}}
if(unique(lipid_data_classmean$TotalChain) > 2 && ! unique(lipid_data_classmean$LbmClass) %in% c("TG","OxTG","HBMP","EtherTG")){
Triacyl <- lipid_data_classmean %>% filter(TotalChain > 2, ! LbmClass %in% c("TG","OxTG","HBMP","EtherTG"))
targetlipidclass <- Triacyl$LbmClass %>% unique()
Triacyl <- Triacyl[,-c(3:7)]
diacyl <- Triacyl
Lipidclassdata<- filter(diacyl , LbmClass == inputclass) %>% distinct(`Metabolite name`,.keep_all = TRUE)
if(length(Lipidclassdata$LbmClass) != 0){
d <- Lipidclassdata
rowname <- as.matrix((d$`Metabolite name`))
d <- d <- select(d,-c(`Metabolite name`,LbmClass))
n <- nrow(d)
BreaksList <- seq(-2,2, by = 0.5)
n <- nrow(d)
height <- n/10*3
list <- c(-2,0,2)
lipid <- d
lipid <- lipid[,-1]
rownames(lipid) <- rowname
lipid <- scale_rows(lipid) %>% as.data.frame()
lipid <- tibble::rownames_to_column(lipid, "Metabolite name")
lipid <- pivot_longer(lipid,cols = -c(`Metabolite name`))
lipid <- mutate(lipid, name = name %>% factor(levels = input$levels))
ghm <- ggplot(lipid, aes(x = name, y =`Metabolite name` , fill = value))
ghm <- ghm + geom_tile(color = "black") + scale_fill_gradientn(
colors=c("navy","white","red"),limits=c(min(lipid$value), max(lipid$value))
) + theme(axis.text.x = element_text(angle = 90, hjust = 1),axis.text = element_text(size = input$Fontsize))
print(ghm)
}}
}