Índice
- O Curso R
-
- Tutoriais
-
- Apostila
-
- 6. Testes de Hipótese (em preparação!)
- Exercícios
-
- Material de Apoio
-
- Área dos Alunos
-
- Cursos Anteriores
-
IBUSP
Outras Insitutições
Linques
Visitantes
Outras Insitutições
lipidomics.process <- function(input,n,method,triplicate,group.names) #inicio da funcao { #Inicio da funcao input[,1] <-as.factor(input[,1]) #fazer as amostras como fator input[,2] <-as.factor(input[,2]) #fazer os lipidios como fator lista <- split(input, f = input[,1]) #passar as diferentes amostras para lista samples.names <- c(levels(input[,1]))#vetor com os nomes das amostras #Etapa de checagem dos parametro if(is.numeric(n) != TRUE){ stop("inserir um valor de n inteiro") #Verificar se o numero de amostras eh um numero inteiro } if(is.factor(input[,1]) != TRUE || length(levels(input[,1])) != n ) #checar se a primera coluna eh fator e se os levels eh igual ao numero de amostras { stop("Checar se a primeira coluna se refere as amostras, olhar o exemplo do help") } if(is.numeric(input[,3]) != TRUE || is.na(mean(input[,3])) != FALSE) # checar se os valores de area sao numeros e se ha algun NA { stop("Checar se a terceira coluna se refere aos lipidios e se todos os valores sao numericos sem NA, olhar o exemplo do help") } #remover os diferentes tipos de ionizacao for(i in 1:length(levels(input[,1]))) { lista[[i]][,2] <- sub(" NH4","",lista[[i]][,2]) #remover NH4 do nome dos lipids lista[[i]][,2] <- sub(" H","",lista[[i]][,2]) #remover H do nome dos lipids lista[[i]][,2] <- sub(" W","",lista[[i]][,2]) #remover W(H2O) do nome dos lipids lista[[i]][,2] <- sub(" AcO","",lista[[i]][,2]) #remover AcO do nome dos lipids lista[[i]][,2] <- sub(" Form","",lista[[i]][,2])#remover Form do nome dos lipids lista[[i]][,2] <- sub(" Cl","",lista[[i]][,2]) #remover cL do nome dos lipids } #somando as areas dos lipidios ionizados de forma diferentes, pois agora estao com o mesmo nome for(j in 1:length(levels(input[,1]))) { lista[[j]] <- aggregate(lista[[j]][,3], by=list(lista[[j]][,2]), FUN=sum) #somando as areas dos lipidios com o mesmo nome } V1 <-c(rep(NA ,length(grep("IS",lista[[1]][,1])))) # Vetor com NA para criar um dataframe que contenha os valores dos IS is.df <- data.frame( V1, row.names = c( lista[[1]][grep("IS",lista[[1]][,1]),1])) #Data frama com os valores de IS e a coluna com cada tipo de IS #salvando as areas do padrao internos em um objeto e removendo os IS da lista for(k in 1:length(levels(input[,1]))) { is.df[,k] <- lista[[k]][grep("IS",lista[[k]][,1]),2] #Adicionando os valores de is em uma nova coluna lista[[k]] <- lista[[k]][-c(grep("IS",lista[[k]][,1])),] #Removendo os IS da lista final } colnames(is.df) <- c(levels(input[,1])) # Colocar os nomes das amostras nas colunas correspondente #corrigindo pelo valor do padrao interno (IS) correspondente List.of.IS <- read.csv(paste(getwd(),"IS.list.csv",sep = ""),as.is = TRUE, header = TRUE) #objeto que sera usado para normalizar os PLs List.of.IS[,3] <- as.numeric(List.of.IS[,3]) #faz com que a coluna dos valores dos IS seja numerico if(method == "neg") { for(l in 1:length(levels(input[,1]))) { lista[[l]][grep("PC ",lista[[l]][,1]),2]<- ((lista[[l]][grep("PC ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[1,2]),l])* #Normalizar PC com IS 1 (List.of.IS[1,3])) #Corrige PC com CF 1 lista[[l]][grep("PE ",lista[[l]][,1]),2]<- ((lista[[l]][grep("PE ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[2,2]),l])*#Normalizar PE com IS 2 (List.of.IS[2,3])) #Corrige PE com CF 2 lista[[l]][grep("PS ",lista[[l]][,1]),2]<- ((lista[[l]][grep("PS ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[3,2]),l])*#Normalizar PS com IS 3 (List.of.IS[3,3])) #Corrige PS com CF 3 lista[[l]][grep("PG ",lista[[l]][,1]),2]<- ((lista[[l]][grep("PG ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[4,2]),l])*#Normalizar PG com IS 4 (List.of.IS[4,3])) #Corrige PG com CF 4 lista[[l]][grep("PI ",lista[[l]][,1]),2]<- ((lista[[l]][grep("PI ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[5,2]),l])*#Normalizar PI com IS 5 (List.of.IS[5,3])) #Corrige PI com CF 5 lista[[l]][grep("PA ",lista[[l]][,1]),2]<- ((lista[[l]][grep("PA ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[6,2]),l])*#Normalizar PA com IS 6 (List.of.IS[6,3])) #Corrige PA com CF 6 lista[[l]][grep("CL ",lista[[l]][,1]),2]<- ((lista[[l]][grep("CL ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[7,2]),l])*#Normalizar CL com IS 7 (List.of.IS[7,3])) #Corrige CL com CF 7 lista[[l]][grep("AEG ",lista[[l]][,1]),2]<- ((lista[[l]][grep("AEG ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[8,2]),l])*#Normalizar AEG com IS 8 (List.of.IS[8,3])) #Corrige AEG com CF 8 lista[[l]][grep("PDME ",lista[[l]][,1]),2]<- ((lista[[l]][grep("PDME ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[9,2]),l])*#Normalizar PDME com IS 9 (List.of.IS[9,3])) #Corrige PDME com CF 9 lista[[l]][grep("PME ",lista[[l]][,1]),2]<- ((lista[[l]][grep("PME ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[10,2]),l])*#Normalizar PME com IS 10 (List.of.IS[10,3])) #Corrige PME com CF 10 lista[[l]][grep("Cer ",lista[[l]][,1]),2]<- ((lista[[l]][grep("Cer ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[11,2]),l])*#Normalizar Cer com IS 11 (List.of.IS[11,3])) #Corrige cer com CF 11 lista[[l]][grep("SM ",lista[[l]][,1]),2]<- ((lista[[l]][grep("SM ",lista[[l]][,1]),2] /is.df[paste(List.of.IS[12,2]),l])*#Normalizar SM com IS 12 (List.of.IS[12,3])) #Corrige SM com CF 12 } } if(method == "pos") { for(m in 1:length(levels(input[,1]))) { lista[[m]][grep("CE ",lista[[m]][,1]),2]<- ((lista[[m]][grep("CE ",lista[[m]][,1]),2] /is.df[paste(List.of.IS[1,2]),m])* #Normalizar CE com IS 1 (List.of.IS[1,3])) #Corrige CE com CF 1 lista[[m]][grep("Cholesterol",lista[[m]][,1]),2]<- ((lista[[m]][grep("Cholesterol",lista[[m]][,1]),2] /is.df[paste(List.of.IS[2,2]),m])* #Normalizar Cholesterol com IS 2 (List.of.IS[2,3])) #Corrige Cholesterol com CF 2 lista[[m]][grep("Sitosterol",lista[[m]][,1]),2]<- ((lista[[m]][grep("Sitosterol",lista[[m]][,1]),2] /is.df[paste(List.of.IS[3,2]),m])* #Normalizar Sitosterol ou Sitosterol Ester com IS 3 (List.of.IS[3,3])) #Corrige Cholesterol com CF 3 lista[[m]][grep("Campesterol",lista[[m]][,1]),2]<- ((lista[[m]][grep("Campesterol",lista[[m]][,1]),2] /is.df[paste(List.of.IS[4,2]),m])* #Normalizar Campesterol ou Campesterol Ester com IS 4 (List.of.IS[4,3])) #Corrige Cholesterol com CF 4 lista[[m]][grep("Q",lista[[m]][,1]),2]<- ((lista[[m]][grep("Q",lista[[m]][,1]),2] /is.df[paste(List.of.IS[5,2]),m])* #Normalizar coenzimas Q10, Q9 ou Q8 com IS 5 (List.of.IS[5,3])) #Corrige Q10, Q9 ou Q8 com CF 5 lista[[m]][grep("DAG ",lista[[m]][,1]),2]<- ((lista[[m]][grep("DAG ",lista[[m]][,1]),2] /is.df[paste(List.of.IS[6,2]),m])* #Normalizar DAG com IS 6 (List.of.IS[6,3])) #Corrige DAG com CF 6 lista[[m]][grep("MAGE ",lista[[m]][,1]),2]<- ((lista[[m]][grep("MAGE ",lista[[m]][,1]),2] /is.df[paste(List.of.IS[7,2]),m])* #Normalizar MAGE com IS 7 (List.of.IS[7,3])) #Corrige MAGE com CF 7 lista[[m]][grep("TAG ",lista[[m]][,1]),2]<- ((lista[[m]][grep("TAG ",lista[[m]][,1]),2] /is.df[paste(List.of.IS[8,2]),m])* #Normalizar TAG com IS 8 (List.of.IS[8,3])) #Corrige TAG com CF 8 lista[[m]][grep("DAGE ",lista[[m]][,1]),2]<- ((lista[[m]][grep("DAGE ",lista[[m]][,1]),2] /is.df[paste(List.of.IS[9,2]),m])* #Normalizar DAGE com IS 9 (List.of.IS[9,3])) #Corrige DAGE com CF 9 } } Finalmean <- data.frame(lista[[1]][,1]) #objeto que será guardado os valores das medias Finalsd <- data.frame(lista[[1]][,1]) #objeto que será guardado os valores de desvio padrao dir.create("Final") #diretorio onde serao guardados dos dados arrumados if(triplicate == TRUE){ #Agrupando as replicatas em um mesmo dataframe guardados em uma lista(listb) #Por enquanto so triplicata listb <- as.list(V1) for( p in 1:length(group.names)) { listb[[p]] <- data.frame(lista[[(3*p-2)]], lista[[(3*p-2)+1]][,2],lista[[(3*p-2)+2]][,2]) #agrupando triplicatas, 3p-2 eh para ir mudando em triplicas:1,4,7,... listb[[p]][,5] <- rowMeans(listb[[p]][,2:4]) #Media da triplicata listb[[p]][,6] <- apply(listb[[p]][,2:4],1,FUN = sd) #Desvio padrao da triplicata colnames(listb[[p]]) <- c(group.names[p], "1","2","3","Mean","SD") #Nomes das colunas, indicando a replicata, media e desvio padrao write.csv(listb[[p]], file = paste(getwd(),"/Final/",group.names[p],".csv", sep = ""), row.names = F) #salvando cada dataframe da lista b em arquivos csv. Finalmean[,p+1] <- data.frame(listb[[p]][,5]) Finalsd[,p+1] <- data.frame(listb[[p]][,6]) } colnames(Finalmean) <- c("mean",c(group.names)) # alterando os nomes das colunas do dataframe que contem as media colnames(Finalsd) <- c("sd",c(group.names)) # alterando os nomes das colunas do dataframe que contem as desvio padrao write.csv(Finalmean, file = paste(getwd(),"/Final/Finalmean.csv",sep = ""), row.names = F) #salvando a planilha que contem as medias write.csv(Finalsd, file = paste(getwd(),"/Final/Finalsd.csv",sep = ""), row.names = F) #salvando a planilha que contem as medias } else{ for(m in 1:n) { Finalmean[,m+1] <- data.frame(lista[[m]][,2]) #gravando os valores corrigidos em um dataframe } colnames(Finalmean) <- c("",c(levels(input[,1]))) # alterando os nomes das colunas do dataframe para os nomes das amostras write.csv(Finalmean, file = paste(getwd(),"/Final/Final.csv",sep = ""), row.names = F) #salvando a planilha que contem as ares normalizadas } }