Read Me
'########:::'###::::'######:'########'########::::'###:::'########'##::::'##:
##.....:::'## ##::'##... ##... ##..::##.... ##::'## ##::... ##..::##:::: ##:
##:::::::'##:. ##::##:::..:::: ##::::##:::: ##:'##:. ##:::: ##::::##:::: ##:
######::'##:::. ##. ######:::: ##::::########:'##:::. ##::: ##::::#########:
##...::::#########:..... ##::: ##::::##.....:::#########::: ##::::##.... ##:
##:::::::##.... ##'##::: ##::: ##::::##::::::::##.... ##::: ##::::##:::: ##:
##:::::::##:::: ##. ######:::: ##::::##::::::::##:::: ##::: ##::::##:::: ##:
..:::::::..:::::..::......:::::..::::..::::::::..:::::..::::..::::..:::::..::
Finding pathways using the FASCIA subgraph counting framework
26 May 2015 -- v1.1
Optimizations and bug fixes, added in max heap and outer-loop parallelism
29 September 2014 -- v1.0
Initial version
################################################################################
To compile:
1. If needed, edit Makefile and change default compiler options (g++)
2. $ make
################################################################################
To run: ./path -g [graphfile] -l [path_length] [options]
options =
-i [iterations] number of iterations to run
-n [num paths] number of paths to find
-o use outer-loop parallelism
-v verbose output
-t report timing
-h print this
################################################################################
Graphfile format:
-Use mint-human.graph for reference
-Initial line gives 'number of vertices' and 'number of undirected edges'
-Each subsequent line represents an edge as:
(vertex 1) (label 1) (vertex 2) (label 2) (Weight [0.0-1.0])
-Vertex ids should be zero indexed, max id = ('number of vertices' - 1)
-There should be a total of ('number of undirected edges' + 1) lines in graphfile
-Multi-edges and self-loops will be ignored during calculation
graphfile:
100 1000
0 Q9BV28 1 Q8WVB3 0.15
0 Q9BV28 2 P51159 0.25
0 Q9BV28 3 Q16643 0.05
1 Q8WVB3 2 P51159 0.15
2 P51159 3 Q16643 0.10
...
...
################################################################################
Examples:
1. Find best length 6 path on mint-human graph, run 100 iterations
./path -g mint-human.graph -l 6 -i 100
2. Find 10 best length 4 paths on mint-human graph, run 10 iterations, verbose output
./path -g mint-human.graph -l 4 -i 10 -n 10 -v
3. Report execution time for finding best length 10 path mint-human after 100 iterations
./path -g mint-human.graph -l 7 -i 100 -t
################################################################################
Questions, bugs, comments, etc:
Please direct all comments and questions to:
George Slota <gslota@psu.edu>