Computational Project Resources
Git / Github
All computational projects in the lab are stored and coordinated through the version tracking program git and the website Github. Dr. Meyer can invite you to become a member of the organization account as soon as you have made a Github account.
Most projects in the lab roughly follow continuous integration principles. That is, individuals make desired changes to the project’s code on their own branches, then regularly merge their changes with the whole group’s version. We use GitHub actions to check our code for stylistic rules, correctness, and build the project’s outputs (papers, programs, etc).
Connect to Lab server via VS Code
The lab has a high-performance server that can be used for programming and running programs. Dr. Meyer is able to create accounts on this server for you. To connect remotely to this server, the most convenient interface is using VS Code as IDE and install “Remote - SSH” extension there.
- Work remotely via VS code
- Some common issues on SSH
- Some other useful extensions: SVG Viewer, Live Share
The lab primarily uses Python for its computational analysis. This language is one of a few that offer the right breadth of capabilities for probabilistic and scientific programming. The syntax is likely familiar if you have a background in Matlab or C++. Software Carpentry offers two excellent tutorials for introducing yourself to the language:
Some common Python packages we use:
- Basics: numpy, scipy, pandas
- Machine learning and data-driven methods: scikit-learn, TensorLy
- Plotting: matplotlib, seaborn
We are increasingly using Julia for new projects in the lab. The language provides a unique breadth of tools necessary for our work, Matlab-like syntax, and valuable benefits in language expressiveness.
Some common Julia packages we use:
- Deterministic modeling: Optim.jl, DifferentialEquations.jl, ForwardDiff.jl
- Stochastic modeling: Turing.jl
- Machine learning and data-driven methods: TensorDecompositions.jl
- Plotting: Plots.jl, Gadfly.jl