Library / SDK
mixOmics-org/mixOmics avatar
mixOmics-org/mixOmics

mixOmics 6.36: Multivariate Integration for Omics Data, Now on Bioconductor 3.23

Development repository for the Bioconductor package 'mixOmics '

268 stars68 forksRLicense varies

At a glance

What is it?
mixOmics is an R package for multivariate analysis of omics data, offering methods like PLS, PCA, and sparse variants. The 6.36.0 release adds bug fixes and test coverage, but its real value is the breadth of methods and the active user forum.
Who is it for?
Adopt mixOmics if you work with high-dimensional omics data and need a mature, Bioconductor-hosted tool with a wide range of multivariate methods, from PCA to sparse PLS and DIABLO. Skip it if you need deep learning or Bayesian integration, or if you prefer a pure tidyverse workflow, as mixOmics has its own object model and plotting functions.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly R, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 4, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What mixOmics Actually Does

mixOmics is an R package for multivariate analysis of omics data. It is aimed at researchers who have multiple data tables, such as transcriptomics, proteomics, and metabolomics, and who need to find relationships between them or with a clinical outcome. The package provides methods like principal component analysis (PCA), partial least squares (PLS), and their sparse variants, as well as more advanced tools like DIABLO for integrating multiple data blocks. The core problem it solves is the curse of dimensionality: omics data often have thousands of variables but only dozens of samples, and standard regression or correlation methods fail. mixOmics uses dimension reduction to extract latent components that capture the main sources of variation and covariance. It is not a machine learning framework; it is a statistical toolbox for exploratory analysis and hypothesis generation. The documentation describes it as a package for 'multivariate analysis' and the homepage (mixomics.org) provides tutorials, so the intended audience is clearly bioinformaticians and statisticians working with omics experiments.

Installation Paths: Bioconductor, GitHub, and Docker

The README gives three installation routes. The recommended one is via Bioconductor, using BiocManager::install('mixOmics'). This requires a recent R version and the BiocManager package. For users who want the development version, the README suggests devtools::install_github('mixOmicsTeam/mixOmics'), but warns that this version 'may not be stable' and advises checking the GitHub releases for tested versions. The third option is a Docker container. The command docker pull mixomicsteam/mixomics fetches an image, and then docker run -e PASSWORD=your_password --rm -p 8787:8787 mixomicsteam/mixomics starts an RStudio server accessible at localhost:8787. The container is about 4.38GB in size, which is large but convenient for users who want a pre-configured environment. The Docker route is useful for reproducibility, but the password setup and root privileges might be a barrier for some. The README also notes that macOS users need XQuartz installed, which suggests that the package relies on X11 for some graphics, a detail that could surprise users who expect pure R graphics.

The 6.36.0 Release: What Changed

The most recent release, 6.36.0, was published on 2026-05-25 and is compatible with Bioconductor 3.23 and R 4.6.0. The README's 'What's New' section lists two changes for May 2026. First, a bug fix for issue #377, which resolved incorrect handling of the xlim vector in the graphics branch of plotLoadings() contribution plots. This is a specific fix for a plotting function, not a major feature addition. Second, an enhancement request #381 expanded test coverage for model utilities and internal helper paths, with small fixes for issues the new tests exposed. This suggests the development team is focusing on code quality and regression prevention rather than new methods. The April 2026 entry mentions the release version 6.36.0 and the replacement of the deprecated aes_string() with aes(), which is a tidyverse compatibility fix. So, the release is mostly maintenance. For users, this means that if you rely on plotLoadings(), you should upgrade to get the xlim fix, but if you are on an older version, the core analysis methods are likely unchanged.

Development Workflow and Contribution Model

The repository is the development hub for the Bioconductor package. The README directs contributors to follow Bioconductor's coding style guide and to use renv for dependency management. The setup instructions involve installing renv and devtools, then running renv::restore() to restore the environment, and devtools::install() and devtools::test() to test the package. A full check with devtools::check() is described as taking a while. This is a standard R package development workflow, but the use of renv indicates a commitment to reproducible development. Contributions are welcomed, but the README emphasizes that pull requests should preferably include tests on the package's own datasets. This is a high bar for external contributors, as it requires understanding the package's data structures. The discussion forum on discourse.group is the place for analysis questions, which suggests that the developers want to keep GitHub issues focused on bugs, not user support. This separation is good for maintainers, but users might find the forum less familiar than a typical issue tracker.

Limitations and When It Is the Wrong Tool

mixOmics is not a general-purpose machine learning package. It is designed for multivariate analysis with a focus on interpretation, not prediction accuracy. If you need to build a classifier with cross-validation and ROC curves, mixOmics has some functionality, but it is not as flexible as caret or tidymodels. The package also has a steep learning curve: the API is large, with many functions for different methods (e.g., spls, block.splsda, etc.), and the object model is not trivial. The README does not mention any GPU support or parallel computing, so for very large datasets, it might be slow. Also, the package depends on R and Bioconductor, which means it inherits the R ecosystem's memory management issues; users with millions of features might run into memory limits. The Docker image is 4.38GB, which is heavy for a quick install. And the lack of a stated license in the repository is a red flag: the README links to a license badge but does not show the license name. For commercial use, you must check the Bioconductor page to confirm the license, as Bioconductor packages typically have a clear license, but the GitHub repo does not state it.

Alternatives: How mixOmics Differs

The most direct alternative is the R package 'ropls', which also performs PLS and OPLS for omics data. The key difference is that ropls focuses on orthogonal PLS, which separates the predictive and orthogonal variations, while mixOmics offers a broader range of methods, including sparse versions and multi-block integration. Another alternative is 'MOFA' (Multi-Omics Factor Analysis), which uses a Bayesian framework to infer latent factors across data modalities. MOFA is more powerful for identifying shared and specific factors, but it requires a different statistical approach and is computationally heavier. In contrast, mixOmics uses a more classic PLS-based framework, which is faster and easier to interpret for many biologists. If you need a single tool for both PCA and PLS with sparse variable selection, mixOmics is more comprehensive than ropls. But if you need out-of-the-box integration with tidyverse or caret, you might find mixOmics' custom plotting functions less familiar.

Maintenance and Upgrade Considerations

The release history shows a consistent pattern: 6.31.4 in January 2025, 6.32.0 in April 2025, and 6.36.0 in May 2026. This is roughly one release per year, aligned with Bioconductor's bi-annual release schedule, but with occasional bug-fix releases in between. The team actively addresses issues, as seen in the bug fixes for #377 and #381. The use of renv in development suggests a focus on reproducible builds. However, the upgrade path is tied to Bioconductor's schedule, so users on older R versions may not be able to install the latest version. The README recommends installing from Bioconductor for stability, and from GitHub for the latest features, but warns about instability. For a production environment, you should stick to the Bioconductor release. The license is not mentioned in the README, which is unusual; you must check the Bioconductor landing page to confirm the license, as this affects your rights to redistribute or modify the code. The package is hosted on Bioconductor, which typically uses Artistic-2.0, but do not assume that; verify it before commercial use.

Editorial conclusion

Adopt mixOmics if you work with high-dimensional omics data and need a mature, Bioconductor-hosted tool with a wide range of multivariate methods, from PCA to sparse PLS and DIABLO. Skip it if you need deep learning or Bayesian integration, or if you prefer a pure tidyverse workflow, as mixOmics has its own object model and plotting functions. Before adopting, verify that your R version meets the Bioconductor 3.23 requirement (R 4.6.0) and check the discussion forum for any unresolved issues with your specific data types. Also, confirm the license on the Bioconductor landing page, since the GitHub README does not state it.

Frequently asked questions

how to install mixomics in r

The recommended route is Bioconductor: install the BiocManager package if it is not already present, then call its install function for mixOmics and load it with the library call. MacOS users are told to install XQuartz first. The readme also gives a GitHub route for the development version, which the maintainers warn may not be stable.

what is mixomics

It is an R package hosted on Bioconductor, available as released versions through Bioconductor and as development versions on GitHub, and this repository is its development source. Its examples cover partial least squares, discriminant analysis, sparse and block variants, interaction analysis, component analysis and plotting helpers.

Can I run mixOmics from a Docker container?

Yes. You pull the published image, run it with a password passed as an environment variable and port 8787 published, then open that port in a browser and log in as the rstudio user with your password. It requires root privileges, and on macOS the desktop application must be launched first.

How do I report a bug in mixOmics?

The contribution section directs reports and pull requests to the issue tracker under the mixOmicsTeam organisation name, which differs from the organisation hosting this repository. The readme asks for well formatted, detailed reports, preferably with tests run on the package's datasets.

Can I edit the mixOmics README directly?

No. The first line of the file says not to edit it by hand, and to edit the source document under the inst directory and render it to create the readme. The reference pages and their templates are generated the same way.

How often does mixOmics get a stable release?

Bioconductor versions are updated twice a year, which is why the readme points people at the GitHub repository between those updates and warns that the code there is under development and may not be stable. The 6.36.0 release shipped at the end of April 2026.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mixomics-org-mixomics.svg)](https://hysenlabs.com/projects/mixomics-org-mixomics)