This tutorial is not one of those! It is quick, hands-on, and we’ll jump right in with little explanation (OK, there will be some). But I encourage you to read those tutorials, especially Titus’s tutorials as you will learn a lot from them.
Snakemake is a versatile pipeline manager for doing a lot of bioinformatics analysis, but handling wildcards in snakemake is not transparent, and here are some tips and tricks that we have gathered to help you process lots of files easily.
A very simple post about setting up reverse SSH tunneling. This is how to get to a machine that maybe behind a firewall, when you are not behind the firewall (though you need to be to set it up!)
The tools fastq-dump and fasterq-dump are used to extract reads from the Sequence Read Archive and export them to (for example) fastq format. There is a hidden gotcha that you should be aware of using fastq-dump to extract data.
Sometimes when you look at a record in RefSeq/GenBank it is a virtual record that is really a pointer to a set of records. For example, the entry for Callorhinchus milii isolate IMCB2004 points you to the WGS records AAVX02000001-AAVX02067420. Here we show how to get these records.
As part of the STRIDES initiative, the NIH has moved the SRA to the cloud. This includes the metadata, and the whole SRA archive. Here, I show how to set up a new instance to access the sequence read archive in the cloud. In a separate post, we’ll explore getting the metadata out of bigtable.
We have just made the transition of most of the servers from CentOS6 or CentOS7 to CentOS8. Most everything should be unified on CentOS8 (unless you know what you are doing).
This brings several new changes (as always) and some added benefits. This is a summary and does not reflect all the changes.
To check your servers operating system version, use this command:
cat /etc/redhat-release
Software Installs
The biggest changes should allow you to install software by yourself! There are two different ways you can install easily install software if either are supported by whatever you are trying to install.
Please note, that if you do not want to do either of these, it is fine. Just let me know and I am happy to install software for you (and everyone else) to use.
Conda
A lot of bioinformatics software is now available via conda. It is installed globally, but you can not install packages globally. You can create your own environment and then use that.
The first time you use conda, you will need to create a local environment. Start with:
After this has run, any time you need to use conda, you can use the command
conda activate <username>
And you will get into your environment.
A simple test is to install my fastq-pair package and see if it works:
conda install -c bioconda fastq-pair
once it has installed, this command should give some output
fastq-pair
Docker
Another popular way of sharing software is by using docker. We don’t support docker, but we support a drop-in replacement called podman.
Anywhere you see docker, you can use podman instead. For example, we created a focus docker image for the cami challenge described here: https://hub.docker.com/r/linsalrob/cami-focus and you can install that with
podman pull linsalrob/cami-focus
pip
If you are trying to run some python code and don’t have the appropriate library, you should be able to use pip install as a user to add it. For example:
pip3 install --user xmlschema
this will install the appropriate libraries into your account. Of course, if you want them globally installed, just let me know.
Deprecated software and alternatives
Deprecated
Alternate
Used For
Alternative
screen
tmux
Virtual terminals. You should use this!
tmux has similar keys to screen but uses ctrl-b instead of ctrl-a to access them. eg. create a new window: “ctrl-b n”
cd-hit
mmseqs
Clustering sequences
cd-hit is still an option if you want, but mmseqs2 appears to be much better
For our search SRA engine, we want to remove the ribosomal RNA operon (not just the 16S gene, the whole opeon) before we run the search, otherwise all our hits are to the rRNA genes!
Here’s who you can use PATRIC to download a genome and remove the 16S region. For the example, we’re going to use a Faecalibacterium prausnitzii genome, because, well why not!
First, we download the genome and convert the GTO to fasta
Next, we use a couple of helper scripts from the EdwardsLab Git Repo. We start by converting the gto to a tab separated file with features and their locations
Now we can trim out the sequences and keep only the non-rRNA regions. Note that here I trim a little extra off the sequences, but you may not wish to do that
We use anvi’o for all sorts of ‘omics analysis, but it is a pain to run on your laptop as you can’t watch netflix and youtube, check facebook, and post to twitter at the same time (well, you can, but why would you?).
Instead, we have the latest version of anvi’o installed on tatabox, one of the machines in our HPC environment. After you have run all the anvi-commands, very often you want to launch anvi-interactive, but tatabox is safely behind a firewall.
We can make a two step connection to tatabox using port tunneling. Depending on how you do this, you will need three terminals open.
First, start anvi-interactive on tatabox, and keep that window open (or use screen or tmux which are much better alternatives).
Next, open a terminal on your computer, and use this command. Change XXXX to a port near the on that you ssh to on edwards-data, change YYYY to the port that you normally use, and change USERNAME to your USERNAME.
Next, open another terminal (or if you are using screen or tmux, open a new terminal emulator), and login to edwards-data.sdsu.edu using your normal account (the USERNAME from above).
On edwards-data, run this command:
ssh -L XXXX:localhost:8080 -N USERNAME@tatabox
Finally, on your laptop, you should open a new browser window and paste this URL:
http://localhost:5555/
You should see the anvi-interactive interface appear, and you can get to work.