X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=PrintRScript.py;h=4987b21ebea0ba85b3c80a13dd3b7eadba61dbe0;hp=d4d327527304b5444024af32d557536535e3aabc;hb=e4fcd29b0d143168ba43be91e3c829eceefb0dd3;hpb=1f82fb8e9ed83b8524b00039f1a8c51c2b12a8be diff --git a/PrintRScript.py b/PrintRScript.py index d4d3275..4987b21 100644 --- a/PrintRScript.py +++ b/PrintRScript.py @@ -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") @@ -148,14 +161,13 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, libsvdc = False data2 <- as(data2, "dgCMatrix") row.names(data2) <- 1:nrow(data2) """ % DicoPath['TableUc2'] - #log.info('ATTENTION ############# MODEPATATE ####################') txt += """ - chd1<-CHD(data1, x = nbt, mode.patate = FALSE, 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 += """ @@ -173,12 +185,12 @@ 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) @@ -275,7 +287,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) @@ -378,6 +390,10 @@ write.csv2(gbcluster,file="%s") xmax <- max(afc$rowcoord[,1], na.rm = TRUE) + (0.1 * max(afc$rowcoord[,1], na.rm = TRUE)) ymin <- min(afc$rowcoord[,2], na.rm = TRUE) + (0.1 * min(afc$rowcoord[,2], na.rm = TRUE)) ymax <- max(afc$rowcoord[,2], na.rm = TRUE) + (0.1 * max(afc$rowcoord[,2], na.rm = TRUE)) + print(xmin) + print(xmax) + print(ymin) + print(ymax) """ % taillecar txt += """ PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab, xmin=xmin, xmax=xmax, ymin = ymin, ymax=ymax) @@ -431,6 +447,9 @@ def write_afc_graph(self): 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() @@ -460,7 +479,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): @@ -535,9 +555,29 @@ def barplot(table, rownames, colnames, rgraph, tmpgraph, intxt = False) : 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) @@ -553,7 +593,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)] @@ -653,7 +706,7 @@ class PrintSimiScript(PrintRScript) : """ % (self.pathout['mat01.csv'], self.pathout['actives.csv'], self.pathout['selected.csv']) txt += """ dm <-readMM(dm.path) - cn <- read.table(cn.path, sep=';', quote='"') + cn <- read.table(cn.path, sep='\t', quote='"') colnames(dm) <- cn[,1] sel.col <- read.csv2(selected.col) dm <- dm[, sel.col[,1] + 1]