Development repository for the Bioconductor package 'mixOmics '
This repository contains the R
package which is hosted on
Bioconductor
and our development GitHub
versions. Go to www.mixomics.org for
information on how to use mixOmics.
(macOS users only: Ensure you have installed
XQuartz first.)
The best way to install mixOmics
is using Bioconductor
. You can see
the landing page for the release version of mixOmics
on Bioconductor
here.
Make sure you have the latest R version and the latest BiocManager
package installed following these
instructions.
## install BiocManager if not installed
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
## install mixOmics
BiocManager::install('mixOmics')
## load mixOmics
library(mixOmics)
Bioconductor versions are updated twice a year, between these updates
you can download the latest version of mixOmics
from Github
. Note
that this latest version of mixOmics is under development and may not be
stable, check the gitHub page for releases which have passed package
testing.
## install devtools
install.packages("devtools")
## install latest github version of mixOmics
devtools::install_github("mixOmicsTeam/mixOmics")
You can install our latest stable Github version of mixOmics
via our
Docker container. You can do this by downloading and using the Docker
desktop application or via the command line as described below.
Note: this requires root privileges
if your OS is not compatible with the latest version download an
older version of Docker from the following link:
Then open your system’s command line interface (e.g. Terminal for MacOS
and Command Promot for Windows) for the following steps.
MacOS users only: you will need to launch Docker Desktop to activate
your root privileges before running any docker commands from the command
line.
docker pull mixomicsteam/mixomics
The following command lists the running images:
docker images
This lists the installed images. The output should be something similar
to the following:
$ docker images
> REPOSITORY TAG IMAGE ID CREATED SIZE
> mixomicsteam/mixomics latest e755393ac247 2 weeks ago 4.38GB
Running the following command activates the container. You must change
your_password
to a custom password of your own. You can also customise
ports (8787:8787) if desired/necessary. see
https://docs.docker.com/config/containers/container-networking/ for
details.
docker run -e PASSWORD=your_password --rm -p 8787:8787 mixomicsteam/mixomics
In your web browser, go to http://localhost:8787/
(change port if
necessary) and login with the following credentials:
username: rstudio
password: (your_password set in step 4)
The following command lists the running containers:
sudo docker ps
The output should be something similar to the following:
$ sudo docker ps
> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
> f14b0bc28326 mixomicsteam/mixomics "/init" 7 minutes ago Up 7 minutes 0.0.0.0:8787->8787/tcp compassionate_mestorf
The listed image ID can then be used to stop the container (here
f14b0bc28326
)
docker stop f14b0bc28326
We welcome community contributions concordant with our code of
conduct.
We strongly recommend adhering to Bioconductor’s coding
guide for
software consistency if you wish to contribute to mixOmics
R codes.
To report a bug (or offer a solution for a bug!) visit:
https://github.com/mixOmicsTeam/mixOmics/issues. We fully welcome and
appreciate well-formatted and detailed pull requests. Preferably with
tests on our datasets.
install.packages("renv", Ncpus=4)
install.packages("devtools", Ncpus=4)
# restore the renv environment
renv::restore()
# or to initialise renv
# renv::init(bioconductor = TRUE)
# update the renv environment if needed
# renv::snapshot()
# test installation
devtools::install()
devtools::test()
# complete package check (takes a while)
devtools::check()
We wish to make our discussions transparent so please direct your
analysis questions to our discussion forum
https://mixomics-users.discourse.group. This forum is aimed to host
discussions on choices of multivariate analyses, as well as comments and
suggestions to improve the package. We hope to create an active
community of users, data analysts, developers and R programmers alike!
Thank you!
BPPARAM
across all tune()
seed
argument to perf()
functions for better reproducibilityseed
argument to tune()
functions for better reproducibilityperf()
returns errorplotIndiv()
ellipses colours not matching points, now sample groupThe performance assessment and parameter tuning workflow has been
streamlined as described in issue
#343
New function: perf.assess()
This function essentially runs perf()
on final model but only returns performance metrics for the number of
components used in the final model. Designed to be used in the final
step of the workflow for quantifying final model performance. Outputs
a list of values but no plotting functionality avaliable. See PR
344 for more
details.
Additional functionality for tune()
functions and new tune()
functions created tune()
can now be used in its original capacity
(to tune number of variables and components simultaneously) or just to
tune number of components by internally calling perf()
. Designed to
be used for tuning both components and variables to keep across
(s)PCA, (s)PLS, (s)PLSDA, block (s)PLSDA and mint (s)PLSDA models See
PR #348 for more
details.
** Version 6.30.0 **
Bioconductor release version
6.30.0
released end of October 2024 Minor bug fixes and updated deprecated code
and unit tests, no major code changes and no changes to user experience
of mixOmics.
splsda()
example code errorperf()
(s)pls
which have near zero variance.predict()
can now handle when the testing and training data haveindY
parameter is used in block.spls()
, circosPlot()
can nowperf()
choice.ncomp
component when nrepeat
NA
s.cim()
pca
objects as input.tune.spca()
can now handle NA
values appropriately.plotArrow()
is run on a(mint).(s)plsda
object.splsda
object thatperf()
.plotLoadings()
now returns the loading values for features from(mint).(block).(s)plsda
object.tune.mint.splsda()
and perf.mint.splsda()
verbose.call
was added to most of the methods. Thisbackground.predict()
can now operate on mint.splsda
objects andplotIndiv()
.plotMarkers
to visualise the selected features in blocktune.spls
now able to tune the selected variables on both X
andY
. See ?tune.spls
impute.nipals
to impute missing values using the nipalstune.spca
to tune the number of selected variables forcircosPlot
now has methods for block.spls
objects. It can now?circosPlot
biplot
function for pca
and pls
objects. See?mixOmics::biplot
plotDiablo
now takes col.per.group
(see #119)plotIndiv
now supports (weighted) consensus plots for blockplotIndiv(..., ind.names=FALSE)
warningperf.block.splsda
now supports calculation of combined AUCblock.splsda
bug which could drop some classes withnear.zero.variance=TRUE
now fixed