BACKGROUND
chromatin immunoprecipitation followed by dna microarray hybridization  is a powerful technology for the systematic identification of genomic sites at which transcription factors bind or histone proteins bear post-translational modifications  <cit> .
the raw microarray intensity readings themselves are not immediately useful to researchers, though.
through a number of bioinformatic analysis steps, one can obtain from the raw data a processed list of genomic sites and quantitative measures such as strength of evidence for a site, its extent, and estimates of relative occupancy.
we provide a freely available, open-source software module ringo for the import of the raw microarray data, their quality assessment, normalization, visualization, and for the detection and quantitation of chip-enriched regions.
its functionality covers the complete primary analysis for chip-chip tiling microarrays, especially those from the company nimblegen.
ringo is integrated with the bioconductor  <cit>  project of bioinformatic extension packages to the r statistical software.
this design makes it easy for users to construct sophisticated analyses approaches that also leverage other r/bioconductor functionality, for example additional normalization methods from the affy  <cit>  and oligo packages, or wavelet analysis methods from r's signal processing packages.
ringo is complementary to existing available software for chip microarray analysis.
for example, mpeak  <cit> , timat , mat  <cit> , tilemap  <cit> , acme  <cit> , hgmm  <cit> , and chipotle  <cit>  provide powerful model-based and non-parametric algorithms for finding chip-enriched regions on normalized and quality controlled chip-chip data.
a focus of these softwares has been to provide easy-to-use interfaces to these algorithms, and users are asked to use them in combination with other tools for the data import, preprocessing and follow-up statistical and bioinformatic analysis.
a unique aspect of ringo is that it facilitates the construction of more automated programmed workflows and offers benefits in the scalability, reproducibility and methodical scope of the analyses.
implementation
ringo is an extension package for the programming language and statistical environment r  <cit> .
most of its functionality is also implemented in r, for some performance-critical computations c++ functions are used.
the package has been developed to analyze two-color chip-chip oligonucleotide microarrays from the company nimblegen .
analogous two-color tiling array platforms from other vendors can also be processed.
the package employs functions from other packages of the bioconductor project  <cit> , most notably from the package limma  <cit> , it employs object classes that are also standard in other bioconductor packages, such as limma's rglist and biobase's expressionset, and provides a new object class for representing identified chip-enriched regions.
RESULTS
the package contains functions to read in the raw nimblescan output files of the microarrays into an rglist object.
the user can alternatively choose to supply other raw microarray data in rglist format.
such an object is essentially a list and contains the raw intensities of the two hybridizations for the red and green channel plus information on the probes on the array and on the analyzed samples.
ringo contains an extensive set of functions for quality assessment of the data .
its image function allows one to look at the spatial distribution of the intensities on a chip.
this can be useful to detect obvious artifacts on the array, such as scratches, bright spots, finger prints etc.
that might render parts or all of the readouts invalid.
to assess whether probe tiling across the chromosome affects levels of close-by probes, one can look at the autocorrelation plot.
for each base-pair offset d, it is assessed how strong the intensities of probes at genomic positions x + d are correlated with the probe intensities at positions x. the computed correlation is plotted against the offset d .
for regions that are present in the immuno-precipitate or in the genomic input sample, high autocorrelation is to be expected in a range corresponding to the size distribution of the fragmented dna.
the autocorrelation is relevant for the quality assessment of data and has to be taken into account in subsequent statistical analyses.
furthermore, if the data set contains biological or technical replicates, low correlation between replicate samples' intensities may indicate microarrays of questionable quality.
ringo therefore contains functions to visualize the correlation between replicate samples' raw and preprocessed intensities.
following quality assessment of the data, one usually aims to increase the signal-to-noise ratio of the data by normalization of the probe intensities and derive fold changes of probes' intensities in the enriched sample divided by their intensities in the non-enriched input sample and take the  logarithm of these ratios.
for normalization, ringo provides a number of choices, interfacing preprocessing methods implemented in the bioconductor packages vsn  <cit>  and limma plus the tukey-biweight scaling of the log-ratios that is suggested by nimblegen.
the normalization procedure results in an expressionset object of normalized probe levels, the basic bioconductor object class for microarray data, with which many other bioconductor packages can easily interact.
in addition, a mapping between probes on the microarray and genomic positions is required.
ringo uses a set of tables relating chromosomal positions to feature identifiers on the array.
the package provides scripts that assist in the production of such a table from either a nimblegen pos file or, what is often preferable, custom alignments of the probe sequences to the genome of interest.
an important aspect of genomic data analysis is a thorough observation of as many data examples as possible using a number of different visualization techniques.
in addition to the multitude of visualization functions offered by other r and bioconductor packages, ringo provides a function to display estimates of log fold enrichment with probes mapped to matching chromosomal positions .
on the normalized probe levels, one next aims to identify those genomic regions that show enrichment in the immuno-precipitated sample as compared to the untreated input sample.
ringo contains a heuristic algorithm that we developed to identify genomic regions bearing certain histone modifications.
the details of this algorithm are described in the package vignette.
it is built upon a smoothing procedure: smoothing across genomically neighboring probes is often employed to ameliorate probe-specific variability in the data, that is, the effect that different probes measure the same target dna amount with different efficiency.
this may be caused by different qualities of probe synthesis on the array, probe gc content, target cdna secondary structure, cross-hybridization, and other reasons.
an important issue with enrichment detection procedures is background signal: some non-antibody-bound dna may be pulled down during the immuno-precipitation and consequently enriched, potentially resulting in false positives.
the enrichment detection algorithm in ringo is a first and sufficiently effective approach to these problems, but more research is necessary to establish optimal methodology.
CONCLUSIONS
the functionality of the software package ringo provides a good starting point for researchers interested in the analysis of nimblegen chip microarrays or of similar data.
it is an add-on package for the widely used programming language and statistical environment r, and integrates with the bioconductor project of bioinformatic r extension packages.
as other bioconductor/r packages, ringo offers a high level of documentation through its vignette and the function help pages, and the access to the documentation is standardized.
furthermore, also the distribution, installation and maintenance of the packages are standardized, and responsive and competent user support is provided through the bioconductor mailing list.
these features are often difficult to find with free, open-source software.
ringo provides a comprehensive set of functions for quality assessment, data processing, visualization and chip-chip data analysis.
the package's close integration with other bioconductor packages opens up a multitude of subsequent analysis approaches.
availability and requirements
the r-package ringo is available from the bioconductor web site at  and runs on linux, mac os and ms-windows.
it requires an installed version of r , which is freely available from the comprehensive r archive network  at , and other bioconductor packages, namely biobase, affy, geneplotter, limma, and vsn plus the cran package rcolorbrewer.
the easiest way to obtain the most recent version of the software, with all its dependencies, is to follow the instructions at .
ringo is distributed under the terms of the artistic license  <dig> .
authors' contributions
all authors contributed significantly to the final version of the software package.
jt wrote the manuscript.
all authors read and approved of the final version of the manuscript.

 chromatin immunoprecipitation followed by dna microarray hybridization is a powerful technology for the systematic identification of genomic sites at which transcription factors bind or histone proteins bear post-translational modifications. the raw microarray intensity readings themselves are not immediately useful to researchers, though. through a number of bioinformatic analysis steps, one can obtain from the raw data a processed list of genomic sites and quantitative measures such as strength of evidence for a site, its extent, and estimates of relative occupancy. we provide a freely available, open-source software module ringo for the import of the raw microarray data, their quality assessment, normalization, visualization, and for the detection and quantitation of chip-enriched regions. its functionality covers the complete primary analysis for chip-chip tiling microarrays, especially those from the company nimblegen. ringo is integrated with the bioconductor project of bioinformatic extension packages to the r statistical software. this design makes it easy for users to construct sophisticated analyses approaches that also leverage other r/bioconductor functionality, for example additional normalization methods from the affy and oligo packages, or wavelet analysis methods from r's signal processing packages. ringo is complementary to existing available software for chip microarray analysis. for example, mpeak, timat, mat, tilemap, acme, hgmm, and chipotle provide powerful model-based and non-parametric algorithms for finding chip-enriched regions on normalized and quality controlled chip-chip data. a focus of these softwares has been to provide easy-to-use interfaces to these algorithms, and users are asked to use them in combination with other tools for the data import, preprocessing and follow-up statistical and bioinformatic analysis. a unique aspect of ringo is that it facilitates the construction of more automated programmed workflows and offers benefits in the scalability, reproducibility and methodical scope of the analyses. implementation ringo is an extension package for the programming language and statistical environment r. most of its functionality is also implemented in r, for some performance-critical computations c++ functions are used. the package has been developed to analyze two-color chip-chip oligonucleotide microarrays from the company nimblegen. analogous two-color tiling array platforms from other vendors can also be processed. the package employs functions from other packages of the bioconductor project, most notably from the package limma, it employs object classes that are also standard in other bioconductor packages, such as limma's rglist and biobase's expressionset, and provides a new object class for representing identified chip-enriched regions.  the package contains functions to read in the raw nimblescan output files of the microarrays into an rglist object. the user can alternatively choose to supply other raw microarray data in rglist format. such an object is essentially a list and contains the raw intensities of the two hybridizations for the red and green channel plus information on the probes on the array and on the analyzed samples. ringo contains an extensive set of functions for quality assessment of the data. its image function allows one to look at the spatial distribution of the intensities on a chip. this can be useful to detect obvious artifacts on the array, such as scratches, bright spots, finger prints etc. that might render parts or all of the readouts invalid. to assess whether probe tiling across the chromosome affects levels of close-by probes, one can look at the autocorrelation plot. for each base-pair offset d, it is assessed how strong the intensities of probes at genomic positions x + d are correlated with the probe intensities at positions x. the computed correlation is plotted against the offset d. for regions that are present in the immuno-precipitate or in the genomic input sample, high autocorrelation is to be expected in a range corresponding to the size distribution of the fragmented dna. the autocorrelation is relevant for the quality assessment of data and has to be taken into account in subsequent statistical analyses. furthermore, if the data set contains biological or technical replicates, low correlation between replicate samples' intensities may indicate microarrays of questionable quality. ringo therefore contains functions to visualize the correlation between replicate samples' raw and preprocessed intensities. following quality assessment of the data, one usually aims to increase the signal-to-noise ratio of the data by normalization of the probe intensities and derive fold changes of probes' intensities in the enriched sample divided by their intensities in the non-enriched input sample and take the logarithm of these ratios. for normalization, ringo provides a number of choices, interfacing preprocessing methods implemented in the bioconductor packages vsn and limma plus the tukey-biweight scaling of the log-ratios that is suggested by nimblegen. the normalization procedure results in an expressionset object of normalized probe levels, the basic bioconductor object class for microarray data, with which many other bioconductor packages can easily interact. in addition, a mapping between probes on the microarray and genomic positions is required. ringo uses a set of tables relating chromosomal positions to feature identifiers on the array. the package provides scripts that assist in the production of such a table from either a nimblegen pos file or, what is often preferable, custom alignments of the probe sequences to the genome of interest. an important aspect of genomic data analysis is a thorough observation of as many data examples as possible using a number of different visualization techniques. in addition to the multitude of visualization functions offered by other r and bioconductor packages, ringo provides a function to display estimates of log fold enrichment with probes mapped to matching chromosomal positions. on the normalized probe levels, one next aims to identify those genomic regions that show enrichment in the immuno-precipitated sample as compared to the untreated input sample. ringo contains a heuristic algorithm that we developed to identify genomic regions bearing certain histone modifications. the details of this algorithm are described in the package vignette. it is built upon a smoothing procedure: smoothing across genomically neighboring probes is often employed to ameliorate probe-specific variability in the data, that is, the effect that different probes measure the same target dna amount with different efficiency. this may be caused by different qualities of probe synthesis on the array, probe gc content, target cdna secondary structure, cross-hybridization, and other reasons. an important issue with enrichment detection procedures is background signal: some non-antibody-bound dna may be pulled down during the immuno-precipitation and consequently enriched, potentially resulting in false positives. the enrichment detection algorithm in ringo is a first and sufficiently effective approach to these problems, but more research is necessary to establish optimal methodology.  the functionality of the software package ringo provides a good starting point for researchers interested in the analysis of nimblegen chip microarrays or of similar data. it is an add-on package for the widely used programming language and statistical environment r, and integrates with the bioconductor project of bioinformatic r extension packages. as other bioconductor/r packages, ringo offers a high level of documentation through its vignette and the function help pages, and the access to the documentation is standardized. furthermore, also the distribution, installation and maintenance of the packages are standardized, and responsive and competent user support is provided through the bioconductor mailing list. these features are often difficult to find with free, open-source software. ringo provides a comprehensive set of functions for quality assessment, data processing, visualization and chip-chip data analysis. the package's close integration with other bioconductor packages opens up a multitude of subsequent analysis approaches. availability and requirements the r-package ringo is available from the bioconductor web site at and runs on linux, mac os and ms-windows. it requires an installed version of r, which is freely available from the comprehensive r archive network at, and other bioconductor packages, namely biobase, affy, geneplotter, limma, and vsn plus the cran package rcolorbrewer. the easiest way to obtain the most recent version of the software, with all its dependencies, is to follow the instructions at. ringo is distributed under the terms of the artistic license. authors' contributions all authors contributed significantly to the final version of the software package. jt wrote the manuscript. all authors read and approved of the final version of the manuscript. 
we present a free, open-source r package ringo that facilitates the analysis of chip-chip experiments by providing functionality for data import, quality assessment, normalization and visualization of the data, and the detection of chip-enriched genomic regions. however, the raw microarray intensity readings themselves are not immediately useful to researchers, but require a number of bioinformatic analysis steps. ringo integrates with other packages of the bioconductor project, uses common data structures and is accompanied by ample documentation. it facilitates the construction of programmed analysis workflows, offers benefits in scalability, reproducibility and methodical scope of the analyses and opens up a broad selection of follow-up statistical and bioinformatic methods. chromatin immunoprecipitation combined with dna microarrays is a high-throughput assay for dna-protein-binding or post-translational chromatin/histone modifications.
 chromatin immunoprecipitation combined with dna microarrays is a high-throughput assay for dna-protein-binding or post-translational chromatin/histone modifications. however, the raw microarray intensity readings themselves are not immediately useful to researchers, but require a number of bioinformatic analysis steps. identified enriched regions need to be bioinformatically annotated and compared to related datasets by statistical methods.  we present a free, open-source r package ringo that facilitates the analysis of chip-chip experiments by providing functionality for data import, quality assessment, normalization and visualization of the data, and the detection of chip-enriched genomic regions.  ringo integrates with other packages of the bioconductor project, uses common data structures and is accompanied by ample documentation. it facilitates the construction of programmed analysis workflows, offers benefits in scalability, reproducibility and methodical scope of the analyses and opens up a broad selection of follow-up statistical and bioinformatic methods. 