JuliaMSI/README.md

4.6 KiB
Raw Blame History

JuliaMSI

https://codeberg.org/LabABI/JuliaMSI

Local Installation

  1. Make sure you have Julia installed and at least Julia version 1.6 but not higher than 1.11, If not, follow the next installation guide which contains the latest files and instructions for juliaup (recommended) alternatively, you can follow the official Julia installation instructions at julia.
  2. Download and decompress the following repository (You can download the repository from download or locate the option manually at the top right of the page, in the box with [•••] (More operations). For a more advanced method using Git, use this link: https://codeberg.org/LabABI/JuliaMSI.git).
  3. Ensure that you have decompressed the ZIP file and know the working directory where it is located (the folder on your computer where you saved the JuliaMSI files).
  4. Julia Version 1.11 is required. You might need to downgrade your whole Julia installation to support it.

Load User Interface

  1. Set the working directory to where JuliaMSI is located (the specific location of the folder on your computer where you decompressed the ZIP) in your terminal.
    Use the cd command (which stands for 'change directory') to navigate to the folder where you unzipped the JuliaMSI files.
    Command for Linux:
    cd (your directory path of this repository)/juliamsi
    
    Command for Windows(Powershell or CMD)/Mac:
    cd (your directory path of this repository)\juliamsi
    
    Example of a correct route:
    ~/Downloads/JuliaMSI-main/juliamsi
  2. Without entering the Julia environment, launch the project in your terminal with the following command (which works for all operating systems):
    julia --threads auto --project=. start_MSI_GUI.jl
    
  3. After the script has finished loading, you can open a page in your browser with the web app running.

Additional notes:
After the first boot, when the packages are initialized on your computer, subsequent uses of the app should take less time to load.
It is normal to see errors before initialization; you can refresh the page once it opens to see the complete displayed interface. Minimum system requirements: 4 core processor, 8 GB RAM

JuliaMSI is a Graphical User Interface for a library of MSI tools in Julia: https://github.com/CINVESTAV-LABI/julia_mzML_imzML

Build the System Image (One-time)

Alternatively, you can generate the .so file by running the next build script in your directory:

julia --project=. build_sysimage.jl

This may take 510 minutes as it merges all dependencies and JuliaMSI functions into a single binary. The resulting .so/.dll file will be around 300MB600MB because it contains the pre-compiled machine code for your entire environment. A sysimage built on Linux (.so) will not work on Windows. You must run the build_sysimage.jl script once on each target operating system.

Once MSI_sysimage.so is created in your directory, adapt your command like this:

julia --project=. -e 'using Pkg; Pkg.precompile()'
# This will find MSI_sysimage.so, .dll, or .dylib automatically:
julia --threads auto --project=. --sysimage MSI_sysimage* start_MSI_GUI.jl

The command above loads a pre-compiled version of your environment (note, you have to use either the sysimage command or the normal start command), speeding up the booting delay. Your GUI or scripts using JuliaMSI should start almost instantly and process files significantly faster than before. Always run the build script in the same project root where you intend to run the app.

In scripts like test/run_tests.jl, you no longer need to manually include("../src/MSI_src.jl"). You can simply treat it like a globally installed package to load the precompiled binary:

using MSI_src
# ... rest of your script

Run with the --sysimage flag

Launch your tests using the same flag to bypass all compilation overhead:

julia --threads auto --project=. --sysimage MSI_sysimage.so test/run_tests.jl

License

JuliaMSI is published under the terms of the MIT License.

Example data

Robert Winkler. (2023). mzML mass spectrometry and imzML mass spectrometry imaging test data [Data set]. Zenodo. https://doi.org/10.5281/zenodo.10084132

User Guides

For a general guide on how to use the JuliaMSI platform, please refer to the JuliaMSI Main Guide.

For a more detailed guide on the preprocessing pipeline, please refer to the JuliaMSI Preprocessing Guide.