Requirements:
- PostgreSQL 9
- Java 1.7

The system performs 4 steps:
1) Sampling with replacement, starting from the dataset which must be in ARFF format.
2) Learning of a SVM for each sample and estimation of the constant C.
3) Identification of the weight to assign to each unlabeled example.
4) Learning of a (instance-weighted) SVM for each sample and building the final dataset.

How to run the system:
1) Import the schema dbSchema.backup into PostgreSQL
2) Build your dataset in ARFF format. Note that it must have the following structure (see the mirDIP_arff dataset for an example):
	Attribute1: mirna name
	Attribute2: gene name
	Attribute3: score of the predition algorithm 1 
	Attribute4: score of the predition algorithm 2
	...
	AttributeN-1: score of the predition algorithm N-3
	AttributeN: class attribute, whose value must be Yes if the interaction is positive/validated and No if it is unlabeled.
3) Open the file parameters.ini and set all the parameters of the algorithm
4) Put libsvm executables in the libsvm folder. We already provide x64 version for Linux-based and Windows systems, but in some cases it could be necessary to recompile them in your own system. 
5) Start the system with the following command: java -jar SemiSupervised.jar 

Note: depending on the dataset size and on the number of threads you set in the parameters.ini, the system could require a large amount of RAM.
In order to let JVM to use enough RAM you could have to increase the maximum heap size for the JVM, with the -Xmx option. 
