.. _dev notes:
===============
Developer notes
===============
Overview
========
.. mermaid::
:caption: High level class overview
graph LR
A("Input
(A Networkx Graph)")
B("External Process
(An executable)")
C("Parameters
(Motif size, sampling method, ...)")
D("Output
(Motif enumeration as DataFrame)")
A --> B
C --> B
B --> D
.. mermaid::
:caption: A high level view of the project's design.
classDiagram
class PyMotifCounterParameter
class PyMotifCounterOutputTransformerBase
class PyMotifCounterInputTransformerBase
class PyMotifCounterBase
PyMotifCounterBase : -str _binary_location
PyMotifCounterBase o-- PyMotifCounterInputTransformerBase:_input_transformer
PyMotifCounterBase o-- PyMotifCounterOutputTransformerBase:_output_transformer
PyMotifCounterBase *-- "0..*" PyMotifCounterParameter:_parameters
class PyMotifCounterMfinder
class PyMotifCounterNetMODE
class PyMotifCounterFanmod
class PyMotifCounterPgd
PyMotifCounterMfinder --|> PyMotifCounterBase
PyMotifCounterNetMODE --|> PyMotifCounterBase
PyMotifCounterFanmod --|> PyMotifCounterBase
PyMotifCounterPgd --|> PyMotifCounterBase
Inputs
======
Broadly speaking all programs expect an edge list format
where nodes have unique numeric IDs. But, each program allows certain details
to be passed along with the edgelist, depending on their specific objectives.
1. ``mfinder``
* Expects an edge list of ``Source\tTarget\tWeight``
* The edge list must be **TAB** delimited
* The ``Weight`` *is not active* and should default to 1
2. ``fanmod_cmd``
* Expects an edge list of ``Source Target``
* Can also accept ....
3. ``NetMODE``
* Expects an edge list of ``Source Target``
* Listing has to begin with the number of edges expected present in the file.
* The edge list must be **TAB** delimited.
4. ``PGD``
* Expects an edge list of ``Source Target``
* The edge list must be **COMMA** separated.
Parameters
==========
``mfinder``
-----------
.. literalinclude:: resources/raw_outputs/mfinder_params.txt
``fanmod_cmd``
--------------
.. literalinclude:: resources/raw_outputs/fanmod_params.txt
``NetMODE``
-----------
.. literalinclude:: resources/raw_outputs/netmode_params.txt
``PGD``
-------
.. literalinclude:: resources/raw_outputs/pgd_params.txt
Outputs
=======
``mfinder``
-----------
.. literalinclude:: resources/raw_outputs/mfinder_out.txt
``fanmod_cmd``
--------------
.. literalinclude:: resources/raw_outputs/fanmod_out.txt
``NetMODE``
--------------
NetMODE produces both a file with results as well as a file with the
adjacency matrices of the motifs it has detected.
.. literalinclude:: resources/raw_outputs/netmode_out_1.txt
.. literalinclude:: resources/raw_outputs/netmode_out_2.txt
``pgd``
-------
.. literalinclude:: resources/raw_outputs/pgd_out.txt
Recompiling the binaries
========================
For the moment, please see `this document `_
with more information about this.
Other algorithms
================
1. ``ORCA`` `website `_
* Also see `this `_
2. `Hypergraphlets `_