diff --git a/src/domino.py b/src/domino.py index cbfb1f12..aaa7bcf0 100644 --- a/src/domino.py +++ b/src/domino.py @@ -11,7 +11,15 @@ ID_PREFIX = 'ENSG0' ID_PREFIX_LEN = len(ID_PREFIX) - +""" +Domino will construct a fully undirected graph from the provided input file +- in the algorithm, it uses nx.Graph() + +Expected raw input format: +Interactor1 ppi Interactor2 +- the expected raw input file should have node pairs in the 1st and 3rd columns, with a 'ppi' in the 2nd column +- it can include repeated and bidirectional edges +""" class DOMINO(PRM): required_inputs = ['network', 'active_genes'] diff --git a/src/meo.py b/src/meo.py index 3890a83c..824d3085 100644 --- a/src/meo.py +++ b/src/meo.py @@ -46,6 +46,16 @@ def write_properties(filename=Path('properties.txt'), edges=None, sources=None, # Do not need csp.phase, csp.gen.file, or csp.sol.file because MAXCSP is not supported +""" +MEO can support partially directed graphs + +Expected raw input format: +Interactor1 pp/pd Interactor2 Weight +- the expected raw input file should have node pairs in the 1st and 3rd columns, with a directionality in the 2nd column and the weight in the 4th column +- it use pp for undirected edges and pd for directed edges +- it cannot include repeated and bidirectional edges +- there is a chance MRO assumes that it should just be an undirected edge instead +""" class MEO(PRM): required_inputs = ['sources', 'targets', 'edges'] diff --git a/src/mincostflow.py b/src/mincostflow.py index fc6deaba..5cf76948 100644 --- a/src/mincostflow.py +++ b/src/mincostflow.py @@ -7,7 +7,16 @@ __all__ = ['MinCostFlow'] - +""" +MinCostFlow deals with fully directed graphs +- OR Tools MCF is designed for directed graphs +- when an edge (arc), it has a source and target node, so flow it only allowed to moced from source to the target + +Expected raw input format: +Interactor1 Interactor2 Weight +- the expected raw input file should have node pairs in the 1st and 2nd columns, with the weight in the 3rd column +- it can include repeated and bidirectional edges +""" class MinCostFlow (PRM): required_inputs = ['sources', 'targets', 'edges'] diff --git a/src/omicsintegrator1.py b/src/omicsintegrator1.py index 3b667863..6d417eb4 100644 --- a/src/omicsintegrator1.py +++ b/src/omicsintegrator1.py @@ -35,7 +35,17 @@ def write_conf(filename=Path('config.txt'), w=None, b=None, d=None, mu=None, noi f.write('processes = 1\n') f.write('threads = 1\n') +""" +Omics Integrator 1 will construct works with partially directed graphs +- it takes in the universal input directly +Expected raw input format: +Interactor1 Interactor2 Weight Direction +- the expected raw input file should have node pairs in the 1st and 2nd columns, with a weight in the 3rd column and directionality in the 4th column +- it can include repeated and bidirectional edges +- it uses 'U' for undirected edges and 'D' for directed edges + +""" class OmicsIntegrator1(PRM): required_inputs = ['prizes', 'edges'] diff --git a/src/omicsintegrator2.py b/src/omicsintegrator2.py index e76f9b4c..3faa9fd4 100644 --- a/src/omicsintegrator2.py +++ b/src/omicsintegrator2.py @@ -9,7 +9,16 @@ __all__ = ['OmicsIntegrator2'] - +""" +Omics Integrator 2 will construct a fully undirected graph from the provided input file +- in the algorithm, it uses nx.Graph() objects, which are undirected +- uses a pcst_fast solver which supports undirected graphs + +Expected raw input format: +Interactor1 Interactor2 Weight +- the expected raw input file should have node pairs in the 1st and 2nd columns, with a weight in the 3rd column +- it can include repeated and bidirectional edges +""" class OmicsIntegrator2(PRM): required_inputs = ['prizes', 'edges'] diff --git a/src/pathlinker.py b/src/pathlinker.py index 27f4d294..ebdee187 100644 --- a/src/pathlinker.py +++ b/src/pathlinker.py @@ -8,6 +8,15 @@ __all__ = ['PathLinker'] +""" +Pathlinker will construct a fully directed graph from the provided input file +- an edge is represented with a head and tail node, which represents the direction of the interation between two nodes + +Expected raw input format: +Interactor1 Interactor2 Weight +- the expected raw input file should have node pairs in the 1st and 2nd columns, with a weight in the 3rd column +- it can include repeated and bidirectional edges +""" class PathLinker(PRM): required_inputs = ['nodetypes', 'network']