BACKGROUND
the ability to identify single nucleotide changes in dna is a fundamental requirement in many fields of biological research.
the identification and characterisation of naturally-occurring single nucleotide polymorphisms  underlies a vast body of work on genetically-linked disorders, diagnosis and risk prediction  <cit>  as well as being important in genomic mapping and population genetics  <cit> .
identification of point mutations is of equal importance to many researchers, for roles as diverse as identifying specific alterations caused by random mutagenesis screens  <cit>  to validation of the fidelity of sequences amplified by pcr.
for labs studying snps or point mutations, identification of these can be a time-consuming and error-prone process, particularly if novel changes are being investigated.
in some cases, software such as the staden package  <cit>  or sequencher  <cit>  may provide a suitable solution.
however these are sophisticated and multifunctional programs, and can prove overly complex for simple sequence comparisons.
consequently, many small-scale projects may rely solely on manual analysis, for example simply carrying out a direct text comparison of the processed sequence to a known reference.
this manual approach is affected by variations in sequence quality and incorrect base calling, and may also miss heterozygous bases if, for example, the wild-type peak is higher that the additional peak.
to address these issues and to provide a simple and efficient way to accurately identify sequence changes, we have developed a web-based application which compares dna sequence chromatograms directly.
seqdoc  is freely accessible, very easy to use, and highlights differences characteristic of single base changes, including heterozygous snps and insertions and deletions.
implementation
read in chromatograms
two abi sequence chromatograms, one a reference and the other the test sequence, are the only user-supplied data.
these are uploaded through a web form and the sequence traces and other relevant data extracted using the perl abi.pm module  <cit> .
the sequence traces for each channel  are stored as individual arrays within the chromatogram object.
blank sequence at the beginning and end of each chromatogram  are removed by deleting the terminal values from the traces where all channel values are less than  <dig>  in tests, we established that a filter value of as low as five resulted in the removal most blank terminal sequence, while a value of as high as  <dig> still retained virtually all genuine sequence; we therefore used  <dig> as an appropriate intermediate value.
normalize traces
comparison of the test to the reference sequence is performed by subtraction of trace values, so it is necessary to normalize the trace values so that a sequence run with strong signal can be meaningfully compared to one with weaker signal.
normalisation is performed for each channel individually, and scales each data point so that the local mean value for that channel is  <dig> .
the mean value of those local points for the channel is calculated and divided by  <dig> to give a scaling factor, and the point being normalized is then scaled by being divided by this factor.
special exceptions are made for the initial  <dig> and final  <dig> values of the trace, where there are either not  <dig> values before, or not  <dig> after, the point being normalized.
for these two cases, the mean is based on as many points as are present between the point and the end of the sequence on one side, while still using  <dig> on the other side.
align traces
due to variations arising both from the sample and the sequencing matrix, the start position of the sequence traces and the base separation within the traces may differ between the test and the reference sample.
the software compensates for this by automatically calculating the optimal start alignment combined with continual fine adjustment throughout the length of the sequences to maintain alignment of the test and reference sample.
to identify start point offsets, the software tests a range of initial alignments, from - <dig> to + <dig> data points, corresponding to approximately +/-  <dig> bases of sequence.
the offset which results in the best alignment  is used for subsequent analysis.
this is implemented by the addition or deletion of 'spacer' data points at the beginning of the test sequence.
ongoing fine adjustment of the sequences is achieved by the addition or removal of individual data points from the test sequence as required.
the sequences are sampled every five data points, and difference scores calculated for the subsequent  <dig> data points.
if that difference score is reduced by the insertion or deletion of a single data point, then the test traces are adjusted accordingly .
calculate differences
following normalisation and alignment of the sequences, a 'difference profile' is calculated.
the trace values of the test sequence are subtracted from the equivalent values for the reference sequence for all four channels, and the resulting values are passed through an algorithm which highlights changes characteristic of base substitutions, while reducing random noise.
this is achieved by squaring the difference value and multiplying the result by the square root of the sum of the differences of other channels which change in the opposite direction.
the overall outcome of this process is to enhance the signal given by large differences with at least one channel changing in the opposite direction, which is characteristic of base substitutions, while minimising the signal from small unidirectional changes .
difference profiles are calculated for all four channels and the results overlaid in the final output.
generate trace and difference images
user output is provided in the form of three aligned images: aligned sequence chromatograms for the reference and test sequences, and a similarly aligned difference profile.
these outputs are based on the normalized, aligned traces generated during earlier stages of the analysis.
the difference trace is typically primarily flat, with a large bidirectional peak at the point of any base changes between the sequence.
other patterns are possible, depending on specific features of the test and reference sequences, and are discussed in more detail below.
the three images are generated by the perl gd::graph module, and are returned to the user as a web page.
identification of the site of base substitutions is simply a matter of examining the difference trace for the bidirectional peaks mentioned above; by examining the aligned test and reference sequences at the point of these peaks, single base changes between the two sequences can be rapidly and simply identified.
staden comparison
the staden  <dig> .
<dig> windows installer was downloaded from sourceforge and installed on a pc running windows xp pro.
tracediff comparison was performed through pregap <dig> using the following modules in order: general configuration, initialise experiment files, reference traces & sequences, trace difference.
all user-definable parameters were left at their default values .
we used gap <dig> to both align and view the initial and tracediff-generated traces as well as to carry out trace subtraction directly.
the reference and test sequences  were assembled into a contig, which was opened in the trace display window.
a subtracted trace was generated using the diff button.
RESULTS
all scaling factors, cutoff filters and algorithms described in the methods section were chosen after testing of multiple settings as giving the clearest identification of single base changes and best retention of genuine data while minimising the signal resulting from noise.
the process was initially optimised using sequences covering known polymorphisms in different regions of the human melanocortin  <dig> receptor gene  <cit> .
in all cases the polymorphisms were clearly visible in the difference trace.
the software has since been successfully used to test for single base changes in several hundred sequence chromatograms.
extracts from typical output traces are shown in figures  <dig> and  <dig>  which identify homozygous and heterozygous polymorphisms respectively.
the difference trace does not differentiate between these two different substitutions .
instead it makes it rapidly obvious to an investigator where the sites of difference are, and allows the investigator to make the final decision about the nature of the substitution.
seqdoc is also able to highlight the occurrence of single base insertion or deletion events.
figure  <dig> shows the typical pattern from a deletion; at the point of the deletion, there is a major difference between the two chromatograms, which is gradually eliminated by the alignment algorithm bringing the two chromatograms back into phase.
insertion events give similar patterns.
as with substitutions, no interpretation of the pattern is calculated; the role of the software is to alert the investigator to the location of the change, not to characterise it.
the automatic start alignment process means that it should not be necessary to use the same primer to sequence the reference and test sequences, providing that the two different primers produce sequences which start within approximately  <dig> nucleotides of each other.
alternatively, it would be possible to manually edit the raw chromatograms to bring the start points of the two sequences into approximate alignment.
we do not believe that the comparison will work for samples sequenced in opposite directions, using the reverse complement of one or the other.
sequencing chemistry is such that peak heights are typically affected by the local sequence composition  <cit> , and while this is consistent for samples sequenced in the same direction from different primers, it is not true for those sequenced in opposite direction.
because of the normalisation and noise reduction algorithms built into the software, it is relatively resilient to poor quality sequence.
typically, if the sequence quality is sufficient for an investigator to unambiguously identify the base call, it is good enough for automatic identification of sequence differences.
most problems with sequence quality only occur at the end of the sequence run, although unincorporated dye terminators may cause 'dye blobs' at the beginning of the sequence, which can partially mask base changes occurring at the same site.
examples of the output produced in these cases, along with full instructions on the use of seqdoc, are provided on our website at .
the staden software package  <cit>  is an established, well-supported and widely used sequence analysis package, and has functions  for direct comparison of chromatogram traces analogous to those provided by seqdoc.
it can also display trace subtractions through the gap <dig> program.
we have therefore evaluated the performance of seqdoc using staden as a benchmark.
although the principle advantage of seqdoc over staden is that it is specifically designed and optimized for the single purpose of chromatogram comparison, and therefore provides a much simpler user interface, we also believe that it offers advantages in normalisation, alignment and, particularly, sensitivity.
on the other hand, staden can allow much higher throughput, since multiple sequences can be analysed at once; data can also be saved and analysed in detail with multiple additional functions.
the main functional benefit of using seqdoc over staden is that of sensitivity, particularly for identifying heterozygous peaks or when using either weak or poor quality sequence.
the heterozygous base shown in figure  <dig> is identified by tracediff, but the output suggests that it is a direct replacement rather than a mixed base, while another  is missed by tracediff altogether.
the latter example occurs in a weak strength trace, which is compensated for by the seqdoc normalisation.
similarly tracediff can miss differences in noisy sequence; seqdoc is more robust, because calls are made by visual inspection and the difference profile is used only to draw the investigator's attention to areas of difference.
for example, figure  <dig> shows a comparison using poor quality reference sequence data.
although the difference trace is consequently noisy, it still highlights a heterozygous substitution in the test sequence.
in summary, seqdoc proves a lightweight but effective substitute to staden for sequence trace comparisons.
while staden is a more appropriate choice for applications where high throughput is the main priority, seqdoc provides a better solution when sensitivity, specificity or simplicity are more important considerations.
CONCLUSIONS
seqdoc is a very easy to use web-based application which rapidly highlights differences between abi sequence chromatograms, including substitution and insertion/deletion events.
it uses chromatograms directly, rather than extracted text-based sequence data, so eliminating errors introduced by base calling software and allowing identification of heterozygous substitutions which might otherwise be missed.
no user intervention or adjustment is required for processing, with all normalisation, alignment and noise reduction being carried out automatically; on the other hand the ultimate decision on the specific change identified remains with the investigator.
seqdoc is free and requires no training to use, and is ideally suited for use by researchers carrying out small scale snp analysis or mutagenesis experiments.
it can also be used to rapidly screen pcr-amplified products for introduced mutations.
availability and requirements
program name: seqdoc
project home page:
source code:  or additional file  <dig>
operating system: platform independent
programming language: perl cgi
other requirements: requires perl cgi, gd::graph and abi modules
license: none for web access, gnu gpl for source code
any restrictions to use by non-academics: no restrictions
supplementary material
additional file 1
the perl source code for seqdoc  is available with the online version of this article .
instructions for use of the program can be obtained using the 'perldoc' command.
click here for file
acknowledgements
this work was supported by the australian research council special research centre for functional and applied genomics.
we thank dr r.a. sturm for his initial conceptual suggestions, w. chen for providing test data and dr s.m.
grimmond for reviewing this article.
figures and tables

 the ability to identify single nucleotide changes in dna is a fundamental requirement in many fields of biological research. the identification and characterisation of naturally-occurring single nucleotide polymorphisms underlies a vast body of work on genetically-linked disorders, diagnosis and risk prediction as well as being important in genomic mapping and population genetics. identification of point mutations is of equal importance to many researchers, for roles as diverse as identifying specific alterations caused by random mutagenesis screens to validation of the fidelity of sequences amplified by pcr. for labs studying snps or point mutations, identification of these can be a time-consuming and error-prone process, particularly if novel changes are being investigated. in some cases, software such as the staden package or sequencher may provide a suitable solution. however these are sophisticated and multifunctional programs, and can prove overly complex for simple sequence comparisons. consequently, many small-scale projects may rely solely on manual analysis, for example simply carrying out a direct text comparison of the processed sequence to a known reference. this manual approach is affected by variations in sequence quality and incorrect base calling, and may also miss heterozygous bases if, for example, the wild-type peak is higher that the additional peak. to address these issues and to provide a simple and efficient way to accurately identify sequence changes, we have developed a web-based application which compares dna sequence chromatograms directly. seqdoc is freely accessible, very easy to use, and highlights differences characteristic of single base changes, including heterozygous snps and insertions and deletions. implementation read in chromatograms two abi sequence chromatograms, one a reference and the other the test sequence, are the only user-supplied data. these are uploaded through a web form and the sequence traces and other relevant data extracted using the perl abi.pm module. the sequence traces for each channel are stored as individual arrays within the chromatogram object. blank sequence at the beginning and end of each chromatogram are removed by deleting the terminal values from the traces where all channel values are less than in tests, we established that a filter value of as low as five resulted in the removal most blank terminal sequence, while a value of as high as still retained virtually all genuine sequence; we therefore used as an appropriate intermediate value. normalize traces comparison of the test to the reference sequence is performed by subtraction of trace values, so it is necessary to normalize the trace values so that a sequence run with strong signal can be meaningfully compared to one with weaker signal. normalisation is performed for each channel individually, and scales each data point so that the local mean value for that channel is. the mean value of those local points for the channel is calculated and divided by to give a scaling factor, and the point being normalized is then scaled by being divided by this factor. special exceptions are made for the initial and final values of the trace, where there are either not values before, or not after, the point being normalized. for these two cases, the mean is based on as many points as are present between the point and the end of the sequence on one side, while still using on the other side. align traces due to variations arising both from the sample and the sequencing matrix, the start position of the sequence traces and the base separation within the traces may differ between the test and the reference sample. the software compensates for this by automatically calculating the optimal start alignment combined with continual fine adjustment throughout the length of the sequences to maintain alignment of the test and reference sample. to identify start point offsets, the software tests a range of initial alignments, from - to + data points, corresponding to approximately +/- bases of sequence. the offset which results in the best alignment is used for subsequent analysis. this is implemented by the addition or deletion of'spacer' data points at the beginning of the test sequence. ongoing fine adjustment of the sequences is achieved by the addition or removal of individual data points from the test sequence as required. the sequences are sampled every five data points, and difference scores calculated for the subsequent data points. if that difference score is reduced by the insertion or deletion of a single data point, then the test traces are adjusted accordingly. calculate differences following normalisation and alignment of the sequences, a'difference profile' is calculated. the trace values of the test sequence are subtracted from the equivalent values for the reference sequence for all four channels, and the resulting values are passed through an algorithm which highlights changes characteristic of base substitutions, while reducing random noise. this is achieved by squaring the difference value and multiplying the result by the square root of the sum of the differences of other channels which change in the opposite direction. the overall outcome of this process is to enhance the signal given by large differences with at least one channel changing in the opposite direction, which is characteristic of base substitutions, while minimising the signal from small unidirectional changes. difference profiles are calculated for all four channels and the results overlaid in the final output. generate trace and difference images user output is provided in the form of three aligned images: aligned sequence chromatograms for the reference and test sequences, and a similarly aligned difference profile. these outputs are based on the normalized, aligned traces generated during earlier stages of the analysis. the difference trace is typically primarily flat, with a large bidirectional peak at the point of any base changes between the sequence. other patterns are possible, depending on specific features of the test and reference sequences, and are discussed in more detail below. the three images are generated by the perl gd::graph module, and are returned to the user as a web page. identification of the site of base substitutions is simply a matter of examining the difference trace for the bidirectional peaks mentioned above; by examining the aligned test and reference sequences at the point of these peaks, single base changes between the two sequences can be rapidly and simply identified. staden comparison the staden. windows installer was downloaded from sourceforge and installed on a pc running windows xp pro. tracediff comparison was performed through pregap using the following modules in order: general configuration, initialise experiment files, reference traces & sequences, trace difference. all user-definable parameters were left at their default values. we used gap to both align and view the initial and tracediff-generated traces as well as to carry out trace subtraction directly. the reference and test sequences were assembled into a contig, which was opened in the trace display window. a subtracted trace was generated using the diff button.  all scaling factors, cutoff filters and algorithms described in the methods section were chosen after testing of multiple settings as giving the clearest identification of single base changes and best retention of genuine data while minimising the signal resulting from noise. the process was initially optimised using sequences covering known polymorphisms in different regions of the human melanocortin receptor gene. in all cases the polymorphisms were clearly visible in the difference trace. the software has since been successfully used to test for single base changes in several hundred sequence chromatograms. extracts from typical output traces are shown in figures and which identify homozygous and heterozygous polymorphisms respectively. the difference trace does not differentiate between these two different substitutions. instead it makes it rapidly obvious to an investigator where the sites of difference are, and allows the investigator to make the final decision about the nature of the substitution. seqdoc is also able to highlight the occurrence of single base insertion or deletion events. figure shows the typical pattern from a deletion; at the point of the deletion, there is a major difference between the two chromatograms, which is gradually eliminated by the alignment algorithm bringing the two chromatograms back into phase. insertion events give similar patterns. as with substitutions, no interpretation of the pattern is calculated; the role of the software is to alert the investigator to the location of the change, not to characterise it. the automatic start alignment process means that it should not be necessary to use the same primer to sequence the reference and test sequences, providing that the two different primers produce sequences which start within approximately nucleotides of each other. alternatively, it would be possible to manually edit the raw chromatograms to bring the start points of the two sequences into approximate alignment. we do not believe that the comparison will work for samples sequenced in opposite directions, using the reverse complement of one or the other. sequencing chemistry is such that peak heights are typically affected by the local sequence composition, and while this is consistent for samples sequenced in the same direction from different primers, it is not true for those sequenced in opposite direction. because of the normalisation and noise reduction algorithms built into the software, it is relatively resilient to poor quality sequence. typically, if the sequence quality is sufficient for an investigator to unambiguously identify the base call, it is good enough for automatic identification of sequence differences. most problems with sequence quality only occur at the end of the sequence run, although unincorporated dye terminators may cause'dye blobs' at the beginning of the sequence, which can partially mask base changes occurring at the same site. examples of the output produced in these cases, along with full instructions on the use of seqdoc, are provided on our website at. the staden software package is an established, well-supported and widely used sequence analysis package, and has functions for direct comparison of chromatogram traces analogous to those provided by seqdoc. it can also display trace subtractions through the gap program. we have therefore evaluated the performance of seqdoc using staden as a benchmark. although the principle advantage of seqdoc over staden is that it is specifically designed and optimized for the single purpose of chromatogram comparison, and therefore provides a much simpler user interface, we also believe that it offers advantages in normalisation, alignment and, particularly, sensitivity. on the other hand, staden can allow much higher throughput, since multiple sequences can be analysed at once; data can also be saved and analysed in detail with multiple additional functions. the main functional benefit of using seqdoc over staden is that of sensitivity, particularly for identifying heterozygous peaks or when using either weak or poor quality sequence. the heterozygous base shown in figure is identified by tracediff, but the output suggests that it is a direct replacement rather than a mixed base, while another is missed by tracediff altogether. the latter example occurs in a weak strength trace, which is compensated for by the seqdoc normalisation. similarly tracediff can miss differences in noisy sequence; seqdoc is more robust, because calls are made by visual inspection and the difference profile is used only to draw the investigator's attention to areas of difference. for example, figure shows a comparison using poor quality reference sequence data. although the difference trace is consequently noisy, it still highlights a heterozygous substitution in the test sequence. in summary, seqdoc proves a lightweight but effective substitute to staden for sequence trace comparisons. while staden is a more appropriate choice for applications where high throughput is the main priority, seqdoc provides a better solution when sensitivity, specificity or simplicity are more important considerations.  seqdoc is a very easy to use web-based application which rapidly highlights differences between abi sequence chromatograms, including substitution and insertion/deletion events. it uses chromatograms directly, rather than extracted text-based sequence data, so eliminating errors introduced by base calling software and allowing identification of heterozygous substitutions which might otherwise be missed. no user intervention or adjustment is required for processing, with all normalisation, alignment and noise reduction being carried out automatically; on the other hand the ultimate decision on the specific change identified remains with the investigator. seqdoc is free and requires no training to use, and is ideally suited for use by researchers carrying out small scale snp analysis or mutagenesis experiments. it can also be used to rapidly screen pcr-amplified products for introduced mutations. availability and requirements program name: seqdoc project home page: source code: or additional file operating system: platform independent programming language: perl cgi other requirements: requires perl cgi, gd::graph and abi modules license: none for web access, gnu gpl for source code any restrictions to use by non-academics: no restrictions supplementary material additional file 1 the perl source code for seqdoc is available with the online version of this article. instructions for use of the program can be obtained using the'perldoc' command. click here for file acknowledgements this work was supported by the australian research council special research centre for functional and applied genomics. we thank dr r.a. sturm for his initial conceptual suggestions, w. chen for providing test data and dr s.m. grimmond for reviewing this article. figures and tables
differences are highlighted, not interpreted, allowing the investigator to make the ultimate decision on the nature of the change. this paper describes seqdoc, a simple, web-based tool to carry out direct comparison of abi sequence chromatograms. homozygous and heterozygous substitutions and insertion/deletion events are all readily identified. seqdoc produces a subtracted trace showing differences between a reference and test chromatogram, and is optimised to emphasise those characteristic of single base changes. the use of direct comparison of the sequence chromatograms means that artefacts introduced by automatic base-calling software are avoided. this allows the rapid identification of single nucleotide polymorphisms and point mutations without the need to install or learn more complicated analysis software.
 this paper describes seqdoc, a simple, web-based tool to carry out direct comparison of abi sequence chromatograms. this allows the rapid identification of single nucleotide polymorphisms and point mutations without the need to install or learn more complicated analysis software.  seqdoc produces a subtracted trace showing differences between a reference and test chromatogram, and is optimised to emphasise those characteristic of single base changes. it automatically aligns sequences, and produces straightforward graphical output. the use of direct comparison of the sequence chromatograms means that artefacts introduced by automatic base-calling software are avoided. homozygous and heterozygous substitutions and insertion/deletion events are all readily identified. seqdoc successfully highlights nucleotide changes missed by the staden package'tracediff' program.  seqdoc is ideal for small-scale snp identification, for identification of changes in random mutagenesis screens, and for verification of pcr amplification fidelity. differences are highlighted, not interpreted, allowing the investigator to make the ultimate decision on the nature of the change. 