|
| [Back to UndergraduateClass]
Lab 7: Sequence Alignments (10/28/2005)
By the end of this lab, you should:
- be able to find similar proteins to your protein of interest
- have an idea of how to perform sequence alignments using available online tools
- know where to look for further help on using these tools
0. Before we get started...
- We need to have some sequences to work with in this lab. In the last lab, we learned how to look up sequence information in one of the many databases available online. So I'll let you pick your favorite proteins to work with - look up the protein sequences of the genes of your choice and download them to your home directory as FASTA files.
Why not the nucleotide sequence? Well, many different triplet codons translate to the same amino acid and what ultimately determines the structure and thus, function of the protein is its amino acid sequence. So most of the time, it makes more sense to align protein sequences rather than nucleotide sequences. Obviously, this is not a strict rule -- there are definitely times when you want to align nucleotide sequences, e.g. for non-protein-coding sequences, regulatory regions of DNA, etc etc.
1. Finding similar sequences using BLAST
First of all, why do you want to find similar sequences? As an example, say you stumbled upon a new protein and somehow got a hold of its sequence. The only problem is that you have no idea what the protein's function is! One way to start figuring out the function using bioinformatics (instead of wet-lab experiments) is to find a bunch of other sequences that are similar to your protein. If other people already figured out the functions for that set of proteins, then you can infer that your protein probably has a similar function, purely based on sequence similarity. Obviously, this is not a guarantee that your protein actually has that function (the ultimate proof is through experiments), but it's a pretty good start....
In lecture, we've been talking about aligning two sequences and assigning scores to an alignment such that it will give us information about how similar the two sequences are. We've also looked at the Needleman-Wunsch algorithm and started investigating the basis for the scoring schemes. While the Needleman-Wunsch algorithm is relatively easy to implement using dynamic programming, as Prof Holmes mentioned, it is quite time-consuming and memory-intensive to run on sequences of any significant lengths.
Yet, all bioinformatics students learn about this algorithm, because it gives a good intuition of how alignments can be performed and more importantly, what the scores mean. When you want to alignments of "real" sequences, you would probably turn to some of the already available alignment tools. (But the idea behind the scores still hold - so that's why it's very important to understand what alignment scores means!)
Most of you have probably heard of BLAST as a program for finding similar sequences, available online from the NCBI website. So we'll start there. BLAST is linked to many of the sequence databases, so when you enter a query sequence, it essentially performs many many alignments for you against the sequences in the database you choose and give you the set of highest scoring alignments. Obviously, it's not performing thousands and thousands of Needleman-Wunschs or you would never get a result! In fact, BLAST uses a heuristics-based approach by first splitting up the sequence you enter into a bunch of "words", scanning for these words in the sequence database, and then using the search results to seed alignments extending from the found words. You can learn a lot more about the actual workings of BLAST here.
Having an already-written alignment tool available doesn't necessarily mean life becomes simple! Look at all the choices you have before you even enter a query sequence! Luckily, the people at NCBI have spent a lot of time writing documentation on BLAST, so check out this table to see what the differences between all the various BLAST programs are. For now, just focus on the ones for protein queries.
- Since our goal here is to look for sequences similar to the query sequence and our query sequence is most likely longer than 15 residues, blastp seems like a decent choice. So select blastp from the table (or from the main BLAST page).
- You should now see a page with a form containing many boxes for you to fill in. The main text box labeled 'Search' is where you put in your query sequence. Not sure what kind of format the sequence should be in? Click on the link under 'Search' for an explanation.
- How do we tell BLAST where to look for similar sequences? That's specified by the database we use for the query, chosen by the 'Choose database' dropdown box. To learn what the different databases are, click on the link under 'Choose database'. Choosing an appropriate database is no laughing matter, since the results you get completely depend on which databases you choose to query. For example, if you only cared about finding similar sequences in human, you may want to use the 'est_human' database as opposed to the 'nr' database, which would search all sequences regardless of organism.
- There are many other settings for blastp and I suggest clicking on the explanation for each to find out what that setting is for. If you're really itching to do your first alignment, just leave everything at its default value and click on the 'Blast!' button.
- Once you submit your request, you'll be directed to a page with your Request ID. You can either wait a bit to let your request go through the queue or ask for your results right away with the 'Format!' button. (Note: Hitting Format doesn't make your request go through faster...it just makes it look for the result of your request on the server right away and if it can't find it, it'll keep looking every couple of seconds/minutes.)
- When the server finishes processing your request, it'll show you the set of sequences it found. Congrats! You just performed your first sequence alignment! Scroll down a bit and you'll see a big list of sequences that matched your query sequence pretty well. Associated with each sequence is a 'score', which is the pairwise alignment score between that sequence and your query sequence. You'll also see something called an 'E-value', which is the 'expect value', and essentially tells you how statistically significant your alignment is (more here).
Note that the alignment scores are based on the scoring matrix that BLAST used - for protein sequence alignments, this is a very important setting and how you choose an appropriate matrix depends on many things, including what kind of sequence similarities you want to detect, how long your sequences are, etc. Here's a longer explanation of substitution matrices.
(If you're interested in a much more in-depth look at sequence alignments, here's a great BLAST tutorial written by Dr. Stephen Altschul, one of the main guys behind BLAST.)
2. Aligning sequences using Exonerate
While BLAST is great for many applications, sometimes all you really want to do is align two sequences you have. Exonerate is a great tool for this purpose. It is meant to be downloaded to your own personal computer and so there is no online submission forms, etc. If you just want to play around with it for this lab, you can use the copy I've installed in the be131 home directory. For example, if you have two FASTA files in your home directory named one.fasta and two.fasta, you can perform a very basic ungapped alignment of them by:
$ ~be131/exonerate-linux/bin/exonerate one.fasta two.fasta
There are many many options available for running the Exonerate (see the manual page), including running the full exhaustive alignments like the Needleman-Wunsch example we did in class, specifying a gap penalty model, etc etc. Try out a couple of these options and see what happens.
The user's guide is a great resource for learning about Exonerate.
(If you want to play around with Exonerate more at home, it should be pretty easy to install since they have binaries for most operating systems on the site.)
3. PROSITE, etc
But what if the sequence you're interested in just isn't similar enough to any other known sequences, so by sequence alignments, you can't really figure out what your protein does? Earlier in class, Prof Holmes mentioned that there are a number of secondary databases which contains information about protein families, domains, motifs, etc. Some of these databases can also help you find similar proteins.
Let's first take a look at PROSITE. Either by pasting in a query sequence or an accession number of the sequence, you can scan the database to see if your protein contains any of the known protein domains and sites, with the idea that this will help you figure out what the function of your protein is. Depending on what your protein is, you may/may not have detected some binding sites, phosphorylation sites, etc etc.
Another thing you can do with your protein sequence is to try to predict its secondary structure using one of the few prediction servers: PSI-PRED, PredictProtein, and JPRED. On most of these sites, you submit your protein sequence along with your email address, and when the results are ready, you get a notification email.
Finally, there are a couple of databases which contain classifications of structural elements in proteins, such as SCOP, CATH, HOMSTRAD. These databases try to group families of proteins together by common structural elements, so you can view all the proteins with coiled-coil domains, for example.
-- AngiChau - 24 Oct 2005 |