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.7 |
Built: | 2025-01-04 06:27:29 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
transformations
Data frame of observed transformations
soil_degradation
Dataframe of modelling DT50 values
soil_ff
Dataframe of formation fractions
soil_sorption
Dataframe of 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 = FALSE )
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_pubchem()
Try to get chemical information from PubChem
chent$try_pubchem(query, from = "name")
get_pubchem()
Get chemical information from PubChem for a known PubChem CID
chent$get_pubchem(pubchem_cid)
pubchem_cid
CID
get_rdkit()
Get chemical information from RDKit if available
chent$get_rdkit(template = NULL)
template
An optional SMILES code to be used as template for RDKit
get_chyaml()
Obtain information from a YAML file
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_p0()
Add a vapour pressure
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_cwsat()
Add a water solubility
chent$add_cwsat(cwsat, T = NA, pH = NA, source = NA, page = NA, remark = "")
cwsat
The water solubility in mg/L
T
Temperature
pH
pH value
source
An acronym specifying the source of the information
page
The page from which the information was taken
remark
A remark
add_PUF()
Add a plant uptake factor
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()
Add a transformation product to the internal list
chent$add_TP(x, smiles = NULL, pubchem = FALSE)
add_transformation()
Add a line in the internal dataframe holding observed transformations
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 pages from which the information was taken
add_soil_degradation()
Add a line in the internal dataframe holding modelling DT50 values
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()
Add one or more formation fractions for degradation in soil
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)
remark
A remark
source
An acronym specifying the source of the information
page
The page from which the information was taken
add_soil_sorption()
Add soil sorption data
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 )
soils
Names of the soils
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
type
The soil type
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
perc_clay
The percentage of clay in the soil
CEC
The cation exchange capacity
remark
A remark
source
An acronym specifying the source of the information
page
The page from which the information was taken
pdf()
Write a PDF image of the structure
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
An optional SMILES code to be used as template for RDKit
png()
Write a PNG image of the structure
chent$png( file = paste0(self$identifier, ".png"), dir = "structures/png", antialias = "gray" )
file
The file to write to
dir
The directory to write the file to
antialias
Passed to png
emf()
Write an EMF image of the structure using emf
chent$emf(file = paste0(self$identifier, ".emf"), dir = "structures/emf")
file
The file to write to
dir
The directory to write the file to
clone()
The objects of this class are cloneable with this method.
chent$clone(deep = FALSE)
deep
Whether to make a deep clone.
caffeine <- chent$new("caffeine") print(caffeine) if (!is.null(caffeine$Picture)) { plot(caffeine) } oct <- chent$new("1-octanol", smiles = "CCCCCCCCO", pubchem = FALSE) print(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)
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 |
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.
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>
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()
Create a new pai object
pai$new( iso, identifier = iso, smiles = NULL, inchikey = NULL, bcpc = TRUE, pubchem = TRUE, pubchem_from = "auto", rdkit = TRUE, template = NULL, chyaml = FALSE )
iso
The ISO common name to be used in the query of the BCPC compendium
identifier
Alternative identifier used for querying pubchem
smiles
Optional user provided SMILES code
inchikey
Optional user provided InChI Key
bcpc
Should the BCPC compendium be queried?
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
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
new()
Creates a new instance of this R6 class.
ppp$new( name, ..., concentrations, concentration_units = "g/L", density = 1000, density_units = "g/L" )
name
The name of the product
...
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
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 |
Printing method for ppp objects (plant protection products)
## S3 method for class 'ppp' print(x, ...)
## S3 method for class 'ppp' print(x, ...)
x |
The chent object to be printed |
... |
Further arguments for compatibility with the S3 method |