### R code from vignette source 'vignettes/eiR/inst/doc/eiR.Rnw'

###################################################
### code chunk number 1: eiR.Rnw:29-32
###################################################
   unlink("data",recursive=TRUE)
   unlink(paste("run",60,40,sep="-"),recursive=TRUE)
   set.seed(80)


###################################################
### code chunk number 2: eiR.Rnw:87-90
###################################################
library(eiR)
data(sdfsample)
eiInit(sdfsample[1:99])


###################################################
### code chunk number 3: eiR.Rnw:147-150
###################################################
r<- 60
d<- 40
refIddb <- eiMakeDb(r,d)


###################################################
### code chunk number 4: eiR.Rnw:186-199
###################################################
#find compounds similar to each query
result=eiQuery(r,d,refIddb,sdfsample[45],K=10)

#compute similarities from distance values
result$similarities=1-result$distance
print(result[1:4,])

#Compare to traditional similarity search:
data(apset)
print(cmp.search(apset,apset[45],type=3,cutoff=4,quiet=TRUE))

cid(sdfsample)=sdfid(sdfsample)
plot(sdfsample[result$target[1:4]])


###################################################
### code chunk number 5: eiR.Rnw:220-221
###################################################
eiAdd(r,d,refIddb,sdfsample[100])


###################################################
### code chunk number 6: eiR.Rnw:235-236
###################################################
eiPerformanceTest(r,d,K=22)


###################################################
### code chunk number 7: eiR.Rnw:287-289
###################################################
setDefaultDistance("ap", function(d1,d2) 1-cmp.similarity(d1,d2) )
setDefaultDistance("fp", function(d1,d2) 1-fpSim(d1,d2) )


###################################################
### code chunk number 8: eiR.Rnw:325-357
###################################################
addTransform("ap","sdf",
	# Any sdf source -> APset
	toObject = function(input,dir="."){
		sdfset=if(is.character(input) && file.exists(input)){
			read.SDFset(input)
		}else if(inherits(input,"SDFset")){
			input
		}else{
			stop(paste("unknown type for 'input', 
				or filename does not exist. type found:",class(input)))
		}
		list(names=sdfid(sdfset),descriptors=sdf2ap(sdfset))
	}
)

addTransform("ap",  
	# APset -> string,
	toString = function(apset,dir="."){
		unlist(lapply(ap(apset), function(x) paste(x,collapse=", ")))
	},
	# string or list -> AP set list
	toObject= function(v,dir="."){ 
		if(inherits(v,"list") || length(v)==0)
			return(v)

		as( if(!inherits(v,"APset")){
				names(v)=as.character(1:length(v));  
				read.AP(v,type="ap",isFile=FALSE)
			} else v,
			"list")  
	}
)


###################################################
### code chunk number 9: eiR.Rnw:365-367
###################################################
   unlink("data",recursive=TRUE)
   unlink(paste("run",r,d,sep="-"),recursive=TRUE)