Learn R Programming

ChemmineR (version 2.24.2)

read.SDFindex: Extract Molecules from SD File by Line Index

Description

Extracts specific molecules from SD File based on a line position index computed by the sdfStream function.

Usage

read.SDFindex(file, index, type = "SDFset", outfile)

Arguments

file
file name of source SD file used to generate index
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 read.table/read.delim from a tabular descriptor file generated by the sdfStream function.
type
if type="file", the SDF output will be written to a file named as specified under outfile; if type="SDFset", the SDF data is collected will be a SDFset container.
outfile
name of output file when type="file"

Value

Writes molecules in SDF format to file or collects them in SDFset container.

Details

...

References

SDF format definition: http://www.symyx.com/downloads/public/ctfile/ctfile.jsp

See Also

Import/export functions: read.SDFset, read.SDFstr, read.SDFstr, read.SDFset, write.SDFsplit

Examples

Run this code
## 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)

Run the code above in your browser using DataLab