Package: methylize
methylizeis a python package for analyzing output from Illumina methylation arrays. It complementsmethylprepandmethylcheckand provides methods for computing differentially methylated probes and regions, and annotating these regions with the UCSC Genome Browser.  View onReadTheDocs.methylize is part of the methylsuitemethylizeis part of themethylsuiteof python packages that provide functions to analyze DNA methylation data from Illumina's Infinium arrays (27k, 450k, and EPIC, as well as mouse arrays). This package is focused on analysis of processed methylation data, such as EWAS using Manhattan and Volcano plots.methylizefunctions are designed to work with a minimum of knowledge and specification required. But you can always override the "smart" defaults with custom settings if the default settings don't work for your data. The entiremethylsuiteis designed in this format: to offer ease of use while still maintaining flexibility for customization as needed.Methylsuite package componentsYou should install all three components, as they work together. The parts include:methylprep: for processingidatfiles or downloading GEO datasets from NIH. Processing steps includeinfer type-I channel switchNOOB (normal-exponential convolution on out-of-band probe data)poobah (p-value with out-of-band array hybridization, for filtering low 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 matrixlarge batch memory management, by splitting it up into smaller batches during processingmethylcheck: (this package) for quality control (QC) and analysis, includingfunctions for filtering out unreliable probes, based on the published literatureNote thatmethylprep processwill exclude a set of unreliable probes by default. You can disable that using the --no_quality_mask option from CLI.sample outlier detectionarray level QC plots, based on Genome Studio functionsa python clone of Illumina's Bead Array Controls Reporter software (QC)data visualization functions based onseabornandmatplotlibgraphic libraries.predict sex of human samples from probesinteractive method for assigning samples to groups, based on array data, in a Jupyter notebookmethylizeprovides more analysis and interpretation functionsdifferentially methylated probe statistics (between treatment and control samples)volcano plots (which probes are the most different?)manhattan plots (where in genome are the differences?)Table of ContentsDifferentially methylated position (DMP) regression, detection and visualationLogistic RegressionLinear RegressionManhattan PlotVolcano plotDifferentially methylated regionsGene annotation with the UCSC Human Genome BrowserInstallationpip3installmethylizeInstallation will also install the other parts of themethylsuite(methylprep and methylcheck) if they are not already installed.If progress bar is missing:
If you don't see a progress bar in your jupyterlab notebook, try this:- conda install -c conda-forge nodejs
- jupyter labextension install @jupyter-widgets/jupyterlab-managerMethylize PackageThemethylizepackage contains both high-level APIs for processing data from local files and low-level functionality allowing you to analyze your data AFTER runningmethylprepandmethylcheck. For greatest usability, importmethylizeinto a Jupyer Notebook along with your processed sample data (a DataFrame of beta values or m-values and a separate DataFrame containing meta data about the samples).Methylizeallows you to run linear or logistic regression on all probes and identify points of interest in the methylome where DNA is differentially modified. Then you can use these regression results to createvolcano plotsandmanhattan plots.Sample Manhattan PlotSample Volcano PlotCustomizable: Plot size, color palette, and cutoff p-value lines can be set by the user.
Exporting: You can export all probe statistics, or just the significant probes as CSV or python pickled DataFrame.Differentially methylated position/probe (DMP) detectionThediff_meth_pos(meth_data, phenotypes)function searches for individual differentially methylated positions/probes
(DMPs) by regressing methylationbeta valuesorM-valuesfor each sample at a given
genomic location against the phenotype data for those samples.PhenotypesCan be provided as- a list of strings,
- integer binary data,
- numeric continuous data
- pandas Series, DataFrame or numpy arrayOnly 2 phenotypes are allowed with logistic regression. Use Linear regression with numeric (measurement) phenotypes like age or time. You can pass in the GEO meta DataFrame associated with a dataset along withcolumn=<columnname>kwarg. The order of the items in the phenotype should match the order of samples in the beta values or M-values.Covariates are also supported for logistic (but not linear) regression. Pass incovariates=Trueto treat all other columns in a phenotype DataFrame as covariates, or pass in a list of column names to specify specific parts of the DataFrame. Note that supplying too many covariates for small sample sizes will lead to most probes failing with Linear Algebra or Perfect Separation errors.For details on all of the other adjustable input parameters, refer to the API fordiff_meth_pos()ReturnsA pandas dataframe of regressionstatisticswith one row for each probe
and these columns:- `Coefficient`: regression coefficient
- `StandardError`: standard error    
- `95%CI_lower`: lower limit of the coefficient's 95% confidence interval
- `95%CI_upper`: upper limit of the coefficient's 95% confidence interval
- `PValue`: p-value: phenotype group A vs B - likelihood that the difference is significant for this probe/location
- `Rsquared`: proportion (0 to 1) of probe variance explained by your phenotype. Linear Regression Only.
- `FDR_QValue`: p-values corrected for multiple comparisons using the Benjamini-Hochberg FDR method. The False Discovery Rate (FDR) corrected p-values will remain comparable, regardless of the number of additional comparisons (probes) you include.

If a `q_cutoff` is specified, only probes with significant q-values less than the cutoff will be returned in the DataFrame.Differentially methylated regions (DMR)Pass in yourdiff_meth_pos(DMP) stats results DataFrame as input, and it will calculate and annotate differentially methylated regions (DMR) using thecombined-pvaluespipeline. This function returns list of output files.- calculates auto-correlation
- combines adjacent p-values
- performs false discovery rate (FDR) adjustment
- finds regions of enrichment (i.e. series of adjacent low p-values)
- assigns significance to those regions
- annotates significant regions with possibly relevant nearby Genes,
  using the UCSC Genome Browser Database
- annotates candidate genes with expression levels for the sample tissue type,
  if user specifies the sample tissue type.
- returns everything in a CSV that can be imported into other Genomic analysis packages.For more details on customizing the inputs and outputs, see API for thediff_meth_regions(stats, array_type)function.Loading processed dataAssuming you previously usedmethylprepto process a data set like this:python-mmethylprep-vprocess-dGSE130030--betasThis creates two files,beta_values.pklandsample_sheet_meta_data.pkl. You can load both inmethylizelike this:Navigate to the folder wheremethylrepsaved its processed files, and start a python interpreter:>>>importmethylcheck>>>data,meta=methylcheck.load_both()INFO:methylize.helpers:loadeddata(485512,14)from1pickledfiles(0.159s)INFO:methylize.helpers:meta.Sample_IDsmatchdata.index(OK)Or if you are running in a notebook, specify the path:importmethylcheckdata,meta=methylcheck.load_both('<path_to...>/GSE105018')This also validates both files, and ensures that theSample_IDcolumn in meta DataFrame aligns with the column names in thedata DataFrame.