Skip to main content

Tool to preprocess, analyze and visualize DNA methylation data from Illumina micro-arrays

Project description

Last commit Test Status Code coverage Documentation Status MIT License

Tutorials | API documentation | Source code | Release on pip

Pylluminator is a Python package designed to provide an efficient workflow for processing, analyzing, and visualizing DNA methylation data. Pylluminator is inspired from the popular R packages SeSAMe and ChAMP.

Pylluminator supports the following Illumina’s Infinium Beadchip array versions:

  • human: 27k, 450k, MSA, EPIC, EPIC+, EPICv2

  • mouse: MM285

  • mammalian: Mammal40

Main functionalities

  • idat files parsing

  • data preprocessing

    • Type-I probes channel inference

    • Dye bias correction (3 methods: using normalization control probes / linear scaling / non-linear scaling)

    • Detection p-value calculation (pOOBAH)

    • Background correction (NOOB)

    • Batch effect correction (ComBat)

  • data analysis and visualisation

    • beta values (density, PCA, MDS, dendrogram…)

    • DMPs accounting for replicates / random effects, DMRs

    • CNV, CNS

    • pathway analysis with GSEApy (GSEA, ORA)

  • quality control

Visualization examples:

https://raw.githubusercontent.com/eliopato/pylluminator/refs/heads/main/docs/images/tutorials_1_-_Read_data_and_get_betas_16_0.png

Fig 1. Samples beta values density

https://raw.githubusercontent.com/eliopato/pylluminator/refs/heads/main/docs/images/tutorials_3_-_Calculate_DMP_and_DMR_15_0.png

Fig 2. Differentially methylated regions (DMRs)

https://raw.githubusercontent.com/eliopato/pylluminator/refs/heads/main/docs/images/tutorials_3_-_Calculate_DMP_and_DMR_17_1.png

Fig 3. Probes beta values associated with a specific gene

https://raw.githubusercontent.com/eliopato/pylluminator/refs/heads/main/docs/images/tutorials_4_-_Copy_Number_Variation_9_0.png

Fig 4. Copy number variations (CNVs)

Installation

With pip

You can install Pylluminator directly with:

pip install pylluminator

Or, if you want to use the GSEA functionalities, install the additional dependencies with:

pip install pylluminator[gsea]

From source

We recommend using uv to build pylluminator from source. The project requires Python 3.12 or later.

Install uv (if needed)

curl -LsSf https://astral.sh/uv/install.sh | sh

Clone and install

git clone https://github.com/eliopato/pylluminator.git
cd pylluminator
uv sync

This creates a virtual environment and installs all dependencies automatically. To include optional extras:

uv sync --extra gsea
uv sync --extra dev
uv sync --extra docs

Run scripts or tests within the project environment using uv run:

uv run pytest

Usage

Refer to https://pylluminator.readthedocs.io/ for step-by-step tutorials and detailed documentation.

Citing

Pylluminator is described in detail in: Pylluminator: fast and scalable analysis of DNA methylation data in Python, available on BioRxiv

If you use this package in your research, please cite our work.

If you use the updated version of the EPICv2/hg38 annotations, please cite Re-annotating the EPICv2 manifest with genes, intragenic features, and regulatory elements, (BioRxiv link)

Contributing

We welcome contributions! If you’d like to help improve the package, please follow these steps:

  1. Fork the repository.

  2. Create a new branch for your feature or bugfix.

  3. Make your changes and test them.

  4. Submit a pull request describing your changes.

The packages used for development (testing, packaging and building the documentation) can be installed with:

uv sync --extra dev --extra docs

Bug reports / new features suggestion

If you encounter any bugs, have questions, or feel like the package is missing a very important feature, please open an issue on the GitHub Issues page.

When opening an issue, please provide as much detail as possible, including:

  • Steps to reproduce the issue

  • The version of the package you are using

  • Any relevant code snippets or error messages

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

This package is strongly inspired from SeSAMe and includes code from methylprep for .idat files parsing.

Project details


Release history Release notifications | RSS feed

This version

1.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylluminator_modern-1.3.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pylluminator_modern-1.3-py3-none-any.whl (88.8 kB view details)

Uploaded Python 3

File details

Details for the file pylluminator_modern-1.3.tar.gz.

File metadata

  • Download URL: pylluminator_modern-1.3.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pylluminator_modern-1.3.tar.gz
Algorithm Hash digest
SHA256 5648cf836f6bd20da9bac8f64b547b4cee2b620c9f6d99b334f7b6099187c17c
MD5 ad2fb44d0be9259bae1fe69ca2a4ac36
BLAKE2b-256 cb0f2d367722d1ca7b16d79d8d879bf92880b81b3319768f8feefab34b170ff7

See more details on using hashes here.

File details

Details for the file pylluminator_modern-1.3-py3-none-any.whl.

File metadata

  • Download URL: pylluminator_modern-1.3-py3-none-any.whl
  • Upload date:
  • Size: 88.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pylluminator_modern-1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 36d503551b638d7015a8ece3e6f2b18e9ff584a050879e1feca5e642dde26644
MD5 7c6c52b44758f3771ee8bce2e7b3bb1b
BLAKE2b-256 1772f62136c5cfce59d7b715a4c1269e6cc5b26b357f8fdf337b59a318bfae93

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page