EnzML is a method to predict multiple EC numbers for proteins.
Author: Luna De Ferrari luna.deferrari [at] ed.ac.uk

These directories contains supporting Java code to format data and execute machine learning experiments on multi-label data.
In particular, each package content is listed below:

-- uk.ac.ed.inf.enzml ----------------------
A properties file is used to connect to database. Examples of database properties files are found in the folder:
test.data.properties_files for MySQL. To use another database, different jdbc jars and parameters will be needed.

1. 
To format database data as Mulan ARFF and XMl files:
uk.ac.ed.inf.enzml.mulan.MulanArff.run(String, String)

2. 
To train an algorithm on an ARFF file, and serialize the trained model:
uk.ac.ed.inf.enzml.mulan.learn.MulanSerializer.run(int, MulanLearner, String, String)

3.
To cross-evaluate one (or more) ARFF files and save the evaluation results to database:
uk.ac.ed.inf.enzml.mulan.learn.MulanCrossExperimenter.run(int[], String)

4.
To make two ARFF files (having different attributes and classes) compatible for train-test evaluation:
uk.ac.ed.inf.enzml.mulan.attributesfilter.AttributesFilter.run(int, int, String, String)

5. 
To execute train-test evaluation (train on a training ARFF file and testing on a separate test ARFF file) and save evaluation results to database:
uk.ac.ed.inf.enzml.mulan.learn.traintest.TrainTestExperimenter.run()

6.
To format normal, non multi-label Weka ARFF files:
uk.ac.ed.inf.enzml.weka.Arff.run(String, String)

-- uk.ac.ed.inf.utils ----------------------
Contains various utilities classes to manipulate strings, collections etc.

-- uk.ac.ed.inf.jars ----------------------
Contains the Weka, Mulan, MySQL database connector and other Java libraries needed to execute the code.

The code above is generic and can be used for any data type, not only for proteins and enzyme commission numbers. 

-- uk.ac.ed.inf.ec ----------------------
This code can be used with any data, but also contains methods specific for Enzyme Commission numbers.
It generates a Mulan XML hierarchical representation of valid Enzyme Commission numbers:
(see also http://www.chem.qmul.ac.uk/iubmb/enzyme/ )
uk.ac.ed.inf.ec.EcMulanXmlCreator.main(String[])





