Está en la página 1de 7

Examen2013

 
Examen  Bioinformatica  –  Junio  2013  
Ingeniería  Biomédica-­‐Universitat  de  Barcelona  
Conéctate  al  campus  virtual  y  descarga  los  fichero  de  datos:  “data1.dat”  y  “data2.dat”.  
Descarga  también  los  scripts  de  las  prácticas  del  curso  para  su  consulta  durante  la  
realización  de  la  prueba.  Graba  los  ficheros  en  el  directorio  (carpeta)  “d:/temp”.  (Crea  
el  directorio  en  caso  de  que  no  exista  previamente).  
Tras  realizar  los  ejercicios  1  y  2  genera  un  documento  Word  que  incluya:  
1.   Justificación  y  optimización  del  procesado  realizado.  

2.   Las  gráficas  y/o  tablas  obtenidas  (Por  ej:  el  listado  final  con  la  localización  de  los  
picos  y  sus  intensidades).  

3.   Respuesta  a  las  cuestiones.  


Imprímelo  en  formato  pdf,  guardalo  con  tu  nombre  y  súbelo  al  campus  virtual.  Se  
habrá  definido  una  tarea  previamente  para  poder  subir  este  fichero.  

Ejercicio  1)  
Lee  el  fichero  de  datos  “data1.dat”  que  encontrarás  en  el  directorio  “d:/temp”.  
rawdat<-­‐read.table("data1.dat",sep=",")  

Los  datos  corresponden  a  un  fragmento  de  un  cromatograma.  El  fichero  contiene  dos  
columnas,  la  primera  es  el  tiempo  de  retención  (en  segundos)  y  la  segunda  es  la  
amplitud  del  cromatograma.  
Desarrolla  un  “script”  R  que  realice  los  siguientes  pasos:  
1.   Representa  gráficamente  la  señal  antes  de  cualquier  procesado.  

2.   Eliminación  del  ruido.  


3.   Corrección  de  la  línea  de  base  mediante  la  técnica  de  asymmetric  least  squares.  
Genera  un  gráfico  después  de  las  etapas  2,3  que  compare  las  señales  antes  y  después  
del  procesado.  
###  1)  RAWPLOT  
matplot(rawdat$V1,rawdat$V2,xlab  =  "Time(s)",ylab="Intensity",type  =  "l",
lty="dashed",col="gray")  
 
 
###  2)  NOISE  REDUCTION  
library("signal")  
Intfilt<-­‐sgolayfilt(rawdat$V2,5,31)  
lines(rawdat$V1,Intfilt,xlab  =  "Time(s)",ylab="Intensity",type  =  "l")  
 
 
###  3)  BASELINE  REMOVAL  
library("ptw")  
lines(rawdat$V1,Intfilt-­‐asysm(Intfilt,lambda  =  1E6,p=1E-­‐3),col='blue')  
lines(rawdat$V1,asysm(Intfilt,lambda  =  1E6,p=1E-­‐3),col='red',lty="dashed"
)  
legend("toplef",legend=c("Rawdata","Noisefiltered","Baselinerevomed","Bas
eline"),col=c("gray","black","blue","red"),lty=c("dashed","solid","solid"
,"dashed"))  

 
1)   ¿Que  tipo  de  ruido  contiene  la  señal?  Cómo  se  elimina  este  ruido.  
Ruido  de  base?,  y  picos  aleatorios?  Filtro  de  golay  -­‐‑-­‐‑>  polinomial  fit??  

EJERCICIO  2  
Lee  el  fichero  de  datos  “data2.dat”  que  encontrarás  en  el  directorio  “d:/temp”.  
rwdat2<-­‐read.table("data2.dat.txt",sep="")  
library("ChemometricsWithR")  

El  fichero  corresponde  a  las  concentraciones  (log(c))  de  un  conjunto  de  


biomarcadores  volátiles  que  permiten  diferenciar  entre  casos  control  y  casos  
condición.  El  fichero  contiene  30  columnas  (concentraciones  de  los  volátiles)  y  20  filas  
correspondientes  a  los  sujetos  analizados.  Las  10  primeras  filas  corresponde  a  sujetos  
control  y  las  filas  11-­‐‑20  corresponde  a  casos  condición.  Mediante  un  análisis  de  
componentes  principales  determina  si  es  posible  separar  las  dos  clases  y  que  
compuestos  contribuyen  más  a  esa  separación.  Realiza  un  script  R  que  realice  el  
siguiente  procesado.  

2.1  Centra  los  datos.  


rwdat2$class<-­‐c(rep("control",10),rep("disease",10))  
rwdat2$class<-­‐as.factor(rwdat2$class)  
is.factor(rwdat2$class)  

##  [1]  TRUE  

table(rwdat2$class)  

##    
##  control  disease    
##            10            10  

biomark.c<-­‐scale(rwdat2[,1:30],scale=FALSE)  
head(biomark.c)  

##                            V1                  V2                    V3                  V4                  V5                    


V6  
##  [1,]  -­‐1.2386256  -­‐0.6628731    1.56842872  -­‐1.2218157    1.1236777  -­‐2.739605
74  
##  [2,]    0.1350748    1.0072854    0.18725239    0.3125784  -­‐0.9931806  -­‐1.148948
14  
##  [3,]    0.7719049  -­‐0.1445814    0.07240399    1.0687105    0.2170203    1.538366
36  
##  [4,]    1.4431670    1.1794033    1.77466222    3.3507008  -­‐0.5724769  -­‐1.433782
84  
##  [5,]    1.9864659  -­‐0.8456630  -­‐1.15512963  -­‐0.6326373    0.4661677    1.056257
16  
##  [6,]    0.2004440  -­‐1.6263395    0.68332310    0.4135663  -­‐0.6408148    0.031263
22  
##                            V7                  V8                  V9                V10                V11                V12  
##  [1,]    3.6418377  -­‐0.3361824    0.5740026    0.4157524    0.9445415  -­‐11.378670  
##  [2,]    1.0909524  -­‐0.9114898    0.2250909  -­‐0.2457176    3.5369772    -­‐6.933204  
##  [3,]    1.7691587  -­‐1.8342989  -­‐1.5975952  -­‐0.2637743  -­‐4.6484865  -­‐10.979672  
##  [4,]  -­‐1.2157310    0.7193329    0.1961189  -­‐1.1987353    1.5935538  -­‐10.101988  
##  [5,]  -­‐0.4936647    0.4425521  -­‐0.4722435    1.0264410    0.5067377    -­‐9.700099  
##  [6,]  -­‐0.2534357    0.1381979  -­‐0.6533095  -­‐0.3843460  -­‐2.7461694  -­‐11.309817  
##                          V13                V14                V15                V16                  V17                  V
18  
##  [1,]  -­‐0.5358400  -­‐0.2544782  -­‐1.4449367  -­‐1.2842934  -­‐0.30627439    0.149846
59  
##  [2,]    1.1376785  -­‐0.8615439  -­‐2.5380406    0.7058281  -­‐0.33079609  -­‐1.178922
62  
##  [3,]  -­‐0.4718382  -­‐1.1597263  -­‐1.5732056  -­‐0.7223464  -­‐0.42445804    0.988951
58  
##  [4,]    2.0503311    2.8344068    0.3795438  -­‐0.1594821  -­‐0.06717506    0.285500
66  
##  [5,]    0.7442614    1.8808196    0.4429074    0.8129120  -­‐0.03623451    0.097207
91  
##  [6,]  -­‐0.2057032    0.4042007    0.5089910    1.3456350    0.81248617    0.513555
26  
##                          V19                V20                V21                  V22                  V23                    
V24  
##  [1,]  -­‐0.6189332  -­‐1.2018925    0.6425550  -­‐1.28317179  -­‐0.75273380    1.40246
8585  
##  [2,]    1.8065082    1.7203944  -­‐1.1567937    0.90818901    0.01775342  -­‐1.51604
3915  
##  [3,]  -­‐0.9954574    1.3164181  -­‐0.8251828    0.26909844    0.30603157  -­‐0.33939
3595  
##  [4,]  -­‐0.5661368  -­‐0.2876482  -­‐0.5985846  -­‐0.14643321    0.51859234    0.00235
2855  
##  [5,]  -­‐0.8161059  -­‐1.6860204  -­‐0.3430298    0.08520735  -­‐0.35688334    0.77001
8725  
##  [6,]  -­‐1.3224292  -­‐0.5231704  -­‐0.1379164  -­‐1.82909199  -­‐0.20751485  -­‐1.52265
6315  
##                          V25                V26                V27                V28                V29                V30  
##  [1,]    0.2947422  0.74817534    0.1978449  -­‐0.1316136    1.2616662  -­‐1.1367611  
##  [2,]    1.1224316  0.40141924  -­‐1.9102135  -­‐1.2581855    0.1335480  -­‐0.5409772  
##  [3,]    1.0385683  0.13371160    1.3425412    0.2315888    0.1168276    0.1251572  
##  [4,]  -­‐0.7765677  1.11966703    1.1686045    0.5224154    1.3820392  -­‐0.3446663  
##  [5,]    0.2180569  0.76861873    0.2259146    0.7204223  -­‐2.0482693    0.3056796  
##  [6,]  -­‐1.0980481  0.01273292    0.1470434  -­‐0.9763035  -­‐0.2746680    0.4131564  

2.2  Genera  un  modelo  PCA  con  los  datos.  Proyecta  los  resultados  en  las  tres  primeras  
dimensiones.  Gerera  los  gráficos  de  dispersión  (scoreplots)  en  las  tres  combinaciones  
(PC1  vs  PC2,  PC1  vs  PC3,  PC2  vs  PC3).  Utiliza  un  color  para  los  sujetos  1-­‐‑10  y  otro  
color  diferente  para  los  sujetos  11-­‐‑20.  ¿En  que  caso  la  separación  es  más  clara?  Que  
componente  principal  (loading)  es  el  más  discriminante?.  Representa  las  30  
componentes  de  este  autovector  y  determina  que  componentes  pueden  ser  los  
responsables  de  esta  separación.  Recuerda  que  el  modelo  PCA  no  es  supervisado,  por  
lo  tanto  no  es  necesario  separar  en  entrenamiento  y  validación.  
##  SCOREPLOT  PC1,PC2,PC3  
biomark.PCA<-­‐PCA(biomark.c)  
summary(biomark.PCA)  

##    
##  PCA  model  of  a  mean-­‐centered  matrix  of  20  by  30  
##  Number  of  PCs  to  cover  90  percent  of  the  variance:  7  
##    
##                          Var  Cumul.  var.  
##  PC  1    68.838102        68.83810  
##  PC  2      9.256202        78.09430  
##  PC  3      3.302788        81.39709  
##  PC  4      2.910604        84.30770  
##  PC  5      2.780546        87.08824  
##  PC  10    1.209134        95.70398  

head(biomark.PCA$scores[,1:3])  

##                      PC  1              PC  2              PC  3  


##  [1,]  11.706586    0.7898733    0.8429081  
##  [2,]    7.467233  -­‐2.9470305    3.5287908  
##  [3,]  10.459935    6.6797720    0.5641894  
##  [4,]  10.295739  -­‐1.0416998  -­‐0.5257710  
##  [5,]    9.620439    0.1495768  -­‐2.0608405  
##  [6,]  10.970180    3.9656173  -­‐1.5495282  

pairs(biomark.PCA$scores[,1:3],col=c(rep(2,10),rep(3,10)),pch=c(rep(1,10)
,rep(2,10)))  

 
##  Analisis  del  PC1  
matplot(biomark.PCA$loadings[,1],type='h',lty=1:3,  lwd  =  1,  xlab  =  "VARIA
BLES:CHEMICALS",  ylab="LOADINGS")  
title(main="PC  1"  )  
matpoints(biomark.PCA$loadings[,1],col='red',type='p',lty=1,  lwd  =  2,  pch
=c(1,2,3))  
axis(side  =1,  at=seq(1,30)  )  

 
###  ORDENAMOS  DE  MAYOR  A  MENOR  POR  DISCRIMINACION  
vec<-­‐sort(abs(biomark.PCA$loadings[,1]),decreasing  =  TRUE)  
vec  

##                    V12                    V11                    V13                      V6                    V27    


##  0.9840406003  0.0914541901  0.0636343689  0.0549659176  0.0475270494    
##                      V7                    V21                    V15                    V30                      V5    
##  0.0466894184  0.0383423805  0.0374317612  0.0373232740  0.0364644880    
##                      V9                      V2                      V3                      V1                    V23    
##  0.0299943725  0.0285301406  0.0268190398  0.0244621235  0.0232139194    
##                    V19                    V16                    V17                    V10                      V8    
##  0.0221627179  0.0202671260  0.0191055491  0.0185474488  0.0180610353    
##                    V29                    V22                    V14                      V4                    V20    
##  0.0149474676  0.0123947658  0.0121710973  0.0083352150  0.0071803071    
##                    V26                    V28                    V24                    V25                    V18    
##  0.0048077151  0.0035680681  0.0026062279  0.0007703705  0.0003960420  

barplot(vec,names.arg  =  names(vec),axisnames  =  )  
 
##  V12  es  la  componente  que  más  aporta.  

También podría gustarte