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.