| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -3,6 +3,7 @@
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# Taha Ahmed, Jan 2011 - Feb 2011
 | 
					 | 
					 | 
					 | 
					# Taha Ahmed, Jan 2011 - Feb 2011
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# CONTENTS
 | 
					 | 
					 | 
					 | 
					# CONTENTS
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					source("/home/taha/chepec/chetex/common/R/common.R")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# >>>> ocp2df
 | 
					 | 
					 | 
					 | 
					# >>>> ocp2df
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# >>>> chronocm2df
 | 
					 | 
					 | 
					 | 
					# >>>> chronocm2df
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# >>>> chronoamp2df
 | 
					 | 
					 | 
					 | 
					# >>>> chronoamp2df
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -26,6 +27,8 @@ ocp2df <- function(datafilename) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   chifile <- readLines(datafile, n = -1) #read all lines of input file
 | 
					 | 
					 | 
					 | 
					   chifile <- readLines(datafile, n = -1) #read all lines of input file
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   close(datafile)
 | 
					 | 
					 | 
					 | 
					   close(datafile)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   sampleid <- ProvideSampleId(datafilename)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+[e,]"
 | 
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+[e,]"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -53,11 +56,11 @@ ocp2df <- function(datafilename) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               data.frame(matrix(scan(zz, what = numeric(), sep = ","),
 | 
					 | 
					 | 
					 | 
					               data.frame(sampleid, matrix(scan(zz, what = numeric(), sep = ","),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  ncol = 2, byrow = T)))
 | 
					 | 
					 | 
					 | 
					                  ncol = 2, byrow = T)))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      close(zz)
 | 
					 | 
					 | 
					 | 
					      close(zz)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   }
 | 
					 | 
					 | 
					 | 
					   }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   names(ff) <- c("time", "potential")
 | 
					 | 
					 | 
					 | 
					   names(ff) <- c("sampleid", "time", "potential")
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   ### Collect attributes of this experiment
 | 
					 | 
					 | 
					 | 
					   ### Collect attributes of this experiment
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # These attributes are specific for each kind of experiment,
 | 
					 | 
					 | 
					 | 
					   # These attributes are specific for each kind of experiment,
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -91,6 +94,8 @@ chronocm2df <- function(datafilename) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   chifile <- readLines(datafile, n = -1) #read all lines of input file
 | 
					 | 
					 | 
					 | 
					   chifile <- readLines(datafile, n = -1) #read all lines of input file
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   close(datafile)
 | 
					 | 
					 | 
					 | 
					   close(datafile)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   sampleid <- ProvideSampleId(datafilename)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+[e,]"
 | 
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+[e,]"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -118,12 +123,12 @@ chronocm2df <- function(datafilename) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               data.frame(step = factor(s),
 | 
					 | 
					 | 
					 | 
					               data.frame(sampleid, step = factor(s),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               matrix(scan(zz, what = numeric(), sep = ","),
 | 
					 | 
					 | 
					 | 
					               matrix(scan(zz, what = numeric(), sep = ","),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  ncol = 2, byrow = T)))
 | 
					 | 
					 | 
					 | 
					                  ncol = 2, byrow = T)))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      close(zz)
 | 
					 | 
					 | 
					 | 
					      close(zz)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   }
 | 
					 | 
					 | 
					 | 
					   }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   names(ff) <- c("step", "time", "charge")
 | 
					 | 
					 | 
					 | 
					   names(ff) <- c("sampleid", "step", "time", "charge")
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   ### Collect attributes of this experiment
 | 
					 | 
					 | 
					 | 
					   ### Collect attributes of this experiment
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # These attributes are specific for each kind of experiment,
 | 
					 | 
					 | 
					 | 
					   # These attributes are specific for each kind of experiment,
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -168,6 +173,8 @@ chronoamp2df <- function(datafilename, wearea = 1) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   chifile <- readLines(datafile, n = -1) #read all lines of input file
 | 
					 | 
					 | 
					 | 
					   chifile <- readLines(datafile, n = -1) #read all lines of input file
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   close(datafile)
 | 
					 | 
					 | 
					 | 
					   close(datafile)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   sampleid <- ProvideSampleId(datafilename)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+[e,]"
 | 
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+[e,]"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -195,12 +202,12 @@ chronoamp2df <- function(datafilename, wearea = 1) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               data.frame(step = factor(s),
 | 
					 | 
					 | 
					 | 
					               data.frame(sampleid, step = factor(s),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               matrix(scan(zz, what = numeric(), sep = ","),
 | 
					 | 
					 | 
					 | 
					               matrix(scan(zz, what = numeric(), sep = ","),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  ncol = 2, byrow = T)))
 | 
					 | 
					 | 
					 | 
					                  ncol = 2, byrow = T)))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      close(zz)
 | 
					 | 
					 | 
					 | 
					      close(zz)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   }
 | 
					 | 
					 | 
					 | 
					   }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   names(ff) <- c("step", "time", "current")
 | 
					 | 
					 | 
					 | 
					   names(ff) <- c("sampleid", "step", "time", "current")
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Calculate current density
 | 
					 | 
					 | 
					 | 
					   # Calculate current density
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   currentdensity <- ff$current / wearea
 | 
					 | 
					 | 
					 | 
					   currentdensity <- ff$current / wearea
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   ff <- cbind(ff, currentdensity = currentdensity)
 | 
					 | 
					 | 
					 | 
					   ff <- cbind(ff, currentdensity = currentdensity)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -252,6 +259,8 @@ amperometry2df <- function(datafilename, wearea = 1) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   chifile <- readLines(datafile, n = -1) #read all lines of input file
 | 
					 | 
					 | 
					 | 
					   chifile <- readLines(datafile, n = -1) #read all lines of input file
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   close(datafile)
 | 
					 | 
					 | 
					 | 
					   close(datafile)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   sampleid <- ProvideSampleId(datafilename)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+[e,]"
 | 
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+[e,]"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -279,11 +288,11 @@ amperometry2df <- function(datafilename, wearea = 1) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               data.frame(matrix(scan(zz, what = numeric(), sep = ","),
 | 
					 | 
					 | 
					 | 
					               data.frame(sampleid, matrix(scan(zz, what = numeric(), sep = ","),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  ncol = 2, byrow = T)))
 | 
					 | 
					 | 
					 | 
					                  ncol = 2, byrow = T)))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      close(zz)
 | 
					 | 
					 | 
					 | 
					      close(zz)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   }
 | 
					 | 
					 | 
					 | 
					   }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   names(ff) <- c("time", "current")
 | 
					 | 
					 | 
					 | 
					   names(ff) <- c("sampleid", "time", "current")
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Calculate current density
 | 
					 | 
					 | 
					 | 
					   # Calculate current density
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   currentdensity <- ff$current / wearea
 | 
					 | 
					 | 
					 | 
					   currentdensity <- ff$current / wearea
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   ff <- cbind(ff, currentdensity = currentdensity)
 | 
					 | 
					 | 
					 | 
					   ff <- cbind(ff, currentdensity = currentdensity)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -318,16 +327,18 @@ amperometry2df <- function(datafilename, wearea = 1) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					##################################################
 | 
					 | 
					 | 
					 | 
					##################################################
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#################### cv2df #######################
 | 
					 | 
					 | 
					 | 
					#################### cv2df #######################
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					##################################################
 | 
					 | 
					 | 
					 | 
					##################################################
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					cv2df <- function(cvfilename, wearea = 1) {
 | 
					 | 
					 | 
					 | 
					cv2df <- function(datafilename, wearea = 1) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Function description: 
 | 
					 | 
					 | 
					 | 
					   # Function description: 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # CH Instruments potentiostat records all data using standard SI units,
 | 
					 | 
					 | 
					 | 
					   # CH Instruments potentiostat records all data using standard SI units,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # so all potential values are in volts, currents are in amperes,
 | 
					 | 
					 | 
					 | 
					   # so all potential values are in volts, currents are in amperes,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # charges in Coulombs, time in seconds, etc.
 | 
					 | 
					 | 
					 | 
					   # charges in Coulombs, time in seconds, etc.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   cvfile <- file(cvfilename, "r")
 | 
					 | 
					 | 
					 | 
					   cvfile <- file(datafilename, "r")
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   chifile <- readLines(cvfile, n = -1) #read all lines of input file
 | 
					 | 
					 | 
					 | 
					   chifile <- readLines(cvfile, n = -1) #read all lines of input file
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   close(cvfile)
 | 
					 | 
					 | 
					 | 
					   close(cvfile)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   sampleid <- ProvideSampleId(datafilename)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+,"
 | 
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+,"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -355,15 +366,15 @@ cv2df <- function(cvfilename, wearea = 1) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               data.frame(segment = factor(s), cycle = factor(ceiling(s/2)),
 | 
					 | 
					 | 
					 | 
					               data.frame(sampleid, segment = factor(s), cycle = factor(ceiling(s/2)),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               matrix(scan(zz, what = numeric(), sep = ","),
 | 
					 | 
					 | 
					 | 
					               matrix(scan(zz, what = numeric(), sep = ","),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  ncol = 3, byrow = T)))
 | 
					 | 
					 | 
					 | 
					                  ncol = 3, byrow = T)))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      close(zz)
 | 
					 | 
					 | 
					 | 
					      close(zz)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   }
 | 
					 | 
					 | 
					 | 
					   }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   names(ff) <- c("segment", "cycle", "potential", "current", "charge")
 | 
					 | 
					 | 
					 | 
					   names(ff) <- c("sampleid", "segment", "cycle", "potential", "current", "charge")
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Calculate current density
 | 
					 | 
					 | 
					 | 
					   # Calculate current density
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   currentdensity <- ff$current / wearea
 | 
					 | 
					 | 
					 | 
					   currentdensity <- ff$current / wearea
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   ff <- cbind(ff[, 1:4], currentdensity = currentdensity, ff[, 5])
 | 
					 | 
					 | 
					 | 
					   ff <- cbind(ff[, 1:5], currentdensity = currentdensity, charge = ff[, 6])
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   ### Collect attributes of this experiment
 | 
					 | 
					 | 
					 | 
					   ### Collect attributes of this experiment
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # These attributes are specific for each kind of experiment,
 | 
					 | 
					 | 
					 | 
					   # These attributes are specific for each kind of experiment,
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -403,16 +414,18 @@ cv2df <- function(cvfilename, wearea = 1) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					##################################################
 | 
					 | 
					 | 
					 | 
					##################################################
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					################### lsv2df #######################
 | 
					 | 
					 | 
					 | 
					################### lsv2df #######################
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					##################################################
 | 
					 | 
					 | 
					 | 
					##################################################
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					lsv2df <- function(lsvfilename, wearea = 1) {
 | 
					 | 
					 | 
					 | 
					lsv2df <- function(datafilename, wearea = 1) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Function description: 
 | 
					 | 
					 | 
					 | 
					   # Function description: 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # CH Instruments potentiostat records all data using standard SI units,
 | 
					 | 
					 | 
					 | 
					   # CH Instruments potentiostat records all data using standard SI units,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # so all potential values are in volts, currents are in amperes,
 | 
					 | 
					 | 
					 | 
					   # so all potential values are in volts, currents are in amperes,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # charges in Coulombs, time in seconds, etc.
 | 
					 | 
					 | 
					 | 
					   # charges in Coulombs, time in seconds, etc.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   lsvfile <- file(lsvfilename, "r")
 | 
					 | 
					 | 
					 | 
					   lsvfile <- file(datafilename, "r")
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   chifile <- readLines(lsvfile, n = -1) #read all lines of input file
 | 
					 | 
					 | 
					 | 
					   chifile <- readLines(lsvfile, n = -1) #read all lines of input file
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   close(lsvfile)
 | 
					 | 
					 | 
					 | 
					   close(lsvfile)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   sampleid <- ProvideSampleId(datafilename)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+,"
 | 
					 | 
					 | 
					 | 
					   rgxp.number <- "^\\-?\\d\\.\\d+,"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
					 | 
					 | 
					 | 
					   # regexp that matches a decimal number at the beginning of the line.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
					 | 
					 | 
					 | 
					   # Matches numbers with or without a negative sign (hyphen), 
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -440,15 +453,15 @@ lsv2df <- function(lsvfilename, wearea = 1) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
					 | 
					 | 
					 | 
					   for (s in 1:length(starts)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
					 | 
					 | 
					 | 
					      zz <- textConnection(chifile[starts[s]:ends[s]], "r")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
					 | 
					 | 
					 | 
					      ff <- rbind(ff,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               data.frame(segment = factor(s),
 | 
					 | 
					 | 
					 | 
					               data.frame(sampleid, segment = factor(s),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               matrix(scan(zz, what = numeric(), sep = ","),
 | 
					 | 
					 | 
					 | 
					               matrix(scan(zz, what = numeric(), sep = ","),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  ncol = 3, byrow = T)))
 | 
					 | 
					 | 
					 | 
					                  ncol = 3, byrow = T)))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      close(zz)
 | 
					 | 
					 | 
					 | 
					      close(zz)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   }
 | 
					 | 
					 | 
					 | 
					   }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   names(ff) <- c("segment", "potential", "current", "charge")
 | 
					 | 
					 | 
					 | 
					   names(ff) <- c("sampleid", "segment", "potential", "current", "charge")
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # Calculate current density
 | 
					 | 
					 | 
					 | 
					   # Calculate current density
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   currentdensity <- ff$current / wearea
 | 
					 | 
					 | 
					 | 
					   currentdensity <- ff$current / wearea
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   ff <- cbind(ff[, 1:3], currentdensity = currentdensity, ff[, 4])
 | 
					 | 
					 | 
					 | 
					   ff <- cbind(ff[, 1:4], currentdensity = currentdensity, charge = ff[, 5])
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   #
 | 
					 | 
					 | 
					 | 
					   #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   ### Collect attributes of this experiment
 | 
					 | 
					 | 
					 | 
					   ### Collect attributes of this experiment
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   # These attributes are specific for each kind of experiment,
 | 
					 | 
					 | 
					 | 
					   # These attributes are specific for each kind of experiment,
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |