Article ID: | iaor1997135 |
Country: | United States |
Volume: | 11 |
Issue: | 2 |
Start Page Number: | 117 |
End Page Number: | 124 |
Publication Date: | Apr 1995 |
Journal: | Computer Applications in the Biosciences |
Authors: | Xu Y., Mural R.J., Uberbacher E.C. |
Keywords: | programming: dynamic |
This paper presents an algorithm for detecting and ‘correcting’ sequencing errors that occur in DNA coding legions. The types of sequencing errors addressed are insertions and deletions (indels) of DNA bases. The goal is to provide a capability which makes single- pass or low-redundancy sequence data more informative, reducing the need for high-redundancy sequencing for gene identification and characterization purposes. This would permit improved sequencing efficiency and reduce genome sequencing casts. The algorithm detects sequencing errors by discovering changes in the statistically preferred reading frame within a putative coding region and then inserts a number of ‘neural’ bases at a perceived reading frame transition point to make the putative exon candidate frame consistent. The authors have implemented the algorithm as a front-end subsystem of the GRAIL DNA sequence analysis system to construct a version which is very error tolerant and also intend to use this as a testbed for further development of sequencing error-correction technology. Preliminary test results have shown the usefulness of this algorithm and also exhibited some of its weakness, providing possible directions for further improvement. On a test set consisting of 68 human DNA sequences with 1% randomly generated indels in coding regions, the algorithm detected and corrected 76% of the indels. The average distance between the position of an indel and the predicted one was 9.4 bases. With this subsystem in place, GRAIL correctly predicted 89% of the coding messages with 10% false message on the ‘corrected’ sequences, compared to 69% correctly predicted coding messages and 11% falsely predicted messages on the ‘corrupted’ sequence using standard GRAIL II method (version 1.2). The method uses a dynamic programming algorithm, and runs in time and space linear to the size of the input sequence.