Date: 05/18/2013

Requirements:
	-- Python 2.7+ and NetworkX module.


We propose 4 edge prediction algorithms. They can be run as follows:

1. K-SHORTCUTS and K-SHORTCUTS-SS:
	./k_shortcuts.py -a [algorithm] -d [default edge weight] -k [number of edges
	to predict] -p [use potential edgeS?] -o [objective function]

	The -a option allows you to select which algorithm to run. Our algorithm is
	'greedy' but we also compare to 'betweenness', 'directst', 'sp', and
	'jaccard' (see paper for details).

	The -d option must be set to the default edge weight for the new edge and
	should lie between 0 and 1. If the -p (potential edges) option is set, the
	-d option must not be set.

	The -k option must be set to the number of new edges you want to predict.

	The -p option allows you to use potential edges instead of all possible
	edges.

	The -o options is for setting the objective function (either "shortcuts" or
	"shortcuts-ss".

	Inside the script, there are three additional files that must be set:
		1. net_file = the starting network (assumes it is directed)
		2. src_file = set of source nodes
		3. tgt_file = set of target nodes
	Examples of these files are included in the data/ directory.



2. HOP-RESTRICTED K-SHORTCUTS and K-SHORTCUTS-SS

	./k_restricted_shortcuts.py -a [algorithm] -d [default edge weight] -k
	[number of edges to predict] -o [objective function]

	Same instructions as above, except that the objective functions (-o option) are:
	"shortcuts-x" and "shortcuts-x-ss"



Additional notes:
-- Edge weights should be similarity measures (i.e. higher means more likely). They should not be distances.
-- See the data/ directory for example input file formats.


Cite:
	Navlakha S, Gitter A, Bar-Joseph Z. A network-based approach for predicting
	missing pathway interactions. PLoS Comput Biol. 2012;8(8):e1002640.
