The Algorithm function allows you to design and train a
model to predict solubilty values.
To create a new algorithm select the Algorithm -> new
function from the menu at the top. Enter a unique name
for the new algorithm, select the type of algorithm, and
select a file of molecules with which to train the algorithm.
If experimental solubility values are embeded in the training
file these will be read if recognised. Otherwise you
will be asked to provide the values in a file later on when
performing the training. A new algorithm tab will be
If you have created an algorithm or have made any modifications
to an existing one, such training or changing parameters, you
might want to save it by clicking on the 'SAVE' button in the
top left corner of the algorithm tab. This will store all of
the algorithm's properties which can be loaded later. An
algorithm cannot be used to estimate solubilities until it
has been saved.
Clicking on the 'DELETE' button will delete the displayed
An algorithm uses MLR or PLSR to form a model using the data
from the training set. To begin this calculation click on
the 'START TRAIN' button. To cancel the training calculation
while it is proceeding, click on the 'STOP TRAIN' button.
When the training has completed
successfully or unsuccsessfully a message will be displayed
and the 'STOP TRAIN' button will revert back to 'START TRAIN'.
Once training has completed, the parameter coefficients (MLR) or
score percentage (PLSR) will be displayed for each parameter.
Additionaly the occurence of each parameter in the whole training
set will be displayed for each parameter.
If the training was unsuccessfull, the parameter coefficients
will be 0.0. When using MLR the matrix X'X will be singular if
there are too many descriptors and not enough training molecules.
If the occurence of any parameter in the training set is 0.0
the X'X matrix will definately be singular. Once doing an initial
run with a certain set of parameters, if the matrix is singular
look at the occurences of each parameter. If any of the occurences
are 0.0 remove the paramter from the model. Then perform the
training process again.
Atomic Typing and Group Contribution Parameters
In the SMARTS Patterns section of the algorithm tab there is a function
that allows you to browse and select a file to load SMARTS patterns from.
This adds SMARTS patterns as parameters in the Algorithm, after clicking
the 'ADD' button you will see them appear in the 'Current Parameters'
Each line in the file should start with a number, indicating the parameter
number of the SMARTS pattern. Several SMARTS patterns can have the same
parameter number. This indicates that a match for any one of the parameters
with the same parameter number will be counted as a match for that parameter.
After the number there should be one or more spaces and then a single SMARTS
pattern until the end of the line. For example:
The SMARTS pattern cannot contain any spaces at all. Each line must be in order
and no number can be missing.
Atom Typing vs. Group Contribution
Under the file input line there are two radio buttons allowing you to choose
whether you wish to add the SMARTS patterns as Atomic Typing Parameters or
Group Contribution Parameters.
If they are added as Atomic Typing Parameters, an atom in a molecule can
match at most one of the parameters. If an atom matches more than one of the
parameters, the one closest to the end of the list in the provided file
One atom in a molecule can match zero, one, or many Group Typing Parameters.
Molecular Descriptors are parameters that take a molecule as input and produce
a floating point value. To add a descriptor to the algorithm, just select
one or more of the descriptors in the 'Molecular Descriptors' table and
click on the 'Add Descriptors' button. You will see the descriptors being added
to the 'Current Parameters' table.
You can implement your own descriptors by writing a Java class. See the
In this section all the algorithm's parameters are displayed showing their
number, type, regression coefficent (MRL) or score (PLSR), and frequency in
the training set. Select one or more parameters and click on
'Remove Selected Parameters' to remove parameters from the algorithm.
Select one parameters and click on 'Plot Selected Parameter' to plot
(for each molecule in the training set) the occurence of the parameter
for the molecule against the error in the logS calculation (error =
|calculated logS - experimental logS|).