Computational Basics
GitHub & GitLab
The Marder Lab has a GitHub and GitLab. Sign up for a GitHub account if you haven't already, and tell the Lab Manager to add your account to the Marder Lab GitLab organization.
Organizing code
You should use Git to organize your code. There are lots of helpful tutorials on the internet if you don't know how to use Git.
Sign up for a GitHub account if you haven't already, and tell the Lab Manager to add your account to the Marder Lab GitLab organization.
In general, your code for one project/purpose should exist on a Git repository on your computer, which should be synchronized with a repository on the Marder Lab GitLab.
When you feel your code is ready to be shared with the world (for example, on publication of your paper), you should copy your code over to the Marder Lab GitHub. The reason we use Github here is for historical reasons, and the reason we use GitLab for ongoing code development is so that we can have private repositories.
Some guidelines:
While our lab is all about open code and reproducible results, don't push work in progress to a publicly accessible git repository. Use a private repository on the Marder Lab GitLab instead. That's what it's for, and it serves as a central place for code exchange among current lab members.
Writing Code
Write code for humans, not machines. Code is meant to be read by humans and understood by humans, and running on silicon is only incidental.
On the other hand, remember that code is also meant to be run on machines. Make sure your code doesn't run 100x slower than what is possible. Choose the best language for your task.
Misc. Resources
The lab maintains a formatted USB flash drive with Manjaro 17 on it. Octopi is the package manager utility for Manjaro. It is important to make sure that Octopi has installed the most recent versions of packages before attempting any complex job. This can be done by syncing and then installing in either the GUI or through the console.
[marder@chaos ~]$ sudo pacman -Syu
The -S flag syncs the database and the -yu flag updates automatically with the "yes to all" option. You can search to see if a package is installed using:
[marder@chaos ~]$ sudo pacman -Qs STRING1 STRING2 ...
and to see if it is in the Pacman database through:
[marder@chaos ~]$ sudo pacman -Ss STRING1 STRING2 ...
Running Code
Small runs: on your own computer
Medium runs: On gilgamesh and enkidu
Big runs: The Brandeis cluster.
Software
Brandeis licenses a great deal of useful software to its students and researchers. The complete list can be found through Information Technology Services. In addition, Brandeis provides hardware and protocols to access a high-performance computing cluster.
MATLAB & Mathematica
MATLAB and Mathematica are both available from LTS. There is a student version for undergraduates and graduate students and a "staff/faculty" version for the rest. This does not affect the actual software, but the permissions Brandeis has purchased to license the software to you. Follow our MATLAB Installation Guide to get started.
Xolotl
Xolotl is a fast single-compartment and multi-compartment simulator written in C++ with MATLAB wrappers. It simulates conductance-based models.