Feature and Usages
SEGUL development focuses on improved efficiency when working with
thousands of alignment files, enabling analysis on computers with
limited capabilities. We achieve this goal by reducing execution time
and RAM usages. SEGUL has a growing list of features for phylogenomic
data manipulation and summary statistic calculation (Table 1). Although
phylogenomic analyses are growing in frequency, Sanger sequencing
remains common in certain circumstances. Several features of our
applications, such as alignment concatenation, sequence removal and
translation, are applicable to both phylogenomic and Sanger datasets.
All versions of SEGUL work on FASTA, NEXUS, and relaxed-PHYLIP for
alignment and processed sequence files, NEXUS and RaXML standards for
partitions, and uncompressed and gunzip compressed FASTQ files for
raw-read sequences. All sequence and alignment files are supported in
interleaved and sequential format. Except for alignment splitting, all
the features support multiple input files. All application versions
provide detailed log file output. SEGUL-critical and some non-critical
functions are tested using the unittest system provided by the Rust and
Dart programming languages. We implement a continuous integration system
using GitHub Action (https://github.com/features/actions) to
automatically validate code changes and ensure that failures in the
designed tests are publicly displayed in the source code repository.
The command-line version, SEGUL, features an informative terminal output
with information on the application input, processing stages, and output
(see example in Figure S1). Multiple file outputs will always be written
to a directory. The applications do not automatically overwrite existing
files but do provide an overwrite option for automated phylogenomic
pipelines.
The GUI version offers interactive access to SEGUL features, while
keeping similar performance to its CLI sibling. We leverage Flutter
cross-platform and adaptive UI support to adapt UI elements to different
screen sizes and platforms. For example, on a small screen, such as on a
smartphone, features are accessed through a bottom navigation bar,
whereas on larger screens (e.g., tablets, laptops, and desktops), the
navigation bar is placed vertically on the left side of the screen to
take advantage of greater screen width. We anticipate future development
to provide more interactive UI element to view the results and better
space usages when running SEGUL GUI on large-screen devices.
The first version of SEGUL GUI supports all the features of the CLI
version, while outputting similar log files and equivalent SEGUL command
lines to enable reproducibility. We also include a share function to
simplify cross-device file sharing using operating system features. For
example, on iOS and MacOS, users can send files between Apple devices
via AirDrop without leaving SEGUL GUI. We anticipate future development
to provide interactive statistics and simplify checking application
input and output.