Valid XHTML     Valid CSS2    

Listing du fichier protpc_v2.r

 

00001     # (gH) -_- art07.r ; TimeStamp (unix) : 01 Juillet 2013 vers 14:28
00002     
00003     library(beanplot) # pour beanplot, forcément !
00004     library(stringr) # pour str_locate
00005     load("article3.Rdata") # le df est art3
00006     
00007     source("art07_inc.r",encoding="latin1") # qui contient la fonction decritQTparFacteurArt3
00008     
00009     lesGroupes <- c("Pool1","Pool2","Pool3","WHy","Class8","IDP","FS")
00010     nbg <- length(lesGroupes)
00011     
00012     pdv <- 2:86 # col 1 : identifiant de la protéine ; col 87 : numéro de groupe
00013     nomc <- colnames(art3)
00014     
00015     vars <- 2:15 # tableau des médianes,
00016     nblm <- 1+nbg # seulement 14 variables
00017     
00018     #################################################################
00019     
00020     # Propriétés des séquences d'acides aminés issues du site PROTPC
00021     #
00022     # http://forge.info.univ-angers.fr/~gh/wstat/Protpc/
00023     #
00024     
00025     # on analyse les colonnes 02 à 15, de LENGTH à MW.LENGTH
00026     # on analyse les colonnes 16 à 35, de CNTA à CNTY
00027     # on analyse les colonnes 36 à 55, de pctA à pctY
00028     # on analyse les colonnes 56 à 75, de pctA.Unip à pctY.Unip
00029     # on analyse les colonnes 76 à 86, de D.E à C.F.Y.W
00030     
00031     #################################################################
00032     
00033     # liste des variables pour lesquelles beanplot n'est pas possible
00034     
00035     nobp <- c("LENGTH","cntC","cntW","pctC","pctW","pctC.Unip","pctW.Unip")
00036     
00037     # table de correspondance entre nom de colonne R et vrai nom de colonne
00038     
00039     vraiNom <-c(
00040      "MW.LENGTH", "MW/LENGTH",
00041      "C.W", "C+W",
00042      "D.E", "D+E",
00043      "K.R", "K+R",
00044      "N.Q", "N+Q",
00045      "S.T", "S+T",
00046      "F.W.Y", "F+W+Y",
00047      "D.E.K.R", "D+E+K+R",
00048      "D.E.K.R.1", "D+E-K-R",
00049      "A.I.L.V", "A+I+L+V",
00050      "R.E.S.P", "R+E+S+P",
00051      "C.F.Y.W", "C+F+Y+W"
00052     ) # fin de vraiNom
00053     
00054     # tableau des p-values par variable
00055     
00056     matRes <- matrix(nrow=length(pdv),ncol=2) # matrice des résultats
00057     row.names(matRes) <- nomc[pdv]
00058     colnames(matRes) <- c("p ANOVA","p KRUSKAL")
00059     
00060     # tableau des valeurs médianes globale et par groupe
00061     
00062     matMed <- matrix(nrow=nblm,ncol=length(vars))
00063     row.names(matMed) <- c(lesGroupes,"global")
00064     colnames(matMed) <- nomv[vars]
00065     
00066     # tableau des interprétations des médianes en +1/ 0/-1
00067     # on tolère une différence de eps=5 %
00068     
00069     matMedInt <- matMed[(1:(nblm-1)),]
00070     
00071     # boucle de traitement
00072     
00073     for (idv in pdv) {
00074     
00075      jdv <- idv -1 # car on commence à 2
00076      laCol <- nomc[idv]
00077      laVar <- art3[,idv]
00078      bp <- TRUE
00079      nbp <- " "
00080      if (laCol %in% nobp) {
00081      bp <- FALSE
00082      nbp <- " (sans beanplot) "
00083      } # fin si
00084     
00085      nomOk <- laCol
00086      if (!is.na(str_locate(laCol,"Unip")[1])) { nomOk <- sub("\\.","/",laCol) }
00087      pdc <- which(laCol==vraiNom)
00088      if (length(pdc)>0) { nomOk <- vraiNom[ pdc + 1 ] }
00089      cats(paste("ANALYSE DE LA VARIABLE ",nomOk,nbp,sep=""))
00090     
00091      ba <- (-1)
00092      if (laCol=="FI") { ba <- 0 }
00093     
00094      nomgr <- paste("art3_",laCol,".png",sep="")
00095      gr(nomgr)
00096      res <- decritQTparFacteurArt3(laCol,laVar," ","group",art3$group,lesGroupes,TRUE,beanp=bp,barre=ba,vraiNom=nomOk)
00097      dev.off()
00098     
00099      nomps <- paste("art3_",laCol,".eps",sep="")
00100      postscript(nomps)
00101      res <- decritQTparFacteurArt3(laCol,laVar," ","group",art3$group,lesGroupes,TRUE,beanp=bp,barre=ba,vraiNom=nomOk,calc=FALSE)
00102      dev.off()
00103     
00104      matRes[jdv,] <- res # stockage des p-values
00105      cat(" ok pour ",nomgr," et ",nomps," variable ",nomOk,"\n")
00106     
00107      # gestion des médianes pour les premières variables seulement
00108     
00109      if (idv<=15) {
00110     
00111      globMed <- median(laVar)
00112      matMed[nblm,jdv] <- globMed
00113      meds <- tapply(X=laVar,INDEX=art3$group,FUN=median)
00114      matMed[(1:nbg),jdv] <- meds
00115     
00116      for (idg in (1:nbg)) {
00117      dif <- (matMed[idg,jdv]-globMed)/abs(globMed)
00118      if (abs(dif)<eps) {
00119      matMedInt[idg,jdv] <- " 0" # noter l'espace devant zéro
00120      } else {
00121      if ((dif>= eps) & (dif>0)) { matMedInt[idg,jdv] <- "+1" }
00122      if ((dif<=-eps) & (dif<0)) { matMedInt[idg,jdv] <- "-1" }
00123      } # fin si
00124      # cat("groupe ",idg,"global med ",matMed[nblm,idv]," groupe med ",matMed[idg,idv]," rel dif ",dif,"\n")
00125      } # fin pour idg
00126     
00127      } # fin si
00128     
00129     } # fin pour idv
00130     
00131     # affichage de la matrice des résultats pour les p-values
00132     
00133     print(matRes)
00134     
00135     # affichage de la matrice des médianes
00136     
00137     print(matMed)
00138     
00139     # affichage de la matrice des interprétations des médianes
00140     
00141     print(matMedInt,quote=FALSE)
00142     cat("relative tolerance: ",eps*100," % \n")

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)