mcxio(5) | FILE FORMATS | mcxio(5) |

mcxio - the format specifications for input and output in

Header specification

(mclheader mcltype matrix dimensions 9x14 )

Domain specification

(mclrows 100 200 300 400 500 600 700 800 900 $ ) (mclcols 30 32 34 36 38 40 42 44 46 48 50 52 56 58 $ )

(mcldoms 11 22 33 44 55 66 77 88 99 100 $ )

Matrix specification

(mclmatrix begin

(mclheader mcltype matrix dimensions 12x3 ) (mclrows 11 22 33 44 55 66 77 88 99 123 456 2147483647 $ ) (mclcols 0 1 2 $ ) (mclmatrix begin 0 44 88 99 456 2147483647 $ 1 11 66 77 123 $ 2 22 33 55 $ )

A graph is simply a matrix where the row domain is the same as the column domain. Graphs should have positive entries only. Example:

(mclheader mcltype matrix dimensions 12x12 ) (mcldoms 11 22 33 44 55 66 77 88 99 123 456 2147483647 $ ) (mclmatrix begin 11 22:2 66:3.4 77:3 123:8 $ 22 11:2 33:3.8 55:8.1 $ 33 22:3.8 44:7 55:6.2 $ 44 33:7 88:5.7 99:7.0 456:3 $ 55 22:8.1 33:6.2 77:2.9 88:3.0 $ 66 11:3.4 123:5.1 $ 77 11:3 55:2.9 123:1.5 $ 88 44:5.7 55:3.0 99:3.0 456:4.2 $ 99 44:7.0 88:3.0 456:1.8 2147483647:3.9 $ 123 11:8 66:5.1 77:1.5 $ 456 44:3 88:4.2 99:1.8 2147483647:6.3 $ 2147483647 99:3.9 456:6.3 $ )

(mclheader mcltype matrix dimensions 12x12 ) (mclmatrix begin 0 1 5 6 9 $ 1 0 2 4 $ 2 1 3 4 $ 3 2 7 8 10 $ 4 1 2 6 7 $ 5 0 9 $ 6 0 4 9 $ 7 3 4 8 10 $ 8 3 7 10 11 $ 9 0 5 6 $ 10 3 7 8 11 $ 11 8 10 $ )

Several mcl programs accept options such as

Label format is a line based input where two nodes and an optional value are specified on each line. The nodes should be specified by labels. If the labels contain spaces they should be separated by tabs (and the value if present should be separated from the second label by a tab as well). The parse code will assume tab-separated labels if it sees a tab character in the input, otherwise it will split the input on any kind of whitespace. Any line where the first non-whitespace character is the octothorp (#) is ignored. The following is an example of label format.

---8<------8<------8<------8<------8<--- # the cat and the hat example cat hat 0.2 hat bat 0.16 bat cat 1.0 bat bit 0.125 bit fit 0.25 fit hit 0.5 hit bit 0.16 --->8------>8------>8------>8------>8---

lt Filter out values greater than or equal to arg.

lq Filter out values greater than arg.

gq Filter out values less than arg.

gt Filter out values less than or equal to arg.

ceil Set everything higher than arg to arg.

floor Set everything lower than arg to arg.

mul Multiply values by arg.

add Add arg to values.

power Raise values to power arg.

exp Raise arg (

log Take log in base arg (

neglog Take minus log in base arg (

rand Keep arc with probablity arg.

scale Divide values by arg.

abs Replace value by its absolute value.

acos Take acos of value.

#knn k-Nearest Neighbour reduction with k=arg (intersect lists).

#knnj As #knn above, but join selected neighbour lists.

#ceilnb Cap number of neighbours at arg at most.

#ils Inverted log-weight similarity (no argument).

#mcl Cluster with inflation=arg, yields induced graph.

#add Convert two arcs to one edge using addition.

#min Convert two arcs to one edge using minimum.

#max Convert two arcs to one edge using maximum.

#mul Convert two arcs to one edge using multiplication.

#rev Encode graph in reverse direction.

#tp Same as above in matrix speak (

#selfrm Remove loops.

#selfmax Set loop value to maximum value.

#tug Perturb edge weights with factor arg.

#shrug Randomly perturb edge weights with factor arg.

#step Use the k-step relation, where k=arg.

#thread Set thread pool size to arg.

#arcmax Only keep largest arc between two nodes.

#arcsub Replace G by G - G^T.

#symmcl As #mcl, use symmetrised graph for clustering.

Stijn van Dongen.

16 May 2014 | mcxio 14-137 |