Forum

Nome Utente:
Password:
Riconoscimi automaticamente
 Tutti i Forum
 MolecularLab
 Bioinformatica
 [R] normalizzazione quantile di dati di intensita'
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
I seguenti utenti stanno leggendo questo Forum Qui c'è:

Aggiungi Tag Aggiungi i tag

Quanto è utile/interessante questa discussione:

Autore Discussione  

omar83
Nuovo Arrivato



7 Messaggi

Inserito il - 23 marzo 2010 : 16:45:38  Mostra Profilo  Visita l'Homepage di omar83 Invia a omar83 un Messaggio Privato  Rispondi Quotando
ciao a tutti! e' la prima volta che scrivo su questo blog. Ho un problema con R che ho appena iniziato a usare.
Devo creare una funzione che mi faccia una normalizzazzione quantile di dati di intansita' di una serie di micro array e devo utilizzarla in un programma main che mi permetta di graficare la situazione pre e post normalizzazione.
Inizialmente ho creato il programma main con la funzione integrata al suo interno e tutto va bene:

###########
#versione con la funzione integrata nel main e che funziona
########################

#parte main dell'esercizio
aus<-as.matrix(read.table("logratio_data.txt",header=TRUE))
Spot.index<-aus[,1]#la prima colonna contiene gli identificativi degli spot
LR.data<-aus[,-1]

#1)fare un grafico con i boxplot di ogni array
X11()
boxplot(as.data.frame(LR.data),ylim=c(-6,6))
title("Boxplot di tutti gli array")
X11()
#2)calcolare la media per righe di ogni array
medie_per_riga<-apply(LR.data,1,mean)

#3)fare il qq plot di ogni array rispetto a vettore delle medie
num_array<-c(ncol(LR.data))
par(mfrow=c(num_array/2,num_array/4))
for (i in (1:8))
{
 
  qqplot(medie_per_riga,LR.data[,i],xlim=c(-6,6),ylim=c(-6,6))
  title(paste("array",i,"vs media"))
  abline(0,1,col=2) 
}

#4)quantile normalization
#provo a farla senza chiamare la funzione 
matrice.ordinata<-apply(LR.data,2,sort)

#2)creo una nuova matrice che memorizzi l'ordinamento 

matrice.posizioni<-apply(LR.data,2,rank)

#3)costruisco vettore contenente media riga per riga

medie.riga<-apply(LR.data,1,mean)

#4)
#4a)inizializzo la matrice normalizzata
numero_righe<-nrow(LR.data)
numero_colonne<-ncol(LR.data)
matr.norm<-matrix(0,nrow=numero_righe,ncol=numero_colonne)

#4b)

for (i in (1:numero_colonne))
 {matr.norm[,i]<-medie.riga[matrice.posizioni[,i]]
  }
###############################################################
#normalizzo e faccio grafico boxplot
X11()
boxplot(as.data.frame(matr.norm),ylim=c(-6,6))
title("Boxplot di tutti gli array normalizzati")

#3)fare il qq plot di ogni array normalizzato rispetto al primo array normalizzato

X11()
par(mfrow=c(num_array/2,num_array/4))
for (i in (1:8))
{
 
  qqplot(matr.norm[,1],matr.norm[,i],xlim=c(-6,6),ylim=c(-6,6))
  title(paste("array",i,"vs array 1 (versione normalizzata)"))
  abline(0,1,col=2) 
}


il problema e' quando chiamo la funzione che invece ho creato:
la funzione e':

##################################################
norm_quantile<-function(log_ratio)

#1)creo una nuova matrice con gli elementi della prima ordinati epr colonne

matrice.ordinata<-apply(log_ratio,2,sort)

#2)creo una nuova matrice che memorizzi l'ordinamento 

matrice.posizioni<-apply(log_ratio,2,rank)

#3)costruisco vettore contenente media riga per riga

medie.riga<-apply(log_ratio,1,mean)

#4)
#4a)inizializzo la matrice normalizzata
numero_righe<-nrow(log_ratio)
numero_colonne<-ncol(log_ratio)
matr.norm<-matrix(0,nrow=numero_righe,ncol=numero_colonne)

#4b)

for (i in (1:numero_colonne))
 {matr.norm[,i]<-medie.riga[matrice.posizioni[,i]]
  }

return(matr.norm)
########


quando la carico nel workspace mi da:
source("norm_quant.R")
Errore in apply(log_ratio, 2, rank) : oggetto "log_ratio" non trovato

Scusate il disturbo e grazie in anticipo!!!!!!!


nota del moderatore: ho splittato la discussione e cambiato il titolo. Per favore non mischiamo troppe domande nello stesso topic, si crea confusione!

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 23 marzo 2010 : 18:44:48  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
hmmmm mancano delle graffe attorno alla funzione

norm_quantile<-function(log_ratio)
{
...
...
}

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

omar83
Nuovo Arrivato



7 Messaggi

Inserito il - 24 marzo 2010 : 12:22:11  Mostra Profilo  Visita l'Homepage di omar83 Invia a omar83 un Messaggio Privato  Rispondi Quotando
Grazie mille! non sapete quanto tempo ci ho perso...che pivello...
Torna all'inizio della Pagina

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 24 marzo 2010 : 13:10:34  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Eheh, spesso sono gli errori più banali che ti fanno perdere più tempo!

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina
  Discussione  

Quanto è utile/interessante questa discussione:

 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
Vai a:
MolecularLab.it © 2003-18 MolecularLab.it Torna all'inizio della Pagina