SOFTWARE Open Access GSAlign an efficient sequence alignment tool for intra species genomes Hsin Nan Lin and Wen Lian Hsu* Abstract Background Personal genomics and comparative genomics are becoming m[.]
Lin and Hsu BMC Genomics (2020) 21:182 https://doi.org/10.1186/s12864-020-6569-1 SOFTWARE Open Access GSAlign: an efficient sequence alignment tool for intra-species genomes Hsin-Nan Lin and Wen-Lian Hsu* Abstract Background: Personal genomics and comparative genomics are becoming more important in clinical practice and genome research Both fields require sequence alignment to discover sequence conservation and variation Though many methods have been developed, some are designed for small genome comparison while some are not efficient for large genome comparison Moreover, most existing genome comparison tools have not been evaluated the correctness of sequence alignments systematically A wrong sequence alignment would produce false sequence variants Results: In this study, we present GSAlign that handles large genome sequence alignment efficiently and identifies sequence variants from the alignment result GSAlign is an efficient sequence alignment tool for intra-species genomes It identifies sequence variations from the sequence alignments We estimate performance by measuring the correctness of predicted sequence variations The experiment results demonstrated that GSAlign is not only faster than most existing state-of-the-art methods, but also identifies sequence variants with high accuracy Conclusions: As more genome sequences become available, the demand for genome comparison is increasing Therefore an efficient and robust algorithm is most desirable We believe GSAlign can be a useful tool It exhibits the abilities of ultra-fast alignment as well as high accuracy and sensitivity for detecting sequence variations Keywords: Genome comparison, Sequence alignment, Variation detection, Personal genomics, Comparative genomics Background With the development of sequencing technology, the cost of whole genome sequencing is dropping rapidly Sequencing the first human genome cost $2.7 billion in 2001; however, several commercial parties have claimed that the $1000 barrier for sequencing an entire human genome is broken [1] Therefore, it is foreseeable that genome sequencing will become a reality in clinical practices in the near future, which brings the study of personal genomics and comparative genomics Personal genomics involves the sequencing, analysis and interpretation of the genome of an individual It can offer many clinical applications, particularly in the diagnosis of genetic deficiencies and human diseases [2] Comparative genomics is another field to study the genomic features of different organisms It aims to understand the structure and function of genomes by * Correspondence: hsu@iis.sinica.edu.tw Institute of Information Science, Academia Sinica, Taipei, Taiwan identifying regions with similar sequences between characterized organisms Both personal genomics and comparative genomics require sequence alignment to discover sequence conservation and variation Sequence conservation patterns can be helpful to predict functional categories, whereas variation can be helpful to infer relationship between organisms or populations in different areas Studies have shown that variation is important to human health and common genetic disease [3–5] The alignment speed is an important issue since a genome sequence usually consists of millions of nucleotides or more Methods based on the traditional alignment algorithms, like AVID [6], BLAST [7] and FASTA [8], are not able to handle large scale sequence alignment Many genome comparison algorithms have been developed, including ATGC [9, 10], BBBWT [11], BLAT [12], BLASTZ [13], Cgaln [14], chainCleaner [15], Harvest [16], LAGAN [17], LAST [18], MAGIC [19], MUMmer [20–23], and minimap2 [24] © The Author(s) 2020 Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made The Creative Commons Public Domain Dedication waiver (http://creativecommons.org/publicdomain/zero/1.0/) applies to the data made available in this article, unless otherwise stated Lin and Hsu BMC Genomics (2020) 21:182 One of important applications of genome comparison is to identify sequence variations between genomes, which can be found by linearly scanning their alignment result However, none of the above-mentioned methods have been evaluated the correctness of sequence alignment regarding variation detection A wrong sequence alignment would produce false sequence variants In this study, we estimated the performance of each selected genome sequence comparison tool by measuring the correctness of sequence variation We briefly summarized the algorithm behind each pairwise genome sequence alignment tool in Table S1(Supplementary data) The alignment algorithms can be classified into two groups: seed-and-extend and seed-chain-align, and the seeding schemes can be K-mer, minimizer, suffix tree, suffix array, or BWT Recently, many NGS read mapping algorithms use Burrows Wheeler Transformation (BWT) [25] or FM-index [26] to build an index for the reference sequences and identify maximal exact matches by searching against the index array with a query sequence It has been shown that BWT-based read mappers are more memory efficient than hash table based mappers [27] In this study, we used BWT to perform seed exploration for genome sequence alignment We demonstrated that GSAlign is efficient in finding both exact matches and differences between two intra-species genomes The differences include all single nucleotide polymorphisms (SNPs), insertions, and deletions Moreover, the alignment is ultra-fast and memory efficient The source code of GSAlign is available at https://github.com/hsinnan75/GSAlign Page of 10 Implementation The algorithm of GSAlign is derived from our DNA read mapper, Kart [28] Kart adopts a divide-and-conquer strategy to separate a read into regions with and without differences The same strategy is applicable to genome sequence alignment However, in contrast with NGS short read alignment, genome sequence alignment often consists of multiple sub-alignments that are separated by dissimilar regions or variants In this study, we present GSAlign for handling genome sequence alignment Algorithm overview Similar to MUMmer4 and Minimap2, GSAlign also follows the “seed-chain-align” procedure to perform genome sequence alignment However, the details of each step are quite different Figure illustrates the workflow of GSAlign It consists of three main steps: LMEM identification (seed), similar region identification (chain), and alignment processing (align) We define a local maximal exact match (LMEM) as a common substring between two genomes that begins at a specific position of query sequence In the LMEM identification step, GSAlign finds LMEMs with variable relengths and then converts those LMEMs into simple pairs A simple pair represents a pair of identical sequence fragments, one from the reference and one from the query sequence In the similar region identification, GSAlign clusters those simple pairs into disjoint groups Each group represents a similar region GSAlign then finds all local gaps in each similar region A local gap (defined as a normal pair) is the gap between two adjacent simple pairs In the alignment- Fig The flowchart of GSAlign Each rectangle is an LMEM (simple pair) and the width is the size of the LMEM They are then clustered into similar regions, each of which consists of adjacent LMEMs and gaps in between We then perform gapped/un-gapped alignment to close those gaps to build the complete alignment for each similar region Lin and Hsu BMC Genomics (2020) 21:182 processing step, GSAlign closes gaps to build a complete local alignment for each similar region and identifies all sequence variations during the process Finally, GSAlign outputs the alignments of all similar regions, a VCF (variant call format) file, and a dot-plot representation (optional) The contribution of this study is that we optimize those steps and integrate them into a very efficient algorithm that saves both time and memory and produces reliable alignments Burrows-Wheeler transform We give a brief background of BWT algorithm below Consider a text T of length L over an alphabet set Σ; T is attached with symbol $ at the end, and $ is lexicographically smaller than any character in Σ Let SA[0, L] be the suffix array of T, such that SA[i] indicates the starting position of the i-th lexicographically smallest suffix The BWT of T is a permutation of T such that BWT[i] = T[SA[i] − 1] (Note that if SA[i] = 0, BWT[i] = $) Given a pattern S, suppose SA[i] and SA[j] are the smallest and largest suffices of T where P is their common prefix, the range [i, j] indicates the occurrences of S Thus, given an SA range [i, j] of pattern P, we can apply the backward search algorithm to find the SA range [p, q] of zP for any character z If we build the BWT with the reverse of T, the backward search algorithm can be used to test whether a pattern P is an exact substring of T in O(|P|) time by iteratively matching each character in P One of the BWT index algorithms was implemented in BWT-SW [29] and it was then modified to work with BWA [27] For the details of BWT index algorithm and the search algorithm, please refer to the above-mentioned methods and Kart LMEM identification Given two genome sequences P and Q, GSAlign generates the BWT array with P and its reverse complementary sequence P′ Let P[i1] be the i1-th nucleobase of P, and P[i1, i2] be the sequence fragment between P[i1] and P[i2] GSAlign finds LMEMs by searching against the BWT array with Q Since each LMEM is a common substring that begins at a specific position of Q, it is represented as a simple pair (i.e., identical fragment pair) in this study and denoted by a 4-tuple (i1, i2, j1, j2), meaning P[i1, i2] = Q[j1, j2] and P[i2 + 1] ≠ Q[j2 + 1] If the common substring appears multiple times (i.e., frequency > 1), it would be transformed into multiple simple pairs For example, if the substring Q[j1, j2] is identical to P[i1, i2] and P[i3, i4], it would be represented as two simple pairs (i1, i2, j1, j2) and (i3, i4, j1, j2) Note that an LMEM is transformed into simple pairs only if its size is not smaller than a user-defined threshold k and its occurrences are less than f We investigate the effect of threshold k and f in the Table S2 (Supplementary Page of 10 data) and we found that GSAlign performs equally well with different thresholds The BWT search iteratively matches every nucleotide of the query genome Q It begins with Q[j1] (j1 = at the first iteration) and stops at Q[j2] if it meets a mismatch at Q[j2 + 1], i.e., the SA range of Q[j1, j2 + 1] = The next iteration of BWT search will start from Q[j2 + 1] until it meets another mismatch When GSAlign is running with sensitive mode, the next iteration of BWT search starts from Q[j1 + 5] instead of Q[j2 + 1] In doing so, GSAlign is less likely to miss true LMEMs due to false overlaps between P and Q The search procedure terminates until it reaches the end of genome Q Please note that the LMEM identification can be processed simultaneously if GSAlign runs with multiple threads For each query sequence in Q, GSAlign divides it into N blocks of equal size when it is running with N threads and each thread identifies LMEMs for a sequence block independently The multithreading can be also applied in the following alignment step We will demonstrate that such parallel processing greatly speedup the alignment process Similar region identification After collecting all simple pairs, GSAlign sorts all simple pairs according to their position differences between genomes P and Q and clusters those into disjoint groups The clustering algorithm is described below Suppose Sk is a simple pair (ik,1, ik,2, jk,1, jk,2), we define PosDiffk = ik,1− jk,1 If two simple pairs have similar PosDiff, they are co-linear We sort all simple pairs according to their PosDiff to group all co-linear simple pairs The clustering starts with the first simple pair S1 and we check if the next simple pair (S2) is within a threshold MaxDiff (the default value is 25) The size of MaxDiff determines the maximum indel size allowed between two simple pairs If |PosDiff1 − PosDiff2| ≤ MaxDiff, we then check the PosDiff of S2 and S3 until we find two simple pairs Sk and Sk + whose |PosDiffk − PosDiffk + 1| > MaxDiff In such cases, the clustering breaks at Sk + and simple pairs S1, S2, …, Sk are clustered in the same group We investigate the performance of GSAlign with different values of MaxDiff and summarize the analysis in Table S3 (Supplementary data) We then re-sort S1, S2, …, Sk by their positions at sequence Q (i.e., the third value of 4-tuple) Since simple pairs are re-sorted by their positions at sequence Q, some of them may be not co-linear with their adjacent simple pairs and they are considered as outliers We remove those outliers from the simple pair group A simple pair Sm is considered as an outlier if |PosDiffm − PosDiffm − 1| > and |PosDiffm − PosDiffm + 1| > where Sm-1, Sm and Sm + are adjacent In such cases, we will Lin and Hsu BMC Genomics (2020) 21:182 perform a dynamic programming to handle the gap between Sm-1 and Sm + For those simple pairs of same positions at sequence Q (i.e., the fragment of Q has multiple occurrences in P), we keep the one with the minimal difference of PosDiff compared to the closest unique simple pair Then we check every two adjacent simple pairs sa = (ia,1, ia,2, ja,1, ja,2) and sb = (ib,1, ib,2, jb,1, jb,2), we define gap(Sa, Sb) = jb,1 − ja,2 If gap(Sa, Sb) is more than 300 bp and the sequence fragments in the gap are dissimilar, we consider Sb as a break point of a similar region To determine whether the sequence fragment in a gap are similar, we use k-mers to estimate their similarity If the number of common k-mers is less than gap(Sa, Sb) / 3, they are considered dissimilar In such cases, we consider Sb as a break point of a similar region, and Sb will initiate another similar region We investigate different gap size thresholds in the Table S4 (Supplementary data) and found that GSAlign was not sensitive to the threshold The simple pair clustering will be continued with the next un-clustered simple pair until all simple pairs are visited We use an example to illustrate the process of simple pair clustering and outlier removing Suppose GSAlign identifies nine simple pairs as shown in Fig 2a We sort these simple pairs by their PosDiff and start clustering with S1 Simple pairs S1, S2, …, S8 are clustered in the same group since any two adjacent simple pairs in the group have similar PosDiff For example, |PosDiff1 − PosDiff2| = 10, and |PosDiff2 − PosDiff3| = By contrast, |PosDiff8 − PosDiff9| = 60, we break the clustering at S9 We then re-sort S1, S2, …, S8 by their positions at sequence Q as shown in Fig 2b, and mark S6 and S7 are not unique since the two simple pairs have the same position at Q We compare S6 and S7 and keep S6 because it has the minimal difference of PosDiff with its neighboring unique simple pairs Page of 10 We remove S1 and S8 since they are not co-linear with their adjacent simple pairs S1 is considered an outlier because |PosDiff1 − PosDiff3| > and |PosDiff1 − PosDiff6| > After S1 is removed, the gap between S3 and S6 would probably form an un-gapped alignment since they have the same PosDiff S8 is also an outlier because |PosDiff8 − PosDiff5| > MaxDiff Finally, we confirm there is no any large gap between any two adjacent simple pairs in the group Thus, the group of S3, S6, S2, S4, and S5 forms a similar region, and upon which we can generate a local alignment Given two adjacent simple pairs in the same cluster, sa = (ia,1, ia,2, ja,1, ja,2) and sb = (ib,1, ib,2, jb,1, jb,2), we say sa and sb overlap if ia,1 ≤ ib,1 ≤ ia,2 or ja,1 ≤ jb,1 ≤ ja,2 In such cases, the overlapping fragment is chopped off from the smaller simple pair For example, BWT index Figure shows a tandem repeat with different copies in genome P and Q In this example, “ACGT” is a tandem repeat where P has seven copies and Q has nine copies GSAlign identifies two simple pairs in this region: A (301, 330, 321, 350) and B (323, 335, 351, 363) A and B overlap between P[323, 330] In such cases, we remove the overlap from the preceding simple pair (i.e., A) After removing the overlap, A becomes (301, 322, 321, 342) and we create a gap of Q[343, 350] After removing overlaps, we check if there is a gap between any two adjacent simple pairs in each similar region We fill gaps by inserting normal pairs A normal pair is also denoted as a 4-tuple (i1, i2, j1, j2) in which P[i1, i2] ≠ Q[j1, j2] and the size of P[i1, i2] or Q[j1, j2] can be if one of them is an deletion Suppose we are given two adjacent simple pairs (i2q-1, i2q, j2q-1, j2q) and (i2q + 1, i2q + 2, j2q + 1, j2q + 2) If i2q + − i2q > or j2q + − j2q > 1, then we insert a normal pair (ir, ir + 1, jr, jr + 1) to fill the gap, where ir – i2q = i2q + – ir + = if i2q + − i2q > 1; otherwise ir = ir + = − meaning the corresponding fragment size is Likewise, jr – j2q = j2q + – jr + = if j2q + − j2q > 1, otherwise let jr = jr + = − Fig An example illustrating the process of simple clustering and outlier removing GSAlign clusters simple pairs and remove outliers according to PosDiff Simple pairs in red are not unique Simple pairs with gray backgrounds are considered as outliers and they are removed from the cluster Lin and Hsu BMC Genomics (2020) 21:182 Page of 10 Fig Simple pairs a and b overlaps due to tandem repeats of “ACGT” We remove the overlapped fragment from simple pair A (the preceding one) Alignment processing At this point, GSAlign has identified similar regions that consist of simple pairs and normal pairs In this step, GSAlign only focuses on normal pairs If the sequence fragments in a normal pair have equal size, it is very likely the sequence fragments only contain substitutions and the un-gapped alignment is already the best alignment; if the sequence fragments contain indels, gapped alignment is required Therefore, we classify normal pairs into the following types: 1) A normal pair is Type I if the fragment pair has equal size and the number of mismatches in a linear scan is less than a threshold; 2) A normal pair is Type II if one of the fragment is a null string and the other contains at least one nucleobase; 3) The remaining normal pairs are Type III; Thus, only Type III require gapped alignment GSAlign applies the KSW2 algorithm [30] to perform gapped alignment The alignment of each normal pair is constrained by the sequence fragment pair This allows GSAlign to generate their alignments simultaneously with multiple threads At the end, the complete alignment of the genome sequences is the concatenation of the alignment of each simple and normal pairs Differences among GSAlign, MUMmer4, and Minimap2 In general, GSAlign, MUMmer4, and Minimap2 follow the conventional seed-chain-align procedure to align genome sequences However, the implementation details are very different from each other MUMmer4 combines the ideas of suffix arrays, the longest increasing subsequence (LIS) and Smith-Waterman alignment Minimap2 uses minimizers (k-mers) as seeds and identifies co-linear seeds as chains It applies a heuristic algorithm to cluster seeds into chains and it uses dynamic programming to closes between adjacent seeds GSAlign integrates the ideas of BWT arrays, PosDiff-based clustering and dynamic programming algorithm GSAlign divides the query sequence into multiple blocks and identifies LMEMs on each block simultaneously using multiple threads More importantly, GSAlign classifies normal pairs into three types and only Type III normal pairs require gapped alignment This divide-andconquer strategy not only reduces the number of fragment pairs requiring gapped alignment, but also shortens gap alignment sizes Furthermore, GSAlign can produce the alignments of normal pairs simultaneously with multi-threads Though MUMmer4 supports multithreads to align query sequences in parallel, the concurrency is restricted to the number of sequences in the query Results Experiment design GSAlign takes two genome sequences: one is the reference genome for creating the BWT index, and the other is the query genome for searching against the BWT array If the reference genome has been indexed beforehand, GSAlign can read the index directly After comparing the genome sequences, GSAlign outputs all local alignments in MAF format or BLAST-like format, a VCF file, and a dot-plot representation (optional) for each query sequence The correctness of sequence alignment is an important issue and variant detection is one of the major applications for genome sequence alignment Therefore, we estimate the correctness of sequence alignments by measuring the variant detection accuracy Though most of genome alignment tools not output variants, we can identify variants by linearly scanning the sequence alignments This measurement is sensitive to misalignments; thus we consider it is a fair measurement to estimate the performance of sequence alignment Lin and Hsu BMC Genomics (2020) 21:182 Page of 10 We randomly generate sequence variations with the frequency of 20,000 substitutions (SNVs), 350 small indels (1~10 bp), 100 large indels (11~20 bp) for every M base pairs To increase the genetic distance, we generate different frequencies of SNVs Benchmark datasets labelled with 1X contain around 20,000 SNVs for every M base pairs, whereas datasets labelled with 3X (or 5X) contain 60,000 (or 100,000) SNVs per million bases We generate three synthetic datasets with different SNV frequencies using the human genome (GRCh38) The synthetic datasets are referred to as simHG-1X, simHG3X, and simHG-5X, respectively To evaluate the performance of genome sequence alignment on real genomes, we download the diploid sequence of NA12878 genome and its reference variants (the sources are shown in Supplementary data) We also estimate the Average Sequence Identity (ASI) based on the total number of mismatches due to the sequence variants over the genome size For example, an SNV event produce one mismatch and an indel event of size n produces n mismatches Thus, the ASI of the four datasets are 97.93, 93.86, 89.90, and 99.84%, respectively The diploid sequence of NA12878 consists of 3,088, 156 single nucleotide variants (SNVs) and 531,315 indels The reference variants are generated from NGS data analysis Please note that GSAlign is a genome alignment tool, rather than a variant caller such as Freebayes or GATK HaplotypeCaller (GATK-HC) GSAlign identifies variants from genome sequence alignment, while Freebayes and GATK-HC identify variants from NGS short read alignments We use sequence variants to estimate the correctness of sequence alignment in this study Table shows the genome size, the variant numbers of SNV, small and large indels as well as the ASI of each benchmark dataset In this study, we compare the performance of GSAlign with several existing genome sequence aligners, including LAST (version 828), Minimap2 (2.17-r943-dirty), and MUMmer4 (version 4.0.0beta2) We exclude the others because they are either unavailable or developed for multiple sequence alignments, like Cactus [31], Mugsy [32], or MULTIZ [33] We exclude BLAT because it fails to produce alignments for larger sequence Table The synthetic datasets and the number of simulated sequence variations The Average Sequence Identity (ASI) is estimated by the total mismatches divided by the number of nucleobases Dataset Genome size SNV simHG-1X 3,088,279,342 58,421,383 Small indel large indel ASI 1,001,626 simHG-3X 3,088,292,247 175,100,939 962,721 285,757 97.93% 275,584 93.86% simHG-5X 3,088,289,999 291,714,646 919,762 263,271 89.90% NA12878 NA 99.84% 6,070,700,436 3,088,156 531,315 comparison; we exclude LASTZ because it does not support multi-thread Moreover, LASTZ fails to handle human genome alignment Measurement We define true positives (TP) as those variants which are correctly identified from the sequence alignment; false positives (FP) as those variants which are incorrectly identified; and false negatives as those true variants which are not identified A predicted SNV event is considered true if the genomic coordinate is exactly identical to the true event; a predicted indel event is considered true if the predicted coordinate is within 10 nucleobases of the corresponding true event The precision and recall are defined as follows: precision = TP / (TP + FP) and recall = TP / (TP + FN) To estimate the performance for existing methods, we filter out sequence alignments whose sequence identity are lower than a threshold (for Mummer4 and LAST) or those whose quality score are (for Minimap2) The argument setting used for each method is shown in the Table S5 (Supplementary data) We estimate the precision and recall on the identification of sequence variations for each dataset GSAlign, Minimap2, MUMmer4, and LAST can load premade reference indexes; therefore, we run these methods by feeding the premade reference indexes and they are running with threads Performance evaluation on synthetic datasets Table summarizes the performance result on the three synthetic datasets It is observed that GSAlign and Minimap2 have comparable performance on the benchmark dataset Both produce alignments that indicate sequence variations correctly MUMmer4 and LAST produce less reliable alignments than GSAlign and Minimap2 Though we have filtered out some of alignments based on sequence identity, their precisions and recalls are not as good as those of GSAlign and Minimap2 In particular, the precision of indel events of MUMmer4 and LAST are much lower on the dataset of simHG-5X It implies that the two methods are not designed for genome sequence alignments with less sequence similarity We also compare the total number of local alignments each method produces for the benchmark datasets It is observed that GSAlign produces the least number of local alignments, though it still covers most of the sequence variants For example, GSAlign produces 250 local alignments for simHG-1X, whereas the other three methods produce 417, 3111 and 1168 local alignments, respectively In terms of runtime, it can be observed that GSAlign spends the least amount of runtime on the three datasets Minimap2 is the second fastest method Though MUMmer4 is faster than LAST, it produces worse Lin and Hsu BMC Genomics (2020) 21:182 Page of 10 Table The performance evaluation on the three GRCh38 synthetic data sets The indexing time of each method is not included in the run time They are 110 (BWT-GSAlign), 129 (Suffix array-MUMmer4), and 2.6 (Minimizer-Minimap2), respectively Dataset SimHG-1X SimHG-3X SimHG-5X Method GSAlign SNV Indel precision recall precision recall 1.000 1.000 0.999 0.999 Local align# Run time (min) 250 11 Minimap2 1.000 0.996 0.999 0.995 417 39 MUMmer4 0.998 0.932 0.985 0.932 3111 869 LAST 1.000 0.992 0.992 0.947 1168 2524 GSAlign 1.000 0.998 0.994 0.997 366 18 Minimap2 1.000 0.996 0.991 0.995 561 37 MUMmer4 0.989 0.923 0.796 0.925 4925 289 LAST 1.000 0.990 0.809 0.950 1234 1185 GSAlign 1.000 0.993 0.958 0.992 587 24 Minimap2 1.000 0.995 0.952 0.994 1058 40 MUMmer4 0.986 0.907 0.486 0.912 5513 157 LAST 1.000 0.981 0.461 0.947 1636 458 performance than LAST We observe that LAST is not very efficient with multi-threading Though it runs with eight threads, it only uses single thread most of time during the sequence comparison Interestingly, GSAlign spends more time on less similar genome sequences (ex simHG-5X) because there are more gapped alignments, whereas MUMmer4 and LAST spends more time on more similar genome sequences (ex simHG-1X) because they handle more number of seeds Minimap2 spends similar amount of time on the three synthetic datasets because Minimap2 produces similar number of seeds for those datasets Note that it is possible to speed up the alignment procedure by optimizing the parameter settings for each method; however, it may complicate the comparison Performance evaluation on NA12878 The two sets of diploid sequence of NA12878 are aligned separately and the resulting VCF files are merged together for performance evaluation Because many indel events of NA12878 locate in tandem repeat regions, we consider a predicted indel is a true positive case if it locates at either end of the repeat region For example, the two following alignments produce identical alignment scores: AGCATGCATTG AGCATGCATTG AGCAT TG, and AG CATTG It can be observed that the two alignments produce different indel events In such case, both indel events are considered true positives if one of them is a true indel Table summaries the performance evaluation on the real dataset It is observed that GSAlign, Minimap2 and LAST produce comparable results on SNV and indel detection They have similar precisions and recalls However, their precisions and recalls are much worse than those on synthetic datasets It seems counter-intuitive since the synthetic datasets contain much more variants than NA12878 genomes Thus, we reconstruct the NA12878 genome sequence directly from the reference variants and call variants using GSAlign The precision and recall on SNV detection become 0.996 and 0.998 and those on indel detection become 0.994 and 0.983 It implies that the diploid genome sequence and the reference variants are not fully compatible Table The performance evaluation on HG38 and the diploid sequence of NA12878 The performance on SNV and Indel detection implies that the diploid genome sequence and the reference variants are not fully compatible Dataset Method SNV Precision NA12878 (Diploid) Indel Recall Precision Recall Run time (min) Memory usage (GB) GSAlign 0.832 0.969 0.759 0.767 14 Minimap2 0.830 0.970 0.754 0.768 65 23 MUMmer4 0.752 0.946 0.711 0.749 3898 57 LAST 0.832 0.969 0.760 0.764 1305 28 ... is an important issue and variant detection is one of the major applications for genome sequence alignment Therefore, we estimate the correctness of sequence alignments by measuring the variant... diploid genome sequence and the reference variants are not fully compatible Table The performance evaluation on HG38 and the diploid sequence of NA12878 The performance on SNV and Indel detection... sequences, GSAlign outputs all local alignments in MAF format or BLAST-like format, a VCF file, and a dot-plot representation (optional) for each query sequence The correctness of sequence alignment