...
[iramuteq] / PrintRScript.py
index d81d070..c30276f 100644 (file)
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 #Author: Pierre Ratinaud
 #Copyright (c) 2008-2011 Pierre Ratinaud
-#Lisense: GNU/GPL
+#License: GNU/GPL
 
 import tempfile
 from chemins import ffr
@@ -293,7 +293,7 @@ def RchdQuest(DicoPath, RscriptPath, nbcl = 10, mincl = 10):
     chd.result<-Rchdquest("%s","%s","%s", nbt = nbt, mincl = mincl)
     n1 <- chd.result$n1
     classeuce1 <- chd.result$cuce1
-    """ % (DicoPath['mat01'], DicoPath['listeuce1'], DicoPath['uce'])
+    """ % (DicoPath['mat01.csv'], DicoPath['listeuce1'], DicoPath['uce'])
     
     txt += """
     tree_tot1 <- make_tree_tot(chd.result$chd)
@@ -390,15 +390,15 @@ write.csv2(gbcluster,file="%s")
     xyminmax <- PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab)
     """ % (DictChdTxtOut['AFC2DL_OUT'])
         txt += """
-    PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=debsup, fin=(debet-1), xlab = xlab, ylab = ylab, xmin = xyminmax$xminmax[1], xmax = xyminmax$xminmax[2], ymin = xyminmax$yminmax[1], ymax = xyminmax$yminmax[2])
+    PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=debsup, fin=(debet-1), xlab = xlab, ylab = ylab, xmin = xyminmax$xminmax[1], xmax = xyminmax$xminmax[2], ymin = xyminmax$yminmax[1], ymax = xyminmax$yminmax[2], active=FALSE)
     """ % (DictChdTxtOut['AFC2DSL_OUT'])
         txt += """
         if ((fin - debet) > 2) {
-    PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=debet, fin=fin, xlab = xlab, ylab = ylab, xmin = xyminmax$xminmax[1], xmax = xyminmax$xminmax[2], ymin = xyminmax$yminmax[1], ymax = xyminmax$yminmax[2])
+    PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=debet, fin=fin, xlab = xlab, ylab = ylab, xmin = xyminmax$xminmax[1], xmax = xyminmax$xminmax[2], ymin = xyminmax$yminmax[1], ymax = xyminmax$yminmax[2], active = FALSE)
         }
     """ % (DictChdTxtOut['AFC2DEL_OUT'])
         txt += """
-    PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", col=TRUE, what='coord', xlab = xlab, ylab = ylab, xmin = xyminmax$xminmax[1], xmax = xyminmax$xminmax[2], ymin = xyminmax$yminmax[1], ymax = xyminmax$yminmax[2])
+    PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", col=TRUE, what='coord', xlab = xlab, ylab = ylab, xmin = xyminmax$xminmax[1], xmax = xyminmax$xminmax[2], ymin = xyminmax$yminmax[1], ymax = xyminmax$yminmax[2], active=FALSE)
     """ % (DictChdTxtOut['AFC2DCL_OUT'])
 #        txt += """
  #   PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab)
@@ -848,15 +848,24 @@ class PrintSimiScript(PrintRScript) :
         if self.parametres['type_graph'] == 1 : 
             graphnb = 1
             type = 'nplot'
-            dirout = os.path.dirname(self.pathout['mat01'])
+            dirout = os.path.dirname(self.pathout['mat01.csv'])
             while os.path.exists(os.path.join(dirout,'graph_simi_'+str(graphnb)+'.png')):
                 graphnb +=1
             self.filename = ffr(os.path.join(dirout,'graph_simi_'+str(graphnb)+'.png'))
         if self.parametres['type_graph'] == 2 : type = 'rgl'
         if self.parametres['type_graph'] == 3 : 
             graphnb = 1
+            type = 'web'
+            dirout = os.path.dirname(self.pathout['mat01.csv'])
+            while os.path.exists(os.path.join(dirout,'web_'+str(graphnb))):
+                graphnb +=1
+            self.filename = ffr(os.path.join(dirout,'web_'+str(graphnb)))
+            os.mkdir(self.filename)        
+            self.filename = os.path.join(self.filename, 'gexf.gexf')
+        if self.parametres['type_graph'] == 4 : 
+            graphnb = 1
             type = 'rglweb'
-            dirout = os.path.dirname(self.pathout['mat01'])
+            dirout = os.path.dirname(self.pathout['mat01.csv'])
             while os.path.exists(os.path.join(dirout,'webrgl_'+str(graphnb))):
                 graphnb +=1
             self.filename = ffr(os.path.join(dirout,'webrgl_'+str(graphnb)))
@@ -1045,7 +1054,7 @@ class PrintSimiScript(PrintRScript) :
                 vertex.size <- NULL
                 """
         else :
-            print self.parametres
+            #print self.parametres
             if (self.parametres['type'] == 'clustersimitxt' and self.parametres.get('tmpchi', False)) or (self.parametres['type'] == 'simimatrix' and 'tmpchi' in self.parametres): 
                 txt += """
                 lchi <- read.table("%s")
@@ -1140,6 +1149,12 @@ class ProtoScript(PrintRScript) :
         self.sources([self.analyse.parent.RscriptsPath['Rgraph'], self.analyse.parent.RscriptsPath['prototypical.R']])
         self.packages(['wordcloud'])
         txt = """
+        errorn <- function(x) {
+            qnorm(0.975)*sd(x)/sqrt(lenght(n))
+        }
+        errort <- function(x) {
+            qt(0.975,df=lenght(x)-1)*sd(x)/sqrt(lenght(x))
+        }
         mat <- read.csv2("%s", header = FALSE, row.names=1, sep='\t', quote='"', dec='.')
         open_file_graph("%s",height=800, width=1000)
         prototypical(mat, mfreq = %s, mrank = %s, cloud = FALSE, cexrange=c(1,2.4), cexalpha= c(0.4, 1))
@@ -1155,4 +1170,25 @@ class ExportAfc(PrintRScript) :
         self.packages(['rgexf'])
         txt = """
         """
-         
+
+class TgenSpecScript(PrintRScript):
+    def make_script(self):
+        self.packages(['textometry'])
+        txt = """
+        tgen <- read.csv2("%s", row.names = 1, sep = '\\t')
+        """ % self.parametres['tgeneff']
+        txt += """
+        tot <- tgen[nrow(tgen), ]
+        result <- NULL
+        tgen <- tgen[-nrow(tgen),]
+        for (i in 1:nrow(tgen)) {
+            mat <- rbind(tgen[i,], tot - tgen[i,])
+            specmat <- specificities(mat)
+            result <- rbind(result, specmat[1,])
+        }
+        colnames(result) <- colnames(tgen)
+        row.names(result) <- rownames(tgen)
+        write.table(result, file = "%s", sep='\\t', col.names = NA)
+        """ % self.pathout['tgenspec.csv']
+        self.add(txt)
+