Skip to content

Development Tools

This section contains descriptions of common tools that we use for development.

If you're looking for operations tools, you likely meant to go to the Operations Tools section.

Recommended Installs

What you install from below will depend on the projects in which you are involved. Jax has many software stacks with which we work, but there are really two predominant full-stack development environments, Python and Java.

Most of the Clinical projects and Human Phenome Ontology (HPO) are Java/Groovy stack which uses MySQL databases. Many of the research projects use Python with a PostgreSQL database.

However, projects can vary, for example the Glaucoma Discovery Platform uses Python and MySQL.

Before you install too many tools, find out what your first one or two projects will be. Many of the tools you will want if working on Python projects will only be installed under a virtualenv, in which case the project README.md should give instructions for setting up that environment.

Development Tool Index

Messaging

  • Slack
    • JAX-wide slack instance here: https://thejacksonlaboratory.slack.com
    • IT will set up an account for you, and your colleagues will get you added to relevant private channels.
  • Microsoft Teams

Languages

  • Python3
    • PyEnv is a useful tool to manage multiple python version on your local machine.
      • Install with Homebrew on MacOS brew install pyenv
    • Python Poetry is a tool for managing python projects , virtual environments, and dependencies.
  • Java
  • Typescript

UI Development & Frontend Frameworks

  • npm - Software registry for JavaScript code
  • npx - Tool for managing and running local versions for npm
  • Angular - Application Framework used to develop the majority of CompSci web applications
  • Nx - Build system with support for key tools used in development of Angular projects

Backend Web Frameworks

IDEs

JetBrains

We have a license for JetBrain projects (contact Daniel Durkin, Gregg TeHennepe)

You can also install the jetbrains toolbox to manage all of these tools. - ToolBox (Toolbox for managing JetBrains tools)

JetBrains License

To get a Computation Sciences license for JetBrains, submit a ticket at the Computation Sciences Helpdesk Daniel Durkin or Govindarajan Ramamoorthy to get added to this license, and then you should be able to download and install the appropriate tools for your projects from the JetBrains site: https://www.jetbrains.com/

Visual Studio Code

Containerization

  • Singularity
    • Singularity is a tool to run container images on a High Performance Computing (HPC) system.
  • Docker
    • Docker is a tool to run container images everywhere but HPC, which is most use-cases.

OCI: Open Container Initiative

The Open Container Initiative is an open governance structure for the express purpose of creating open industry standards around container formats and runtimes.

This is not likely to be something you use directly, but it's good to prioritize using images and containers that are OCI complient.

For more information on containerization, see the Containerization page. operations documentation page.

Databases

  • Postgresql
  • Mysql
  • BigQuery
  • Neo4j

SQL Clients

Object Relational Mapping (ORM)

Database Tools

  • pgAdmin
    • pgAdmin is a graphical user interface for browsing your Postgresql database
    • Alternatives include DataGrip
  • DataGrip
    • Tool from Jetbrains to make database work easy.