The official implementation of the scheduling method for the S-LAB (scheduling for laboratory automation in biology) problem, introduced in [1].
Install the Julia language from the official website. The detailed instructions for installation is also available.
-
Get the source code.
- If you are familiar with
git
, simply clone this repository and move into the directory.$ git clone https://github.com/labauto/SLab.jl $ cd SLab.jl $ pwd /path/to/SLab.jl
- Alternatively,
- Download a zip archive.
- Extract the archive (a directory named
SLab.jl-main
will be created). cd
into the directory.
- If you are familiar with
-
Install the dependency.
- Start the Julia REPL.
$ julia --project=.
- Install the dependency.
julia> using Pkg; Pkg.instantiate(); Pkg.precompile()
- Exit the REPL.
julia> exit()
- Start the Julia REPL.
-
Run example cases.
$ julia --project=. bin/run.jl examples/case_1/case_1_A
If you see a message like
Jobs will be completed in XXX minutes
, the computation is done.NOTE : Running the program in this way takes long time due to the JIT compilation of Julia scripts. See the next section to speedup the program.
-
The result is saved as a PDF file in
examples/case_1/case_1_A/case_1_A_result.pdf
.
To simply invoke the run.jl
script takes long time for compiling the scripts.
You can shorten this runtime overhead by "pre-compiling" the program.
- Windows
- Start the Julia REPL.
$ julia --project=.
- Create a sysimage.
julia> using PackageCompiler julia> create_sysimage([:CSV, :Cbc, :DataFrames, :Dates, :JuMP, :Plots, :Serialization, :SLab], sysimage_path="SLab.dll", precompile_execution_file="bin/run.jl") julia> exit()
- Run using the sysimage.
$ julia --project=. -J SLab.dll bin/run.jl examples/case_1/case_1_A
- Start the Julia REPL.
- MacOS
- Install XCode Command Line Tools.
$ xcode-select --install
- Start the Julia REPL.
$ julia --project=.
- Create a sysimage.
julia> using PackageCompiler julia> create_sysimage([:CSV, :Cbc, :DataFrames, :Dates, :JuMP, :Plots, :Serialization, :SLab], sysimage_path="SLab.dylib", precompile_execution_file="bin/run.jl") julia> exit()
- Run using the sysimage.
$ julia --project=. -J SLab.dylib bin/run.jl examples/case_1/case_1_A
- Install XCode Command Line Tools.
- Linux
- Install gcc or clang.
- Start the Julia REPL.
$ julia --project=.
- Create a sysimage.
julia> using PackageCompiler julia> create_sysimage([:CSV, :Cbc, :DataFrames, :Dates, :JuMP, :Plots, :Serialization, :SLab], sysimage_path="SLab.so", precompile_execution_file="bin/run.jl") julia> exit()
- Run using the sysimage.
$ julia --project=. -J SLab.so bin/run.jl examples/case_1/case_1_A
[1] Itoh, TD. and Horinouchi, T., et al., "Optimal scheduling for laboratory automation of life science experiments with time constraints", SLAS Technology, 2021.