pyAffy: An efficient Python/Cython implementation of the RMA method for processing raw data from Affymetrix expression microarrays

Graduate Program in Computational Biology and Bioinformatics, Duke University, Durham, North Carolina, United States
Center for Genomic and Computational Biology, Duke University, Durham, North Carolina, United States
DOI
10.7287/peerj.preprints.1790v1
Subject Areas
Bioinformatics, Computational Biology, Genomics, Computational Science
Keywords
expression, Affymetrix, microarray, transcriptomics, Python, RMA, Cython, normalization
Copyright
© 2016 Wagner
Licence
This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Preprints) and either DOI or URL of the article must be cited.
Cite this article
Wagner F. 2016. pyAffy: An efficient Python/Cython implementation of the RMA method for processing raw data from Affymetrix expression microarrays. PeerJ Preprints 4:e1790v1

Abstract

Robust multi-array average (RMA) is a highly successful method for processing raw data from Affymetrix expression microarrays. However, most of the work on microarray data processing predates the widespread use of Python in scientific computing. Here, I describe pyAffy, an efficient implementation of the RMA method in Python/Cython. Using data from the MAQC project, I show that this implementation produces virtually identical results compared to the RMA reference implementation in the affy R package, while running more than five times faster and consuming significantly less memory. I also show how individual steps of the RMA method affect the final expression estimates. The source code for pyAffy is available from PyPI and GitHub (https://github.com/flo-compbio/pyaffy) under an OSI-approved license. I intend to periodically revise this article to ensure that it accurately reflects the functionalities available in the pyAffy Python package.

Author Comment

This is a preprint submission to PeerJ Preprints.