read.SDFindex {ChemmineR} | R Documentation |
Extracts specific molecules from SD File based on a line position index computed by the sdfStream
function.
read.SDFindex(file, index, type = "SDFset", outfile)
file |
file name of source SD file used to generate |
index |
data frame containing in the first two columns the start and end positions (index) of molecules in an SD File, respectively. Typically, this index would be imported with |
type |
if |
outfile |
name of output file when |
...
Writes molecules in SDF format to file or collects them in SDFset
container.
Thomas Girke
SDF format definition: http://www.symyx.com/downloads/public/ctfile/ctfile.jsp
Import/export functions: read.SDFset
, read.SDFstr
, read.SDFstr
, read.SDFset
, write.SDFsplit
## 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), # 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") ## End(Not run)