Circuitscape is an open-source program that uses circuit theory to model connectivity in heterogeneous landscapes. Its most common applications include modeling movement and gene flow of plants and animals, as well as identifying areas important for connectivity conservation.
Circuitscape has now been rewritten in Julia for better performance and scalability. Julia is a modern open-source language for scientific computing.
This work is based on the original Circuitscape project by Brad McRae, Viral B. Shah and Tanmay Mohapatra.
Load the 'julia' environment module.
$ echo "insecure" >> ~/.curlrc $ module load julia $ julia julia> using Pkg julia> Pkg.add("Circuitscape")
At this point Circuitscape is installed. You can run it interactively in a Development and Testing session or in a scheduled job. Here's an example job script.
#!/bin/bash #SBATCH --job-name=cs5 #SBATCH --mail-type=END,FAIL #SBATCH --email@example.com #SBATCH --ntasks=1 #SBATCH --cpus-per-task=4 #SBATCH --mem=4gb #SBATCH --time=01:00:00 #SBATCH --output=cs5_%j.log pwd; hostname; date module load julia export JULIA_NUM_THREADS=4 julia run.jl date
where a julia script to execute an analysis defined in an ini file could similar to the following
using Circuitscape compute("examples/four_neighbor_example.ini")
Note that multiple workers can also be used depending on your analysis by using julia's process parallelization:
julia -p 8 run.jl