Start Science Here!

Binder MadeWithLove

An introduction to scientific programming, Python, molecular dynamics, and more

Welcome to start science here! This project is meant to introduce you to the world of scientific programming and teach you the most important concepts. This project is subdivided into different main topics. You can dive right into the Python tutorial by visiting: https://mybinder.org/v2/gh/kevinsawade/start-science-here/HEAD?urlpath=%2Ftree%2F. If you want to take the full course, take the recommended route:

  1. Working with Linux from the command line
    • Introduction to the Unix operating systems, the shell, commands, programs.

  2. Python
    • Basics: operators, data types, functions, classes

    • Intermediate: OOPs, generators, closures, decorators, scopes, context manager

    • Built-ins: os, shutil, glob, re, datetime, doctest, unittest

    • Packages: NumPy, MDTraj, matplotlib, MDAnalysis, pandas

    • Advanced: metaclasses, function factories, multithreading, async, C extensions

  3. Gromacs
    • Run a molecular dynamics simulation from the comfort of your own home

  4. Installing the Windows subsystem for Linux (Windows users only)
    • Learn how to run all of the above locally on your Windows PC.

  5. Installing Docker
    • platform independent runtimes

  6. Setting up your own python
    • The next step towards independence

  7. Git
    • Version your code for backups and sharing with others

  8. Your first project
    • Build your own python library that other people can install and use.

There is no set up required to follow along with this tutorial. It can take three to four days to work through everything (the Python tutorial is very long, but can be put on hold after the beginner tutorials).

Prerequesites

  • A working internet connection

  • An up-to-date browser (Chrome, Firefox, Safari, Opera, Edge)

0. Proposing Changes and Issues with start science here

Before you leave this page and start the tutorials check out the pages Raising Issues and Propose Changes.

We are trying to continually improve start science here and are more than happy if users bring us feedback. These two pages allow you to give us such feedback. Be it spelling mistakes, factual mistakes or bugs. You can also raise issues on GitHub if you run into any problems that you can’t fix yourself.

1. Linux tutorial

Start the recommended route with the linux tutorial here: Linux tutorial.

2. Python

The longest part of Start Science Here! is the Python tutorial. If you feel confident with Python you might just glimpse over the quick reference at Python Tutorial. Otherwise you can open this Repo in binder and start making your way through the notebooks.

3. Windows Subsystem for Linux (Windows users only)

You now have a pretty solid understanding about unix-like operating systems and know how to work with a command-line interface. Binder makes it very easy to learn because all you need is a browser and a working internet connection. However, we can’t use binder forever, at some point we will want to switch to our own computers. The caveat is that there are three prevalent OSes. Mac OS X and our favorite Linux distribution (Ubuntu) are very similar, but Windows 10 is very different. Luckily, there is the Windows subsystem for Linux, which gives you a working Ubuntu machine for your Windows 10 PC. Here’s a summary of how to install the latest version of Ubuntu: Windows subsystem for linux.

4. Installing Docker

Docker allows to bring you pre-configured ubuntu installations. Instead of writing pages upon pages of installation instructions for all kinds of programs, we will install docker and can provide you different environments by calling:

$ docker exec -it kevinsawade:gromacs bash

For a working gromacs installation, or

$ docker exec -it kevinsawade:conflict-resolution

Although some gromacs exercises can be done on binder, docker is much easier and faster for larger computations. Follow these instructions to install it: Installation instructions for Docker.

5. Gromacs

Gromacs is a simulation package for MD simulations of proteins, DNA, and lipids. It is not only fast, utilizing CPUs and GPUs, but also flexible and extensible. We use it for all-atom and coarse-grained simulations of proteins and DNA, but also for advanced sampling techniques like replica exchange and path sampling. There are great tutorials for gromacs available at: http://www.mdtutorials.com/gmx/

I adjusted the first tutorial “Lysozyme in water” to work with binder. So follow along at: Gromacs Tutorial.

Having Problems?

6. Setting up your own Python

7. Git

8. Your first project

Indices and Tables