Install Anvi’o on an AWS Instance

We wanted to use Anvi’o on a windows machine, but that is impossible, so we set up an AWS free instance with anvi’o 5 up and running for the windows users. Here’s how to do it.

Setting up an AWS image

First, you need to fire up a free instance of a t2.micro machine on AWS. Login to you account, and click launch a new instance.

If you are in US Ohio or US Oregon there is an image I made called ANVI’O 5 with the latest version of anvi’o.

If you want to make your own image, here’s how:

Choose an ubuntu machine that is free tier eligible.

And then choose a t2.micro machine:

NOTE: For the standard anvi’o 5 install and working through the tutorial you will need about 15GB  of disk space. You may need to increase the disk space available during setup.

Finally, edit your security groups. You need to add HTTP and HTTPS that are chosen from the pull down menu, but you also need to add a single special rule for port 8080 traffic that anvi’o uses.

Once the machine has booted up, you need to log in. Don’t forget because this is an ubuntu instance, your username will be ubuntu.

ssh ubuntu@18.188.65.122

(Note the ip address will not work for you!)

First, get the installation instructions that are available here.

curl -Lko AnvioAWS.txt https://edwards.sdsu.edu/rob/anvio/AnvioAWS.txt

Then just run this as root:

sudo bash AnvioAWS.txt

This will churn through installing a bunch of software for you and should be automagic.

The step that takes a long time, “gcc -pedantic -Wall -O3 -c -o training.o training.c” is during the installation of prodigal, the gene caller.

Now that installation is complete, you need to source the anvio virtual environment

source /usr/local/virtual-envs/anvio5/bin/activate

And now you are up and running, you should be able to run the self test module:

anvi-self-test

When you get to the pause where anvio’o says:

* The server is now listening the port number "8080". When you are finished, press
CTRL+C to terminate the server.

You can head to your browser and enter your AWS IP address followed by :8080, something like this:

http://18.188.65.122:8080

and you should see the first anvi’o output page.

Adding other users

As an aside, if you are setting this up for a different user, you can enable a username and password for them. Note that by default AWS has password logins disabled. However, you can edit sshd_config:

vi /etc/ssh/sshd_config

Now change the line that says:

PasswordAuthentication no

to

PasswordAuthentication yes

and then restart sshd:

service sshd restart

Now if you add users using adduser

 

Now you can use it anywhere!