## Load sample data
library(ChemmineR)
data(sdfsample); sdfset <- sdfsample
## Not run: write.SDF(sdfset, "test.sdf")
#
# ## Define descriptor set in a simple function
# desc <- function(sdfset) {
# cbind(SDFID=sdfid(sdfset),
# # datablock2ma(datablocklist=datablock(sdfset)),
# MW=MW(sdfset),
# groups(sdfset),
# APFP=desc2fp(x=sdf2ap(sdfset), descnames=1024, type="character"),
# AP=sdf2ap(sdfset, type="character"),
# rings(sdfset, type="count", upper=6, arom=TRUE)
# )
# }
#
# ## Run sdfStream with desc function and write results to a file called 'matrix.xls'
# sdfStream(input="test.sdf", output="matrix.xls", fct=desc, Nlines=1000)
#
# ## Select molecules from SD File using line index from sdfStream
# indexDF <- read.delim("matrix.xls", row.names=1)[,1:4]
# indexDFsub <- indexDF[indexDF$MW < 400, ] # Selects molecules with MW < 400
# sdfset <- read.SDFindex(file="test.sdf", index=indexDFsub, type="SDFset")
#
# ## Write result directly to SD file without storing larger numbers of molecules in memory
# read.SDFindex(file="test.sdf", index=indexDFsub, type="file", outfile="sub.sdf")
#
# ## Read AP/APFP strings from file into APset or FP object
# apset <- read.AP(x="matrix.xls", type="ap", colid="AP")
# apfp <- read.AP(x="matrix.xls", type="apfp", colid="APFP")
#
# ## Alternatively, one can provide the AP/APFP strings in a named character vector
# apset <- read.AP(x=sdf2ap(sdfset[1:20], type="character"), type="ap")
# apfp <- read.AP(x=desc2fp(x=sdf2ap(sdfset[1:20]), descnames=1024, type="character"), type="apfp")
# ## End(Not run)
Run the code above in your browser using DataLab