# (gH) -_- art07.r ; TimeStamp (unix) : 01 Juillet 2013 vers 14:28
library(beanplot) # pour beanplot, forcément !
library(stringr) # pour str_locate
load("article3.Rdata") # le df est art3
source("art07_inc.r",encoding="latin1") # qui contient la fonction decritQTparFacteurArt3
lesGroupes <- c("Pool1","Pool2","Pool3","WHy","Class8","IDP","FS")
nbg <- length(lesGroupes)
pdv <- 2:86 # col 1 : identifiant de la protéine ; col 87 : numéro de groupe
nomc <- colnames(art3)
vars <- 2:15 # tableau des médianes,
nblm <- 1+nbg # seulement 14 variables
#################################################################
# Propriétés des séquences d'acides aminés issues du site PROTPC
#
# http://forge.info.univ-angers.fr/~gh/wstat/Protpc/
#
# on analyse les colonnes 02 à 15, de LENGTH à MW.LENGTH
# on analyse les colonnes 16 à 35, de CNTA à CNTY
# on analyse les colonnes 36 à 55, de pctA à pctY
# on analyse les colonnes 56 à 75, de pctA.Unip à pctY.Unip
# on analyse les colonnes 76 à 86, de D.E à C.F.Y.W
#################################################################
# liste des variables pour lesquelles beanplot n'est pas possible
nobp <- c("LENGTH","cntC","cntW","pctC","pctW","pctC.Unip","pctW.Unip")
# table de correspondance entre nom de colonne R et vrai nom de colonne
vraiNom <-c(
"MW.LENGTH", "MW/LENGTH",
"C.W", "C+W",
"D.E", "D+E",
"K.R", "K+R",
"N.Q", "N+Q",
"S.T", "S+T",
"F.W.Y", "F+W+Y",
"D.E.K.R", "D+E+K+R",
"D.E.K.R.1", "D+E-K-R",
"A.I.L.V", "A+I+L+V",
"R.E.S.P", "R+E+S+P",
"C.F.Y.W", "C+F+Y+W"
) # fin de vraiNom
# tableau des p-values par variable
matRes <- matrix(nrow=length(pdv),ncol=2) # matrice des résultats
row.names(matRes) <- nomc[pdv]
colnames(matRes) <- c("p ANOVA","p KRUSKAL")
# tableau des valeurs médianes globale et par groupe
matMed <- matrix(nrow=nblm,ncol=length(vars))
row.names(matMed) <- c(lesGroupes,"global")
colnames(matMed) <- nomv[vars]
# tableau des interprétations des médianes en +1/ 0/-1
# on tolère une différence de eps=5 %
matMedInt <- matMed[(1:(nblm-1)),]
# boucle de traitement
for (idv in pdv) {
jdv <- idv -1 # car on commence à 2
laCol <- nomc[idv]
laVar <- art3[,idv]
bp <- TRUE
nbp <- " "
if (laCol %in% nobp) {
bp <- FALSE
nbp <- " (sans beanplot) "
} # fin si
nomOk <- laCol
if (!is.na(str_locate(laCol,"Unip")[1])) { nomOk <- sub("\\.","/",laCol) }
pdc <- which(laCol==vraiNom)
if (length(pdc)>0) { nomOk <- vraiNom[ pdc + 1 ] }
cats(paste("ANALYSE DE LA VARIABLE ",nomOk,nbp,sep=""))
ba <- (-1)
if (laCol=="FI") { ba <- 0 }
nomgr <- paste("art3_",laCol,".png",sep="")
gr(nomgr)
res <- decritQTparFacteurArt3(laCol,laVar," ","group",art3$group,lesGroupes,TRUE,beanp=bp,barre=ba,vraiNom=nomOk)
dev.off()
nomps <- paste("art3_",laCol,".eps",sep="")
postscript(nomps)
res <- decritQTparFacteurArt3(laCol,laVar," ","group",art3$group,lesGroupes,TRUE,beanp=bp,barre=ba,vraiNom=nomOk,calc=FALSE)
dev.off()
matRes[jdv,] <- res # stockage des p-values
cat(" ok pour ",nomgr," et ",nomps," variable ",nomOk,"\n")
# gestion des médianes pour les premières variables seulement
if (idv<=15) {
globMed <- median(laVar)
matMed[nblm,jdv] <- globMed
meds <- tapply(X=laVar,INDEX=art3$group,FUN=median)
matMed[(1:nbg),jdv] <- meds
for (idg in (1:nbg)) {
dif <- (matMed[idg,jdv]-globMed)/abs(globMed)
if (abs(dif)<eps) {
matMedInt[idg,jdv] <- " 0" # noter l'espace devant zéro
} else {
if ((dif>= eps) & (dif>0)) { matMedInt[idg,jdv] <- "+1" }
if ((dif<=-eps) & (dif<0)) { matMedInt[idg,jdv] <- "-1" }
} # fin si
# cat("groupe ",idg,"global med ",matMed[nblm,idv]," groupe med ",matMed[idg,idv]," rel dif ",dif,"\n")
} # fin pour idg
} # fin si
} # fin pour idv
# affichage de la matrice des résultats pour les p-values
print(matRes)
# affichage de la matrice des médianes
print(matMed)
# affichage de la matrice des interprétations des médianes
print(matMedInt,quote=FALSE)
cat("relative tolerance: ",eps*100," % \n")
|