This project aims to build the interactive RNA-Protein interaction network on webserver, where people can submit their Proteins/RNAs code and get their neighbor interactions and perform the Breadth-First Search (BFS).
The BFS_func.cpp can be served as independent program to search the shortest distance, as well as providing all shortest paths between 2 vertices.
You can compile this file by:
g++ BFS_func.cpp -o BFS_func
ormake BFS_func
Then type ./BFS_func -h
for more information of the usage:
Options:
-h [ --help ] Print the help message.
-s [ --start ] arg Start node.
-e [ --end ] arg End node.
-g [ --graph ] arg Adjacency dictionary in json format. If graph is not provided, the program will use a demo graph.
-o [ --outfile ] arg Export result as json format file.
-d [ --distance_only ] Only return shortest distance, not the path.
-i [ --distance_information ] Perform the BFS faster with the known distances stored in json format file.
- When
--graph
option is not called, the program will use the graph in demo_graph.json in the directory by default. There is also a file larger_demo_graph.json, which is much larger in the directory, you can try it as an input. - When
--graph
is called, make sure that your json file contains only string type information. - If there is no path between Start node and End node, their distance is set to -1 and no path is provided.
- If one node is used for both Start and End node, if it's self-interacted, the distance will be 1, otherwise 0.
- The program will be much faster with the
--distance_only
mode than the return-paths mode. --distance_information
field is a filename. That json format file contains information about distances. Check the distance_infor.json for the example.