Automatically obtains transformation products from a library.
Usage
generateTPsLibrary(
parents = NULL,
TPLibrary = NULL,
generations = 1,
skipInvalid = TRUE,
prefCalcChemProps = TRUE,
neutralChemProps = FALSE,
neutralizeTPs = FALSE,
matchParentsBy = "InChIKey",
matchGenerationsBy = "InChIKey",
TPStructParams = getDefTPStructParams()
)Arguments
- parents
The parents for which transformation products should be obtained. This can be
a suspect list (see suspect screening for more information)
the output of
screenSuspectsin which case the suspects hits are used as parentsa
compoundsobject in which case all candidates are used parentsNULLin which case all parents from the library are used.
The parents need to have SMILES or InChI information available.
- TPLibrary
If
NULL, a default PubChem based library is used. Otherwise,TPLibraryshould be adata.frame. See the details below.- generations
An
integerthat specifies the number of transformation generations. TPs for subsequent iterations obtained by repeating the library search where the TPs from the previous generation are considered parents.- skipInvalid
If set to
TRUEthen the parents will be skipped (with a warning) for which insufficient information (e.g. SMILES) is available.- prefCalcChemProps
If
TRUEthen calculated chemical properties such as the formula and InChIKey are preferred over what is already present in the parent suspect list. For efficiency reasons it is recommended to set this toTRUE. See theValidating and calculating chemical propertiessection for more details.- neutralChemProps
If
TRUEthen the neutral form of the molecule is considered to calculate SMILES, formulae etc. Enabling this may improve feature matching when considering common adducts (e.g.[M+H]+,[M-H]-). See theValidating and calculating chemical propertiessection for more details.- neutralizeTPs
If
TRUEthen all resulting TP structure information is neutralized. This argument has a similar meaning asneutralChemProps. This is defaulted toTRUEfor prediction algorithms, as these may output charged molecules. NOTE: if neutralization results in duplicate TPs, i.e. when the neutral form of the TP was also generated by the algorithm, then the neutralized TP will be removed.- matchParentsBy
A
characterthat specifies how the input parents are matched with the data from the TP library. Valid options are:"InChIKey","InChIKey1","InChI","SMILES","formula","name". If the parent from the TP library is matched with multiple input parents then only the first is considered.- matchGenerationsBy
Similar to
matchParentsBy, but specifies how parents/TPs are matched whengenerations>1.- TPStructParams
Parameters that influence the calculation of structural properties. See
getDefTPStructParams.
Value
The TPs are stored in an object derived from the transformationProductsStructure class.
Details
This function uses a library to obtain transformation products. This function is called when calling generateTPs with
algorithm="library".
By default, a library is used that is based on data from PubChem. However, it also possible to use your own library.
Note
When the parents argument is a compounds object, the
candidate library identifier is used in case the candidate has no defined compoundName.
TP libraries
The TPLibrary argument is used to specify a custom TP library. This should be a
data.frame where each row specifies a TP for a parent, with the following columns:
parent_nameandTP_name: The name of the parent/TP.parent_SMILESandTP_SMILESThe SMILES of the parent/TP structure.retDirThe expected retention order direction. (optional)For
generateTPsLibrary: If not specified orforceCalcRetDir=TRUEfromTPStructParams, then thelog Pvalues below may be used to calculate retention order directions.parent_LogPandTP_LogPThelog Pvalues for the parent/TP. (optional)logPDiffThe difference between parent and TPLog Pvalues. Ignored if bothparent_LogPandTP_LogPare specified. (optional)
Other columns are allowed, and will be included in the final object. Multiple TPs for a single parent are specified
by repeating the value within parent_ columns.
Validating and calculating chemical properties
Chemical properties such as SMILES, InChIKey and formulae in the parent suspect list are automatically validated and calculated if missing/invalid.
The internal validation/calculation process performs the following steps:
Validation of SMILES, InChI, InChIKey and formula data (if present). Invalid entries will be set to
NA.If
neutralChemProps=TRUEthen chemical data (SMILES, formulae etc.) is neutralized by (de-)protonation (using the–neutralizedoption ofOpenBabel). An additional columnmolNeutralizedis added to mark those molecules that were neutralized. Note that neutralization requires either SMILES or InChI data to be available.The SMILES and InChI data are used to calculate missing or invalid SMILES, InChI, InChIKey and formula data. If
prefCalcChemProps=TRUEthen existing InChIKey and formula data is overwritten by calculated values whenever possible.The chemical formulae which were not calculated are verified and normalized. This process may be time consuming, and is potentially largely avoided by setting
prefCalcChemProps=TRUE.Neutral masses are calculated for missing values (
prefCalcChemProps=FALSE) or whenever possible (prefCalcChemProps=TRUE).
Note that calculation of formulae for molecules that are isotopically labelled is currently only supported for deuterium (2H) elements.
This functionality relies heavily on OpenBabel, please make sure it is installed.
References
OBoyle NM, Banck M, James CA, Morley C, Vandermeersch T, Hutchison GR (2011). “Open Babel: An open chemical toolbox.” Journal of Cheminformatics, 3(1). doi:10.1186/1758-2946-3-33 .
See also
generateTPs for more details and other algorithms.