Skip to content

Software

Eric Marty edited this page Sep 12, 2023 · 15 revisions

Page Editor: @allopole
To request edits to this page, open an issue, and tag @allopole


Overview

There are some basic computational tools that will make computational research projects much easier if you learn them early, some of which are more specific to coding practices, but some are also useful for the presentation of work:

  • The Linux command line, as well as a command line text editor such as emacs or vi
  • Simple text file processing tools, such as sed and awk, and grep for searching for phrases in files (useful when you are debugging)
  • Scripting languages such as bash (or more usefully perl or python)
  • A build utility such as make, CMake or SCons
  • A job scheduler such as PBS
  • LaTeX for presenting mathematics in written documents
  • A literature reference (bibliography) manager (such as Paperpile.com)

Code

R/RStudio

Most data analysis, simulation, statistical programming, and figure generation in the Drake Lab is conducted in R. R is a free and open source language and environment for statistical computing and graphics. See here for more general details about R. There are many resources for learning and using R, some additional details about how WE use R in the Drake Lab can be found below

Install R HERE

RStudio is an open source integrated development environment for R. Though you can interact with and code in R without RStudio, this software provides much additional functionality including a text editor that supports direct code execution, tools for workspace (data) management, plotting, and reproducibility. Put simply RStudio will make your relationship with R a lot easier!

Install RStudio HERE

Packages are extensions to the core R language. We maintain a list of packages that we have found useful in the Drake Lab here.

MATLAB

MATLAB is a proprietary programming language developed by MathWorks that allows matrix manipulations, plotting of functions and data, and implementation of algorithms. It is currently not used much in the Drake Lab due to its overlap in functionality to R. When possible, new code should be written in R, but some familiarity with Matlab may be necessary to reproduce published analyses/simulations or for collaborations.

Download MATLAB through UGA's license HERE

Python

Python is an open source, interpreted high-level programming language that emphasizes code readability and parsimony. It is frequently used for data analysis and statistical programming and so like MATLAB has significant overlap with R in most of our use cases in the Drake Lab. Check out this INFOGRAPHIC about the differences between (and pros and cons) of R and Python.

Download Python (along with Anaconda and the Python editor Jupyter)HERE

((Which version of python should we recommend? 2 or 3?))

JavaScript

JavaScript is a high-level programming language that, along with HTML and CSS, makes up the core technologies of the World Wide Web! In the Drake Lab have used JavaScript to develop embedded interactive graphics for websites to allow users to explore data. Check out our ZooVis website to see some examples. Some of the java script libraries (sets of additional functions that are somewhat like packages in R) that we've used over the course of this project include jQuery, D3, DC, C3, and Crossfilter.

Composing and editing of HTML, CSS, and JavaScript can be a lot easier with a good text editor some solid options that we use in the Drake Lab are:
Zed
Sublime

Text Editors

LaTeX

LaTeX (LAH-tekh) is a document preparation system which is widely used in academia, and commonly used in the Drake Lab for manuscript preparation. Rather than the WYSIWYG style of word processors like Microsoft Word you compose documents in plain text when working in LaTeX. Markup tags (a sort of formatting code) allows you to specify everything from the layout of the document to the italicization of a single word. This plain text and formatting code can then be compiled into a PDF or other document file type. Additional functionality is available through a variety of useful packages. Here's a useful introduction for beginners. You can compose, edit and collaborate on LaTeX documents using Overleaf and use RStudio to compile on desktops.

GIS (Geographic Information Systems)

ArcGIS/ESRI/QGIS

ArcGIS is a proprietary software from the Environmental Systems Research Institute (ESRI) used for viewing and making maps and analyzing geographic data. It also provides access to many useful geographic data layers either created or curated by ESRI. We do a lot of our GIS and geographical data analysis in R in the Drake Lab but there are many resources (I know they exist but I don't know what they are) at UGA to get really beautiful maps out of ArcGIS.

QGIS is a free and open-source desktop application for viewing, editing, and analysis of geospatial data. It can be a good free alternative to ArcGIS as it allows GUI based interaction with data layers in a way that GIS in R does not.

Download QGIS HERE

These tools have been used occasionally in the lab but we generally recommend R for GIS.

Miscellaneous Utilities

Pandoc

Pandoc is a free and open source document-converter software. Most commonly in the Drake Lab we use it to convert RMarkdown documents into PDFs.

GIMP

GIMP is a free, open source cross-platform raster graphic (image) editor. It can be used as an alternative to Photoshop. In the lab it is widely used for photo editing including photos for publications (e.g. micrograph photos, equipment set up) and web design.

Download GIMP HERE

Inkscape

Inkscape is a free, open source, vector graphics editor. It is useful for generating line drawings, concept figures, etc. We also find it handy to extract images from published work.

Download Inkscape HERE

PDFSplit!

PDFSplit! is a free online tool we use to split a PDF into multiple different files.

Find PDFSplit! HERE

PDFtk

PDFtk (or PDFtoolkit) is a free open source cross-platform tool useful for merging and splitting pdf documents.

Download PDFtk FREE HERE

Lab Links

Clone this wiki locally