- Glossary
- TL;DR
- Preparing your BOSE account
- Perform tracking
- Transfer files to be analyzed
- Prepare and run the Snakemake script
Glossary
BOSE - The UWEC high-performance computer that we use to track InVision videos OnDemand - a browser-based tool for interacting with BOSE Slurm - popular job manager for high-performance computing GitHub - a website that stores repositories of version-controlled code git - the software that allows version control of code NAS - network-attached storage, where all our InVision videos are stored long term Snakemake - software for managing multi-step analytical workflows Anaconda/conda - software for managing computing environments
TL;DR
Before tracking:
- Make sure you have the most recent commit of the
invision-toolsrepository in your BOSE home directory. - Make sure the experiments to be analyzed have been uploaded from the InVision computer to the Wheeler Lab NAS.
# if you do have it but need to update
cd ~/GitHub/invision-tools && git pullTo track:
- While logged into the BOSE command line, transfer the videos from the NAS to BOSE:
- In the command below, replace
wheelenjwith your username,20240711-a02-CNN_20240711_140720.24568709with the experiment you want to analyze, andmiracidiawith the proper BOSE directory. - Use your your UWEC password.
- Navigate to the organisms directory:
- Activate the
invision-envand submit the Snakemake script, which will run tracking on all the experiments from the provided date.
rsync -Ppvrz wheelenj@wheeler.nas.uwec.edu:/volume1/WheelerLab_data/InVision/20240711-a02-CNN_20240711_140720.24568709 /data/groups/wheelenj/miracidiacd /data/groups/wheelenj/miracidia/module load python-libs
conda activate invision-env
./run_snakemake.sh 20240711Preparing your BOSE account
/data/groups/wheelenj/ . The following steps only need to be followed the first time a user performs an analysis.
It is also assumed that you have been added as a member of the wheelerlab-uwec GitHub organization, which will give you access to the invision-tools repository, and that you’ve generated an SSH key on BOSE and added it to your GitHub account.
In all code blocks below, commands that should be run in your terminal follow a $ sign - copy and paste the command (not including the $) into your terminal and press enter. Lines representing example output following a command do not start with a $.- Clone the
invision-toolsGitHub repository into your home folder. - Login to OnDemand in the browser and click the “BOSE Cluster Shell Access” card
- The repository should be cloned into your home directory (
/data/users/{username}): - If you cloned the repo previously but haven’t updated in awhile, pull the newest version:
- Create the conda environment required for
invision-tools. This environment will contain all the software and Python libraries required for running the tracking scripts. - Activate the environment by running
conda activate invision-env.
$ cd # navigate to your home directory
$ mkdir GitHub # make a new GitHub directory (if you haven't already)
$ cd GitHub # navigate into the new directory
$ git clone https://github.com/wheelerlab-uwec/invision-tools.git # clone the repo$ cd ~/GitHub/invision-tools # navigate to the repo
$ git pull # get the latest version$ cd # navigate to your home dir
$ module load python-libs # load the required modules from the BOSE shared software library
$ mamba env create -f ~/GitHub/invision-tools/environment.yml # create the environmentPerform tracking
Transfer files to be analyzed
- Login to OnDemand in the browser and click the “BOSE Cluster Shell Access” card.
- Transfer videos from the Wheeler Lab’s NAS (https://wheeler.nas.uwec.edu:5501) to BOSE Note: When accessing the server via a browser, you may get a warning about the connection not being private. Click Advanced and Proceed.
- On the server, all videos should be stored in the shared folder found at
/volume1/WheelerLab_data/InVision/. Here’s what it looks like using the File Station application (click the above link to access the sign-in page): - On BOSE, all videos should be stored in the Wheeler Lab’s group folder found at
/data/groups/wheelenj. Mosquito videos are in themosquitoes/subfolder, miracidia videos are in themiracidia/subfolder, and planaria videos are in theplanaria/subfolder (here’s what it looks like when using the OnDemand file system): - Use rsync to transfer the files, for example. The following shows the command run (on the first line) and the resulting output:
- General rsync syntax:
rsync username@server:/path/to/source /path/to/destination - Explanation of options:
-P- show progress-p- preserve permissions-v- be verbose-r- sync recursively (i.e., copy everything in the source directory)-z- compress while transferring
Prepare and run the Snakemake script
Each organism directory (i.e., miracidia , mosquitoes , or planaria) has a Snakemake runner in it - run_snakemake.sh. This runner will run all the commands necessary to analyze all experiments recorded on a given date. All you have to do is run ./run_snakemake.sh {date} from the organism directory, where {date} is the experiment date you want to track. Follow the steps below for more details.
- Navigate to the organism directory:
cd /data/groups/wheelenj/mosquitoes/. This step is crucial; the job will not run properly if you are not in the correct directory at the time of submission. - Run the Snakemake runner to start the job(s):
./run_snakemake.sh {date}. Snakemake will automatically submit Slurm jobs for you, and it will submit them in order (i.e., it won’t submit the linking job until tracking has been completed for all videos). - Verify the job(s) have been started by running the
sacctcommand:
$ sacct
JobID JobName Partition Account AllocCPUS State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
71371_0 tracking highmemory wheelenj_+ 64 RUNNING 0:0
71371_0.bat+ batch wheelenj_+ 64 RUNNING 0:0
71371_0.ext+ extern wheelenj_+ 64 RUNNING 0:0You should see a JobID for each job that you are running.