Valid XHTML     Valid CSS2    


        #  (gH)   -_-  countsites.r  ;  TimeStamp (unix) : 26 Juin 2013 vers 16:57
        
        # source("statgh.r")
        
        library(hash)
        library(lubridate)
        
        ##############################################################################
        
        countSites <- function(rep1="",rep2="") {
        
        ##############################################################################
        
           if (missing(rep1) | (rep1=="")) {
             cat(" counSites() : fusion de fichiers txt pour compter les sites \n\n")
             cat("syntaxe : countSites(rep1_longevity,rep2_network) \n")
             cat("exemple : countSites(\"results_longevity_module\",\"results_network\") \n")
             cat("\n")
             cat("le mieux est d'exécuter cette fonction dans le répertoire parent de ces deux répertoires\n\n")
             return("")
           } # fin d'aide
        
           tdeb <- Sys.time()
        
           # ---------------------------------------------------------------------------
        
           cat("\n\n")
           cat("COMPTAGE DES SITES dans les répertoires ",rep1," et ",rep2)
           cat("\n\n")
        
           # ---------------------------------------------------------------------------
        
           nomf1 <- "longevity.csv"
           nomf2 <- "network.csv"
           nomf3 <- "global.csv"
           nomf4 <- "tglobal.csv"
        
           tdf1  <- compteFichiers(rep1)
           tdf2  <- compteFichiers(rep2)
        
           # ---------------------------------------------------------------------------
        
           cnt1  <- compteSite(tdf1,rep1,"L")
           cnt2  <- compteSite(tdf2,rep2,"N")
        
           # ---------------------------------------------------------------------------
        
           cat("\n",format(Sys.time(),"%X")," Fusion...\n")
           cnt3  <- merge(cnt1,cnt2,by="site",all.x=TRUE,all.y=TRUE)
           cnt3[ is.na(cnt3) ] <- 0
           cnt4  <- t(cnt3[,-1])
           colnames(cnt4)  <- cnt3[,1]
        
           # ---------------------------------------------------------------------------
        
           write.csv(x=cnt1,file=nomf1,row.names=FALSE)
           write.csv(x=cnt2,file=nomf2,row.names=FALSE)
           write.csv(x=cnt3,file=nomf3,row.names=FALSE)
           write.csv(x=cnt4,file=nomf4,row.names=TRUE)
        
           cat("\n")
           cat("FIN DE COMPTAGE DES SITES dans les répertoires ",rep1," et ",rep2,"\n\n")
           tfin <- Sys.time()
           cat(" durée : ",as.duration(tfin-tdeb)," secondes entre ",format(tdeb,"%X")," et ",format(tfin, "%X"))
           cat("\n")
           cat("\n")
           cat(" Fichiers résultats : ",nomf1,dims(cnt1),", ",nomf2,dims(cnt2),",\n ",nomf3,dims(cnt3)," et ",nomf4,dims(cnt4),"\n")
        
        } # fin de fonction countSites
        
        ##############################################################################
        ##############################################################################
        
        fichiersTxt <- function(rep=".") {
        
        ##############################################################################
        
           fs  <- paste("/tmp/liste.",runif(1,1,10**8),sep="")
           cmd <- paste("(cd ",rep," ; ls *.txt | sort -n > ",fs," ) ",sep="")
           # cat(cmd,"\n")
           system(cmd)
        
           return(as.data.frame(read.table(fs,as.is=c(1))))
        
        } # fin de fonction fichiersTxt
        
        ##############################################################################
        
        compteFichiers <- function(rep) {
        
        ##############################################################################
        
           tdf <- fichiersTxt(rep)
           nbf <- nrow(tdf)
           cat(" il y a ",sprintf("%4d",nbf)," fichiers .txt dans ",rep,"\n")
        
           return(tdf)
        
        } # fin de fonction compteSite
        
        ##############################################################################
        
        tdm2df <- function(tdm,nomcol) {
        
        ##############################################################################
        
          leDf           <- as.data.frame(matrix(nrow=nrow(tdm),ncol=2))
          colnames(leDf) <- c("site",nomcol)
          leDf[,1]       <- row.names(tdm)
          leDf[,2]       <- tdm[1]
        
          return(leDf)
        
        } # fin de fonction tdm2df
        
        ##############################################################################
        
        compteSite <- function(tdf,rep,inirep) {
        
        ##############################################################################
        
           cat("\n")
           nbf <- nrow(tdf)
           cat(" Traitement des ",sprintf("%4d",nbf)," fichiers .txt dans ",rep,"\n")
           for (idf in (1:nbf)) {
               leFichier  <- tdf[idf,1]
               nomFichier <- paste(rep,"/",leFichier,sep="")
               cat("   fichier ",sprintf("%5d",idf)," / ",nbf," : ", leFichier,"\n")
               lesmots <- sitesVus(nomFichier)
               if (lesmots=="") {
                  cat("           pas de site vu\n")
               } else {
                  # cat(" on comptabilise les mots de ",lesmots,"\n")
                  tdmc      <- analexies(lesmots,FALSE,FALSE,FALSE)$tmots
                  idFichier <- paste(inirep,"_",leFichier,sep="")
                  tdmcDf    <- tdm2df(tdmc,idFichier)
                  if (idf==1) {
                    cntSites <- tdmcDf
                  } else {
                    cntSites <- merge(cntSites,tdmcDf,by="site",all.x=TRUE,all.y=TRUE)
                  } # fin si
               } # fin si
           } # fin pour idf
           cat("\n")
        
           # merge produit des NA au lieu de 0, donc :
        
           cntSites[ is.na(cntSites) ] <- 0
        
           return(cntSites)
        
        } # fin de fonction compteSite
        
        ##############################################################################
        
        sitesVus <- function(unFichier) {
        
        ##############################################################################
        
        # on analyse unFichier, produit par PLACE (http://www.dna.affrc.go.jp/PLACE/index.html)
        # le premier site est indiqué après une ligne de "_"
        # lorsqu'on voit plusieurs "--" qui se suivent, il n'y a plus de site à lire
        # chaque site correspond au premier mot de la ligne
        
        texte  <- ""
        lignes <- readLines(unFichier)
        nbligs <- length(lignes)
        sites  <- 0
        
        for (idl in (1:nbligs)) {
          laLigne <- lignes[idl]
          if (nchar(laLigne)>0) {
             if (substr(laLigne,1,5)=="-----") { sites <- 0 }
             if (sites==1) {
               mots <- strsplit(laLigne," ")
               mot1 <- mots[[1]][1]
               # cat(idl," : on retient juste ",mot1," dans ",laLigne,"\n")
               texte <- paste(texte,mot1)
             } # fin si
             if (substr(laLigne,1,5)=="_____") { sites <- 1 }
         } # fin si
        } # fin pour idl
        
        # print(texte)
        
        return(texte)
        
        } # fin de fonction sitesVus
        
        ##############################################################################
        
        ##############################################################################
        ##############################################################################
        
        # countSites("testmo","testne")
        # cat("\n")
        countSites("results_longevity_module","results_network")
        
        

 

 

retour gH    Retour à la page principale de   (gH)