Difference between revisions of "Amazon Snapshot"

From Genome Analysis Wiki
Jump to navigationJump to search
Line 59: Line 59:
 
These can be quite substantial and because of that we recommend you create separate volumes like this:
 
These can be quite substantial and because of that we recommend you create separate volumes like this:
  
* Your input FASTQ files for the aligner. This may have been done for you by some vendor when they put your FASTQ data on an S3 volume. If so, your vendor will need to provide you with the details of how to access your FASTQ files.
+
* Your '''input FASTQ''' files for the aligner. This may have been done for you by some vendor when they put your FASTQ data on an S3 volume. If so, your vendor will need to provide you with the details of how to access your FASTQ files.
  
* The output of the aligner (BAM files)
+
* The '''output of the aligner''' (BAM files)
  
* The intermediate files of the SNP caller (GLF files)
+
* The '''intermediate files of the SNP caller''' (GLF files)
  
* The final output of the SNP caller (VCF files)
+
* The '''final output of the SNP caller''' (VCF files)
  
 
<code>
 
<code>

Revision as of 12:58, 20 May 2013

Back to the beginning: GotCloud

GotCloud is made available in various forms. It is distributed as conventional packages for Ubuntu and as compress TAR files for others. In addition the source is available from github. In Amazon Web Services the software is made available as an Amazon Machine Instance (AMI).

The GotCloud software itself only requires a few packages to be installed for Ubuntu installations (java-common default-jre make libssl0.9.8). However, there are a number of things you may well want to do in getting your data ready for processing (access data on S3 storage, compile GotCloud or others, or access the EC2 application data). Assuming this is the case, the GotCloud AMI has installed these packages on Ubunutu. If you need to run on some other distribution, you may need to install their packages.

 sudo apt-get install java-common default-jre make libssl0.9.8 
 sudo apt-get install libnet-amazon-ec2-perl
 sudo apt-get install make g++ libcurl4-openssl-dev libssl-dev libxml2-dev libfuse-dev

You will almost certainly need to fetch and install your own reference files - regardless of the details of the system you are using. Finally, you'll need access to your FASTQ files - either copied to the Amazon instance or perhaps accessible from S3 storage.

If the GotCloud instance is unacceptable for some reason, you may install the software and reference files wherever you'd like (read about this in Installing from a Debian package).

Your first task is get an AWS account and keys so that you can use the AWS EC2 Console Dashboard (see https://console.aws.amazon.com/ec2/). From here you can launch instances prepared by others or create your own. We cannot assist in this step - Amazon has plenty of documentation. Once you are at the AWS EC2 Console Dashboard, you're almost ready for GotCloud.


Your First Instance

You'll need to know some details when launching an instance:

  • Launch an Instance - use the GotCloud instance running 64 bit software.
  • Instance size (memory and number of processors). The pipeline software will require at least 4GB of memory (type m1.medium) and can use as many processors as is available.
  • Storage for the instance refers to the size for root (/) partition. This can be quite small, as little as 8GB can work. Of course if you intend to bring other files/programs to the instance, you may need to increase this to something a bit larger (e.g. 30GB).
  • Data Storage for the aligner or SNP caller (see below)


Prepare Your Instance

You will also want additional storage volumes for:

  • Local Storage for the instance refers to the size for root (/) partition. This can be quite small, as little as 8GB can work. Of course if you intend to bring other files/programs to the instance, you may need to increase this to something a bit larger (e.g. 30GB).
  • Data Storage for the aligner or SNP caller will likely be far larger than the system you are creating.

You'll need to create EBS Volumes for the input and output of the aligner and SNP caller. These can be quite substantial and because of that we recommend you create separate volumes like this:

  • Your input FASTQ files for the aligner. This may have been done for you by some vendor when they put your FASTQ data on an S3 volume. If so, your vendor will need to provide you with the details of how to access your FASTQ files.
  • The output of the aligner (BAM files)
  • The intermediate files of the SNP caller (GLF files)
  • The final output of the SNP caller (VCF files)

 wget -qO -  share.sph.umich.edu:gotcloud/snapshots.txt

 #                           GotCloud SnapShot List
 #
 #   Create an EBS volume from these snapshots. Use the AWS console or
 #   with an ec2-api-tools command:
 #
 #     ec2-create-volume -K ~/ec2/EC2-X509-private_key.pem \
 #       -C ~/ec2/EC2-X509-cert.pem -s 40 \
 #       --snapshot snap-14ea7632 --region us-west-2 -z us-west-2a
 #
 #                         Availability
 #  Zone         Snapshot       Size
 us-west-2a     snap-14ea7632   40GB

This will create a device which you need to mount in your instance. This will create a device like /dev/sdf, which unfortunately actually translates to the device /dev/xvdf in your Linux instance. Once the volume is ready, mount it by logging into your instance with ssh and issuing the command:

 sudo mkdir -p /gotcloud
 sudo mount /dev/xvdf  /gotcloud    # or whatever device yours is
 df -h

This will make the GotCloud software available under the path /gotcloud/bin etc. Each time your instance is started, you'll need to mount this volume. You may want to create a small shell script to mount the device.

In Your Data the storage volumes will vary based on what you data you have. The sequence data might already exist, provided by a vendor who created the sequence data. If not, you'll have to create a volume for this and copy your data into it. You'll have to mount volumes for all three types of data (sequence, aligner and umake).

You should expect the three data volumes will all need to be the same size. That is, if your sequence data is 300GB, then you'll need an additional 300GB for the aligner output and then another 300GB of storage for the umake output. We suggest you consider making each set of data be separate volumes.

You may also find that your sequence data is too large to be easily handled in one go, so you might choose to only use the aligner/umake on part of your sequence data, capture the files of interest from umake, and then go back and rerun the software with the next bit of sequence data.