Rail Symmetric Fork Join Spans
A `%%metro line_spread: rails` section carrying `%%metro diamond_style: symmetric`, where the fork (BQSR) spans four rails because it also carries the `core` line arriving from upstream while the join (Merge) spans only the three caller rails. Each pill stays centred on the rails it caps, so the two sit 20px apart rather than being forced onto one shared centreline.
Mermaid source
%%metro title: Rail fork/join spans%%metro style: dark%%metro line_spread: rails | calling%%metro diamond_style: symmetric%%metro label_angle: 45%%metro line: core | Core | #2db572%%metro line: germline | Germline | #0570b0%%metro line: tumor | Tumour | #f4a300%%metro line: pair | Pair | #d62728
graph LR subgraph prep [Preprocessing] input[Input] recal[Recalibrate]
input -->|core,germline,tumor,pair| recal end subgraph calling [Variant calling] bqsr[BQSR] haplo[HaplotypeCaller] mutect[Mutect2] strelka[Strelka] merge[Merge]
bqsr -->|germline| haplo bqsr -->|tumor| mutect bqsr -->|pair| strelka haplo -->|germline| merge mutect -->|tumor| merge strelka -->|pair| merge end recal -->|core,germline,tumor,pair| bqsrCLI command
nf-metro render examples/topologies/rail_symmetric_fork_join_spans.mmd -o rail_symmetric_fork_join_spans.svg