Skip to content


Switch branches/tags

Latest commit

* improve geo downloader case where GEO has multipart miniml file; unit tests not all passing yet

* fixed bug reading idats with fluorescence values > 32766 with latest pandas version

* docs

* fix bug in CLI with --sample_name and multiple sample names

Git stats


Failed to load latest commit information.
Latest commit message
Commit time

methylprep is a python package for processing Illumina methylation array data. View on ReadTheDocs.

tests Readthedocs License: MIT CircleCI Codacy Badge Coverage Status PyPI-Downloads

Methylprep is part of the methylsuite

methylprep is part of the methylsuite of python packages that provide functions to process and analyze DNA methylation data from Illumina's Infinium arrays (27k, 450k, and EPIC, as well as mouse arrays). The methylprep package contains functions for processing raw data files from arrays and downloading/processing public data sets from GEO (the NIH Gene Expression Omnibus database repository), or from ArrayExpress. It contains both a command line interface (CLI) for processing data from local files, and a set of functions for building a custom pipeline in a jupyter notebook or python scripting environment. The aim is to offer a standard process, with flexibility for those who want it.

methylprep data processing has also been tested and benchmarked to match the outputs of two popular R packages: sesame (v1.10.4) and minfi (v1.38).

Methylsuite package components

You should install all three components, as they work together. The parts include:

  • methylprep: (this package) for processing idat files or downloading GEO datasets from NIH. Processing steps include

    • infer type-I channel switch
    • NOOB (normal-exponential convolution on out-of-band probe data)
    • poobah (p-value with out-of-band array hybridization, for filtering lose signal-to-noise probes)
    • qualityMask (to exclude historically less reliable probes)
    • nonlinear dye bias correction (AKA signal quantile normalization between red/green channels across a sample)
    • calculate beta-value, m-value, or copy-number matrix
    • large batch memory management, by splitting it up into smaller batches during processing
  • methylcheck: for quality control (QC) and analysis, including

    • functions for filtering out unreliable probes, based on the published literature
      • Note that methylprep process will exclude a set of unreliable probes by default. You can disable that using the --no_quality_mask option from CLI.
    • sample outlier detection
    • array level QC plots, based on Genome Studio functions
    • a python clone of Illumina's Bead Array Controls Reporter software (QC)
    • data visualization functions based on seaborn and matplotlib graphic libraries.
    • predict sex of human samples from probes
    • interactive method for assigning samples to groups, based on array data, in a Jupyter notebook
  • methylize provides more analysis and interpretation functions

    • differentially methylated probe statistics (between treatment and control samples)
    • volcano plots (which probes are the most different?)
    • manhattan plots (where in genome are the differences?)


methylprep maintains configuration files for your Python package manager of choice: pipenv or pip. Conda install is coming soon.

>>> pip install methylprep

or if you want to install all three packages at once:

>>> pip install methylsuite

Tutorials and Guides

If you're new to DNA methylation analysis, we recommend reading through this introduction in order get the background knowledge needed to best utilize methylprep effectively. Otherwise, you're ready to use methylprep for: