16 May 2014    mcx diameter 14-137



mcx diameter — compute the diameter of a graph


mcx diameter [options]

mcxdiameter is not in actual fact a program. This manual page documents the behaviour and options of the mcx program when invoked in mode diameter. The options -h, --apropos, --version, -set, --nop, -progress <num> are accessible in all mcx modes. They are described in the mcx manual page.

mcx diameter [-abc <fname> (specify label input)] [-imx <fname> (specify matrix input)] [-o <fname> (output file name)] [-tab <fname> (use tab file)] [-t <int> (use <int> threads)] [-J <intJ> (a total of <intJ> jobs are used)] [-j <intj> (this job has index <intj>)] [--summary (output diameter and average shortest path length)] [--list (list eccentricity for all nodes)] [-h (print synopsis, exit)] [--apropos (print synopsis, exit)] [--version (print version, exit)]


mcx diameter computes the diameter of a graph. The input graph should be symmetric. Results will be unpredictable for directed graphs. For label input this is irrelevant as mcx diameter will create a symmetric graph from the input.

The input graph/matrix, if specified with the -imx option, has to be in mcl matrix/graph format. You can use label input instead by using the -abc option. Refer to mcxio for a description of these two input formats. By default mcx diameter reads from STDIN and expects matrix format. To specify label input from STDIN use -abc -.


-abc <fname> (label input)

The file name for input that is in label format.

-imx <fname> (input matrix)

The file name for input that is in mcl native matrix format.

-o <fname> (output file name)

The name of the file to write output to.

-tab <fname> (use tab file)

This option causes the output to be printed with the labels found in the tab file. With -abc this option will, additionally, construct a graph only on the labels found in the tab file. If this option is used in conjunction with -imx the tab domain and the matrix domain are required to be identical.

-t <int> (use <int> threads)
-J <intJ> (a total of <intJ> jobs are used)
-j <intj> (this job has index <intj>)

Computing the diameter of a graph is time-intensive for large graphs. If you have multiple CPUs available consider using as many threads. Additionally it is possible to spread the computation over multiple jobs/machines. These three options are described in the clmprotocols manual page. The following set of options, if given to as many commands, defines three jobs, each running four threads.

-t 4 -J 3 -j 0 -o out.0 -t 4 -J 3 -j 1 -o out.1 -t 4 -J 3 -j 2 -o out.2

The output can then be collected with

mcx collect --add-column -o out.all out.[0-2]
--list (list eccentricity for all nodes)
--summary (output diameter and average eccentricity)

The default mode is --list, which results in output of the eccentricity of all nodes. The eccentricity of a node is the distance to any node that is the furthest away from it. The diameter of a graph is the maximum of the eccentricity taken over all nodes in a graph. In this mode mcx diameter will not output the diameter itself. Use --summary to output just the diameter and the average eccentricity.


mcxio, and mclfamily for an overview of all the documentation and the utilities in the mcl family.