Read Me
BioPPSy = property 2.5.3
# Change Log for BioPPsy
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project aspires to [Semantic Versioning](http://semver.org/).
7/12/17
Version 2.5.3
###Debugged
Fixed serious bug in which changes to SupportVectorRegression regularisation
parameters were not being passed to the algorithm.
4/12/17
Version 2.5.2
###Debugged
Fixed serious bug in which changes to SupportVectorRegression kernel parameters
were not being passed to the algorithm.
SupportVectorRegression.calculateB() no longer fails when one of the weights
is integer.
###Changed
Default with MultilayerPerceptron is to include Intercept as a parameter.
This performs the function of a bias node.
13/10/17
Version 2.5.1
###Debugged
Rsq in weka now correlationCoefficient squared
13/9/17
Version 2.5.0
###Added
Function calculateB() to SupportVectorRBF.java to provide measure of
feature importance, see DOI 10.1007/s10462-011-9205-2
Liu, Chen et al., Artif Intell Rev (2011) 36:99.
###Changed
Version of calculateB() in SupportVectorDefault.java moved to superclass
SupportVectorRegression.java
30/8/17
Version 2.4.1
###Changed
Subclasses of SupportVectorRegression no longer need complexity, normalize,
regOptimizerName, kernelName in their declarations
###Debugged
Default calculateB() given in SupportVectorRegression.java returning -1
for all parameter coefficients unless overridden by subclass.
29/8/17
Version 2.4.0
###Added
Inclusion of error-reading properties from weka.evaluation , namely
Mean/Relative Absolute Error and Root Relative Squared Error. These are now
displayed automatically on the Algorithm Panel.
25/8/17
Version 2.3.1
###Debugged
Calculation of Rsq in weka.java now from correlationCoefficient
###Added
Standard deviation sdDev now found from evaluation.rootMeanSquaredError().
Details in weka.readEvaluationProperties(int N).
###Deleted
JOELib2 modules in bioppsy.lib and those .jar files that only JOELib2 used,
crimson.jar jaxp.jar Jdom.jar junit-3.2.jar log4j.jar
mm.mysql-2.0.14-bin.jar optional.jar vecmath.jar xerces.jar
16/8/17
Version 2.3.0
###Added
Replaced COEFFICIENTS with WEIGHTS or similar in AlgPanel for non-linear
algorithms. Heading COEFFICIENTS also adjusts according to algorithm, default
is WEIGHTS unless algorithm is linear.
###Changed
Replaced PLSoptions.java GUI of PLS algorithm with standard GUI of
optionsDialog.java . PLSoptions.java has been remove from BioPPsy.
1/8/17
Version 2.2.2
### Changed
Reordered algorithm types in constants.ini to put linear methods first
27/7/17
Version 2.2.1
### Added
New module SupportVectorRBF.java containing subclass of SupportVectorRegression
### Changed
SupportVectorRegression.java and SupportVectorDefault.java so that
initialisation of RegOptimizer and Kernel is done in SupportVectorRegression
and subclasses only set their properties
25/7/17
Version 2.2.0
### Added
New method modules SupportVectorRegression.java and SupportVectorDefault.java ,
implemented from weka.
The former provides an abstract superclass for SupportVectorRegression, but the
implemented classes vary by choice of Kernel and RegOptimizer. The default
choices are implemented in SupportVectorDefault.java . Other implementations
with different choices should be a straightforward matter of specifying the
corresponding options and providing the functions required by the abstract
SupportVectorRegression superclass.
The GUI provided by OptionsDialog.java will check that entered values are
valid by setting them into the algorithm and then undoing them if they
generate an error. It is therefore impossible, in principle, to give an
invalid value. Exceptions might occur depending on how a given algorithm is
implemented, especially for String values.
### Corrected
Bug causing initOptionsDialog() to be called twice when a previously saved
algorithm was opened. Fixed by moving call from Algorithm constructor to
Algorithm.getAlgorithm() and GUI.newAlg().
10/5/17
Version 2.1.1
### Removed
Dummy call to initOptionsDialog(), as it gave a useless, distracting GUI
Version 2.1.0
### Added
New method module Perceptron.java . Implements multilayerPerceptron from weka.
Automatically generated GUI for user input of parameter values. Can be called
from any new algorithm module.
6/3/17
Version 2.0.0
### Changed
BioPPsy no longer requires JoeLIB as a package, but instead uses the
joelib.jar file in bioppsy/lib .
### Removed
The redundant directory BioPPSy_lib has been removed.
Have removed some backup copies of joelib.jar from bioppsy/lib
3/3/17
### Changed
Removed dependency on joelib.properties for loading algorithms. It is now
sufficient to place new algorithms .java file in bioppsy/algorithm directory.
Note this also required adding static methods to PropertyDescriptors.java
for loading PropertyDescriptors. These are now found automatically by detecting their corresponding .java files in the descriptors directory.
20/2/17
### DEBUGGED!
Corrected code for loading saved PLS algorithms. Previously newProperties of
PLS would show in the display but not be copied to the PLS module.
Simulations run on reloaded PLS algorithms will need to be redone.
### Added
LinearAlgorithm.java Abstract subclass of Algorithm for linear (matrix-based)
algorithms. Linear algorithms should be subclasses of LinearAlgorithm,
non-linear ones should not.
### Changed
Functions such as calculatedB() calculateParameters() have been moved from
Algorithm.java to LinearAlgorithm.java
15/2/17
### Changed
Removed extra copies of weka and placed recent version in bioppsy.lib and
linked eclipse to it.
14/2/17
### Added
Perceptron.java contains Perceptron class algorithm, to use weka neural networks
Although the file has been added it is not yet functioning.
8/2/17
### Changed
Have split MLR.java into Algorithm.java and MLR.java.
MLR.java has specific methods for MLR algorithm.
Algorithm.java contains Algorithm superclass for all algorithms.
Anyone may now add algorithms to BioPPsy by inserting their own module.
into bioppsy.algorithm, with very minimal requirements (ADD_ALGORITHM).
Some generic-type objects parameterised.
### Added
MLR.java contains MLR algorithm and MLR-specific methods.
PLS.java contains PLS (Partial Linear Squares) algorithm (new) and
PLS-specific methods.
These modules serve as templates for users wishing to new algorithms of
their own. See also ADD_ALGORITHM.
25/10/16
### Changed
Have removed extraneous copies of JSolubility, joone and joelib from inside of
bioppsy folder. Have also deleted copy of Chimera64 from inside of bioppsy.
###Added
Completed calling of Chimera for the purposes of displaying molecules.
When new algorithm is called the descriptor 'Intercept' is added to the
parameters automatically, but may be removed by the user at any time.
13/10/16
### Changed
Repaired link to joelib.properties by removing extraneous copies of JOELib
from inside of bioppsy. User may now download all descriptors.
### Added
Descriptors are now listed on the algorithm page in alphabetical order.
https://sourceforge.net/projects/bioppsy/
01/10/2016
Dr Michael Luke Walker, m.walker2@aip.org.au
Research Officer at La Trobe Institute of Molecular Science
19/05/2014
Dr Marta Enciso, m.enciso@latrobe.edu.au
Research Officer at La Trobe Institute of Molecular Science
21/02/2014
Jocelyn Sietsma Penington, jocelyn@sietsma.com
VLSCI intern at La Trobe Institute of Molecular Science,
10/12/2013 - 21/02/2014
21/01/2005
Eden Duthie eduthie@wehi.edu.au
The Walter and Eliza Hall Institute
1G Royal Parade, Parkville, VIC, Australia
This software is licensed under the GNU General Public License with is available as LICENCE.txt in the LICENSE directory
BioPPSy is a “Biochemical Property Prediction System”, a software package for the prediction of biochemical properties of molecules. At present it is a wrapper, or front page, for the program 'Property'. The program calculates parameters to predict a property.
It reads a file of molecule descriptions tagged with a known (experimental) property, assumed to be aqueous property. The user can then select characteristics of the molecules from a list, such as volume, number of double bonds, log(molecular weight), etc. The values of these descriptors are calculated, and used as input parameters to fit a regression model for the property of the molecule. Another function is to load a molecule set, and use a saved algorithm to generate predictions. If the molecule is labeled with an actual value, the prediction and actual are compared and errors calculated.
DISCLAIMER
---------------------
THIS SOFTWARE IT IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED.
INSTALLATION
---------------------
Requirements: java jre 1.7 or higher (1.8 recommended)
available from www.java.sun.com
Environment variable JAVA_HOME needs to be defined, giving the path for Java.
Source distribution
The Solubility directory tree includes
src/
src/property
source code
src/ini
files read by the application with various settings such as file locations, parameters used by algorithms, and list of algorithm types
src/Jama
Java linear algebra package
src/Chimera64
molecular graphical display and modelling system
lib/
JAR files containing:
hsqldb – Hyper SQL DataBase, Java relational database software
jfreechart-0.9.21 - Free java graphical charting library
Jmol – a graphical display package for chemical structures (alternative to Chimera)
JOELib – Computational chemistry library
Junit – Java testing framework library
log4j-1.2.8 - A Java logging library
images/
splash.jpg - opening image
data/
sample files of molecules
RUNNING THE PROGRAM
1. While it is in the development phase the the best way to run BioPPSy is in the Eclipse development environment.
The 'main' class is in property.GUI
An environment variable CHIMERA_PATH needs to be set to the location of UCSF Chimera. A copy is in src/Chimera64/bin/Chimera.
2. A runnable JAR archive is included. A shell script version, which includes the CHIMERA_PATH variable is in property.sh, which can be run with the command
$ sh property.sh
or by using
$ java -jar property.jar
ACKNOWLEDGEMENTS
---------------------------------
The property package relies on several other open source packages which are listed here. The binary code of these packages is included along with the binary version of this program and the full source code is available with the source version of this program. These packages use other packages, please see their included source versions. For the package
licenses please see the LICENSE directory.
apache-ant-1.6.2 - Apache Ant, www.apache.org
hsqldb - Hypersonic SQL Database, hsqldb.sourceforge.net
jakarta-log4j-1.2.8 - log4j, logging.apache.org
Jama - A Java Matrix Package, math.nist.gov/javanumerics/jama
jfreechart-0.9.21 - JFreeChart, www.jfree.org/jfreechart
jmol-9 - JMol, jmol.sourceforge.net
JOELib-20040827 - JOELib, www-ra.informatik.uni-tuebingen.de/software/joelib/introduction.html
junit3.8.1 - JUnit, www.junit.org/index.htm
Chimera – UCSF Chimera, http://www.cgl.ucsf.edu/chimera/
This project was devised and fully supported by Dr Brian Smith from La Trobe Institute of Molecular Science.