# 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](https://github.com/JuliaLang/juliaup) (recommended) alternatively, you can follow the official Julia installation instructions at [julia](https://julialang.org/downloads/platform/). 2. Download and decompress the following repository (You can download the repository from [download](https://codeberg.org/LabABI/JuliaMSI/archive/main.zip) 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): ```bash julia --threads auto --project=. start_MSI_GUI.jl ``` 3. After the script has finished loading, you can open a [page](http://127.0.0.1:1481/) 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: ```bash julia --project=. build_sysimage.jl ``` This may take 5–10 minutes as it merges all dependencies and JuliaMSI functions into a single binary. The resulting .so/.dll file will be around **300MB–600MB** 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: ```bash 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: ```julia using MSI_src # ... rest of your script ``` ### Run with the --sysimage flag Launch your tests using the same flag to bypass all compilation overhead: ```bash 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. ## User Guides For a general guide on how to use the JuliaMSI platform, please refer to the [JuliaMSI Main Guide](JuliaMSI_MainGuide.md). For a more detailed guide on the preprocessing pipeline, please refer to the [JuliaMSI Preprocessing Guide](JuliaMSI_Preprocessing.md).