Skip to content

CLI vs GUI

SEGUL comes in two interfaces: a command-line interface (CLI) and a graphical user interface (GUI). Both run the same core, so they produce the same results.

CLI and GUI at a glanceLeft: the CLI runs SEGUL from a terminal, for example segul align concat on a folder of NEXUS loci. It is the fastest option, runs on HPC clusters and WSL, is scriptable, and builds from source anywhere Rust runs. Right: the GUI is a desktop and mobile app with a navigation rail, a file picker, and a run button. It needs no command line, includes a text and table viewer, runs on phones and tablets, and guides input and output options.CLICommands and scripts$ segul align concat \ -d loci/ -f nexusInput 4,060 alignmentsOutput concat.nex✓ Done in 2.5 sBest forFastest, smallest memory useRuns on HPC clusters and WSLScriptable for pipelinesBuilds from source anywhere Rust runsGUIPoint and clickAlignment concatenationInput: loci/ · 4,060 filesRunBest forNo command line neededBuilt-in text and table viewerRuns on phones and tabletsGuided input and output options
Both run the same SEGUL core, so results match. Install one or both; they do not interfere.
Platform supportLinux: CLI supported, GUI supported (GUI needs GLIBC 2.34+; CLI also on ARM64). macOS: CLI supported, GUI supported. Windows: CLI supported, GUI supported. WSL: CLI supported, GUI not supported. iOS: CLI not supported, GUI supported. iPadOS: CLI not supported, GUI supported. Android: CLI partial support, GUI supported (CLI through Termux).CLIGUIDESKTOPLinuxGUI needs GLIBC 2.34+; CLI also on ARM64macOSWindowsWSLMOBILEiOSiPadOSAndroidCLI through TermuxSupportedPartialNot supported
You can also compile the CLI from source for any platform Rust supports.

See the GUI and CLI installation guides. For Linux, the CLI comes as a fully static binary for older distributions and a GLIBC-linked binary for newer ones. You can also build the CLI from source.

Feature differencesCLI only: --dry-run preview, --npercent cutoffs, Nested input folders, Non-standard extensions. Both: Every alignment task, Every sequence task, Read, contig, and MAF tools, Same output files. GUI only: Text and table viewer, iOS, iPadOS, Android, File picker input, Point-and-click options.CLI only--dry-run preview--npercent cutoffsNested input foldersNon-standard extensionsBothEvery alignment taskEvery sequence taskRead, contig, and MAF toolsSame output filesGUI onlyText and table vieweriOS, iPadOS, AndroidFile picker inputPoint-and-click options
The main tasks are the same in both. The differences are in how you give input and look at output.

Each GUI task group maps to one or more CLI commands:

GUI task groups and CLI commandsThe GUI Alignment group maps to the CLI commands segul align and segul partition, the latter for partition conversion. The Sequence group maps to segul sequence. The Genomic group maps to segul read for FASTQ reads, segul contig for contigs, and segul maf for MAF files. GUI tasks match CLI subcommands.GUI task groupCLI commandAlignmentsegul alignsegul partitionSequencesegul sequenceGenomicsegul readsegul contigsegul maf
A GUI task is a CLI subcommand, for example Alignment › Concatenation is segul align concat.

Learn more about the CLI and GUI options.

The charts below are built from the SEGUL benchmark data (SEGUL v0.20.0). Desktop runs used Linux on an AMD Ryzen 9 5900X. AMAS and goalign are included for comparison. The SEGUL paper describes the methods.

Concatenation execution timeMean execution time to concatenate NEXUS alignments. DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 Mbases: SEGUL CLI · Linux 2.51 s, SEGUL GUI · Linux 3.56 s, SEGUL GUI · iPadOS 6.16 s, SEGUL GUI · Android 16.3 s, AMAS 3.43 s, goalign 7.07 s. Protein · Shen et al. 2018 · 2,408 loci, 398.8 Mbases: SEGUL CLI · Linux 3.88 s, SEGUL GUI · Linux 4.94 s, SEGUL GUI · iPadOS 6.90 s, SEGUL GUI · Android 17.1 s, AMAS 3.54 s, goalign 5.38 s.DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 Mbases05101520SEGUL CLI · Linux: 2.51 s ± 0.02 SD (n = 5)SEGUL CLI · Linux2.51SEGUL GUI · Linux: 3.56 s ± 0.09 SD (n = 5)SEGUL GUI · Linux3.56SEGUL GUI · iPadOS: 6.16 s ± 0.05 SD (n = 5)SEGUL GUI · iPadOS6.16SEGUL GUI · Android: 16.3 s ± 0.08 SD (n = 5)SEGUL GUI · Android16.3AMAS: 3.43 s ± 0.04 SD (n = 5)AMAS3.43goalign: 7.07 s ± 0.08 SD (n = 5)goalign7.07Protein · Shen et al. 2018 · 2,408 loci, 398.8 Mbases05101520SEGUL CLI · Linux: 3.88 s ± 0.09 SD (n = 5)SEGUL CLI · Linux3.88SEGUL GUI · Linux: 4.94 s ± 0.09 SD (n = 5)SEGUL GUI · Linux4.94SEGUL GUI · iPadOS: 6.90 s ± 0.46 SD (n = 5)SEGUL GUI · iPadOS6.90SEGUL GUI · Android: 17.1 s ± 0.22 SD (n = 5)SEGUL GUI · Android17.1AMAS: 3.54 s ± 0.06 SD (n = 5)AMAS3.54goalign: 5.38 s ± 0.10 SD (n = 5)goalign5.38Execution time (seconds)
Shorter is faster. Whiskers show one standard deviation over five runs.
Show the numbers
PanelAppMean (s)SDRuns
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 MbasesSEGUL CLI · Linux2.510.025
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 MbasesSEGUL GUI · Linux3.560.095
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 MbasesSEGUL GUI · iPadOS6.160.055
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 MbasesSEGUL GUI · Android16.30.085
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 MbasesAMAS3.430.045
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 Mbasesgoalign7.070.085
Protein · Shen et al. 2018 · 2,408 loci, 398.8 MbasesSEGUL CLI · Linux3.880.095
Protein · Shen et al. 2018 · 2,408 loci, 398.8 MbasesSEGUL GUI · Linux4.940.095
Protein · Shen et al. 2018 · 2,408 loci, 398.8 MbasesSEGUL GUI · iPadOS6.900.465
Protein · Shen et al. 2018 · 2,408 loci, 398.8 MbasesSEGUL GUI · Android17.10.225
Protein · Shen et al. 2018 · 2,408 loci, 398.8 MbasesAMAS3.540.065
Protein · Shen et al. 2018 · 2,408 loci, 398.8 Mbasesgoalign5.380.105
Concatenation peak memoryMean peak memory to concatenate NEXUS alignments on Linux. DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 Mbases: SEGUL CLI · Linux 638 MB, SEGUL GUI · Linux 869 MB, AMAS 2,262 MB, goalign 3,138 MB. Protein · Shen et al. 2018 · 2,408 loci, 398.8 Mbases: SEGUL CLI · Linux 590 MB, SEGUL GUI · Linux 766 MB, AMAS 1,734 MB, goalign 2,106 MB.DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 Mbases01,0002,0003,0004,000SEGUL CLI · Linux: 638 MB ± 1.43 SD (n = 5)SEGUL CLI · Linux638SEGUL GUI · Linux: 869 MB ± 3.89 SD (n = 5)SEGUL GUI · Linux869AMAS: 2,262 MB ± 1.34 SD (n = 5)AMAS2,262goalign: 3,138 MB ± 290 SD (n = 5)goalign3,138Protein · Shen et al. 2018 · 2,408 loci, 398.8 Mbases01,0002,0003,000SEGUL CLI · Linux: 590 MB ± 4.02 SD (n = 5)SEGUL CLI · Linux590SEGUL GUI · Linux: 766 MB ± 4.79 SD (n = 5)SEGUL GUI · Linux766AMAS: 1,734 MB ± 1.08 SD (n = 5)AMAS1,734goalign: 2,106 MB ± 159 SD (n = 5)goalign2,106Peak memory (MB)
Lower uses less memory. Measured on desktop only; CLI numbers exclude the terminal app.
Show the numbers
PanelAppMean (MB)SDRuns
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 MbasesSEGUL CLI · Linux6381.435
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 MbasesSEGUL GUI · Linux8693.895
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 MbasesAMAS2,2621.345
DNA · Oliveros et al. 2019 · 4,060 loci, 522.5 Mbasesgoalign3,1382905
Protein · Shen et al. 2018 · 2,408 loci, 398.8 MbasesSEGUL CLI · Linux5904.025
Protein · Shen et al. 2018 · 2,408 loci, 398.8 MbasesSEGUL GUI · Linux7664.795
Protein · Shen et al. 2018 · 2,408 loci, 398.8 MbasesAMAS1,7341.085
Protein · Shen et al. 2018 · 2,408 loci, 398.8 Mbasesgoalign2,1061595
SEGUL CLI and GUI across tasksMean execution time on the Oliveros et al. 2019 DNA dataset for concatenation, conversion, splitting, summary statistics, and sequence removal, comparing the SEGUL CLI on Linux with the GUI on Linux, iPadOS, and Android. The Linux GUI stays close to the CLI; mobile devices take longer, partly because the app copies input files first. Concatenation: SEGUL CLI · Linux 2.51 s, SEGUL GUI · Linux 3.56 s, SEGUL GUI · iPadOS 6.16 s, SEGUL GUI · Android 16.3 s. Conversion: SEGUL CLI · Linux 0.38 s, SEGUL GUI · Linux 0.41 s, SEGUL GUI · iPadOS 4.98 s, SEGUL GUI · Android 3.64 s. Splitting: SEGUL CLI · Linux 3.54 s, SEGUL GUI · Linux 4.82 s, SEGUL GUI · iPadOS 6.60 s, SEGUL GUI · Android 14.5 s. Summary: SEGUL CLI · Linux 1.10 s, SEGUL GUI · Linux 1.20 s, SEGUL GUI · iPadOS 7.70 s, SEGUL GUI · Android 14.2 s. Sequence Removal: SEGUL CLI · Linux 0.43 s, SEGUL GUI · Linux 0.42 s, SEGUL GUI · iPadOS 4.20 s, SEGUL GUI · Android 3.50 s.ConcatenationSEGUL CLI · Linux: 2.51 s ± 0.02 SD (n = 5)SEGUL CLI · Linux2.51SEGUL GUI · Linux: 3.56 s ± 0.09 SD (n = 5)SEGUL GUI · Linux3.56SEGUL GUI · iPadOS: 6.16 s ± 0.05 SD (n = 5)SEGUL GUI · iPadOS6.16SEGUL GUI · Android: 16.3 s ± 0.08 SD (n = 5)SEGUL GUI · Android16.3ConversionSEGUL CLI · Linux: 0.38 s ± 0.05 SD (n = 5)SEGUL CLI · Linux0.38SEGUL GUI · Linux: 0.41 s ± 0.02 SD (n = 5)SEGUL GUI · Linux0.41SEGUL GUI · iPadOS: 4.98 s ± 0.83 SD (n = 5)SEGUL GUI · iPadOS4.98SEGUL GUI · Android: 3.64 s ± 0.21 SD (n = 5)SEGUL GUI · Android3.64SplittingSEGUL CLI · Linux: 3.54 s ± 0.02 SD (n = 5)SEGUL CLI · Linux3.54SEGUL GUI · Linux: 4.82 s ± 0.04 SD (n = 5)SEGUL GUI · Linux4.82SEGUL GUI · iPadOS: 6.60 s ± 0.19 SD (n = 5)SEGUL GUI · iPadOS6.60SEGUL GUI · Android: 14.5 s ± 0.74 SD (n = 5)SEGUL GUI · Android14.5SummarySEGUL CLI · Linux: 1.10 s ± 0.00 SD (n = 5)SEGUL CLI · Linux1.10SEGUL GUI · Linux: 1.20 s ± 0.01 SD (n = 5)SEGUL GUI · Linux1.20SEGUL GUI · iPadOS: 7.70 s ± 0.25 SD (n = 5)SEGUL GUI · iPadOS7.70SEGUL GUI · Android: 14.2 s ± 0.11 SD (n = 5)SEGUL GUI · Android14.2Sequence Removal05101520SEGUL CLI · Linux: 0.43 s ± 0.02 SD (n = 5)SEGUL CLI · Linux0.43SEGUL GUI · Linux: 0.42 s ± 0.02 SD (n = 5)SEGUL GUI · Linux0.42SEGUL GUI · iPadOS: 4.20 s ± 0.10 SD (n = 5)SEGUL GUI · iPadOS4.20SEGUL GUI · Android: 3.50 s ± 0.07 SD (n = 5)SEGUL GUI · Android3.50Execution time (seconds)
DNA dataset (Oliveros et al. 2019). All tasks share one scale.
Show the numbers
PanelAppMean (s)SDRuns
ConcatenationSEGUL CLI · Linux2.510.025
ConcatenationSEGUL GUI · Linux3.560.095
ConcatenationSEGUL GUI · iPadOS6.160.055
ConcatenationSEGUL GUI · Android16.30.085
ConversionSEGUL CLI · Linux0.380.055
ConversionSEGUL GUI · Linux0.410.025
ConversionSEGUL GUI · iPadOS4.980.835
ConversionSEGUL GUI · Android3.640.215
SplittingSEGUL CLI · Linux3.540.025
SplittingSEGUL GUI · Linux4.820.045
SplittingSEGUL GUI · iPadOS6.600.195
SplittingSEGUL GUI · Android14.50.745
SummarySEGUL CLI · Linux1.100.005
SummarySEGUL GUI · Linux1.200.015
SummarySEGUL GUI · iPadOS7.700.255
SummarySEGUL GUI · Android14.20.115
Sequence RemovalSEGUL CLI · Linux0.430.025
Sequence RemovalSEGUL GUI · Linux0.420.025
Sequence RemovalSEGUL GUI · iPadOS4.200.105
Sequence RemovalSEGUL GUI · Android3.500.075

For long jobs, the interface makes little difference. Summarizing a whole-genome FASTQ sample took about the same time in both. Part of the memory gap is the GUI's own interface, as noted above:

SEGUL CLI · Linux16.6 min9 MB peak memory
SEGUL GUI · Linux16.8 min188 MB peak memory

This material is based upon work supported by the National Science Foundation under grant numbers: DEB-1754393 and DEB-2244754. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.