From 2ffa9388c45dce689bb45c1cf6c7ad81d2636409 Mon Sep 17 00:00:00 2001
From: Pierre <ratinaud@univ-tlse2.fr>
Date: Thu, 21 Mar 2013 16:37:43 +0100
Subject: [PATCH] lot of things :)

---
 PrintRScript.py                 |  14 +
 Rscripts/Rgraph.R               | 108 +++++++-
 Rscripts/prototypical.R         |  65 +++++
 analysematrix.py                |   2 +-
 chemins.py                      |  17 ++
 dialog.py                       | 116 +++++++++
 dictionnaires/expression_gr.txt |   0
 dictionnaires/lexique_gr.txt    | 558 ++++++++++++++++++++++++++++++++++++++++
 images/splash.png               | Bin 43358 -> 43305 bytes
 images/splash.svg               |   8 +-
 iracmd.py                       |   5 +-
 iramuteq.py                     |  15 +-
 openanalyse.py                  |   8 +-
 tabverges.py                    |  88 +++++--
 textwordcloud.py                |  10 +-
 15 files changed, 970 insertions(+), 44 deletions(-)
 create mode 100644 Rscripts/prototypical.R
 create mode 100644 dictionnaires/expression_gr.txt
 create mode 100644 dictionnaires/lexique_gr.txt

diff --git a/PrintRScript.py b/PrintRScript.py
index 589aabf..636fe9e 100644
--- a/PrintRScript.py
+++ b/PrintRScript.py
@@ -1117,3 +1117,17 @@ class WordCloudRScript(PrintRScript) :
         """ % (ffr(self.analyse.pathout['actives_eff.csv']), ffr(self.analyse.pathout['selected.csv']), self.parametres['maxword'], ffr(self.parametres['graphout']), self.parametres['width'], self.parametres['height'], bg_col, self.parametres['maxcex'], self.parametres['mincex'], txt_col)
         self.add(txt)
         self.write()
+
+class ProtoScript(PrintRScript) :
+    def make_script(self) :
+        self.sources([self.analyse.parent.RscriptsPath['Rgraph'], self.analyse.parent.RscriptsPath['prototypical.R']])
+        self.packages(['wordcloud'])
+        txt = """
+        mat <- read.csv2("%s", header = FALSE, row.names=1, sep='\t', quote='"', dec='.')
+        open_file_graph("%s",height=600, width=600)
+        prototypical(mat, mfreq = %s, mrank = %s, cloud = FALSE, cexrange=c(1,2.4), cexalpha= c(0.4, 1))
+        dev.off()
+        """ % (self.analyse.pathout['table.csv'], self.analyse.pathout['proto.png'], self.parametres['limfreq'], self.parametres['limrang'])
+        self.add(txt)
+        self.write()
+
diff --git a/Rscripts/Rgraph.R b/Rscripts/Rgraph.R
index 4d94e35..e947a40 100644
--- a/Rscripts/Rgraph.R
+++ b/Rscripts/Rgraph.R
@@ -477,16 +477,120 @@ make_afc_graph <- function(toplot, classes, clnb, xlab, ylab, cex.txt = NULL, le
     }
 }
 
+plot.dendro.prof <- function(tree, classes, chisqtable, nbbycl = 60, type.dendro = "phylogram", from.cmd = FALSE, bw = FALSE, lab = NULL) {
+    library(ape)
+    library(wordcloud)
+    classes<-classes[classes!=0]
+	classes<-as.factor(classes)
+	sum.cl<-as.matrix(summary(classes, maxsum=1000000))
+	sum.cl<-(sum.cl/colSums(sum.cl)*100)
+	sum.cl<-round(sum.cl,2)
+	sum.cl<-cbind(sum.cl,as.matrix(100-sum.cl[,1]))
+    sum.cl <- sum.cl[,1]
+    tree.order<- as.numeric(tree$tip.label)
+	vec.mat<-NULL
+    row.keep <- select.chi.classe(chisqtable, nbbycl)
+    toplot <- chisqtable[row.keep,]
+    lclasses <- list()
+    for (classe in 1:length(sum.cl)) {
+       ntoplot <- toplot[,classe]
+       ntoplot <- ntoplot[order(ntoplot, decreasing = TRUE)]
+       ntoplot <- round(ntoplot, 0)
+       ntoplot <- ntoplot[1:nbbycl]
+       #ntoplot <- ntoplot[order(ntoplot)]
+       #ntoplot <- ifelse(length(ntoplot) > nbbycl, ntoplot[1:nbbycl], ntoplot)
+       lclasses[[classe]] <- ntoplot
+    }
+    vec.mat <- matrix(1, nrow = 2, ncol = length(sum.cl))
+    vec.mat[2,] <- 2:(length(sum.cl)+1)
+    layout(matrix(vec.mat, nrow=2, ncol=length(sum.cl)),heights=c(1,4))
+    if (! bw) {
+        col <- rainbow(length(sum.cl))[as.numeric(tree$tip.label)]
+        colcloud <- rainbow(length(sum.cl))
+    }
+    par(mar=c(1,0,0,0))
+    label.ori<-tree[[2]]
+    if (!is.null(lab)) {
+        tree$tip.label <- lab
+    } else {
+	    tree[[2]]<-paste('classe ',tree[[2]])
+    }
+	plot.phylo(tree,label.offset=0.1,tip.col=col, type=type.dendro, direction = 'downwards', srt=90, adj = 0)
+    for (i in tree.order) {
+        par(mar=c(0,0,1,0),cex=0.7)
+        #wordcloud(names(lclasses[[i]]), lclasses[[i]], scale = c(1.5, 0.2), random.order=FALSE, colors = colcloud[i])
+        yval <- 1.1
+        plot(0,0,pch='', axes = FALSE)
+        vcex <- norm.vec(lclasses[[i]], 0.8, 3)
+        for (j in 1:length(lclasses[[i]])) {
+            yval <- yval-(strheight( names(lclasses[[i]])[j],cex=vcex[j])+0.02)
+            text(-0.9, yval, names(lclasses[[i]])[j], cex = vcex[j], col = colcloud[i], adj=0)
+        }
+    }
+    
+}
+
+plot.dendro.cloud <- function(tree, classes, chisqtable, nbbycl = 60, type.dendro = "phylogram", from.cmd = FALSE, bw = FALSE, lab = NULL) {
+    library(wordcloud)
+    library(ape)
+    classes<-classes[classes!=0]
+	classes<-as.factor(classes)
+	sum.cl<-as.matrix(summary(classes, maxsum=1000000))
+	sum.cl<-(sum.cl/colSums(sum.cl)*100)
+	sum.cl<-round(sum.cl,2)
+	sum.cl<-cbind(sum.cl,as.matrix(100-sum.cl[,1]))
+    sum.cl <- sum.cl[,1]
+    tree.order<- as.numeric(tree$tip.label)
+	vec.mat<-NULL
+    row.keep <- select.chi.classe(chisqtable, nbbycl)
+    toplot <- chisqtable[row.keep,]
+    lclasses <- list()
+    for (classe in 1:length(sum.cl)) {
+       ntoplot <- toplot[,classe]
+       ntoplot <- ntoplot[order(ntoplot, decreasing = TRUE)]
+       ntoplot <- round(ntoplot, 0)
+       ntoplot <- ntoplot[1:nbbycl]
+       ntoplot <- ntoplot[order(ntoplot)]
+       #ntoplot <- ifelse(length(ntoplot) > nbbycl, ntoplot[1:nbbycl], ntoplot)
+       lclasses[[classe]] <- ntoplot
+    }
+	for (i in 1:length(sum.cl)) vec.mat<-append(vec.mat,1)
+	v<-2
+	for (i in 1:length(sum.cl)) {
+		vec.mat<-append(vec.mat,v)
+		v<-v+1
+	}    
+    layout(matrix(vec.mat,length(sum.cl),2),widths=c(1,2))
+    if (! bw) {
+        col <- rainbow(length(sum.cl))[as.numeric(tree$tip.label)]
+        colcloud <- rainbow(length(sum.cl))
+    }
+    par(mar=c(0,0,0,0))
+    label.ori<-tree[[2]]
+    if (!is.null(lab)) {
+        tree$tip.label <- lab
+    } else {
+	    tree[[2]]<-paste('classe ',tree[[2]])
+    }
+	plot.phylo(tree,label.offset=0.1,tip.col=col, type=type.dendro)
+    for (i in rev(tree.order)) {
+        par(mar=c(0,0,1,0),cex=0.9)
+        wordcloud(names(lclasses[[i]]), lclasses[[i]], scale = c(4, 0.8), random.order=FALSE, colors = colcloud[i])
+    }
+}
+
 plot.dendropr <- function(tree, classes, type.dendro="phylogram", histo=FALSE, from.cmd=FALSE, bw=FALSE, lab = NULL, tclasse=TRUE) {
 	classes<-classes[classes!=0]
 	classes<-as.factor(classes)
-	sum.cl<-as.matrix(summary(classes))
+	sum.cl<-as.matrix(summary(classes, maxsum=1000000))
 	sum.cl<-(sum.cl/colSums(sum.cl)*100)
 	sum.cl<-round(sum.cl,2)
 	sum.cl<-cbind(sum.cl,as.matrix(100-sum.cl[,1]))
     tree.order<- as.numeric(tree$tip.label)
+
+
     if (! bw) {
-        col = rainbow(nrow(sum.cl))[as.numeric(tree$tip.label)]
+        col <- rainbow(nrow(sum.cl))[as.numeric(tree$tip.label)]
         col.bars <- col
         col.pie <- rainbow(nrow(sum.cl))
 	    #col.vec<-rainbow(nrow(sum.cl))[as.numeric(tree[[2]])]
diff --git a/Rscripts/prototypical.R b/Rscripts/prototypical.R
new file mode 100644
index 0000000..b5f58fd
--- /dev/null
+++ b/Rscripts/prototypical.R
@@ -0,0 +1,65 @@
+
+norm.vec <- function(v, min, max) {
+
+  vr <- range(v)
+  if (vr[1]==vr[2]) {
+    fac <- 1
+  } else {
+    fac <- (max-min)/(vr[2]-vr[1])
+  }
+  (v-vr[1]) * fac + min
+}
+
+
+#x a table with freq and rank, rownames are words
+
+prototypical <- function(x, mfreq = NULL, mrank = NULL, cexrange=c(0.8, 3), cexalpha = c(0.5, 1), labfreq = TRUE, labrank = TRUE, cloud = TRUE) {
+    library(wordcloud)
+    if (is.null(mfreq)) {
+        mfreq <- sum(x[,1]) / nrow(x)
+    }
+    if (is.null(mrank)) {
+        mrank <- sum(x[,1] * x[,2]) / sum(x[,1])
+    }
+    print(mfreq)
+    print(mrank)
+
+    x <- x[order(x[,1], decreasing = TRUE),]
+    x[,2] <- round(x[,2],1)
+    ZN <- which(x[,1] >= mfreq & x[,2] <= mrank)
+    FP <- which(x[,1] >= mfreq & x[,2] > mrank)
+    SP <- which(x[,1] < mfreq & x[,2] > mrank)
+    CE <- which(x[,1] < mfreq & x[,2] <= mrank)
+    mfreq <- round(mfreq, 2)
+    mrank <- round(mrank, 2)
+    toplot <- list(ZN, FP, SP, CE)
+    labcex <- norm.vec(x[,1], cexrange[1], cexrange[2])
+    labalpha <- norm.vec(x[,2], cexalpha[2], cexalpha[1])
+    labalpha <- rgb(0.1,0.2,0.1, labalpha)
+    par(oma=c(1,3,3,1))
+    layout(matrix(c(1,4,2,3), nrow=2))
+    ti <- c("Zone du noyau", "Première périphérie", "Seconde périphérie", "Elements contrastés")
+    for (i in 1:length(toplot)) {
+        rtoplot <- toplot[[i]]
+        if (length(rtoplot)) {
+            par(mar=c(0,0,2,0))
+            if (cloud) {
+                labels <- paste(rownames(x)[rtoplot], x[rtoplot,1], x[rtoplot,2], sep='-')
+                wordcloud(labels, x[rtoplot,1], scale = c(max(labcex[rtoplot]), min(labcex[rtoplot])), color = labalpha[rtoplot], random.order=FALSE, rot.per = 0)
+                box()
+            } else {
+                yval <- 1.1
+                plot(0,0,pch='', axes = FALSE)
+                k<- 0
+                for (val in rtoplot) {
+                    yval <- yval-(strheight(rownames(x)[val],cex=labcex[val])+0.02)
+                    text(-0.9, yval, paste(rownames(x)[val], x[val,1], x[val,2], sep = '-'), cex = labcex[val], col = labalpha[val], adj=0)
+                }
+                box()
+            }
+            title(ti[i])
+        }
+    }
+    mtext(paste('<', mfreq, '  Fréquences  ', '>=', mfreq, sep = ' '), side=2, line=1, cex=1, col="red", outer=TRUE)
+    mtext(paste('<', mrank,  '  Rangs  ', '>=', mrank, sep = ' '), side=3, line=1, cex=1, col="red", outer=TRUE)
+}
diff --git a/analysematrix.py b/analysematrix.py
index 2a3c88d..7b861a6 100644
--- a/analysematrix.py
+++ b/analysematrix.py
@@ -59,7 +59,7 @@ class AnalyseMatrix :
         pass
     
     def doR(self, Rscript, wait = False, dlg = None, message = '') :
-        log.info('R code...')
+        #log.info('R code...')
         pid = exec_rcode(self.ira.RPath, Rscript, wait = wait)
         while pid.poll() is None :
             if dlg :
diff --git a/chemins.py b/chemins.py
index 847e5c7..6b124ef 100644
--- a/chemins.py
+++ b/chemins.py
@@ -62,6 +62,23 @@ def ffr(filename):
 def FFF(filename):
     return filename.replace('\\', '/')
 
+RscriptsPath = {
+        'Rfunct': 'Rfunct.R',
+        'chdfunct': 'chdfunct.R',
+        'Rgraph': 'Rgraph.R',
+        'plotafcm': 'plotafcm.R',
+        'afc_graph' : 'afc_graph.R',
+        #'CHD': 'CHDPOND.R',
+        'CHD': 'CHD.R',
+        #'CHD' : 'NCHD.R',
+        'chdtxt': 'chdtxt.R',
+        'chdquest': 'chdquest.R',
+        'pamtxt' : 'pamtxt.R',
+        'anacor' : 'anacor.R',
+        #'anacor' : 'Nanacor.R',
+        'simi' : 'simi.R',
+    }
+
 def ConstructRscriptsPath(AppliPath):
     RScriptsPath = os.path.join(AppliPath, 'Rscripts')
     #print('@@@@@@@@@@@PONDERATION CHDPOND.R@@@@@@@@@@@@@@@@')
diff --git a/dialog.py b/dialog.py
index 314700d..4b79f88 100755
--- a/dialog.py
+++ b/dialog.py
@@ -2687,3 +2687,119 @@ class FreqDialog(wx.Dialog):
   
         # end wxGlade
 
+class ProtoDial ( wx.Dialog ):
+    
+    def __init__( self, parent, headers ):
+        wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u'Préférences', pos = wx.DefaultPosition, size = wx.DefaultSize, style = wx.DEFAULT_DIALOG_STYLE )
+        
+        self.SetSizeHintsSz( wx.Size( 200,300 ), wx.DefaultSize )
+        
+        bSizer1 = wx.BoxSizer( wx.VERTICAL )
+        
+        fgSizer1 = wx.FlexGridSizer( 0, 2, 0, 0 )
+        fgSizer1.SetFlexibleDirection( wx.BOTH )
+        fgSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
+        
+        self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Variables", wx.DefaultPosition, wx.DefaultSize, 0 )
+        self.m_staticText1.Wrap( -1 )
+        fgSizer1.Add( self.m_staticText1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5 )
+        
+        self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Rangs", wx.DefaultPosition, wx.DefaultSize, 0 )
+        self.m_staticText2.Wrap( -1 )
+        fgSizer1.Add( self.m_staticText2, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5 )
+        
+        variablesChoices = headers
+        self.variables = wx.ListBox( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, variablesChoices, wx.LB_MULTIPLE )
+        self.variables.SetMinSize( wx.Size( 150,-1 ) )
+        
+        fgSizer1.Add( self.variables, 0, wx.ALL|wx.EXPAND, 5 )
+        
+        rangsChoices = headers
+        self.rangs = wx.ListBox( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, rangsChoices, wx.LB_MULTIPLE )
+        self.rangs.SetMinSize( wx.Size( 150,-1 ) )
+        
+        fgSizer1.Add( self.rangs, 0, wx.ALL|wx.EXPAND, 5 )
+        
+        
+        bSizer1.Add( fgSizer1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
+        
+        fgSizer3 = wx.FlexGridSizer( 0, 2, 0, 0 )
+        fgSizer3.SetFlexibleDirection( wx.BOTH )
+        fgSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
+        
+        self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, u"Limite fréquence", wx.DefaultPosition, wx.DefaultSize, 0 )
+        self.m_staticText3.Wrap( -1 )
+        fgSizer3.Add( self.m_staticText3, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+        
+        bSizer2 = wx.BoxSizer( wx.HORIZONTAL )
+        
+        choix_freqChoices = [ u"automatique (moyenne)", u"manuelle" ]
+        self.choix_freq = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, choix_freqChoices, 0 )
+        self.choix_freq.SetSelection( 0 )
+        bSizer2.Add( self.choix_freq, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+        
+        self.freqlim = wx.TextCtrl( self, wx.ID_ANY, u"0", wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE )
+        self.freqlim.Enable( False )
+        self.freqlim.SetMinSize( wx.Size( 100,-1 ) )
+        
+        bSizer2.Add( self.freqlim, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+        
+        
+        fgSizer3.Add( bSizer2, 1, wx.EXPAND, 5 )
+        
+        self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"Limite rang", wx.DefaultPosition, wx.DefaultSize, 0 )
+        self.m_staticText4.Wrap( -1 )
+        fgSizer3.Add( self.m_staticText4, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+        
+        bSizer21 = wx.BoxSizer( wx.HORIZONTAL )
+        
+        choix_rangChoices = [ u"automatique (moyenne)", u"manuelle" ]
+        self.choix_rang = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, choix_rangChoices, 0 )
+        self.choix_rang.SetSelection( 0 )
+        bSizer21.Add( self.choix_rang, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+        
+        self.ranglim = wx.TextCtrl( self, wx.ID_ANY, u"0", wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE )
+        self.ranglim.Enable( False )
+        self.ranglim.SetMinSize( wx.Size( 100,-1 ) )
+        
+        bSizer21.Add( self.ranglim, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+        
+        
+        fgSizer3.Add( bSizer21, 1, wx.EXPAND, 5 )
+        
+        self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Fréquence minimum", wx.DefaultPosition, wx.DefaultSize, 0 )
+        self.m_staticText5.Wrap( -1 )
+        fgSizer3.Add( self.m_staticText5, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
+        
+        self.m_textCtrl4 = wx.TextCtrl( self, wx.ID_ANY, u"2", wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE )
+        fgSizer3.Add( self.m_textCtrl4, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5 )
+        
+        
+        bSizer1.Add( fgSizer3, 1, wx.EXPAND, 5 )
+        
+        m_sdbSizer1 = wx.StdDialogButtonSizer()
+        self.m_sdbSizer1OK = wx.Button( self, wx.ID_OK )
+        m_sdbSizer1.AddButton( self.m_sdbSizer1OK )
+        self.m_sdbSizer1Cancel = wx.Button( self, wx.ID_CANCEL )
+        m_sdbSizer1.AddButton( self.m_sdbSizer1Cancel )
+        m_sdbSizer1.Realize();
+        
+        bSizer1.Add( m_sdbSizer1, 0, wx.EXPAND, 5 )
+        
+        self.SetSizer( bSizer1 )
+        self.Layout()
+        bSizer1.Fit( self )
+        
+        self.Centre( wx.BOTH )
+        
+        # Connect Events
+        self.choix_freq.Bind( wx.EVT_CHOICE, self.UpdateText )
+        self.choix_rang.Bind( wx.EVT_CHOICE, self.UpdateText )
+    
+    def __del__( self ):
+        pass
+    
+    
+    # Virtual event handlers, overide them in your derived class
+    def UpdateText( self, event ):
+        event.Skip()
diff --git a/dictionnaires/expression_gr.txt b/dictionnaires/expression_gr.txt
new file mode 100644
index 0000000..e69de29
diff --git a/dictionnaires/lexique_gr.txt b/dictionnaires/lexique_gr.txt
new file mode 100644
index 0000000..e59ea82
--- /dev/null
+++ b/dictionnaires/lexique_gr.txt
@@ -0,0 +1,558 @@
+και	και	sw
+του	του	sw
+το	το	sw
+της	της	sw
+η	η	sw
+την	την	sw
+ο	ο	sw
+από	από	sw
+με	με	sw
+να	να	sw
+που	που	sw
+των	των	sw
+στην	στην	sw
+για	για	sw
+τον	τον	sw
+σε	σε	sw
+στο	στο	sw
+τα	τα	sw
+οι	οι	sw
+τη	τη	sw
+τους	τους	sw
+στη	στη	sw
+τις	τις	sw
+α	α	sw
+ως	ως	sw
+στις	στις	sw
+ή	ή	sw
+ότι	ότι	sw
+στον	στον	sw
+στα	στα	sw
+μια	μια	sw
+π	π	sw
+β	β	sw
+σ	σ	sw
+ενώ	ενώ	sw
+χ	χ	sw
+οποία	οποία	sw
+αν	αν	sw
+δ	δ	sw
+γ	γ	sw
+στους	στους	sw
+ου	ου	sw
+ε	ε	sw
+μία	μία	sw
+κ	κ	sw
+μ	μ	sw
+ένας	ένας	sw
+πιο	πιο	sw
+ν	ν	sw
+σελ	σελ	sw
+ς	ς	sw
+πως	πως	sw
+ενός	ενός	sw
+μα	μα	sw
+ος	ος	sw
+αυτά	αυτά	sw
+κή	κή	sw
+κός	κός	sw
+μου	μου	sw
+σαν	σαν	sw
+δε	δε	sw
+υπό	υπό	sw
+επί	επί	sw
+κι	κι	sw
+εν	εν	sw
+ι	ι	sw
+μη	μη	sw
+μας	μας	sw
+έως	έως	sw
+αφού	αφού	sw
+μιας	μιας	sw
+τ	τ	sw
+προ	προ	sw
+κό	κό	sw
+αυτές	αυτές	sw
+τόσο	τόσο	sw
+ας	ας	sw
+όσο	όσο	sw
+κάτι	κάτι	sw
+ανά	ανά	sw
+τι	τι	sw
+μέσω	μέσω	sw
+λα	λα	sw
+εκ	εκ	sw
+αυτός	αυτός	sw
+είτε	είτε	sw
+μην	μην	sw
+παρά	παρά	sw
+περί	περί	sw
+εδώ	εδώ	sw
+αχα	αχα	sw
+κής	κής	sw
+ήδη	ήδη	sw
+ντε	ντε	sw
+σου	σου	sw
+απ	απ	sw
+ούτε	ούτε	sw
+φ	φ	sw
+αυτού	αυτού	sw
+αυτών	αυτών	sw
+εκδ	εκδ	sw
+όλη	όλη	sw
+χλμ	χλμ	sw
+άνω	άνω	sw
+πάλι	πάλι	sw
+ης	ης	sw
+κού	κού	sw
+εκατομ	εκατομ	sw
+όλοι	όλοι	sw
+σας	σας	sw
+καὶ	καὶ	sw
+λ	λ	sw
+όλο	όλο	sw
+θ	θ	sw
+οποίου	οποίου	sw
+γι	γι	sw
+εις	εις	sw
+αυτούς	αυτούς	sw
+κλπ	κλπ	sw
+εξ	εξ	sw
+κατ	κατ	sw
+αυτοί	αυτοί	sw
+στ	στ	sw
+τομ	τομ	sw
+φκ	φκ	sw
+αντί	αντί	sw
+ό	ό	sw
+αι	αι	sw
+ρ	ρ	sw
+ζ	ζ	sw
+ά	ά	sw
+κά	κά	sw
+απο	απο	sw
+υ	υ	sw
+εάν	εάν	sw
+κές	κές	sw
+πώς	πώς	sw
+ημ	ημ	sw
+ιι	ιι	sw
+κα	κα	sw
+αλ	αλ	sw
+δὲ	δὲ	sw
+αγ	αγ	sw
+βπ	βπ	sw
+ελ	ελ	sw
+δια	δια	sw
+βλ	βλ	sw
+κών	κών	sw
+και	και	sw
+του	του	sw
+της	της	sw
+το	το	sw
+να	να	sw
+την	την	sw
+η	η	sw
+με	με	sw
+που	που	sw
+των	των	sw
+για	για	sw
+ότι	ότι	sw
+τους	τους	sw
+τα	τα	sw
+δεν	δεν	sw
+είναι	είναι	sw
+ο	ο	sw
+από	από	sw
+τη	τη	sw
+οι	οι	sw
+σε	σε	sw
+τον	τον	sw
+τις	τις	sw
+στην	στην	sw
+στο	στο	sw
+απ	απ	sw
+μας	μας	sw
+κι	κι	sw
+στη	στη	sw
+θα	θα	sw
+μια	μια	sw
+αλλά	αλλά	sw
+στα	στα	sw
+αυτό	αυτό	sw
+ένα	ένα	sw
+όχι	όχι	sw
+ή	ή	sw
+μόνο	μόνο	sw
+αυτή	αυτή	sw
+σαν	σαν	sw
+ήταν	ήταν	sw
+στις	στις	sw
+στον	στον	sw
+όπως	όπως	sw
+αν	αν	sw
+όμως	όμως	sw
+σήμερα	σήμερα	sw
+ενώ	ενώ	sw
+γιατί	γιατί	sw
+έχει	έχει	sw
+ν	ν	sw
+λοιπόν	λοιπόν	sw
+σ	σ	sw
+καί	καί	sw
+αφού	αφού	sw
+ούτε	ούτε	sw
+όσο	όσο	sw
+χωρίς	χωρίς	sw
+μετά	μετά	sw
+τόσο	τόσο	sw
+είχε	είχε	sw
+μπορεί	μπορεί	sw
+χώρα	χώρα	sw
+στους	στους	sw
+έτσι	έτσι	sw
+είτε	είτε	sw
+δύο	δύο	sw
+ακόμη	ακόμη	sw
+πιο	πιο	sw
+έχουν	έχουν	sw
+αυτά	αυτά	sw
+όπου	όπου	sw
+όταν	όταν	sw
+πάνω	πάνω	sw
+άλλη	άλλη	sw
+πάρα	πάρα	sw
+χρόνια	χρόνια	sw
+όλα	όλα	sw
+αυτοί	αυτοί	sw
+επί	επί	sw
+αυτές	αυτές	sw
+ένας	ένας	sw
+οποία	οποία	sw
+μέχρι	μέχρι	sw
+βέβαια	βέβαια	sw
+κατά	κατά	sw
+σημερινή	σημερινή	sw
+μη	μη	sw
+αυτός	αυτός	sw
+εδώ	εδώ	sw
+τότε	τότε	sw
+δήθεν	δήθεν	sw
+αυτήν	αυτήν	sw
+πρέπει	πρέπει	sw
+πού	πού	sw
+μην	μην	sw
+ίδια	ίδια	sw
+υπάρχει	υπάρχει	sw
+σας	σας	sw
+δηλαδή	δηλαδή	sw
+κανένα	κανένα	sw
+γι	γι	sw
+πολύ	πολύ	sw
+μ	μ	sw
+αυτής	αυτής	sw
+όλες	όλες	sw
+παρά	παρά	sw
+όλοι	όλοι	sw
+τι	τι	sw
+κάθε	κάθε	sw
+εμείς	εμείς	sw
+πριν	πριν	sw
+καμιά	καμιά	sw
+όσα	όσα	sw
+κ	κ	sw
+δε	δε	sw
+τίς	τίς	sw
+προς	προς	sw
+ποτέ	ποτέ	sw
+παρ	παρ	sw
+κυρίως	κυρίως	sw
+αυτούς	αυτούς	sw
+έχουμε	έχουμε	sw
+μιας	μιας	sw
+κανένας	κανένας	sw
+κάνει	κάνει	sw
+πίσω	πίσω	sw
+πια	πια	sw
+είχαν	είχαν	sw
+αμέσως	αμέσως	sw
+έναν	έναν	sw
+έγινε	έγινε	sw
+γίνεται	γίνεται	sw
+άλλους	άλλους	sw
+άλλο	άλλο	sw
+τίποτε	τίποτε	sw
+πρόκειται	πρόκειται	sw
+ακριβώς	ακριβώς	sw
+ίδιο	ίδιο	sw
+χιλιάδες	χιλιάδες	sw
+περίπου	περίπου	sw
+μπροστά	μπροστά	sw
+επειδή	επειδή	sw
+βρίσκεται	βρίσκεται	sw
+υπάρχουν	υπάρχουν	sw
+τουλάχιστον	τουλάχιστον	sw
+πούναι	πούναι	sw
+οποιαδήποτε	οποιαδήποτε	sw
+πάλι	πάλι	sw
+ενός	ενός	sw
+είχαμε	είχαμε	sw
+ανάμεσα	ανάμεσα	sw
+άλλες	άλλες	sw
+πρώτη	πρώτη	sw
+πρόσφατα	πρόσφατα	sw
+κάνουν	κάνουν	sw
+δεύτερο	δεύτερο	sw
+δεκάδες	δεκάδες	sw
+h	h	sw
+πρώην	πρώην	sw
+πάντα	πάντα	sw
+μόνη	μόνη	sw
+λόγω	λόγω	sw
+αυτών	αυτών	sw
+άλλωστε	άλλωστε	sw
+άλλων	άλλων	sw
+υπήρξε	υπήρξε	sw
+ορισμένες	ορισμένες	sw
+οποίο	οποίο	sw
+δυο	δυο	sw
+ας	ας	sw
+όσοι	όσοι	sw
+σχεδόν	σχεδόν	sw
+μπορούν	μπορούν	sw
+μέρες	μέρες	sw
+μάλιστα	μάλιστα	sw
+δ	δ	sw
+έγιναν	έγιναν	sw
+όλη	όλη	sw
+κάτι	κάτι	sw
+εν	εν	sw
+άλλοι	άλλοι	sw
+φαίνεται	φαίνεται	sw
+τρεις	τρεις	sw
+τρίτου	τρίτου	sw
+πώς	πώς	sw
+λένε	λένε	sw
+κλπ	κλπ	sw
+κάποιος	κάποιος	sw
+κάποια	κάποια	sw
+εκτός	εκτός	sw
+δισεκατομμύρια	δισεκατομμύρια	sw
+γίνει	γίνει	sw
+απέναντι	απέναντι	sw
+σημερινό	σημερινό	sw
+πλέον	πλέον	sw
+πέρα	πέρα	sw
+κανείς	κανείς	sw
+καν	καν	sw
+αυτού	αυτού	sw
+έστω	έστω	sw
+όλους	όλους	sw
+φορές	φορές	sw
+φορά	φορά	sw
+πρόσφατη	πρόσφατη	sw
+περί	περί	sw
+νάχει	νάχει	sw
+νάναι	νάναι	sw
+μεγάλο	μεγάλο	sw
+μεγάλη	μεγάλη	sw
+εξής	εξής	sw
+αυτόν	αυτόν	sw
+έκανε	έκανε	sw
+τέτοιο	τέτοιο	sw
+σημερινές	σημερινές	sw
+π	π	sw
+ορισμένα	ορισμένα	sw
+οποίες	οποίες	sw
+οποίας	οποίας	sw
+καμία	καμία	sw
+διάφορα	διάφορα	sw
+τώρα	τώρα	sw
+τέτοια	τέτοια	sw
+τέτια	τέτια	sw
+τ	τ	sw
+πιστεύουμε	πιστεύουμε	sw
+μία	μία	sw
+θάχε	θάχε	sw
+θ	θ	sw
+βρίσκονται	βρίσκονται	sw
+άλλα	άλλα	sw
+όλων	όλων	sw
+ψέμα	ψέμα	sw
+σχετικά	σχετικά	sw
+πούμε	πούμε	sw
+ποιος	ποιος	sw
+λέγαμε	λέγαμε	sw
+κάποιο	κάποιο	sw
+ιδιαίτερα	ιδιαίτερα	sw
+εκατομμύρια	εκατομμύρια	sw
+ε	ε	sw
+δισεκατομμυρίων	δισεκατομμυρίων	sw
+γ	γ	sw
+αλλού	αλλού	sw
+ίσως	ίσως	sw
+ώστε	ώστε	sw
+όσους	όσους	sw
+όσον	όσον	sw
+τρίτο	τρίτο	sw
+ποιον	ποιον	sw
+μόλις	μόλις	sw
+μεγάλες	μεγάλες	sw
+δεύτερη	δεύτερη	sw
+έχοντας	έχοντας	sw
+έκαναν	έκαναν	sw
+ότου	ότου	sw
+όντας	όντας	sw
+ό	ό	sw
+τρίτη	τρίτη	sw
+συνεχείς	συνεχείς	sw
+συνήθως	συνήθως	sw
+συνέχεια	συνέχεια	sw
+πρώτο	πρώτο	sw
+πέντε	πέντε	sw
+ορισμένοι	ορισμένοι	sw
+μέχρις	μέχρις	sw
+καθένας	καθένας	sw
+καθένα	καθένα	sw
+θέλει	θέλει	sw
+θάταν	θάταν	sw
+επίσης	επίσης	sw
+εκατομμυρίων	εκατομμυρίων	sw
+εισαγγελέα	εισαγγελέα	sw
+β	β	sw
+έμμεση	έμμεση	sw
+άμεσης	άμεσης	sw
+άλλος	άλλος	sw
+eνώ	eνώ	sw
+όλο	όλο	sw
+χιλιάδων	χιλιάδων	sw
+φ	φ	sw
+τί	τί	sw
+στ	στ	sw
+πρώτος	πρώτος	sw
+πρώτα	πρώτα	sw
+πούχουν	πούχουν	sw
+πούχει	πούχει	sw
+ποιο	ποιο	sw
+ποια	ποια	sw
+οποίους	οποίους	sw
+νάχουν	νάχουν	sw
+μεγαλύτερα	μεγαλύτερα	sw
+μεγάλων	μεγάλων	sw
+μεγάλα	μεγάλα	sw
+μήπως	μήπως	sw
+μήνα	μήνα	sw
+λ	λ	sw
+κάπως	κάπως	sw
+ελλ	ελλ	sw
+εκ	εκ	sw
+δεκαετίες	δεκαετίες	sw
+δεκαετία	δεκαετία	sw
+απόλυτα	απόλυτα	sw
+α	α	sw
+ίδιος	ίδιος	sw
+έξω	έξω	sw
+άρα	άρα	sw
+τρία	τρία	sw
+τησ	τησ	sw
+πάσης	πάσης	sw
+πάντες	πάντες	sw
+οποίου	οποίου	sw
+ολόκληρη	ολόκληρη	sw
+μπορούσαν	μπορούσαν	sw
+μεταξύ	μεταξύ	sw
+μεγαλύτερη	μεγαλύτερη	sw
+λέμε	λέμε	sw
+χρειάζεται	χρειάζεται	sw
+χ	χ	sw
+υπό	υπό	sw
+τριών	τριών	sw
+τούτοις	τούτοις	sw
+πρόσφατες	πρόσφατες	sw
+πούχε	πούχε	sw
+λίγο	λίγο	sw
+εξ	εξ	sw
+εκατοντάδων	εκατοντάδων	sw
+εκατοντάδες	εκατοντάδες	sw
+απλή	απλή	sw
+ακόμα	ακόμα	sw
+τισ	τισ	sw
+τέτιο	τέτιο	sw
+τέτιες	τέτιες	sw
+πόσο	πόσο	sw
+παντού	παντού	sw
+ορισμένους	ορισμένους	sw
+οποιοσδήποτε	οποιοσδήποτε	sw
+λλοι	λλοι	sw
+επιπλέον	επιπλέον	sw
+δικό	δικό	sw
+δικούς	δικούς	sw
+δι	δι	sw
+δεκάδων	δεκάδων	sw
+ήδη	ήδη	sw
+άλλου	άλλου	sw
+tόσο	tόσο	sw
+kι	kι	sw
+aν	aν	sw
+υ	υ	sw
+τέτοιες	τέτοιες	sw
+πράγματι	πράγματι	sw
+ποιοι	ποιοι	sw
+πιστεύει	πιστεύει	sw
+παραπάνω	παραπάνω	sw
+οποιασδήποτε	οποιασδήποτε	sw
+μπορέσει	μπορέσει	sw
+μικρό	μικρό	sw
+μερικές	μερικές	sw
+μεγαλύτερες	μεγαλύτερες	sw
+λες	λες	sw
+κάποιου	κάποιου	sw
+κάνοντας	κάνοντας	sw
+ιδίως	ιδίως	sw
+θέλουν	θέλουν	sw
+θάπρεπε	θάπρεπε	sw
+εκεί	εκεί	sw
+ίδιους	ίδιους	sw
+έπρεπε	έπρεπε	sw
+όποιον	όποιον	sw
+όποιο	όποιο	sw
+τρισεκατομμύριο	τρισεκατομμύριο	sw
+τρίτος	τρίτος	sw
+τουσ	τουσ	sw
+στισ	στισ	sw
+σου	σου	sw
+ρα	ρα	sw
+ρ	ρ	sw
+πως	πως	sw
+πολλές	πολλές	sw
+παρότι	παρότι	sw
+πέρσι	πέρσι	sw
+οποίων	οποίων	sw
+νάγινε	νάγινε	sw
+μπορείτε	μπορείτε	sw
+μισού	μισού	sw
+μισή	μισή	sw
+μεγάλης	μεγάλης	sw
+μακριά	μακριά	sw
+λλος	λλος	sw
+λίγες	λίγες	sw
+λίγα	λίγα	sw
+κανέναν	κανέναν	sw
+θάναι	θάναι	sw
+εξίσου	εξίσου	sw
+εντούτοις	εντούτοις	sw
+δια	δια	sw
+δηλ	δηλ	sw
+γύρω	γύρω	sw
+γίνονταν	γίνονταν	sw
+αύριο	αύριο	sw
+αργότερα	αργότερα	sw
+ήξερε	ήξερε	sw
+έχετε	έχετε	sw
+tο	tο	sw
+mε	mε	sw
+eτσι	eτσι	sw
+aπ	aπ	sw
+5ης	5ης	sw
+50%	50%	sw
+μή	μή	sw
diff --git a/images/splash.png b/images/splash.png
index 5c56b0d27f97e9316897729a21a9d13d5e306c5e..cab4a7bcd85b9fd44c9c8088426b8d7a553e627b 100644
GIT binary patch
delta 22160
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
D6>Enm

delta 22223
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
KO64ysLjDJ(Z<gx-

diff --git a/images/splash.svg b/images/splash.svg
index 4804629..f7759e2 100644
--- a/images/splash.svg
+++ b/images/splash.svg
@@ -144,10 +144,10 @@
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="false"
-     inkscape:window-width="1155"
-     inkscape:window-height="998"
+     inkscape:window-width="1018"
+     inkscape:window-height="1030"
      inkscape:window-x="0"
-     inkscape:window-y="27"
+     inkscape:window-y="18"
      inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
@@ -303,7 +303,7 @@
            x="110.10663"
            y="146.45171"
            style="font-size:14px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:gargi;-inkscape-font-specification:gargi Medium" /></flowRegion><flowPara
-         id="flowPara3866">Version 0.6 alpha 2</flowPara></flowRoot>    <flowRoot
+         id="flowPara3866">Version 0.6 alpha 4</flowPara></flowRoot>    <flowRoot
        xml:space="preserve"
        id="flowRoot3868"
        style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
diff --git a/iracmd.py b/iracmd.py
index 81a3910..dd883f8 100644
--- a/iracmd.py
+++ b/iracmd.py
@@ -46,7 +46,8 @@ else:
 UserConfigPath = os.path.abspath(os.path.join(user_home, '.iramuteq'))
 
 class CmdLine :
-    def __init__(self, args = None) :
+    def __init__(self, args = None, AppliPath = None) :
+        AppliPath = AppliPath
         self.DictPath = ConstructDicoPath(AppliPath)
         self.ConfigPath = ConstructConfigPath(UserConfigPath)
         self.syscoding = sys.getdefaultencoding()
@@ -175,5 +176,5 @@ class CmdLine :
 
 if __name__ == '__main__':
     __name__ = 'Main'
-    CmdLine()
+    CmdLine(AppliPath = AppliPath)
 
diff --git a/iramuteq.py b/iramuteq.py
index 1f7b17e..d1b6077 100644
--- a/iramuteq.py
+++ b/iramuteq.py
@@ -49,9 +49,8 @@ from tabafcm import DoAFCM
 from tabchdalc import AnalyseQuest
 from tabsimi import DoSimi
 from tabrsimple import InputText
-from tabverges import Verges
+from tabverges import Prototypical
 #from textafcuci import AfcUci
-#from textchdalc import AnalyseAlceste
 from analysetxt import Alceste
 from textdist import AnalysePam
 from textstat import Stat
@@ -64,7 +63,7 @@ from openanalyse import OpenAnalyse
 from corpus import BuildFromAlceste, Builder
 from sheet import MySheet
 from checkinstall import CreateIraDirectory, CheckRPath, FindRPAthWin32, FindRPathNix, CheckRPackages, IsNew, UpgradeConf, CopyConf, RLibsAreInstalled
-from chemins import ConstructRscriptsPath, ConstructConfigPath, ConstructDicoPath, ConstructGlobalPath, PathOut
+from chemins import RscriptsPath, ConstructConfigPath, ConstructDicoPath, ConstructGlobalPath, PathOut
 from parse_factiva_xml import ImportFactiva
 from tools import Extract
 
@@ -96,6 +95,7 @@ ID_RESULT = wx.NewId()
 ID_VIEWDATA = wx.NewId()
 ID_HTMLcontent = wx.NewId()
 ID_SimiTxt = wx.NewId()
+ID_proto = wx.NewId()
 ##########################################################
 #elements de configuration
 ##########################################################
@@ -164,7 +164,9 @@ class IraFrame(wx.Frame):
         self.AppliPath = AppliPath
         self.images_path = os.path.join(AppliPath,'images')
         self.UserConfigPath = UserConfigPath
-        self.RscriptsPath = ConstructRscriptsPath(AppliPath)
+        #self.RscriptsPath = ConstructRscriptsPath(AppliPath)
+        self.RscriptsPath = PathOut(dirout=os.path.join(AppliPath, 'Rscripts'))
+        self.RscriptsPath.basefiles(RscriptsPath)
         #self.DictPath = ConstructDicoPath(AppliPath)
         self.DictPath = ConstructDicoPath(UserConfigPath)
         self.ConfigGlob = ConfigGlob
@@ -244,6 +246,7 @@ class IraFrame(wx.Frame):
         analyse_menu.AppendMenu(-1, u"Classification", menu_classif)
         #analyse_menu.Append(ID_AFCM, u"AFCM")
         analyse_menu.Append(ID_SIMI, u"Analyse de similitudes")
+        analyse_menu.Append(ID_proto, _(u"Prototypical analysis"))
         ID_RCODE = wx.NewId()
         analyse_menu.Append(ID_RCODE, u"Code R...")
 
@@ -369,6 +372,7 @@ class IraFrame(wx.Frame):
         self.Bind(wx.EVT_MENU, self.OnCHDSIM, id=ID_CHDSIM)
         self.Bind(wx.EVT_MENU, self.OnCHDAlceste, id=ID_CHDAlceste)
         self.Bind(wx.EVT_MENU, self.OnAFCM, id=ID_AFCM)
+        self.Bind(wx.EVT_MENU, self.OnProto, id=ID_proto)
         self.Bind(wx.EVT_MENU, self.OnRCode, id=ID_RCODE)
         #self.Bind(wx.EVT_MENU, self.OnCheckcorpus, id = ID_CHECKCORPUS)
         self.Bind(wx.EVT_MENU, self.OnTextStat, id=ID_TEXTSTAT)
@@ -874,6 +878,9 @@ Voulez-vous fermer quand même ?"""
                 PlaySound(self)
         except:
             BugReport(self)
+    
+    def OnProto(self, evt) :
+        Prototypical(self, {'type' : 'proto'})
 
     def OnSimiTxt(self, evt, corpus = None) :
         #    print 'PLUS DE BUG SUR SIMITXT'
diff --git a/openanalyse.py b/openanalyse.py
index 5de5aa2..77d08a7 100644
--- a/openanalyse.py
+++ b/openanalyse.py
@@ -5,13 +5,13 @@
 #Lisense: GNU/GPL
 
 from chemins import ChdTxtPathOut, StatTxtPathOut, PathOut
-from layout import OpenCHDS, dolexlayout, StatLayout, WordCloudLayout, OpenCorpus, SimiLayout, SimiMatLayout
+from layout import OpenCHDS, dolexlayout, StatLayout, WordCloudLayout, OpenCorpus, SimiLayout, SimiMatLayout, ProtoLayout
 from corpus import Corpus, copycorpus
 from tableau import Tableau
 import os
-import shelve
+#import shelve
 #from tabsimi import DoSimi
-from functions import BugReport, DoConf, progressbar
+from functions import DoConf
 from tableau import Tableau
 import logging
 
@@ -140,4 +140,6 @@ class OpenAnalyse():
         elif self.conf['type'] == 'simimatrix' :
             #self.parent.ShowMenu(_("Spreadsheet analysis"))
             SimiMatLayout(self.parent, corpus, self.conf)
+        elif self.conf['type'] == 'proto' :
+            ProtoLayout(self.parent, corpus, self.conf)
         
diff --git a/tabverges.py b/tabverges.py
index b9e4ee3..12f4a61 100644
--- a/tabverges.py
+++ b/tabverges.py
@@ -10,45 +10,85 @@ import wx
 import os
 import sys
 import tempfile
-from chemins import ffr,FFF
+from chemins import ffr,FFF, ConstructPathOut
 import wx.lib.sized_controls as sc
 from time import sleep
-from functions import exec_rcode, check_Rresult
-from dialog import ChiDialog
+from functions import exec_rcode, check_Rresult, progressbar
+from PrintRScript import ProtoScript
+from analysematrix import AnalyseMatrix
+from dialog import ProtoDial
 
-class Verges :
-    def __init__(self,parent):
+class Prototypical(AnalyseMatrix) :
+    def __init__(self, parent, parametres):
         self.parent = parent
         self.tableau = self.parent.tableau
-        chioption = { 'valobs' : True,
-                      'valtheo' : True,
-                      'resi' : False,
-                      'contrib' : True,
-                      'pourcent' : False,
-                      'pourcentl' : True,
-                      'pourcentc' : True,
-                      'graph' : True,
-                      }
-        self.dlg = ChiDialog(parent, -1, u"Chi2", chioption, size=(400, 350),
-                     style = wx.DEFAULT_DIALOG_STYLE
-                     )
-        self.dlg.CenterOnParent()
-        self.check_val()
+        self.parametres = parametres
+        self.parametres['filename'] = parent.tableau.parametre['filename']
+        self.parametres['pathout'] = ConstructPathOut(parent.tableau.parametre['filename'], 'proto')
+        self.parametres['type'] = 'proto'
+        dlg = progressbar(self.parent, 2)
+        self.colnames = self.tableau.get_colnames()
+        AnalyseMatrix.__init__(self, parent, parent.tableau, self.parametres, dlg = dlg)
+    
+    def doanalyse(self) :
+        res = self.check_val()
+        return res
 
     def check_val(self) :
-        self.val = self.dlg.ShowModal()
+        self.dial = ProtoDial(self.ira, self.colnames)
+        self.dial.CenterOnParent()
+
+        self.val = self.dial.ShowModal()
         if self.val==wx.ID_OK :
-                self.ColSel1 = self.dlg.list_box_1.GetSelections()
-                self.ColSel2 = self.dlg.list_box_2.GetSelections()
+                self.ColSel1 = self.dial.variables.GetSelections()
+                self.ColSel2 = self.dial.rangs.GetSelections()
+
                 if len(self.ColSel1) != len(self.ColSel2) :
                     print 'pas meme taille'
                     self.check_val()
                 else :
-                    self.dotable()
+                    if self.dial.choix_freq.GetSelection() == 0 :
+                        self.parametres['limfreq'] = 'NULL'
+                    else :
+                        self.parametres['limfreq'] = self.dial.freqlim.GetValue()
+                    if self.dial.choix_rang.GetSelection() == 0 :
+                        self.parametres['limrang'] = 'NULL'
+                    else :
+                        self.parametres['limrang'] = self.dial.ranglim.GetValue()
+                    self.parametres['freqmin'] = int(self.dial.m_textCtrl4.GetValue())
+                    table_assoc, table_rank = self.dotable()
+                    self.makedatas(table_assoc, table_rank)
+                    self.DoR()
+        else :
+             return 'stop'
 
     def dotable(self) :
         table_assoc = self.tableau.select_col(self.ColSel1)
         table_rank = self.tableau.select_col(self.ColSel2)
-        
+        return table_assoc, table_rank
+
+    def makedatas(self, table_assoc, table_rank) :
+        words = {}
+        for i in range(0, len(table_assoc)) :
+            for j, word in enumerate(table_assoc[i]) :
+                if word in words :
+                    words[word][0] += 1
+                    if table_rank[i][j] != '' :
+                        words[word][1].append(int(table_rank[i][j]))
+                else :
+                    if table_rank[i][j] != '' :
+                        words[word] = [1, [int(table_rank[i][j])]]
+                    else :
+                         words[word] = [1, []]
+        res = [[word, words[word][0], float(sum(words[word][1])) / len(words[word][1])] for word in words if len(words[word][1]) != 0 and words[word][0] >= self.parametres['freqmin']]
+        with open(self.pathout['table.csv'], 'w') as f :
+            f.write('\n'.join(['\t'.join(['"' + val[0] +'"', `val[1]`, `val[2]`]) for val in res]))
+        self.parent.tableau.parametres = self.parent.tableau.parametre
+        self.parent.tableau.save_tableau(self.pathout['analyse.db'])
+
+    def DoR(self) :
+        script = ProtoScript(self)
+        script.make_script()
+        self.doR(script.scriptout) 
         
                 
diff --git a/textwordcloud.py b/textwordcloud.py
index 908ba89..bc875bc 100644
--- a/textwordcloud.py
+++ b/textwordcloud.py
@@ -43,8 +43,8 @@ class WordCloud(AnalyseText):
         else :
             return 'NOK'
     
-    def make_option(self) :
-        dial = PrefWordCloud(self.ira)
+    def make_option(self, fromcluster = False) :
+        dial = PrefWordCloud(self.ira, fromcluster)
         dial.CenterOnParent()
         res = dial.ShowModal()
         if res == wx.ID_OK :
@@ -61,6 +61,8 @@ class WordCloud(AnalyseText):
             self.parametres['col_bg'] = dial.color_bg.GetColour()
             self.parametres['mode'] = dial.typeformeschoice.GetSelection()
             self.parametres['svg'] = svg
+            if fromcluster :
+                self.parametres['indice'] = dial.indice.GetSelection()
             outgraph = os.path.join(os.path.dirname(self.pathout['zipf.png']), 'nuage_')
             nb = 1
             if svg :
@@ -84,11 +86,11 @@ class ClusterCloud(WordCloud) :
         self.parametres['type'] = 'clustercloud'
         #FIXME
         limit = 2
-        res = self.make_option()
+        res = self.make_option(True)
         if res == wx.ID_OK :
             prof = self.parametres['clusterprof']
             del self.parametres['clusterprof']
-            if self.parametres.get('unit', 0) == 0 :
+            if self.parametres['indice'] == 0 :
                 tokeep = 1
             else : 
                 tokeep = 2
-- 
2.7.4