Title: | Chemical Entities as R Objects |
---|---|
Description: | Utilities for dealing with chemical entities and associated data as R objects. If Python and RDKit (> 2015.03) are installed and configured for use with 'reticulate', some basic chemoinformatics functions like the calculation of molecular weight and plotting of chemical structures in R graphics are available. |
Authors: | Johannes Ranke [aut, cre, cph] |
Maintainer: | Johannes Ranke <[email protected]> |
License: | GPL |
Version: | 0.3.6 |
Built: | 2024-10-04 05:16:18 UTC |
Source: | https://github.com/jranke/chents |
The class is initialised with an identifier. Chemical information is retrieved from the internet. Additionally, it can be generated using RDKit if RDKit and its python bindings are installed.
An R6Class
generator object
identifier
(character(1)
)
The identifier that was used to initiate the object, with attribute 'source'
inchikey
(character(1)
)
InChI Key, with attribute 'source'
smiles
(character()
)
SMILES code(s), with attribute 'source'
mw
(numeric(1)
)
Molecular weight, with attribute 'source'
pubchem
(list()
)
List of information retrieved from PubChem
rdkit
List of information obtained with RDKit
mol
<rdkit.Chem.rdchem.Mol> object
svg
SVG code
Picture
Graph as a picture
object obtained using grImport
Pict_font_size
Font size as extracted from the intermediate PostScript file
pdf_height
Height of the MediaBox in the pdf after cropping
p0
Vapour pressure in Pa
cwsat
Water solubility in mg/L
PUF
Plant uptake factor
chyaml
List of information obtained from a YAML file
TPs
List of transformation products as chent objects Add a transformation product to the internal list
transformations
Data frame of observed transformations Add a line in the internal dataframe holding observed transformations
soil_degradation
Dataframe of modelling DT50 values Add a line in the internal dataframe holding modelling DT50 values
soil_ff
Dataframe of formation fractions
soil_sorption
Dataframe of soil sorption data Add soil sorption data
new()
Creates a new instance of this R6 class.
chent$new( identifier, smiles = NULL, inchikey = NULL, pubchem = TRUE, pubchem_from = c("name", "smiles", "inchikey"), rdkit = TRUE, template = NULL, chyaml = TRUE )
identifier
Identifier to be stored in the object
smiles
Optional user provided SMILES code
inchikey
Optional user provided InChI Key
pubchem
Should an attempt be made to retrieve chemical information from PubChem via the webchem package?
pubchem_from
Possibility to select the argument that is used to query pubchem
rdkit
Should an attempt be made to retrieve chemical information from a local rdkit installation via python and the reticulate package?
template
An optional SMILES code to be used as template for RDKit
chyaml
Should we look for a identifier.yaml file in the working directory? Try to get chemical information from PubChem
try_pubchem()
chent$try_pubchem(query, from = "name")
get_pubchem()
chent$get_pubchem(pubchem_cid)
pubchem_cid
CID Get chemical information from RDKit if available
get_rdkit()
chent$get_rdkit(template = NULL)
template
Optional template specified as a SMILES code Obtain information from a YAML file
get_chyaml()
chent$get_chyaml( repo = c("wd", "local", "web"), chyaml = paste0(URLencode(self$identifier), ".yaml") )
repo
Should the file be looked for in the current working
directory, a local git repository under ~/git/chyaml
, or from
the web (not implemented).
chyaml
The filename to be looked for Add a vapour pressure
add_p0()
chent$add_p0(p0, T = NA, source = NA, page = NA, remark = "")
p0
The vapour pressure in Pa
T
Temperature
source
An acronym specifying the source of the information
page
The page from which the information was taken
remark
A remark Add a water solubility
add_cwsat()
chent$add_cwsat(cwsat, T = NA, pH = NA, source = NA, page = NA, remark = "")
cwsat
The water solubility in mg/L
T
Temperature
pH
The pH value
source
An acronym specifying the source of the information
page
The page from which the information was taken
remark
A remark Add a plant uptake factor
add_PUF()
chent$add_PUF( PUF = 0, source = "focus_generic_gw_2014", page = 41, remark = "Conservative default value" )
PUF
The plant uptake factor, a number between 0 and 1
source
An acronym specifying the source of the information
page
The page from which the information was taken
remark
A remark
add_TP()
chent$add_TP(x, smiles = NULL, pubchem = FALSE)
add_transformation()
chent$add_transformation( study_type, TP_identifier, max_occurrence, remark = "", source = NA, pages = NA )
study_type
A characterisation of the study type
TP_identifier
An identifier of one of the transformation products
in self$TPs
max_occurrence
The maximum observed occurrence of the transformation product, expressed as a fraction of the amount that would result from stochiometric transformation
remark
A remark
source
An acronym specifying the source of the information
pages
The page from which the information was taken
add_soil_degradation()
chent$add_soil_degradation( soils, DT50_mod, DT50_mod_ref, type = NA, country = NA, pH_orig = NA, pH_medium = NA, pH_H2O = NA, perc_OC = NA, temperature = NA, moisture = NA, category = "lab", formulation = NA, model = NA, chi2 = NA, remark = "", source, page = NA )
soils
Names of the soils
DT50_mod
The modelling DT50 in the sense of regulatory pesticide fate modelling
DT50_mod_ref
The normalised modelling DT50 in the sense of regulatory pesticide fate modelling
type
The soil type
country
The country (mainly for field studies)
pH_orig
The pH stated in the study
pH_medium
The medium in which this pH was measured
pH_H2O
The pH extrapolated to pure water
perc_OC
The percentage of organic carbon in the soil
temperature
The temperature during the study in degrees Celsius
moisture
The moisture during the study
category
Is it a laboratory ('lab') or field study ('field')
formulation
Name of the formulation applied, if it was not the technical active ingredient
model
The degradation model used for deriving DT50_mod
chi2
The relative error as defined in FOCUS kinetics
remark
A remark
source
An acronym specifying the source of the information
page
The page from which the information was taken
add_soil_ff()
chent$add_soil_ff(target, soils, ff = 1, remark = "", source, page = NA)
target
The identifier(s) of the transformation product
soils
The soil name(s) in which the transformation was observed
ff
The formation fraction(s)
add_soil_sorption()
chent$add_soil_sorption( soils, Kf, Kfoc, N, type = NA, pH_orig = NA, pH_medium = NA, pH_H2O = NA, perc_OC = NA, perc_clay = NA, CEC = NA, remark = "", source, page = NA )
Kf
The sorption constant in L/kg, either linear (then N
is 1)
or according to Freundlich
Kfoc
The constant from above, normalised to soil organic carbon
N
The Freundlich exponent
perc_clay
The percentage of clay in the soil
CEC
The cation exchange capacity Write a PDF image of the structure
pdf()
chent$pdf( file = paste0(self$identifier, ".pdf"), dir = "structures/pdf", template = NULL )
file
The file to write to
dir
The directory to write the file to
template
A template expressed as SMILES to use in RDKit Write a PNG image of the structure
png()
chent$png( file = paste0(self$identifier, ".png"), dir = "structures/png", antialias = "gray" )
emf()
chent$emf(file = paste0(self$identifier, ".emf"), dir = "structures/emf")
file
The file to write to
clone()
The objects of this class are cloneable with this method.
chent$clone(deep = FALSE)
deep
Whether to make a deep clone.
oct <- chent$new("1-octanol", smiles = "CCCCCCCCO", pubchem = FALSE) print(oct) if (!is.null(oct$Picture)) { plot(oct) } caffeine <- chent$new("caffeine") print(caffeine) if (!is.null(caffeine$Picture)) { plot(caffeine) }
oct <- chent$new("1-octanol", smiles = "CCCCCCCCO", pubchem = FALSE) print(oct) if (!is.null(oct$Picture)) { plot(oct) } caffeine <- chent$new("caffeine") print(caffeine) if (!is.null(caffeine$Picture)) { plot(caffeine) }
Draw SVG graph from a chent object using RDKit
draw_svg.chent( x, width = 300, height = 150, filename = paste0(names(x$identifier), ".svg"), subdir = "svg" )
draw_svg.chent( x, width = 300, height = 150, filename = paste0(names(x$identifier), ".svg"), subdir = "svg" )
x |
The chent object to be plotted |
width |
The desired width in pixels |
height |
The desired height in pixels |
filename |
The filename |
subdir |
The path to which the file should be written |
The class is initialised with an identifier which is generally an ISO common name. Additional chemical information is retrieved from the internet if available.
An R6Class
generator object
chents::chent
-> pai
iso
ISO common name of the active ingredient according to ISO 1750
bcpc
Information retrieved from the BCPC compendium available online at <pesticidecompendium.bcpc.org> Creates a new instance of this R6 class.
chents::chent$add_PUF()
chents::chent$add_TP()
chents::chent$add_cwsat()
chents::chent$add_p0()
chents::chent$add_soil_degradation()
chents::chent$add_soil_ff()
chents::chent$add_soil_sorption()
chents::chent$add_transformation()
chents::chent$emf()
chents::chent$get_chyaml()
chents::chent$get_pubchem()
chents::chent$get_rdkit()
chents::chent$pdf()
chents::chent$png()
chents::chent$try_pubchem()
new()
This class is derived from chent. It makes it easy to create a chent from the ISO common name of a pesticide active ingredient, and additionally stores the ISO name as well as the complete result of querying the BCPC compendium using bcpc_query.
pai$new( iso, identifier = iso, smiles = NULL, inchikey = NULL, bcpc = TRUE, pubchem = TRUE, pubchem_from = "auto", rdkit = TRUE, template = NULL, chyaml = TRUE )
iso
The ISO common name to be used in the query of the BCPC compendium
identifier
Alternative identifier used for querying pubchem
clone()
The objects of this class are cloneable with this method.
pai$clone(deep = FALSE)
deep
Whether to make a deep clone.
# On Travis, we get a certificate validation error, # likely because the system (xenial) is so old, # therefore don't run this example on Travis if (Sys.getenv("TRAVIS") == "") { atr <- pai$new("atrazine") print(atr) if (!is.null(atr$Picture)) { plot(atr) } }
# On Travis, we get a certificate validation error, # likely because the system (xenial) is so old, # therefore don't run this example on Travis if (Sys.getenv("TRAVIS") == "") { atr <- pai$new("atrazine") print(atr) if (!is.null(atr$Picture)) { plot(atr) } }
Plot method for chent objects
## S3 method for class 'chent' plot(x, ...)
## S3 method for class 'chent' plot(x, ...)
x |
The chent object to be plotted |
... |
Further arguments passed to |
caffeine <- chent$new("caffeine") print(caffeine) if (!is.null(caffeine$Picture)) { plot(caffeine) }
caffeine <- chent$new("caffeine") print(caffeine) if (!is.null(caffeine$Picture)) { plot(caffeine) }
Contains basic information about the active ingredients in the product
An R6Class
generator object.
name
The name of the product
ais
A list of active ingredients
concentrations
The concentration of the ais
concentration_units
Defaults to g/L
density
The density of the product
density_units
Defaults to g/L Creates a new instance of this R6 class.
...
Identifiers of the active ingredients
concentrations
Concentrations of the active ingredients
concentration_units
Defaults to g/L
density
The density
density_units
Defaults to g/L Printing method
...
Identifiers of the active ingredients
new()
ppp$new( name, ..., concentrations, concentration_units = "g/L", density = 1000, density_units = "g/L" )
print()
ppp$print()
clone()
The objects of this class are cloneable with this method.
ppp$clone(deep = FALSE)
deep
Whether to make a deep clone.
Printing method for chent objects
## S3 method for class 'chent' print(x, ...)
## S3 method for class 'chent' print(x, ...)
x |
The chent object to be printed |
... |
Further arguments for compatibility with the S3 method |
Printing method for pai objects (pesticidal active ingredients)
## S3 method for class 'pai' print(x, ...)
## S3 method for class 'pai' print(x, ...)
x |
The chent object to be printed |
... |
Further arguments for compatibility with the S3 method |