---
name: "mcxdiameter"
section: "1"
platform: "linux"
package: "mcl"
version: "1:22-282+ds-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mcxdiameter"
---

# mcxdiameter(1)

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(5)](/mcxio/5.md)** 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(5)](/mcxio/5.md)**, and **[mclfamily(7)](/mclfamily/7.md)** for an overview of all the documentation and the utilities in the mcl family.
