X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=PrintRScript.py;h=6c102a07c4d3a68301965de72d0c30f3f723ff11;hp=d21ad22f5aa7a8079deaa1fc4dedeff430450b1c;hb=e033f9e84abb3c12d92f1580425877aa58e9af30;hpb=a5fa23767c01368804b2fbb1e2915bc332c6f932 diff --git a/PrintRScript.py b/PrintRScript.py index d21ad22..6c102a0 100644 --- a/PrintRScript.py +++ b/PrintRScript.py @@ -19,7 +19,7 @@ class PrintRScript : self.analyse = analyse self.parametres = analyse.parametres self.scriptout = self.pathout['temp'] - self.script = u"#Script genere par IRaMuTeQ - %s" % datetime.now().ctime() + self.script = u"#Script genere par IRaMuTeQ - %s\n" % datetime.now().ctime() def add(self, txt) : self.script = '\n'.join([self.script, txt]) @@ -109,7 +109,7 @@ class Alceste2(PrintRScript) : # -def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, libsvdc = False, libsvdc_path = None, R_max_mem = False): +def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, svdmethod = 'svdR', libsvdc = False, libsvdc_path = None, R_max_mem = False, mode_patate = False): txt = """ source("%s") source("%s") @@ -124,17 +124,30 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, libsvdc = False txt += """ nbt <- %i """ % nbt - if libsvdc : + if svdmethod == 'svdlibc' and libsvdc : txt += """ - libsvdc <- TRUE + svd.method <- 'svdlibc' libsvdc.path <- "%s" """ % ffr(libsvdc_path) + elif svdmethod == 'irlba' : + txt += """ + library(irlba) + svd.method <- 'irlba' + libsvdc.path <- NULL + """ else : txt += """ - libsvdc <- FALSE + svd.method = 'svdR' libsvdc.path <- NULL """ - + if mode_patate : + txt += """ + mode.patate = TRUE + """ + else : + txt += """ + mode.patate = FALSE + """ txt +=""" library(Matrix) data1 <- readMM("%s") @@ -149,12 +162,12 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, libsvdc = False row.names(data2) <- 1:nrow(data2) """ % DicoPath['TableUc2'] txt += """ - chd1<-CHD(data1, x = nbt, libsvdc = libsvdc, libsvdc.path = libsvdc.path) + chd1<-CHD(data1, x = nbt, mode.patate = mode.patate, svd.method = svd.method, libsvdc.path = libsvdc.path) """ if classif_mode == 0: txt += """ - chd2<-CHD(data2, x = nbt, libsvdc = libsvdc, libsvdc.path = libsvdc.path) + chd2<-CHD(data2, x = nbt, mode.patate = mode.patate, svd.method = svd.method, libsvdc.path = libsvdc.path) """ else: txt += """ @@ -172,19 +185,26 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, libsvdc = False """ % DicoPath['listeuce2'] txt += """ -# rm(data1) + rm(data1) """ if classif_mode == 0: txt += """ -# rm(data2) + rm(data2) """ txt += """ - chd.result <- Rchdtxt("%s",mincl=%i,classif_mode=%i, nbt = nbt) + classif_mode <- %i + mincl <- %i + uceout <- "%s" + if (classif_mode == 0) { + chd.result <- Rchdtxt(uceout, chd1, chd2 = chd2, mincl = mincl,classif_mode = classif_mode, nbt = nbt) + } else { + chd.result <- Rchdtxt(uceout, chd1, chd2 = chd1, mincl = mincl,classif_mode = classif_mode, nbt = nbt) + } n1 <- chd.result$n1 classeuce1 <- chd.result$cuce1 classeuce2 <- chd.result$cuce2 - """ % (DicoPath['uce'], mincl, classif_mode) + """ % (classif_mode, mincl, DicoPath['uce']) txt += """ tree.tot1 <- make_tree_tot(chd1) @@ -206,7 +226,7 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, libsvdc = False save(tree.cut1, file="%s") classes<-n1[,ncol(n1)] open_file_graph("%s", width = 600, height=400) - plot.dendropr(tree.cut1$tree.cl,classes) + plot.dendropr(tree.cut1$tree.cl,classes, histo=TRUE) open_file_graph("%s", width = 600, height=400) plot(tree.cut1$dendro_tot_cl) dev.off() @@ -231,9 +251,8 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, libsvdc = False fileout.close() def RPamTxt(corpus, RscriptPath): - DicoPath = corpus.dictpathout - param = corpus.parametre - print param + DicoPath = corpus.pathout + param = corpus.parametres txt = """ source("%s") """ % (RscriptPath['pamtxt']) @@ -274,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['Act01'], DicoPath['listeuce1'], DicoPath['uce']) + """ % (DicoPath['mat01'], DicoPath['listeuce1'], DicoPath['uce']) txt += """ tree_tot1 <- make_tree_tot(chd.result$chd) @@ -289,7 +308,7 @@ def RchdQuest(DicoPath, RscriptPath, nbcl = 10, mincl = 10): save(tree.cut1, file="%s") open_file_graph("%s", width = 600, height=400) classes<-n1[,ncol(n1)] - plot.dendropr(tree_cut1$tree.cl,classes) + plot.dendropr(tree_cut1$tree.cl,classes, histo = TRUE) """ % (DicoPath['Rdendro'],DicoPath['dendro1']) txt += """ @@ -365,33 +384,28 @@ write.csv2(gbcluster,file="%s") """ % (DictChdTxtOut['afc_facteur'], DictChdTxtOut['afc_col'], DictChdTxtOut['afc_row']) txt += """ - xlab <- paste('facteur 1 - ', round(afc$facteur[1,2],2), sep = '') - ylab <- paste('facteur 2 - ', round(afc$facteur[2,2],2), sep = '') - xlab <- paste(xlab, ' %', sep = '') - ylab <- paste(ylab, ' %', sep = '') - """ - - txt += """ PARCEX<-%s """ % taillecar txt += """ - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab) + 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) + 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]) """ % (DictChdTxtOut['AFC2DSL_OUT']) txt += """ - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=debet, fin=fin, xlab = xlab, ylab = ylab) + 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]) + } """ % (DictChdTxtOut['AFC2DEL_OUT']) txt += """ - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", col=TRUE, what='coord', xlab = xlab, ylab = ylab) + 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]) """ % (DictChdTxtOut['AFC2DCL_OUT']) - txt += """ - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab) - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=debsup, fin=(debet-1), xlab = xlab, ylab = ylab) - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=debet, fin=fin, xlab = xlab, ylab = ylab) - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", col=TRUE, what='crl', xlab = xlab, ylab = ylab) - """ % (DictChdTxtOut['AFC2DCoul'], DictChdTxtOut['AFC2DCoulSup'], DictChdTxtOut['AFC2DCoulEt'], DictChdTxtOut['AFC2DCoulCl']) +# txt += """ + # PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab) + # PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=debsup, fin=(debet-1), xlab = xlab, ylab = ylab) + # PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=debet, fin=fin, xlab = xlab, ylab = ylab) + # PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", col=TRUE, what='crl', xlab = xlab, ylab = ylab) + # """ % (DictChdTxtOut['AFC2DCoul'], DictChdTxtOut['AFC2DCoulSup'], DictChdTxtOut['AFC2DCoulEt'], DictChdTxtOut['AFC2DCoulCl']) txt += """ #rm(dataact) @@ -417,12 +431,18 @@ def write_afc_graph(self): if self.param['do_select_chi'] : do_select_chi = 'TRUE' else : do_select_chi = 'FALSE' + if self.param['do_select_chi_classe'] : do_select_chi_classe = 'TRUE' + else : do_select_chi_classe = 'FALSE' + if self.param['cex_txt'] : cex_txt = 'TRUE' else : cex_txt = 'FALSE' if self.param['tchi'] : tchi = 'TRUE' else : tchi = 'FALSE' + if self.param['svg'] : svg = 'TRUE' + else : svg = 'FALSE' + with open(self.RscriptsPath['afc_graph'], 'r') as f: txt = f.read() @@ -438,6 +458,8 @@ def write_afc_graph(self): self.param['select_nb'], \ do_select_chi, \ self.param['select_chi'], \ + do_select_chi_classe, \ + self.param['nbchic'], \ cex_txt, \ self.param['txt_min'], \ self.param['txt_max'], \ @@ -450,7 +472,8 @@ def write_afc_graph(self): tchi,\ self.param['tchi_min'],\ self.param['tchi_max'],\ - ffr(os.path.dirname(self.fileout))) + ffr(os.path.dirname(self.fileout)),\ + svg) return scripts def print_simi3d(self): @@ -460,10 +483,12 @@ def print_simi3d(self): movie = "'" + ffr(os.path.dirname(self.DictPathOut['RData'])) + "'" else : movie = 'NULL' - if self.section == 'chd_dist_quest' : - header = 'TRUE' - else : - header = 'FALSE' + + #if self.corpus.parametres['type'] == 'corpus' : + # header = 'TRUE' + #else : + # header = 'FALSE' + header = 'FALSE' txt += """ dm<-read.csv2("%s",row.names=1,header = %s) load("%s") @@ -520,12 +545,33 @@ def barplot(table, rownames, colnames, rgraph, tmpgraph, intxt = False) : # height = 400 rownames = 'c("' + '","'.join(rownames) + '")' colnames = 'c("' + '","'.join(colnames) + '")' + if not intxt : #FIXME txt = """ - inf <- NA di <- matrix(data=%s, nrow=%i, byrow = TRUE) - di[is.na(di)] <- max(di, na.rm=TRUE) + 2 + toinf <- which(di == Inf) + tominf <- which(di == -Inf) + if (length(toinf)) { + di[toinf] <- NA + valmax <- max(di, na.rm = TRUE) + if (valmax <= 0) { + valmax <- 2 + } else { + valmax <- valmax + 2 + } + di[toinf] <- valmax + } + if (length(tominf)) { + di[tominf] <- NA + valmin <- min(di, na.rm = TRUE) + if (valmin >=0) { + valmin <- -2 + } else { + valmin <- valmin - 2 + } + di[tominf] <- valmin + } rownames(di)<- %s colnames(di) <- %s """ % (txttable, rownb, rownames, colnames) @@ -541,7 +587,20 @@ def barplot(table, rownames, colnames, rgraph, tmpgraph, intxt = False) : par(mar=c(0,0,0,0)) layout(matrix(c(1,2),1,2, byrow=TRUE),widths=c(3,lcm(7))) par(mar=c(2,2,1,0)) - coord <- barplot(as.matrix(di), beside = TRUE, col = color, space = c(0.1,0.6)) + yp = ifelse(length(toinf), 0.2, 0) + ym = ifelse(length(tominf), 0.2, 0) + ymin <- ifelse(!length(which(di < 0)), 0, min(di) - ym) + coord <- barplot(as.matrix(di), beside = TRUE, col = color, space = c(0.1,0.6), ylim=c(ymin, max(di) + yp)) + if (length(toinf)) { + coordinf <- coord[toinf] + valinf <- di[toinf] + text(x=coordinf, y=valinf + 0.1, 'i') + } + if (length(tominf)) { + coordinf <- coord[toinf] + valinf <- di[toinf] + text(x=coordinf, y=valinf - 0.1, 'i') + } c <- colMeans(coord) c1 <- c[-1] c2 <- c[-length(c)] @@ -632,29 +691,86 @@ class PrintSimiScript(PrintRScript) : self.txtgraph = '' self.packages(['igraph', 'proxy', 'Matrix']) self.sources([self.analyse.parent.RscriptsPath['simi'], self.analyse.parent.RscriptsPath['Rgraph']]) - txt = """ - dm.path <- "%s" - cn.path <- "%s" - selected.col <- "%s" - """ % (self.pathout['mat01.csv'], self.pathout['actives.csv'], self.pathout['selected.csv']) - txt += """ - dm <-readMM(dm.path) - cn <- read.table(cn.path, sep=';', quote='"') - colnames(dm) <- cn[,1] - sel.col <- read.csv2(selected.col) - dm <- dm[, sel.col[,1] + 1] - """ - - if self.parametres['coeff'] == 0 : - method = 'cooc' + txt = '' + if not self.parametres['keep_coord'] and not self.parametres['type'] == 'simimatrix': txt += """ - method <- 'cooc' - mat <- make.a(dm) + dm.path <- "%s" + cn.path <- "%s" + selected.col <- "%s" + """ % (self.pathout['mat01.csv'], self.pathout['actives.csv'], self.pathout['selected.csv']) + if 'word' in self.parametres : + txt += """ + word <- TRUE + index <- %i + 1 + """ % self.parametres['word'] + else : + txt += """ + word <- FALSE + """ + txt += """ + dm <-readMM(dm.path) + cn <- read.table(cn.path, sep='\t', quote='"') + colnames(dm) <- cn[,1] + sel.col <- read.csv2(selected.col, header = FALSE) + sel.col <- sel.col[,1] + 1 + if (!word) { + dm <- dm[, sel.col] + } else { + forme <- colnames(dm)[index] + if (!index %in% sel.col) { + sel.col <- append(sel.col, index) + } + dm <- dm[, sel.col] + index <- which(colnames(dm) == forme) + } """ - else : + elif not self.parametres['keep_coord'] and self.parametres['type'] == 'simimatrix' : txt += """ + dm.path <- "%s" + selected.col <- "%s" + """ % (self.pathout['mat01.csv'], self.pathout['selected.csv']) + if 'word' in self.parametres : + txt += """ + word <- TRUE + index <- %i + 1 + """ % self.parametres['word'] + else : + txt += """ + word <- FALSE + """ + txt += """ + dm <-read.csv2(dm.path) dm <- as.matrix(dm) + sel.col <- read.csv2(selected.col, header = FALSE) + sel.col <- sel.col[,1] + 1 + if (!word) { + dm <- dm[, sel.col] + } else { + forme <- colnames(dm)[index] + if (!index %in% sel.col) { + sel.col <- append(sel.col, index) + } + dm <- dm[, sel.col] + index <- which(colnames(dm) == forme) + } """ + else : + txt += """ + load("%s") + """ % self.pathout['RData.RData'] + + if self.parametres['coeff'] == 0 : + method = 'cooc' + if not self.parametres['keep_coord'] : + txt += """ + method <- 'cooc' + mat <- make.a(dm) + """ + else : + if not self.parametres['keep_coord'] : + txt += """ + dm <- as.matrix(dm) + """ if self.parametres['coeff'] == 1 : method = 'prcooc' txt += """ @@ -663,27 +779,62 @@ class PrintSimiScript(PrintRScript) : """ elif self.analyse.indices[self.parametres['coeff']] == 'binomial' : method = 'binomial' - txt += """ - method <- 'binomial' - mat <- binom.sim(dm) - """ + if not self.parametres['keep_coord'] : + txt += """ + method <- 'binomial' + mat <- binom.sim(dm) + """ elif self.parametres['coeff'] != 0 : method = self.analyse.indices[self.parametres['coeff']] + if not self.parametres['keep_coord'] : + txt += """ + method <-"%s" + mat <- simil(dm, method = method, diag = TRUE, upper = TRUE, by_rows = FALSE) + """ % self.analyse.indices[self.parametres['coeff']] + if not self.parametres['keep_coord'] : txt += """ - method <-"%s" - mat <- simil(dm, method = method, diag = TRUE, upper = TRUE, by_rows = FALSE) - """ % self.analyse.indices[self.parametres['coeff']] - txt += """ - mat <- as.matrix(stats::as.dist(mat,diag=TRUE,upper=TRUE)) - mat[is.na(mat)] <- 0 - mat[is.infinite(mat)] <- 0 - """ + mat <- as.matrix(stats::as.dist(mat,diag=TRUE,upper=TRUE)) + mat[is.na(mat)] <- 0 + if (length(which(mat == Inf))) { + infp <- which(mat == Inf) + mat[infp] <- NA + maxmat <- max(mat, na.rm = TRUE) + if (maxmat > 0) { + maxmat <- maxmat + 1 + } else { + maxmat <- 0 + } + mat[infp] <- maxmat + } + if (length(which(mat == -Inf))) { + infm <- which(mat == -Inf) + mat[infm] <- NA + minmat <- min(mat, na.rm = TRUE) + if (maxmat < 0) { + minmat <- minmat - 1 + } else { + minmat <- 0 + } + mat[infm] <- minmat + } + """ + if 'word' in self.parametres and not self.parametres['keep_coord'] : + txt += """ + mat <- graph.word(mat, index) + cs <- colSums(mat) + if (length(cs)) mat <- mat[,-which(cs==0)] + rs <- rowSums(mat) + if (length(rs)) mat <- mat[-which(rs==0),] + if (length(cs)) dm <- dm[, -which(cs==0)] + """ + if self.parametres['layout'] == 0 : layout = 'random' if self.parametres['layout'] == 1 : layout = 'circle' if self.parametres['layout'] == 2 : layout = 'frutch' if self.parametres['layout'] == 3 : layout = 'kawa' if self.parametres['layout'] == 4 : layout = 'graphopt' + self.filename='' if self.parametres['type_graph'] == 0 : type = 'tkplot' if self.parametres['type_graph'] == 1 : @@ -781,13 +932,13 @@ class PrintSimiScript(PrintRScript) : txt += """ et <- list() """ - for i,et in enumerate(self.tableau.etline) : + for i, line in enumerate(self.parametres['listet']) : txt+= """ et[[%i]] <- c(%s) - """ % (i+1, ','.join(et[1:])) + """ % (i+1, ','.join([`val + 1` for val in line])) txt+= """ unetoile <- c('%s') - """ % ("','".join([val[0] for val in self.tableau.etline])) + """ % ("','".join([val for val in self.parametres['selectedstars']])) txt += """ fsum <- NULL rs <- rowSums(dm) @@ -812,7 +963,7 @@ class PrintSimiScript(PrintRScript) : cols <- vertex.label.color chivertex.size <- norm.vec(toblack, vcexminmax[1], vcexminmax[2]) - """ % (self.parent.RscriptsPath['chdfunct']) + """ % (self.analyse.parent.RscriptsPath['chdfunct']) else : txt += """ vertex.label.color <- 'black' @@ -842,10 +993,22 @@ class PrintSimiScript(PrintRScript) : # g.toplot <- g.ori # } # """ + if self.parametres['com'] : + com = `self.parametres['communities']` + else : + com = 'NULL' + if self.parametres['halo'] : + halo = 'TRUE' + else : + halo = 'FALSE' + txt += """ + communities <- %s + halo <- %s + """ % (com, halo) txt += """ eff <- colSums(dm) x <- list(mat = mat, eff = eff) - graph.simi <- do.simi(x, method='%s', seuil = seuil, p.type = '%s', layout.type = '%s', max.tree = %s, coeff.vertex=%s, coeff.edge = %s, minmaxeff = minmaxeff, vcexminmax = vcexminmax, cex = cex, coords = coords) + graph.simi <- do.simi(x, method='%s', seuil = seuil, p.type = '%s', layout.type = '%s', max.tree = %s, coeff.vertex=%s, coeff.edge = %s, minmaxeff = minmaxeff, vcexminmax = vcexminmax, cex = cex, coords = coords, communities = communities, halo = halo) """ % (method, type, layout, arbremax, coeff_tv, coeff_te) if self.parametres.get('bystar',False) : @@ -866,18 +1029,15 @@ class PrintSimiScript(PrintRScript) : vertex.size <- NULL """ else : - #FIXME - tmpchi = False - if tmpchi : + if self.parametres['type'] == 'clustersimitxt' : txt += """ lchi <- read.table("%s") lchi <- lchi[,1] - """ % ffr(tmpchi) - if 'selected_col' in dir(self.tableau) : - txt += """ - lchi <- lchi[c%s+1] - """ % datas - if tmpchi and self.parametres.get('cexfromchi', False) : + """ % ffr(self.parametres['tmpchi']) + txt += """ + lchi <- lchi[sel.col] + """ + if self.parametres['type'] == 'clustersimitxt' and self.parametres.get('cexfromchi', False) : txt += """ label.cex <- norm.vec(lchi, vcexminmax[1], vcexminmax[2]) """ @@ -889,21 +1049,38 @@ class PrintSimiScript(PrintRScript) : label.cex <- graph.simi$label.cex } """ - if tmpchi and self.parametres.get('sfromchi', False) : + if self.parametres['type'] == 'clustersimitxt' and self.parametres.get('sfromchi', False) : txt += """ vertex.size <- norm.vec(lchi, minmaxeff[1], minmaxeff[2]) + if (!length(vertex.size)) vertex.size <- 0 """ else : txt += """ if (is.null(minmaxeff[1])) { - vertex.size <- NULL + vertex.size <- 0 } else { vertex.size <- graph.simi$eff } """ - txt += """ vertex.size <- NULL """ + #txt += """ vertex.size <- NULL """ + if self.parametres['svg'] : svg = 'TRUE' + else : svg = 'FALSE' + txt += """ + svg <- %s + """ % svg txt += """ - coords <- plot.simi(graph.simi, p.type='%s',filename="%s", vertex.label = label.v, edge.label = label.e, vertex.col = cols, vertex.label.color = vertex.label.color, vertex.label.cex=label.cex, vertex.size = vertex.size, edge.col = cola, leg=leg, width = width, height = height, alpha = alpha, movie = film) + vertex.col <- cols + if (!is.null(graph.simi$com)) { + com <- graph.simi$com + colm <- rainbow(length(com)) + if (vertex.size != 0 || graph.simi$halo) { + vertex.label.color <- 'black' + vertex.col <- colm[membership(com)] + } else { + vertex.label.color <- colm[membership(com)] + } + } + coords <- plot.simi(graph.simi, p.type='%s',filename="%s", vertex.label = label.v, edge.label = label.e, vertex.col = vertex.col, vertex.label.color = vertex.label.color, vertex.label.cex=label.cex, vertex.size = vertex.size, edge.col = cola, leg=leg, width = width, height = height, alpha = alpha, movie = film, svg = svg) save.image(file="%s") """ % (type, self.filename, self.pathout['RData']) @@ -912,18 +1089,31 @@ class PrintSimiScript(PrintRScript) : class WordCloudRScript(PrintRScript) : def make_script(self) : - self.Source([self.analyse.parent.RscriptsPath['Rgraph']]) + self.sources([self.analyse.parent.RscriptsPath['Rgraph']]) self.packages(['wordcloud']) bg_col = Rcolor(self.parametres['col_bg']) txt_col = Rcolor(self.parametres['col_text']) + if self.parametres['svg'] : + svg = 'TRUE' + else : + svg = 'FALSE' txt = """ + svg <- %s + """ % svg + txt += """ act <- read.csv2("%s", header = FALSE, row.names=1, sep='\t') selected.col <- read.table("%s") - toprint <- act[selected.col + 1,] - open_file_graph("%s", width = %i, height = %i) + toprint <- as.matrix(act[selected.col[,1] + 1,]) + rownames(toprint) <- rownames(act)[selected.col[,1] + 1] + maxword <- %i + if (nrow(toprint) > maxword) { + toprint <- as.matrix(toprint[order(toprint[,1], decreasing=TRUE),]) + toprint <- as.matrix(toprint[1:maxword,]) + } + open_file_graph("%s", width = %i, height = %i , svg = svg) par(bg=rgb%s) wordcloud(row.names(toprint), toprint[,1], scale=c(%f,%f), random.order=FALSE, colors=rgb%s) dev.off() - """ % (self.parametres['actives_eff.csv'], self.parametres['selected.csv'], self.parametres['graphout'], self.parametres['width'], self.parametres['height'], bg_col, self.parametres['maxcex'], self.parametres['mincex'], txt_col) + """ % (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()