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 à la page principale de (gH)