Bioinformatics for Evolutionary Biology

Topic 1: Introduction

Topic 1: Introduction

This is the introduction from years gone by

We are working on servers provided by Compute Canada, hosted on the WestCloud system. The only task now is to install a few programs we’ll need later on, and login to your account.

Accounting: We have created an account for each student. You may find your account information in this table. Take note of your username, and server ip address. In the instructions, if you see the placeholders serveruser and serverhost replace them with your own information. You should have received your server password separately.

Accompanying material:

Software: (can be completed early)

Your local workstation (not the server) will need to be fitted with some software for programming in R, and connecting to servers. The servers will be fitted with the rest of the software already.

On your computer, you will need:

  1. Rstudio, the de-facto Integrated Development Environment (IDE) for R. The free edition will suffice for this course.

  2. Tool to transfer files over SFTP (secure file transfer protocol) or SCP (secure copy). We can use these tools to browse and transfer files back and forth between your workstation and the server. Get one of the following options:

    • Graphical option 1: Cyberduck (Mac & Windows). This is a graphical tool that will allow you to transfer files to/from a remote storage location (+dragndrop), and edit remote files with a local editor. We will also cover how to perform these operations from the command line using other readily-availble tools.

    • Graphical option 2: MobaXTerm (Windows only). MobaXTerm combines a graphical terminal emulator, a graphical file-transfer tool, an X11 server (to use graphical applications from the remote-side), and more. Comes in two formats: “portable”, and “installer/msi”. The difference: the portable is installed simply by uncompressing the contents of the zip in a folder of your choice (this is useful if you want to carry it around on a USB stick). The “installer edition” will run an installation wizard and get added to your start menu and windows environment.

    • Command line option_1: pscp.exe/psftp.exe from the PuTTy suite (Windows only). Install the MSI version to get all the utilities at once. It comes in 32bit and 64bit editions. Unless you know your workstation has a 32bit cpu or operating system (which is uncommon in 2019), pick 64bit.

    • Command line option 2: Other platforms (Mac & GNU/Linux) have sftp and scp tools installed out-of-the-box. We will also teach you how to transfer files from the command-line using these. This knowledge will come in handy for scripting.

  3. A (good) terminal emulator. To interact with command line programs, you will need to type a terminal emulator, and parse results.

    If you don’t have a terminal emulator, we recommend you install one from the list that follows (there are many more out there):

    • iTerm2 (Mac Only). Fuller-featured replacement for the default Terminal application (see feature list). The built-in terminal application which comes with MacOs is also decent.

    • MobaXTerm (Windows). This is a one-stop shop for working with remote computers from windows. It has a good terminal, and it also doubles as a file transfer tool.

    • putty.exe from the PuTTy suite (Windows). This is a second choice if Moba doesn’t work. Putty is a “classic” terminal emulator on Windows, because it is stable, and simple to use. Get the .msi (installer) version which has all of the utilities. It comes in 32bit and 64bit editions. Unless you are working with a 32bit cpu or operating system (which is uncommon in 2019), pick 64bit.

    • For GNU/Linux environments (e.g. Ubuntu). Your desktop environment’s default terminal application will work just fine, e.g. gnome-terminal, or xfce-terminal.

    Features of a good terminal emulator (things to look for):

    1. Options for scrolling and searching.
    2. Reliable text selection, copy-paste, both in, and out.
    3. Sensible translation of keypresses (especially true of ALT, CTRL, ⌘cmd, PGUP, PGDN, DEL, BCKSPC, ⊞ Win, FN, and arrow keys, whose meaning can be open to different interpretation across different platforms).
    4. Proper display of characters from different unicode planes (natural languages, emojis, etc.)
    5. Configurable appearance (font sizes, colors, and transparency).
    6. Multiple tabs/sessions in the same window.

    Note: I would advise against using Window’s CMD prompt for this purpose because it’s too minimal. In a pinch, it can do, but it’s worthwhile to spend a few minutes on getting a better emulator with better defaults.

    Note 2: If you’re curious why it’s called an “emulator”, you may read about their ancestor: “real” terminals.

Configuration: (can be completed early)

This section assumes that you’ve already followed the steps to install software above for your environment. We have provided steps to configure rapid authentication between your computer and the server. The steps are meant to be done in sequence and should take about 15 minutes to complete once the software above is installed.

NOTE, WE ARE NOT USING SSH-KEYS FOR THE WORKSHOP THIS YEAR - UNLESS YOU ARE USING PUTTY PROCEED TO “Testing it all”

Configuration steps, in sequence :

  1. Generate a key for authenticating to your assigned server. Follow steps in Generate A Key.

  2. Load the key in your ssh-agent. Details in Configure-SSH-Agent

  3. Configure the server account to authenticate with your new key. Take note of your assigned server hostname (IP), username, and password and follow details in Finalize Tool Config. This will let you login to the server without remembering usernames, ips, or keys.

Testing it all: (can be completed early)

Log into ComputeCanada Virtual Machines using ssh (terminal). Recall that you will find your username and ip address in the table you were sent via email. We use serveruser and serverhost as placeholders for this info.

The information presented by the servers when you connect to them is shown here in Fingerprints.

Your screen should give you a prompt on the server, and should print some server text similar to this (ignoring visual terminal differences aside):