# -*- coding: utf-8 -*-
#Author: Pierre Ratinaud
#Copyright (c) 2008-2011 Pierre Ratinaud
-#Lisense: GNU/GPL
+#License: GNU/GPL
import tempfile
from chemins import ffr
def sources(self, lsources) :
for source in lsources :
- self.add('source("%s")' % source)
+ self.add('source("%s", encoding = \'utf8\')' % source)
def packages(self, lpks) :
for pk in lpks :
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)
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)
txt += """
source("%s")
color = rainbow(nrow(di))
- width <- 100 + (20*length(rownames(di))) + (100 * length(colnames(di)))
+ width <- 100 + (10*length(rownames(di))) + (100 * length(colnames(di)))
height <- nrow(di) * 15
if (height < 400) { height <- 400}
open_file_graph("%s",width = width, height = height)
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))
+ par(mar=c(6,2,1,0))
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))
+ coord <- barplot(as.matrix(di), beside = TRUE, col = color, space = c(0.1,0.6), ylim=c(ymin, max(di) + yp), las = 2)
if (length(toinf)) {
coordinf <- coord[toinf]
valinf <- di[toinf]
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 (file.exists(selected.col)) {
+ sel.col <- read.csv2(selected.col, header = FALSE)
+ sel.col <- sel.col[,1] + 1
+ } else {
+ sel.col <- 1:ncol(dm)
+ }
if (!word) {
dm <- dm[, sel.col]
} else {
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 (file.exists(selected.col)) {
+ sel.col <- read.csv2(selected.col, header = FALSE)
+ sel.col <- sel.col[,1] + 1
+ } else {
+ sel.col <- 1:ncol(dm)
+ }
if (!word) {
dm <- dm[, sel.col]
} else {
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.csv'])
+ while os.path.exists(os.path.join(dirout,'webrgl_'+str(graphnb))):
+ graphnb +=1
+ self.filename = ffr(os.path.join(dirout,'webrgl_'+str(graphnb)))
+ os.mkdir(self.filename)
if self.parametres['arbremax'] :
arbremax = 'TRUE'
"""
else :
txt+="""
- label.cex <- NULL
+ label.cex <- cex
"""
if self.parametres.get('sfromchi', False) :
txt += """
vertex.size <- NULL
"""
else :
- if self.parametres['type'] == 'clustersimitxt' :
+ #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")
lchi <- lchi[,1]
else :
txt += """
if (is.null(vcexminmax[1])) {
- label.cex <- NULL
+ label.cex <- cex
} else {
label.cex <- graph.simi$label.cex
}
"""
- if self.parametres['type'] == 'clustersimitxt' and self.parametres.get('sfromchi', False) :
+ if (self.parametres['type'] == 'clustersimitxt' or self.parametres['type'] == 'simimatrix') and self.parametres.get('sfromchi', False):
txt += """
vertex.size <- norm.vec(lchi, minmaxeff[1], minmaxeff[2])
if (!length(vertex.size)) vertex.size <- 0
""" % (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 = """
+ 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))
+ dev.off()
+ """ % (self.analyse.pathout['table.csv'], self.analyse.pathout['proto.png'], self.parametres['limfreq'], self.parametres['limrang'])
+ self.add(txt)
+ self.write()
+
+
+class ExportAfc(PrintRScript) :
+ def make_script(self) :
+ self.source([self.analyse.parent.RscriptsPath['Rgraph']])
+ 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)
+