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.

Format

An R6Class generator object

Public fields

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

Methods


Method new()

Creates a new instance of this R6 class.

Usage

chent$new(
  identifier,
  smiles = NULL,
  inchikey = NULL,
  pubchem = TRUE,
  pubchem_from = c("name", "smiles", "inchikey"),
  rdkit = TRUE,
  template = NULL,
  chyaml = TRUE
)

Arguments

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


Method try_pubchem()

Usage

chent$try_pubchem(query, from = "name")

Arguments

query

Query string to be passed to get_cid

from

Passed to get_cid Get chemical information from PubChem for a known PubChem CID


Method get_pubchem()

Usage

chent$get_pubchem(pubchem_cid)

Arguments

pubchem_cid

CID


Method get_rdkit()

Usage

chent$get_rdkit(template = NULL)


Method get_chyaml()

Usage

chent$get_chyaml(
  repo = c("wd", "local", "web"),
  chyaml = paste0(URLencode(self$identifier), ".yaml")
)


Method add_p0()

Usage

chent$add_p0(p0, T = NA, source = NA, page = NA, remark = "")


Method add_cwsat()

Usage

chent$add_cwsat(cwsat, T = NA, pH = NA, source = NA, page = NA, remark = "")


Method add_PUF()

Usage

chent$add_PUF(
  PUF = 0,
  source = "focus_generic_gw_2014",
  page = 41,
  remark = "Conservative default value"
)


Method add_TP()

Usage

chent$add_TP(x, smiles = NULL, pubchem = FALSE)


Method add_transformation()

Usage

chent$add_transformation(
  study_type,
  TP_identifier,
  max_occurrence,
  remark = "",
  source = NA,
  pages = NA
)


Method add_soil_degradation()

Usage

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
)


Method add_soil_ff()

Usage

chent$add_soil_ff(target, soils, ff = 1, remark = "", source, page = NA)


Method add_soil_sorption()

Usage

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
)


Method pdf()

Usage

chent$pdf(
  file = paste0(self$identifier, ".pdf"),
  dir = "structures/pdf",
  template = NULL
)


Method png()

Usage

chent$png(
  file = paste0(self$identifier, ".png"),
  dir = "structures/png",
  antialias = "gray"
)


Method emf()

Usage

chent$emf(file = paste0(self$identifier, ".emf"), dir = "structures/emf")


Method clone()

The objects of this class are cloneable with this method.

Usage

chent$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

oct <- chent$new("1-octanol", smiles = "CCCCCCCCO", pubchem = FALSE)
#> Trying to get chemical information from RDKit using user SMILES
#> CCCCCCCCO
#> Did not find chyaml file ./1-octanol.yaml
print(oct)
#> <chent>
#> Identifier $identifier 1-octanol 
#> InChI Key $inchikey 
#> SMILES string $smiles:
#>        user 
#> "CCCCCCCCO" 
#> Molecular weight $mw: 130.2 
if (!is.null(oct$Picture)) {
  plot(oct)
}

caffeine <- chent$new("caffeine")
#> PubChem:
#> Trying to get chemical information from RDKit using PubChem_Canonical SMILES
#> CN1C=NC2=C1C(=O)N(C(=O)N2C)C
#> Did not find chyaml file ./caffeine.yaml
print(caffeine)
#> <chent>
#> Identifier $identifier caffeine 
#> InChI Key $inchikey RYYVLZVUVIJVGH-UHFFFAOYSA-N 
#> SMILES string $smiles:
#>              PubChem_Canonical 
#> "CN1C=NC2=C1C(=O)N(C(=O)N2C)C" 
#> Molecular weight $mw: 194.2 
#> PubChem synonyms (up to 10):
#>  [1] "caffeine"                "58-08-2"                
#>  [3] "Guaranine"               "1,3,7-Trimethylxanthine"
#>  [5] "Methyltheobromine"       "Theine"                 
#>  [7] "Thein"                   "Cafeina"                
#>  [9] "Koffein"                 "Mateina"                
if (!is.null(caffeine$Picture)) {
  plot(caffeine)
}