Downloading
Unix/Linux/MacOS
Git is usually available on Unix/Linux/MacOS by default, if you do not have git please consult your operating system documentation for assistance.
Windows
If you are using Windows you may use Git for Windows. You may also use a Linux/Unix/Posix compatibility layer such as Windows Subsystem for Linux (WSL). Or you may also use git
as a part of Cygwin.
Note that we will not support GUI based bash and will provide all documentation for git as it is natively found on Linux.
Running git clone
From your command line navigate to the directory you want your project to be in. Git clone will make a folder in your current directory so it is safe to do this in Documents for instance.
cd /path/to/your/directory
Now clone the repository recursively in order to also get all required submodules.
git clone --recursive https://git.sharcnet.ca/bucanl_pipelines/bids_lossless_eeg.git
Move (or rename) your directory to your desired project name
mv bids_lossless_eeg my_project
Change directory to your project
cd my_project
Install
The pipeline is designed to be used to defer computation to cluster of computers. We therefore need to have a copy of all files both locally and on the remote cluster.
Data
Before setting up the remote cluster machine(s) you should copy your .set or .ess data to your <project root>/analysis/data/1_init
directory.
Practice Data Files
There are 10 practice data files that can be downloaded from the following owncloud link if you wish to practice before you obtain your own data:
The eeg_pipeline_asr_amica requires a setup on the server side in order to be able to run the scripts remotely. The setup is compiled into a script. You may run this script locally but it is not supported on Windows.
Synchronize
Synchronize your data/pipeline project directory with the remote cluster using scp
or another method supported by your remote cluster administrators. Secure copy (scp
) will copy all files over the existing files and therefore wastes time transferring files that already exist on the remote. Systems that support scp
/ssh
usually will support rsync
as well which only sends the differences between your files and the remote files speeding up your transfer. You may also use a visual diff program like meld
over sshfs
which is "secure shell file system." For Windows a suitable program for scp
is MobaXterm. For Unix/Linux & MacOS users you will already have scp
and you likely will also have rsync
.
Remote requirements
The setup script will warn you if you are missing requirements but the basic requirements for remote setup are:
-
ifort
(Intel C++ and Fortran Compiler) -
mpif90
(Open MPI 1.X) -
octave
GNU Octave Interpreter (Must be compiled with Java support)
Setup Script
On the remote, through ssh
run the script ./setup-remote.sh
on remote server
cd /path/to/root/of/project
# chmod +x of the setup-remote.sh script is only required if
# coming from a file system that is not posix
chmod +x ./setup-remote.sh
./setup-remote.sh
Note: At this point ./setup-remote.sh
will run various tests and scripts to install the proper octave packages and compile amica. Both Octave and Amica frequently need environment variables to be set in order to properly compile and run. You will receive the message
Prompt:We need to load session environment variables for
amica
Prompt:Select a file containing environment variables
Note:You may need to select a different version based on your scheduler
File name: [analysis/support/config/amica.sesinit]:
- If you are using Sharcnet's orca cluster you will want to leave this as the default. (Just press enter)
- If you are using Compute Canada's Graham or Cedar you will want to use "analysis/support/config/amica-sbatch.sesinit".
./setup-remote.sh
has readline enabled so you may use tab completion for the file names.
Any problems with setup can be reported in Issues