BACKGROUND
new high-throughput sequencing technologies have arisen over the last decade that produce very large numbers of small sequencing reads , making possible the rapid and inexpensive sequencing and resequencing of genomes  <cit> .
despite the excitement generated by these new technologies, they also present substantial challenges that include sequence assembly of millions of short-read fragments  for de novo sequencing applications  <cit> , and the rapid and accurate mapping of short sequence reads to genomic locations for resequencing  <cit> .
regardless of the application, one major concern is the ability to effectively characterize the reliabilities of dna sequence reads deriving from "next-generation" platforms that rely on novel sequencing chemistries such as solexa's reversible dye-labeled terminator approach.
furthermore, these platforms have abandoned the electrophoresis-based approaches of traditional sanger sequencing; instead, dna sequence data is collected in real-time from novel sequencing substrates.
development of quality-control tools for these next-generation dna sequencing technologies is critical for their effective and accurate application to biological questions.
illumina's solexa sequencing approach consists of a process whereby dna samples are nebulized to small pieces , then ligated to adapters that bind to linker molecules on the surface of a flow cell where amplified dna clusters are ultimately sequenced in real-time using solexa's reversible dye terminator approach  <cit> .
each flow cell contains eight lanes onto which dna molecules from distinct samples can be independently sequenced.
each lane is subdivided into hundreds of tiles  – four images are collected from each tile  per sequencing cycle.
these tile images constitute the raw data from which dna sequence information is ultimately derived.
illumina provides a standard front-end analysis pipeline for solexa data where image analysis is carried out by firecrest and base calls are made by bustard.
in making a base call, bustard assigns a quality score  to each of the  <dig> potential nucleotides.
these solexa quality scores range from - <dig> to  <dig>  they are not equal to phred quality scores, but are asymptotically identical  <cit> .
assuming no ambiguity, the nucleotide with the highest q-score is called.
in an ideal call, there is one + <dig> and three - <dig> s. the aggregate quality score  for a base call is the maximum q-score minus the sum of the remaining three q-scores.
after firecrest and bustard, eland provides alignments of individual solexa sequence reads to a user-defined reference genome.
eland subdivides all sequence reads into eight categories: those where sequences align to unique genomic regions with  <dig>   <dig> or  <dig> mismatches , those where sequences align to repetitive regions with  <dig>   <dig> or  <dig> mismatches , those where there are three or more mismatches to the reference genome which is defined as the "no match"  category, and those containing two or more bases that were unable to be called .
here we provide an openly available software program, tileqc, for quality control of solexa output.
tileqc relies on the r programming environment and a mysql database server configured for use by the tileqc program.
minor changes in the initialization script allow almost any sql server to be used.
initial configuration is minimal but flexible enough that a gamut of security options is possible.
tileqc features both qualitative and quantitative error detection.
the qualitatively oriented functions display the locations of reads on a tile as dots in a square.
the read's color and size are coded using eland categorizations and/or the qag-score data derived from bustard.
the eland-coded images represent the data after all other processing has occurred and reveal irregularities arising during any stage of the processing pipeline.
qag-score coded images, on the other hand, are produced from the bustard output and not only produce a greater range of values than the eland categorizations, but also have greater resolution, allowing the solexa output to be analyzed down to the level of individual read cycles.
this increased flexibility may obscure errors that are obvious at the eland level.
however, once an error is detected, the qag-score coding allows for a more accurate assessment of that detected error's underlying cause and/or location.
the guiding philosophy behind tileqc's qualitative error assessment features is that the researcher's visual pattern recognition is the best way to detect novel errors.
once a new type of error is identified the data extraction features of the program may then be used as a starting point for the programmatic detection and filtration of similar errors.
implementation
the current version  runs on windows, linux, and macintosh operating systems, and requires the programming environment r  and a properly configured mysql server .
the package 'rmysql' must also be installed within the r environment.
.
the r software is available for download  <cit>  as is the 'rmysql' package .
the database server mysql is also available for free download  <cit> .
the tileqc system was implemented using the r language: source code, installation instructions and tutorials are available at the tileqc website  <cit> .
in order to convert text-files into database form  the utilities sed, tr, grep, and wc must also be installed.
these programs are part of the standard installation on most flavors of unix .
for the win <dig> platform all the necessary programs are included in gnu utilities for win <dig> available at  <cit> .
RESULTS
throughout this section all solexa data used in examples was generated from several of our caenorhabditis elegans genomic dna runs  on an illumina genome analyzer.
all c. elegans data were subject to the standard solexa data analysis pipeline prior to application of tileqc tools.
the first role of tileqc is to facilitate the conversion of text based solexa pipeline output to a more flexible sql database format .
if a compatible database does not already exist, tileqc will  create one.
creating a database requires that both the sql server and the tileqc program be properly configured .
once the eland and qag-score data is in database form the full power of both sql and r may be brought to bear upon the analysis of that data.
encapsulating the database connection within an r object enables the mundane details to be managed invisibly and frees the researcher to focus on the analysis of the data rather than the mechanics of accessing and manipulating that data.
although supplementary to the package's primary purpose of tile-based quality control , this feature is useful in its own right, and simplifies the mechanics of querying a database containing solexa data.
the standard sql query language is enhanced by the inclusion of a simple form of expression substitution.
here, for example, we see the extraction of five reads covering the location  <dig>  in chromosome i of the c. elegans genome :
> celegans$runsql
seq type locus muta mutb
<dig> aattttttgaatttgctcgccgcatttcgactttct u <dig>  <dig> 23a 28t
<dig> tgaatttgctcgccgaatttcgactttcttacaatt u <dig>  <dig> 21t 30g
<dig> gaatttgctcgccgaatttcgactttctgacaattt u <dig>  <dig> 20t
<dig> gaatttgctcgccgaatttcgcctttctgacacttg u <dig>  <dig> 20t 22a
<dig> gaatttgctcgccgaatttcgactttcttacaattt u <dig>  <dig> 20t 29g
the primary purpose of the package is, of course, tile-based quality control.
often there are patterns in the errors generated during the solexa sequencing process that become visible when the physical locations of a tile's reads are plotted in colors and sizes that depend upon the category to which they have been assigned by eland.
for this purpose, the tileqc package contains functions that are optimized to create such qualitative displays.
the visual representation appears on the left and a relative frequency histogram of the number of reads in each eland category for that tile appears to the right.
the researcher may select which categories of read are to be displayed, and even filter the unique reads based upon whether they match the forward strand, the reverse strand, or either.
the homogeneity of the solexa process ensures that, when the machine is functioning properly, the relative frequencies are similar from tile to tile and distributed uniformly across each tile.
major discrepancies in these conditions are immediately discerned by sight.
many such discrepancies are small and their effects are limited to one, or  a few, tiles.
figure  <dig> contains examples of three such situations.
often these aberrations have obvious causes such as bubbles in the reagents.
however some, such as the rectangle in figure 1a, remain mysterious.
detection of aberrant tiles is particularly important for researchers doing single nucleotide polymorphism  detection as a single tile with an increased error rate may yield a variety of false positives.
tile-plots using qag-score data allow for a more in depth analysis of the data and a better identification of an error's source, but one must be cautious – many types of errors that are clear from the eland perspective may be difficult to discern from the qag-score perspective.
sometimes, this can be alleviated by knowing the proper way to transform the qag-score data into intensity data.
any desired function may be applied to a read's set of qag-scores and the output of that function is normalized and transformed into an intensity value for the dot corresponding to that read.
an example of this process can be seen in figure  <dig> where we see three views of the same tile.
the first, figure 2a, uses eland encoding, whereas figures 2b and 2c use two distinct qag-score encodings.
in figure 2b we see the results of applying the function mean across the first 32-cycles of a read.
the error detected through eland categorization is invisible in this image, but once again is easily detectable in figure 2c where the minimum of the  <dig> inter-read qag-scores are being plotted.
the source of the error becomes apparent in figure 2d – a cycleplot displaying the mean qag-score for the first  <dig> cycles of the aberrant tile.
we see from this graph, that the problem arises during cycle  <dig>  and figure  <dig>  showing the minimum qag-scores for a variety of cycles, confirms this interpretation.
from this example, one might be tempted to assume that any tile with a cycle whose mean qag-score drops below a certain value is to be discarded, but it is possible for a non-aberrant tile to have mean qag-scores this low .
the visual pattern recognition of a researcher may also discern more subtle and global biases that escape simple numeric detection as in figures  <dig>   <dig>   <dig>   <dig> where we see problematic reads occurring more frequently on the boundary of tiles, or in figure  <dig> where a consistent increase in error rate is associated with reads from the upper left corner of a tile.
once such errors are known to occur, more sophisticated statistical techniques may be used to detect and remove the resulting biases, or at the very least to filter out the offending data.
despite the power of the human visual system, some patterns of error that occur over an entire lane of solexa data may not be apparent from direct observation of the 200– <dig> qc plots associated with that lane.
however, some of these global biases are revealed when summarizing statistics are extracted for each tile and plotted in a single graph.
in figure  <dig> the blue dots correspond to the total number of perfect matches in each tile.
the tiles within each lane are arranged as two vertical strips.
in figure  <dig>  the left strip contains tiles 1– <dig> .
the right strip contains tiles 101– <dig>  but this time  <dig> is at the bottom and  <dig> at the top.
the droop in the graph is indicative of an error rate that increased as the machine worked its way from the top of the lane to bottom.
aberrant tiles may also become visible from this perspective – in this same figure a tile with a particularly low number of unique matches was identified , and the graph of that tile's eland categorized reads was superimposed upon a blank section of the summarization graph to illustrate how a bubbled tile may be detected in a summarization graph.
we are presently working to improve the summary statistics features of tileqc and anticipate more advanced summary reports in future versions of this software.
CONCLUSIONS
the tileqc system offers a versatile and powerful tool for the quality control of solexa-based dna sequence data.
future challenges include the development of an interface that unifies the task of summarization with that of quantitative testing.
this short-term goal  will lead to a plug-in style of summarization and analysis that will allow researchers to flexibly encapsulate any desired post-processing or data extraction within a shareable r object.
mid-range goals include an interactive graphical interface for more convenient data exploration as well as a freely available library of analytic modules.
availability and requirements
the tileqc system is freely available from  <cit> .
it requires r , the r package 'rmysql' and mysql .
in order to convert solexa output from text to database form it requires the solexa pipeline  output files of the form '_prb.txt' and '_eland_result.txt' as well as the utilities wc, grep, tr, and sed.
abbreviations
the abbreviations are qag-score: aggregate quality score; snp: single nucleotide polymorphism.
authors' contributions
pcd contributed to writing the manuscript and developed the software.
drd contributed to writing the manuscript.
both authors have read and approved the final manuscript.

 new high-throughput sequencing technologies have arisen over the last decade that produce very large numbers of small sequencing reads, making possible the rapid and inexpensive sequencing and resequencing of genomes. despite the excitement generated by these new technologies, they also present substantial challenges that include sequence assembly of millions of short-read fragments for de novo sequencing applications, and the rapid and accurate mapping of short sequence reads to genomic locations for resequencing. regardless of the application, one major concern is the ability to effectively characterize the reliabilities of dna sequence reads deriving from "next-generation" platforms that rely on novel sequencing chemistries such as solexa's reversible dye-labeled terminator approach. furthermore, these platforms have abandoned the electrophoresis-based approaches of traditional sanger sequencing; instead, dna sequence data is collected in real-time from novel sequencing substrates. development of quality-control tools for these next-generation dna sequencing technologies is critical for their effective and accurate application to biological questions. illumina's solexa sequencing approach consists of a process whereby dna samples are nebulized to small pieces, then ligated to adapters that bind to linker molecules on the surface of a flow cell where amplified dna clusters are ultimately sequenced in real-time using solexa's reversible dye terminator approach. each flow cell contains eight lanes onto which dna molecules from distinct samples can be independently sequenced. each lane is subdivided into hundreds of tiles – four images are collected from each tile per sequencing cycle. these tile images constitute the raw data from which dna sequence information is ultimately derived. illumina provides a standard front-end analysis pipeline for solexa data where image analysis is carried out by firecrest and base calls are made by bustard. in making a base call, bustard assigns a quality score to each of the potential nucleotides. these solexa quality scores range from - to they are not equal to phred quality scores, but are asymptotically identical. assuming no ambiguity, the nucleotide with the highest q-score is called. in an ideal call, there is one + and three - s. the aggregate quality score for a base call is the maximum q-score minus the sum of the remaining three q-scores. after firecrest and bustard, eland provides alignments of individual solexa sequence reads to a user-defined reference genome. eland subdivides all sequence reads into eight categories: those where sequences align to unique genomic regions with or mismatches, those where sequences align to repetitive regions with or mismatches, those where there are three or more mismatches to the reference genome which is defined as the "no match" category, and those containing two or more bases that were unable to be called. here we provide an openly available software program, tileqc, for quality control of solexa output. tileqc relies on the r programming environment and a mysql database server configured for use by the tileqc program. minor changes in the initialization script allow almost any sql server to be used. initial configuration is minimal but flexible enough that a gamut of security options is possible. tileqc features both qualitative and quantitative error detection. the qualitatively oriented functions display the locations of reads on a tile as dots in a square. the read's color and size are coded using eland categorizations and/or the qag-score data derived from bustard. the eland-coded images represent the data after all other processing has occurred and reveal irregularities arising during any stage of the processing pipeline. qag-score coded images, on the other hand, are produced from the bustard output and not only produce a greater range of values than the eland categorizations, but also have greater resolution, allowing the solexa output to be analyzed down to the level of individual read cycles. this increased flexibility may obscure errors that are obvious at the eland level. however, once an error is detected, the qag-score coding allows for a more accurate assessment of that detected error's underlying cause and/or location. the guiding philosophy behind tileqc's qualitative error assessment features is that the researcher's visual pattern recognition is the best way to detect novel errors. once a new type of error is identified the data extraction features of the program may then be used as a starting point for the programmatic detection and filtration of similar errors. implementation the current version runs on windows, linux, and macintosh operating systems, and requires the programming environment r and a properly configured mysql server. the package'rmysql' must also be installed within the r environment.. the r software is available for download as is the'rmysql' package. the database server mysql is also available for free download. the tileqc system was implemented using the r language: source code, installation instructions and tutorials are available at the tileqc website. in order to convert text-files into database form the utilities sed, tr, grep, and wc must also be installed. these programs are part of the standard installation on most flavors of unix. for the win platform all the necessary programs are included in gnu utilities for win available at.  throughout this section all solexa data used in examples was generated from several of our caenorhabditis elegans genomic dna runs on an illumina genome analyzer. all c. elegans data were subject to the standard solexa data analysis pipeline prior to application of tileqc tools. the first role of tileqc is to facilitate the conversion of text based solexa pipeline output to a more flexible sql database format. if a compatible database does not already exist, tileqc will create one. creating a database requires that both the sql server and the tileqc program be properly configured. once the eland and qag-score data is in database form the full power of both sql and r may be brought to bear upon the analysis of that data. encapsulating the database connection within an r object enables the mundane details to be managed invisibly and frees the researcher to focus on the analysis of the data rather than the mechanics of accessing and manipulating that data. although supplementary to the package's primary purpose of tile-based quality control, this feature is useful in its own right, and simplifies the mechanics of querying a database containing solexa data. the standard sql query language is enhanced by the inclusion of a simple form of expression substitution. here, for example, we see the extraction of five reads covering the location in chromosome i of the c. elegans genome: > celegans$runsql seq type locus muta mutb aattttttgaatttgctcgccgcatttcgactttct u 23a 28t tgaatttgctcgccgaatttcgactttcttacaatt u 21t 30g gaatttgctcgccgaatttcgactttctgacaattt u 20t gaatttgctcgccgaatttcgcctttctgacacttg u 20t 22a gaatttgctcgccgaatttcgactttcttacaattt u 20t 29g the primary purpose of the package is, of course, tile-based quality control. often there are patterns in the errors generated during the solexa sequencing process that become visible when the physical locations of a tile's reads are plotted in colors and sizes that depend upon the category to which they have been assigned by eland. for this purpose, the tileqc package contains functions that are optimized to create such qualitative displays. the visual representation appears on the left and a relative frequency histogram of the number of reads in each eland category for that tile appears to the right. the researcher may select which categories of read are to be displayed, and even filter the unique reads based upon whether they match the forward strand, the reverse strand, or either. the homogeneity of the solexa process ensures that, when the machine is functioning properly, the relative frequencies are similar from tile to tile and distributed uniformly across each tile. major discrepancies in these conditions are immediately discerned by sight. many such discrepancies are small and their effects are limited to one, or a few, tiles. figure contains examples of three such situations. often these aberrations have obvious causes such as bubbles in the reagents. however some, such as the rectangle in figure 1a, remain mysterious. detection of aberrant tiles is particularly important for researchers doing single nucleotide polymorphism detection as a single tile with an increased error rate may yield a variety of false positives. tile-plots using qag-score data allow for a more in depth analysis of the data and a better identification of an error's source, but one must be cautious – many types of errors that are clear from the eland perspective may be difficult to discern from the qag-score perspective. sometimes, this can be alleviated by knowing the proper way to transform the qag-score data into intensity data. any desired function may be applied to a read's set of qag-scores and the output of that function is normalized and transformed into an intensity value for the dot corresponding to that read. an example of this process can be seen in figure where we see three views of the same tile. the first, figure 2a, uses eland encoding, whereas figures 2b and 2c use two distinct qag-score encodings. in figure 2b we see the results of applying the function mean across the first 32-cycles of a read. the error detected through eland categorization is invisible in this image, but once again is easily detectable in figure 2c where the minimum of the inter-read qag-scores are being plotted. the source of the error becomes apparent in figure 2d – a cycleplot displaying the mean qag-score for the first cycles of the aberrant tile. we see from this graph, that the problem arises during cycle and figure showing the minimum qag-scores for a variety of cycles, confirms this interpretation. from this example, one might be tempted to assume that any tile with a cycle whose mean qag-score drops below a certain value is to be discarded, but it is possible for a non-aberrant tile to have mean qag-scores this low. the visual pattern recognition of a researcher may also discern more subtle and global biases that escape simple numeric detection as in figures where we see problematic reads occurring more frequently on the boundary of tiles, or in figure where a consistent increase in error rate is associated with reads from the upper left corner of a tile. once such errors are known to occur, more sophisticated statistical techniques may be used to detect and remove the resulting biases, or at the very least to filter out the offending data. despite the power of the human visual system, some patterns of error that occur over an entire lane of solexa data may not be apparent from direct observation of the 200– qc plots associated with that lane. however, some of these global biases are revealed when summarizing statistics are extracted for each tile and plotted in a single graph. in figure the blue dots correspond to the total number of perfect matches in each tile. the tiles within each lane are arranged as two vertical strips. in figure the left strip contains tiles 1–. the right strip contains tiles 101– but this time is at the bottom and at the top. the droop in the graph is indicative of an error rate that increased as the machine worked its way from the top of the lane to bottom. aberrant tiles may also become visible from this perspective – in this same figure a tile with a particularly low number of unique matches was identified, and the graph of that tile's eland categorized reads was superimposed upon a blank section of the summarization graph to illustrate how a bubbled tile may be detected in a summarization graph. we are presently working to improve the summary statistics features of tileqc and anticipate more advanced summary reports in future versions of this software.  the tileqc system offers a versatile and powerful tool for the quality control of solexa-based dna sequence data. future challenges include the development of an interface that unifies the task of summarization with that of quantitative testing. this short-term goal will lead to a plug-in style of summarization and analysis that will allow researchers to flexibly encapsulate any desired post-processing or data extraction within a shareable r object. mid-range goals include an interactive graphical interface for more convenient data exploration as well as a freely available library of analytic modules. availability and requirements the tileqc system is freely available from. it requires r, the r package'rmysql' and mysql. in order to convert solexa output from text to database form it requires the solexa pipeline output files of the form'_prb.txt' and'_eland_result.txt' as well as the utilities wc, grep, tr, and sed. abbreviations the abbreviations are qag-score: aggregate quality score; snp: single nucleotide polymorphism. authors' contributions pcd contributed to writing the manuscript and developed the software. drd contributed to writing the manuscript. both authors have read and approved the final manuscript. 
next-generation dna sequencing technologies such as illumina's solexa platform and roche's approach provide new avenues for investigating genome-scale questions. tileqc offers a highly adaptable and powerful tool for the quality control of solexa-based dna sequence data. tileqc provides a means of recognizing bias and error in solexa output by graphically representing data generated by flow cell tiles. however, they also present novel analytical challenges that must be met for their effective application to biological questions. here we report the availability of tileqc, a tile-based quality control system for solexa data written in the r language. the data represented in the images is then made available in the r environment for further analysis and automation of error detection.
 next-generation dna sequencing technologies such as illumina's solexa platform and roche's approach provide new avenues for investigating genome-scale questions. however, they also present novel analytical challenges that must be met for their effective application to biological questions.  here we report the availability of tileqc, a tile-based quality control system for solexa data written in the r language. tileqc provides a means of recognizing bias and error in solexa output by graphically representing data generated by flow cell tiles. the data represented in the images is then made available in the r environment for further analysis and automation of error detection.  tileqc offers a highly adaptable and powerful tool for the quality control of solexa-based dna sequence data. 