RuSirius (spelled R-U-Sirius (are you serious)) is an R package that provides an interface to the Sirius software, enabling seamless integration of xcms preprocessing results with Sirius.
It is built upon RSirius, the REST API library for the R programming language, which you can find here.
Installation Instructions
Compatibility
Sirius and the RSirius R API must come from the same release line:
| RuSirius | Sirius | RSirius (R API) |
|---|---|---|
| 1.1.x | 6.5.x | 6.5.4 |
| 1.0.x | 6.3.x | 6.3.x |
Option 1: Install Sirius and R-api via Conda
- You can install both the Sirius software and the R API using conda with the following command:
RuSirius 1.1 needs the sirius6.5 build (currently 3.2+sirius6.5.4); you can check the installed build with conda list r-sirius-ms.
- Then, in an R session, install RuSirius and it’s dependencies :
Option 2: Manual Installation (Recommended for now)
Alternatively, you can manually install Sirius and then RuSirius:
- Download the Sirius software from the official releases page. RuSirius is dependent on Sirius 6.5, please ensure you have the right version downloaded.
- Install RuSirius and it’s dependencies (which includes the R-api) by running the following code in R:
This also installs the matching RSirius R API (6.5.4); you can check it with packageVersion("RSirius").
Usage
RuSirius comes with five vignettes to help you get started:
Getting Started with RuSirius This vignette covers the basics of connecting to Sirius and managing projects.
Importing Spectra into Sirius This vignette shows a basic example for importing spectra data into Sirius.
Retrieving Results from Sirius This vignette explains how to retrieve and interpret different result types.
Using Custom Databases This vignette demonstrates how to create and use custom databases for structure search.
Importing Chromatographic Peaks from xcms This vignette demonstrates how to import chromatographic peaks from xcms and use them in Sirius.
Contributing
We welcome contributions and bug reports! If you encounter issues, have suggestions, or want to contribute code, please open an issue or pull request on the GitHub repository.
Before submitting a PR, please ensure:
-
Tests pass locally: run the full test suite with
devtools::test()The tests start and stop Sirius themselves, so close any running Sirius instance first; you need Sirius installed and a valid login. Without Sirius, the tests that need a server are skipped.
-
Pre-rendered vignettes are up to date: All five vignettes are pre-rendered from
.Rmd.origsources. If your changes affect package output or vignette content, start Sirius on port 9999 (with Sirius 6.5, the port option goes afterservice):log in, and re-run the pre-render script from the package root:
source("vignettes/pre-render.R")Commit the updated
.Rmdfiles alongside your changes.
Note that CI runs R CMD check with --no-vignettes since vignettes require a running Sirius instance with authentication.
| ## Known Issues |
| ### Current Issues: |
| - Vignettes require Sirius login: Vignettes cannot be built automatically in CI as they require Sirius authentication. Pre-rendered vignettes are available on the pkgdown site. |
| - Importing features can be time-consuming. To speed up testing, import only a few features at first and limit the process to one MS1 spectrum per feature. Further details are provided in the vignettes. |
Docker
A pre-built Docker image is available on Docker Hub, based on the official Bioconductor docker image bioconductor/bioconductor_docker:RELEASE_3_22. It includes RuSirius, all dependencies, and Sirius 6.5.4 (downloaded directly from the official GitHub releases). The Sirius REST API starts automatically on port 9999 when the container launches.
Running the container
Start an RStudio Server session:
Then open RStudio Server at http://localhost:8787 (user: rstudio, password: as set above).
Or start an interactive R session directly:
Sirius login
Sirius starts automatically inside the container on port 9999. Connect and log in from the R console:
library(RuSirius)
srs <- Sirius(projectId = "my_project",
username = "your_email",
password = "your_password",
port = 9999)Note that Sirius requires a valid account — you can register for free at https://bright-giant.com.