Difference between revisions of "Bioinformatics Introduction Sequence"
m |
m (→Analyze) |
||
(10 intermediate revisions by the same user not shown) | |||
Line 14: | Line 14: | ||
{{Vspace}} | {{Vspace}} | ||
− | <div class="alert"> | + | <!-- div class="alert"> |
Warning – this page is currently under construction (2016-12-26). | Warning – this page is currently under construction (2016-12-26). | ||
Line 20: | Line 20: | ||
Do not use before this warning has been removed. | Do not use before this warning has been removed. | ||
− | </div> | + | </div --> |
{{Vspace}} | {{Vspace}} | ||
Line 29: | Line 29: | ||
{{Vspace}} | {{Vspace}} | ||
− | |||
==The Sequence Unit== | ==The Sequence Unit== | ||
This Unit is part of a brief introduction to bioinformatics. The material is more or less interleaved with the <code>Sequence.R</code> Project File which is part of the RStudio project associated with this material. Refer to the course/workshop page for installation instructions. | This Unit is part of a brief introduction to bioinformatics. The material is more or less interleaved with the <code>Sequence.R</code> Project File which is part of the RStudio project associated with this material. Refer to the course/workshop page for installation instructions. | ||
+ | This Unit introduces a target organism which has recently been genome-sequenced in which we will search for novel information about APSES domain transcription factors, it discusses pairwise- and multiple sequence alignment, and BLAST for fast database searches, it explores some methods for sequence analysis and introduces work with entire genomes. | ||
− | + | {{Vspace}} | |
{{Vspace}} | {{Vspace}} | ||
− | |||
− | |||
− | |||
==Introduction== | ==Introduction== | ||
Line 75: | Line 72: | ||
* Fast BLAST searches to determine best matches in large databases, and reciprocal best matches; | * Fast BLAST searches to determine best matches in large databases, and reciprocal best matches; | ||
* PSI BLAST searches for exhaustive matches; | * PSI BLAST searches for exhaustive matches; | ||
− | * Domain annotation by sequence alignment to statistical models; | + | * Domain annotation by sequence alignment to statistical models; |
− | * Multiple sequence alignments. | + | * Multiple sequence alignments; and |
+ | * Genomes. | ||
</div> | </div> | ||
− | This is the scenario: | + | This is the scenario: the genome sequence of early-diverging fungus ''Spizellomyces punctatus'' has been recently published<ref>{{#pmid: 27540072}}</ref>. Does it contain proteins that are related to yeast Mbp1? If there are more, which one is the most closely related protein? Is its DNA binding domain conserved? How can we identify '''all''' related genes in ''S. punctatus''? And, what can we learn from that collection of sequences? |
<!-- Column 2 end --> | <!-- Column 2 end --> | ||
</div> | </div> | ||
Line 90: | Line 88: | ||
− | == | + | ==An ''S. punctatus'' homologue to Mbp1== |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
− | + | BLAST is a fast algorithm for searching related sequences in large databases. We will explore it in more detail below, for now, we just briefly use it to find the sequence in ''S. punctatus'' that is most closely related to <code>MBP1_SACCE</code>. | |
{{Vspace}} | {{Vspace}} | ||
Line 128: | Line 98: | ||
{{task|1= | {{task|1= | ||
− | # | + | # Return to the [http://www.ncbi.nlm.nih.gov/protein/NP_010227 Mbp1 protein page at the NCBI] and follow the link to [https://blast.ncbi.nlm.nih.gov/Blast.cgi?PAGE=Proteins&PROGRAM=blastp&BLAST_PROGRAMS=blastp&QUERY=NP_010227.1&LINK_LOC=protein&PAGE_TYPE=BlastSearch Run BLAST] under "Analyze this sequence" in the right-hand column. |
# This allows you to perform a sequence similarity search. You need to set two parameters: | # This allows you to perform a sequence similarity search. You need to set two parameters: | ||
## As '''Database''', select '''Reference proteins (refseq_protein)''' from the drop down menu; | ## As '''Database''', select '''Reference proteins (refseq_protein)''' from the drop down menu; | ||
− | ## In the '''Organism''' field, type the | + | ## In the '''Organism''' field, type <code>spizellomyces punctatus</code>. The field will autocomplete to two choices, choose the DAOM BR117 strain (taxid:645134), as that is the strain which has been sequenced. |
− | # Click on ''' | + | # Click on '''BLAST''' to start the search. This should find a handful of genes, all of them in ''S. punctatus''. If you find none, or hundreds, or they are not all in the same species, you did something wrong. Ask on the mailing list and make sure to fix the problem. |
− | # Look at the top "hit" in the ''' | + | # Look at the top "hit" in the '''Alignments section'''. It should be the ''hypothetical protein SPPG_00022'', and it should have two matching '''Ranges''' reported. |
− | # In the header information for each hit is a link to its database entry, right next to '''Sequence ID'''. It says | + | # In the header information for each hit is a link to its database entry, right next to '''Sequence ID'''. It says <code>[https://www.ncbi.nlm.nih.gov/protein/1026947531 XP_016612325.1]</code> ... follow that link. |
− | # Note the RefSeq ID, and the search results %ID, E-value, whether one or more similar regions were found etc. in your Journal. We will refer to this sequence as "'' | + | # Open the [https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=645134 Taxonmoy Browser] page in a new tab (it's linked from the <code>ORGANISM</code> line of the sequernce record), explore it, and note the taxonomy ID. |
+ | # Note the RefSeq ID, and the search results %ID, E-value, whether one or more similar regions were found etc. in your Journal. We will refer to this sequence as "''S. punctatus'' Mbp1" or <code>MBP1_SPIPU</code> or similar in the future. | ||
# Finally access the [http://www.uniprot.org/uploadlists/ UniProt ID mapping service] to retrieve the UniProt ID for the protein. Paste the RefSeq ID and choose '''RefSeq Protein''' as the '''From:''' option and '''UniProtKB''' as the '''To:''' option. | # Finally access the [http://www.uniprot.org/uploadlists/ UniProt ID mapping service] to retrieve the UniProt ID for the protein. Paste the RefSeq ID and choose '''RefSeq Protein''' as the '''From:''' option and '''UniProtKB''' as the '''To:''' option. | ||
:<small>If the mapping works, the UniProt ID will be in the '''Entry:''' column of the table that is being returned. Click the link and have a look at the UniProt entry page while you're there.</small> | :<small>If the mapping works, the UniProt ID will be in the '''Entry:''' column of the table that is being returned. Click the link and have a look at the UniProt entry page while you're there.</small> | ||
− | <!-- What could go wrong? Sometimes the mapping does not work: | + | <!-- What could go wrong? Sometimes the mapping does not work: I.e. UniProt contains the sequence, but the mapping service does not know. |
I don't know why the mapping for some sequences is not available. | I don't know why the mapping for some sequences is not available. | ||
If this happens, you can work around the problem as follows. | If this happens, you can work around the problem as follows. | ||
Line 150: | Line 121: | ||
4. Paste the sequence into the search form and run BLAST. | 4. Paste the sequence into the search form and run BLAST. | ||
− | ... if the sequence is in UniProt, you will get the top hit with 100% sequence identity. | + | ... if the sequence is in UniProt, you will get the top hit with 100% sequence identity. |
− | |||
− | |||
--> | --> | ||
+ | }} | ||
+ | |||
+ | {{Vspace}} | ||
+ | |||
+ | |||
+ | ===Add MBP1_SPIPU to the database=== | ||
+ | |||
+ | {{Vspace}} | ||
+ | |||
+ | {{task|1= | ||
+ | |||
+ | * (Re)-open the RStudio project and open the <code>Sequence.R</code> file. | ||
+ | * Work through <code>PART ONE: ADDING DATA</code>. | ||
}} | }} | ||
Line 162: | Line 144: | ||
{{Vspace}} | {{Vspace}} | ||
− | === | + | {{Vspace}} |
+ | |||
+ | ==Analyze== | ||
+ | |||
+ | Let us perform a few simple sequence analyses using the online EMBOSS tools. EMBOSS (the European Molecular Biology laboratory Open Software Suite) combines a large number of simple but fundamental sequence analysis tools. The tools can be [http://emboss.sourceforge.net/download/ installed locally on your own machine], or run via a public Web interface. Google for [http://www.google.ca/search?q=EMBOSS+explorer EMBOSS explorer], public access points include http://emboss.bioinformatics.nl/ . | ||
+ | |||
+ | Access an EMBOSS Explorer service and familiarize yourself with the offerings in the EMBOSS package. I find some of the nucleic acid tools indispensable in the lab, such as restriction-site mapping tools, and I frequently use the alignment tools <code>Needle</code> and <code>Water</code>, but by and large the utility of many of the components–while fast, efficient and straightforward to use– suffers from lack of reference and comparison and from terse output. The routines show their conceptual origin in the 1970s and 1980s. We will encounter alternatives in later assignments. | ||
{{Vspace}} | {{Vspace}} | ||
− | + | {{task|1= | |
+ | ;Local composition | ||
+ | # Find <code>pepinfo</code> under the '''PROTEIN COMPOSITION''' heading. | ||
+ | # Retrieve the <code>MBP1_SACCE</code> and <code>MBP1_SPIPU</code> sequences from your '''R''' database, e.g. with something like <br /><code> cat(db$protein[db$protein$name == "MBP1_SACCE"), "sequence"]</code> | ||
+ | # Do the following for both sequences in separate windows: | ||
+ | ## Copy and paste the sequence into the input field. | ||
+ | ## Run with default parameters. | ||
+ | ## Scroll to the figures all the way at the bottom. | ||
+ | # Try to compare the result ... <small>(kind of hard without reference, overlay and expectation, isn't it?)</small> | ||
+ | }} | ||
− | |||
− | + | {{task|1= | |
+ | ;Global composition | ||
+ | # Find <code>pepstats</code> under the '''PROTEIN COMPOSITION''' heading. | ||
+ | # Do the following for both sequences in separate windows: | ||
+ | ## Paste the <code>MBP1_SACCE</code> resp. the <code>MBP1_SPIPU</code> sequence into the input field. | ||
+ | ## Run with default parameters. | ||
+ | # Try to compare ... are there significant and unexpected differences? | ||
}} | }} | ||
− | |||
− | + | {{task|1= | |
+ | ;Transmembrane sequences | ||
+ | # Find <code>tmap</code>. Also find <code>shuffleseq</code>. | ||
+ | # Use the <code>MBP1_SPIPU</code> sequence to annotate transmembrane helices in the protein and at least five shuffled sequences. <code>MBP1_SPIPU</code> is not expected to have TM helices, nor are the shuffled sequences expected to have any. If you '''do''' find some, these are most likely "''false positives''". | ||
+ | |||
+ | # Also compare the following positive control: Gef1 - a yeast chloride channel with 10 trans-membrane helices and outward localized N-terminus: | ||
+ | <source lang="text"> | ||
+ | >gi|6322500|ref|NP_012574.1| Gef1p [Saccharomyces cerevisiae S288c] | ||
+ | MPTTYVPINQPIGDGEDVIDTNRFTNIPETQNFDQFVTIDKIAEENRPLSVDSDREFLNSKYRHYREVIW | ||
+ | DRAKTFITLSSTAIVIGCIAGFLQVFTETLVNWKTGHCQRNWLLNKSFCCNGVVNEVTSTSNLLLKRQEF | ||
+ | ECEAQGLWIAWKGHVSPFIIFMLLSVLFALISTLLVKYVAPMATGSGISEIKVWVSGFEYNKEFLGFLTL | ||
+ | VIKSVALPLAISSGLSVGKEGPSVHYATCCGYLLTKWLLRDTLTYSSQYEYITAASGAGVAVAFGAPIGG | ||
+ | VLFGLEEIASANRFNSSTLWKSYYVALVAITTLKYIDPFRNGRVILFNVTYDRDWKVQEIPIFIALGIFG | ||
+ | GLYGKYISKWNINFIHFRKMYLSSWPVQEVLFLATLTALISYFNEFLKLDMTESMGILFHECVKNDNTST | ||
+ | FSHRLCQLDENTHAFEFLKIFTSLCFATVIRALLVVVSYGARVPAGIFVPSMAVGATFGRAVSLLVERFI | ||
+ | SGPSVITPGAYAFLGAAATLSGITNLTLTVVVIMFELTGAFMYIIPLMIVVAITRIILSTSGISGGIADQ | ||
+ | MIMVNGFPYLEDEQDEEEEETLEKYTAEQLMSSKLITINETIYLSELESLLYDSASEYSVHGFPITKDED | ||
+ | KFEKEKRCIGYVLKRHLASKIMMQSVNSTKAQTTLVYFNKSNEELGHRENCIGFKDIMNESPISVKKAVP | ||
+ | VTLLFRMFKELGCKTIIVEESGILKGLVTAKDILRFKRIKYREVHGAKFTYNEALDRRCWSVIHFIIKRF | ||
+ | TTNRNGNVI | ||
+ | </source> | ||
− | + | # Evaluate the output: does the algorithm (wrongly) predict TM-helices in <code>MBP1_SPIPU</code>? In the shuffled sequences? Does it find all ten TM-helices in Gef1? | |
− | + | }} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | {{task|1= | |
− | + | ;Motifs | |
− | + | # Find <code>pepcoil</code>, an algorithm to detect {{WP|coiled coil}} motifs. | |
− | + | # Run this with the YFO Mbp1 sequence and yeast Mbp1. | |
+ | # Try to compare ... do both sequences have coiled-coil motif predictions? Are they annotated in approximately comparable regions of the respective sequence? | ||
+ | }} | ||
− | |||
− | |||
− | |||
− | We' | + | A textbook example of a {{WP|Coiled_coil|coiled coil}} is the so-called {{WP|Leucine_zipper|leucine zipper}} domain. It is a protein-protein interaction module that has a number of leucine residues in i, i+7 position. We don't know what the intervening residues may be, thus we need to define the sequence we are looking for as a generic pattern. This is efficiently done using {{WP|Regular_expression|'''regular expressions'''}}. |
− | {{Vspace}} | + | {{Vspace}} |
− | ====A Brief | + | ====A Brief Digression to Regular Expressions==== |
{{Vspace}} | {{Vspace}} | ||
Line 229: | Line 243: | ||
{{task|1= | {{task|1= | ||
− | Navigate to http://regexpal.com and paste the sequence into the '''lower''' box. This site is one of a number of online regular expression testers; their immediate, visual feedback is invaluable when you are developing regular expression patterns. | + | Navigate to http://regexpal.com and paste the sequence into the '''lower''' box. This site is one of a number of online regular expression testers; their immediate, visual feedback is invaluable when you are developing regular expression patterns. Set the dialect to '''PCRE''' in the drop-down menu, it is '''Javascript''' by default. |
Lets try some expressions: | Lets try some expressions: | ||
Line 251: | Line 265: | ||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
{{task|1 = | {{task|1 = | ||
− | * | + | * Work through <code>PART TWO: REGULAR EXPRESSIONS</code> section of the <code>Sequence.R</code> '''R''' script for a deeper exposure to regular expressions. |
}} | }} | ||
{{Vspace}} | {{Vspace}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
Line 369: | Line 288: | ||
{{task|1 = | {{task|1 = | ||
− | * Study the code in the <code> | + | * Study the code in the <code>PART THREE: SEQUENCE ANALYSIS</code> section of the <code>Sequence.R</code> script |
}} | }} | ||
{{Vspace}} | {{Vspace}} | ||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
− | |||
− | |||
==Alignment== | ==Alignment== | ||
− | |||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
− | + | ;Sequence alignments are the single most important task of bioinformatics algorithms. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
Line 404: | Line 308: | ||
{{Vspace}} | {{Vspace}} | ||
− | |||
− | |||
Scoring matrices are also available in the Bioconductor Biostrings package. | Scoring matrices are also available in the Bioconductor Biostrings package. | ||
Line 444: | Line 346: | ||
{{task| | {{task| | ||
− | * Study this and make sure you understand what this | + | * Study this table and make sure you understand what this information represents, how it can be used, and what a reasonable range of values for identities and pairscores for non-identical, similar and dissimilar residues is. Ask on the mailing list in case you have questions. '''This piece of data is the foundation of any sequence alignment. without it, no sensible alignment could be produced!''' |
* Figure out the following values: | * Figure out the following values: | ||
** Compare an identical match of histidine with an identical match of serine. What does this mean? | ** Compare an identical match of histidine with an identical match of serine. What does this mean? | ||
Line 460: | Line 362: | ||
* Return to your RStudio session. | * Return to your RStudio session. | ||
− | + | * Study and work through the code in the <code>PART FOUR: DOTPLOT AND MDM</code> section of the <code>Sequence.R</code> script | |
− | * Study and work through the code in the <code> | ||
}} | }} | ||
+ | |||
+ | {{Vspace}} | ||
{{Vspace}} | {{Vspace}} | ||
Line 471: | Line 374: | ||
{{Vspace}} | {{Vspace}} | ||
− | Optimal pairwise sequence alignment is the mainstay of sequence comparison. To consider such alignments in practice, we'll align the same sequences that we have just mapped in the dotplot exercise: | + | Optimal pairwise sequence alignment is the mainstay of sequence comparison. To consider such alignments in practice, we'll align the same sequences that we have just mapped in the dotplot exercise: <code>MBP1_SACCE</code> and <code>MBP1_SPIPU</code>. Your dotplots should have shown you two regions of similarity: a highly similar region focussed somewhere around the N-terminal 100 amino acids, and a more extended, but somewhat less similar region in the middle of the sequences. You can think of the sequence alignment algorithm as building the similarity matrix, and then discovering the best path along high-scoring diagonals. |
{{Vspace}} | {{Vspace}} | ||
Line 484: | Line 387: | ||
{{task|1= | {{task|1= | ||
− | # Fetch the sequences for <code>MBP1_SACCE</code> and <code> | + | # Fetch the sequences for <code>MBP1_SACCE</code> and <code>MBP1_SPIPU</code> from your database. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
# Access the [http://emboss.bioinformatics.nl/ EMBOSS Explorer site] (if you haven't done so yet, you might want to bookmark it.) | # Access the [http://emboss.bioinformatics.nl/ EMBOSS Explorer site] (if you haven't done so yet, you might want to bookmark it.) | ||
# Look for '''ALIGNMENT LOCAL''', click on '''water''', paste your sequences and run the program with default parameters. | # Look for '''ALIGNMENT LOCAL''', click on '''water''', paste your sequences and run the program with default parameters. | ||
# Study the results. You will probably find that the alignment extends over most of the protein, but does not include the termini. | # Study the results. You will probably find that the alignment extends over most of the protein, but does not include the termini. | ||
− | |||
# Change the '''Gap opening''' and '''Gap extension''' parameters to high values (e.g. 30 and 5). Then run the alignment again. | # Change the '''Gap opening''' and '''Gap extension''' parameters to high values (e.g. 30 and 5). Then run the alignment again. | ||
# Note what is different. | # Note what is different. | ||
Line 510: | Line 398: | ||
'''Global''' optimal sequence alignment using "needle" | '''Global''' optimal sequence alignment using "needle" | ||
{{task|1= | {{task|1= | ||
− | # Look for '''ALIGNMENT GLOBAL''', click on '''needle''', paste the <code>MBP1_SACCE</code> and <code> | + | # Look for '''ALIGNMENT GLOBAL''', click on '''needle''', paste the <code>MBP1_SACCE</code> and <code>MBP1_SPIPU</code> sequences again and run the program with default parameters. |
# Study the results. You will find that the alignment extends over the entire protein, likely with long ''indels'' at the termini. | # Study the results. You will find that the alignment extends over the entire protein, likely with long ''indels'' at the termini. | ||
}} | }} | ||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
− | |||
=== Optimal Sequence Alignment with '''R''': Biostrings === | === Optimal Sequence Alignment with '''R''': Biostrings === | ||
Line 531: | Line 416: | ||
* Return to your RStudio session. | * Return to your RStudio session. | ||
− | + | * Study and work through the code in the <code>PART FIVE: BIOSTRINGS PAIRWISE ALIGNMENT</code> section of the <code>Sequence.R</code> script | |
− | * Study and work through the code in the <code> | ||
}} | }} | ||
+ | |||
+ | {{Vspace}} | ||
{{Vspace}} | {{Vspace}} | ||
Line 547: | Line 433: | ||
<div class="col1"> | <div class="col1"> | ||
<!-- Column 1 start --> | <!-- Column 1 start --> | ||
− | [http://www.ncbi.nlm.nih.gov/blast '''BLAST'''] is by a margin the most important computational tool of molecular biology. It is so important, that we have already used BLAST | + | [http://www.ncbi.nlm.nih.gov/blast '''BLAST'''] is by a margin the most important computational tool of molecular biology. It is so important, that we have already used BLAST above, even before properly introducing the algorithm and the principles, to find the most similar sequence to <code>MBP1_SACCE</code> in SPIPU. |
− | In this part of the | + | In this part of the unit we will use BLAST to perform '''Reciprocal Best Matches'''. |
One of the important questions of ''model-organism based inference'' is: which genes perform the same function in two different organisms. In the absence of other information, our best guess is that these are the two genes that are '''mutually''' most similar. The keyword here is '''mutually'''. If <code>MBP1_SACCE</code> from ''S. cerevisiae'' is the best match to <code>RES2_SCHPO</code> in ''S. pombe'', the two proteins are only mutually most similar if <code>RES2_SCHPO</code> is more similar to <code>MBP1_SACCE</code> than to any other ''S. cerevisiae'' protein. We call this a '''Reciprocal Best Match''', or "RBM"<ref>Note that RBMs are usually orthologues, but the definition of orthologue and RBM is not the same. Most importantly, many orthologues are not RBMs. We will explore this more when we discuss phylogenetic inference.</ref>. | One of the important questions of ''model-organism based inference'' is: which genes perform the same function in two different organisms. In the absence of other information, our best guess is that these are the two genes that are '''mutually''' most similar. The keyword here is '''mutually'''. If <code>MBP1_SACCE</code> from ''S. cerevisiae'' is the best match to <code>RES2_SCHPO</code> in ''S. pombe'', the two proteins are only mutually most similar if <code>RES2_SCHPO</code> is more similar to <code>MBP1_SACCE</code> than to any other ''S. cerevisiae'' protein. We call this a '''Reciprocal Best Match''', or "RBM"<ref>Note that RBMs are usually orthologues, but the definition of orthologue and RBM is not the same. Most importantly, many orthologues are not RBMs. We will explore this more when we discuss phylogenetic inference.</ref>. | ||
Line 556: | Line 442: | ||
However, there is a catch: proteins are often composed of multiple domains that implement distinct roles of their function. Under the assumptions above we could hypothesize: | However, there is a catch: proteins are often composed of multiple domains that implement distinct roles of their function. Under the assumptions above we could hypothesize: | ||
− | * a gene in | + | * a gene in SPIPU that has the "same" function as the Mbp1 cell-cycle checkpoint switch in yeast should be an RBM to Mbp1; |
* a gene that binds to the same DNA sites as Mbp1 should have a DNA-binding domain that is an RBM to the DNA binding domain of Mbp1. | * a gene that binds to the same DNA sites as Mbp1 should have a DNA-binding domain that is an RBM to the DNA binding domain of Mbp1. | ||
− | Thus we'll compare RBMs in | + | Thus we'll compare RBMs in SPIPU for full-length <code>Mbp1_SACCE</code> and its DNA-binding domain, and see if the results are the same. |
Line 580: | Line 466: | ||
{{Vspace}} | {{Vspace}} | ||
− | You have already performed the first half of the experiment: matching from ''S. cerevisiae'' to | + | You have already performed the first half of the experiment: matching from ''S. cerevisiae'' to ''S. punctatus'' . The backward match is simple. |
{{task|1= | {{task|1= | ||
# Access [http://www.ncbi.nlm.nih.gov/blast '''BLAST'''] and follow the link to the '''protein blast''' program. | # Access [http://www.ncbi.nlm.nih.gov/blast '''BLAST'''] and follow the link to the '''protein blast''' program. | ||
− | # Enter the RefSeq ID for <code> | + | # Enter the RefSeq ID for <code>MBP1_SPIPU</code> in the '''Query sequence''' field. |
# Select <code>refseq_protein</code> as the '''database''' to search in, and enter <code>Saccharomyces cerevisiae (taxid:4932)</code> to restrict the '''organism''' for which hits are reported. | # Select <code>refseq_protein</code> as the '''database''' to search in, and enter <code>Saccharomyces cerevisiae (taxid:4932)</code> to restrict the '''organism''' for which hits are reported. | ||
# Run BLAST. Examine the results. | # Run BLAST. Examine the results. | ||
− | If your top-hit is <code>NP_010227</code>, you have confirmed the RBM between <code>Mbp1_SACCE</code> and <code> | + | If your top-hit is <code>NP_010227</code>, you have confirmed the RBM between <code>Mbp1_SACCE</code> and <code>Mbp1_SPIPU</code>. If it is not, let me know. I expect this to be the same and would like to verify your results if it is not. |
}} | }} | ||
Line 595: | Line 481: | ||
===RBM for the DNA binding domain=== | ===RBM for the DNA binding domain=== | ||
− | |||
{{Vspace}} | {{Vspace}} | ||
− | The DNA-binding domain of <code>Mbp1_SACCE</code> is called an '''APSES''' domain. If the RBM between ''Saccharomyces cerevisiae'' Mbp1 and | + | The DNA-binding domain of <code>Mbp1_SACCE</code> is called an '''APSES''' domain. If the RBM between ''Saccharomyces cerevisiae'' Mbp1 and ''Spizellomyces punctatus'' is truly an orthologue, we expect all of the protein's respective domains to have the RBM property as well. But let's not simply assume what we can easily test. We'll define the sequence of the APSES domain in MBP1_SACCE and YFO and see how these definitions reflect in a BLAST search. |
{{Vspace}} | {{Vspace}} | ||
Line 618: | Line 503: | ||
# '''Forward search:''' | # '''Forward search:''' | ||
## Paste only the APSES domain sequence for <code>MBP1_SACCE</code> in the '''Query sequence''' field (copy the sequence from above). | ## Paste only the APSES domain sequence for <code>MBP1_SACCE</code> in the '''Query sequence''' field (copy the sequence from above). | ||
− | ## Select <code>refseq_protein</code> as the '''database''' to search in, and enter the correct taxonomy ID for | + | ## Select <code>refseq_protein</code> as the '''database''' to search in, and enter the correct taxonomy ID for ''Spizellomyces punctatus'' in the '''Organism''' field. |
## Run BLAST. Examine the results. | ## Run BLAST. Examine the results. | ||
− | ## If the top hit is the same protein you have already seen, oK. If it's not | + | ## If the top hit is the same protein you have already seen, oK. If it's not, something went wrong. |
}} | }} | ||
− | With this we have confirmed the sequence with the most highly conserved APSES domain in | + | With this we have confirmed the sequence with the most highly conserved APSES domain in ''Spizellomyces punctatus''. Can we take the sequence for the reverse search from the alignment that BLAST returns? Actually, that is not a good idea. The BLAST alignment is not guaranteed to be optimal. We should do an optimal sequence alignment instead. That is: we use two different tools here for two different purposes: we use BLAST to identify one protein as the most similar among many alternatives and we use optimal sequence alignment to determine the best alignment between two sequences. That best alignment is what we will annotate as the ''Spizellomyces punctatus'' APSES domain. |
{{Vspace}} | {{Vspace}} | ||
Line 636: | Line 521: | ||
* Return to your RStudio session. | * Return to your RStudio session. | ||
− | * Study and work through the code in the <code>APSES | + | * Study and work through the code in the <code>PART SIX: APSES DOMAIN ANNOTATION BY ALIGNMENT</code> section of the <code>Sequence.R</code> script. |
}} | }} | ||
Line 647: | Line 532: | ||
{{task|1= | {{task|1= | ||
− | #Paste the the APSES domain sequence for the | + | # Paste the the APSES domain sequence for the ''Spizellomyces punctatus'' protein and enter it into '''Query sequence''' field of the BLAST form. |
## Select <code>refseq_protein</code> as the '''database''' to search in, and enter <code>Saccharomyces cerevisiae (taxid:4932)</code> to restrict the '''organism''' for which hits are reported. | ## Select <code>refseq_protein</code> as the '''database''' to search in, and enter <code>Saccharomyces cerevisiae (taxid:4932)</code> to restrict the '''organism''' for which hits are reported. | ||
## Run BLAST. Examine the results. | ## Run BLAST. Examine the results. | ||
− | If your top-hit is again <code>NP_010227</code>, you have confirmed the RBM between the APSES domain of <code>Mbp1_SACCE</code> and <code> | + | If your top-hit is again <code>NP_010227</code>, you have confirmed the RBM between the APSES domain of <code>Mbp1_SACCE</code> and <code>Mbp1_SPIPU</code>. If it is not, something went wrong. |
}} | }} | ||
+ | |||
+ | {{Vspace}} | ||
{{Vspace}} | {{Vspace}} | ||
Line 671: | Line 558: | ||
In this part of the assignment, we will set ourselves the task to use PSI-BLAST and '''find all orthologs and paralogs of the APSES domain containing transcription factors in YFO'''. We will use these sequences for multiple alignments, calculation of conservation ''etc''. | In this part of the assignment, we will set ourselves the task to use PSI-BLAST and '''find all orthologs and paralogs of the APSES domain containing transcription factors in YFO'''. We will use these sequences for multiple alignments, calculation of conservation ''etc''. | ||
− | The first methodical problem we have to address is what sequence to search with. The full-length Mbp1 sequence from ''Saccharomyces cerevisiae'' or its RBM from | + | The first methodical problem we have to address is what sequence to search with. The full-length Mbp1 sequence from ''Saccharomyces cerevisiae'' or its RBM from ''Spizellomyces punctatus'' are not suitable: They contain multiple domains (in particular the ubiquitous Ankyrin domains) and would create broad, non-'''specific''' profiles. The APSES domain sequence by contrast is structurally well defined. The KilA-N domain, being shorter, is less likely to make a '''sensitive''' profile. Indeed one of the results of our analysis will be to find whether APSES domains in fungi all have the same length as the Mbp1 domain, or whether some are indeed much shorter, like the KILA-N domain, as suggested by the Pfam alignment. |
The second methodical problem we must address is how to perform a sensitive PSI-BLAST search '''in one organism'''. We need to balance two conflicting objectives: | The second methodical problem we must address is how to perform a sensitive PSI-BLAST search '''in one organism'''. We need to balance two conflicting objectives: | ||
− | * If we restrict the PSI-BLAST search to | + | * If we restrict the PSI-BLAST search to ''Spizellomyces punctatus'', PSI-BLAST has little chance of building a meaningful profile - the number of homologues that actually are '''in''' ''S. punctatus'' is too small. Thus the search will not become very sensitive. |
<!-- Column 1 end --> | <!-- Column 1 end --> | ||
Line 851: | Line 738: | ||
subclass-, order-, or family rank (hover over the names to see their taxonomic rank.) | subclass-, order-, or family rank (hover over the names to see their taxonomic rank.) | ||
− | I have chosen the 10 species below to define a well-distributed search-space for PSI-BLAST. Of course ''' | + | I have chosen the 10 species below to define a well-distributed search-space for PSI-BLAST. Of course '''we must also include ''Spizellomyces punctatus'' in the selection'''. |
To enter these 10 species as an Entrez restriction, they need to be formatted as below. (<small>One could also enter species one by one, by pressing the '''(+)''' button after the organism list</small>) | To enter these 10 species as an Entrez restriction, they need to be formatted as below. (<small>One could also enter species one by one, by pressing the '''(+)''' button after the organism list</small>) | ||
Line 866: | Line 753: | ||
"Neurospora crassa"[organism] OR | "Neurospora crassa"[organism] OR | ||
"Bipolaris oryzae"[organism] OR | "Bipolaris oryzae"[organism] OR | ||
− | "Saccharomyces cerevisiae"[organism] | + | "Saccharomyces cerevisiae"[organism] OR |
− | + | "Spizellomyces punctatus"[organism] | |
</source> | </source> | ||
Line 896: | Line 783: | ||
LEKEVLKETHEKVQGGFGKYQGTWVPLNIAKQLAEKFSVYDQLKPLFDF | LEKEVLKETHEKVQGGFGKYQGTWVPLNIAKQLAEKFSVYDQLKPLFDF | ||
# Select '''refseq''' as the database. | # Select '''refseq''' as the database. | ||
− | # Copy the Entrez restrictions from above | + | # Copy the Entrez restrictions from above. Paste the list into the '''Entrez Query''' field. |
# In the '''Algorithm''' section, select PSI-BLAST. | # In the '''Algorithm''' section, select PSI-BLAST. | ||
#Click on '''BLAST'''. | #Click on '''BLAST'''. | ||
Line 902: | Line 789: | ||
− | Evaluate the results carefully. Since we did not change the algorithm parameters, the threshold for inclusion was set at an '''E-value''' of 0.005 by default, and that may be a bit too lenient, i.e. it might include sequences that are not homologous. If you look at the table of your hits– in the '''Sequences producing significant alignments...''' section– there may also be a few sequences that have a low query coverage of less than 80%. Let's exclude these from the profile initially: not to worry, if they are true positives, | + | Evaluate the results carefully. Since we did not change the algorithm parameters, the threshold for inclusion was set at an '''E-value''' of 0.005 by default, and that may be a bit too lenient, i.e. it might include sequences that are not homologous. If you look at the table of your hits– in the '''Sequences producing significant alignments...''' section– there may also be a few sequences that have a low query coverage of less than 80%. Let's exclude these from the profile initially: not to worry, if they are true positives, they will come back with improved E-values and greater coverage in subsequent iterations. But if they were false positives, their E-values will rise and they will drop out of the profile and not corrupt it. |
Line 923: | Line 810: | ||
# Let's exclude partial matches one more time. Again, deselect all sequences with less than 80% coverage. Then run the third iteration. | # Let's exclude partial matches one more time. Again, deselect all sequences with less than 80% coverage. Then run the third iteration. | ||
# Iterate the search in this way, successively relaxing the coverage threshold, until no more "New" sequences are added to the profile. The search has converged. Obviously the result depends on your data, but it would be unusual if the search had not converged after 6 iterations or so, and there is probably a mistake if there are more than 70 hits or so. | # Iterate the search in this way, successively relaxing the coverage threshold, until no more "New" sequences are added to the profile. The search has converged. Obviously the result depends on your data, but it would be unusual if the search had not converged after 6 iterations or so, and there is probably a mistake if there are more than 70 hits or so. | ||
− | # Now look at the list of excluded hits (if any), the hits that are reasonable but didn't quite make the cut. Are there any from | + | # Now look at the list of excluded hits (if any), the hits that are reasonable but didn't quite make the cut. Are there any from ''Spizellomyces punctatus'' that seem like they should actually be included? Perhaps their E-value is only marginally above the threshold? If that's the case, try returning the E-value threshold to the default 0.005 and see what happens... |
}} | }} | ||
Line 931: | Line 818: | ||
{{task|1= | {{task|1= | ||
− | # In the header section of the BLAST report, click on '''Taxonomy reports''' and find | + | # In the header section of the BLAST report, click on '''Taxonomy reports''' and find ''Spizellomyces punctatus'' in the '''Organism Report''' section. These are '''your APSES domain homologs'''. All of them. There is a link to the alignment, the BLAST score, the E-value, and a link to the entry in RefSeq. |
− | # From the report copy the sequence identifiers from | + | # From the report copy the sequence identifiers from ''Spizellomyces punctatus'', with E-values above your defined threshold to your notebook. |
}} | }} | ||
Line 952: | Line 839: | ||
{{task|1= | {{task|1= | ||
− | # To add the sequences to your database, open each of the links to the RefSeq record for | + | # To add the sequences to your database, open each of the links to the RefSeq record for ''Spizellomyces punctatus'' organism into a separate tab. |
# Find the UniProt IDs | # Find the UniProt IDs | ||
# Go through the (short) section <code>add PSI BLAST results</code> in the Assignment 04 R-script. | # Go through the (short) section <code>add PSI BLAST results</code> in the Assignment 04 R-script. | ||
Line 972: | Line 859: | ||
But for now, we'll have a look at what the sequences tell us. | But for now, we'll have a look at what the sequences tell us. | ||
+ | {{Vspace}} | ||
{{Vspace}} | {{Vspace}} | ||
Line 1,015: | Line 903: | ||
; Hidden Markov Models (HMMs) | ; Hidden Markov Models (HMMs) | ||
− | An approach to represent such profile information that is more general than PSSMs is a {{WP|Hidden Markov model|'''Hidden Markov model (HMM)'''}} and the standard tool to use HMMs in Bioinformatics is [http://hmmer.org/ '''HMMER'''], written by Sean Eddy. HMMER has allowed to represent the entirety of protein sequences as a collection of profiles, stored in databases such as [http://pfam.xfam.org/ '''Pfam'''], [https://www.ebi.ac.uk/interpro/ '''Interpro'''], and [http://smart.embl-heidelberg.de/ '''SMART''']. While the details are slightly different, all of these services allow to scan sequences for the presence of domains. Importantly thus, the alignment results are not collections of full-length protein families, but annotate to domain families, i.e. full length proteins are decomposed into their homologous domains. This is a very powerful approach towards the functional annotation of unknown sequences. | + | An approach to represent such profile information that is more general than PSSMs is a {{WP|Hidden Markov model|'''Hidden Markov model (HMM)'''}} and the standard tool to use HMMs in Bioinformatics is [http://hmmer.org/ '''HMMER'''], written by Sean Eddy. HMMER has allowed to represent the entirety of protein sequences as a collection of profiles, stored in databases such as [http://pfam.xfam.org/ '''Pfam'''], [https://www.ebi.ac.uk/interpro/ '''Interpro'''], and [http://smart.embl-heidelberg.de/ '''SMART''']. While the details are slightly different, all of these services allow to scan sequences for the presence of domains. Importantly thus, the alignment results are not collections of full-length protein families, but annotate to domain families, ''i.e.'' full-length proteins are decomposed into their homologous domains. This is a very powerful approach towards the functional annotation of unknown sequences. |
− | In this section, we will annotate the | + | In this section, we will annotate the ''Spizellomyces punctatus'' sequence with the domains it contains, using the database of domain HMMs curated by SMART in Heidelberg and Pfam at the EMBL. We will then compare these annotations with those determined for the orthologues in the reference species. In this way we can enhance the information about one protein by determining how its features are conserved. |
<!-- Column 2 end --> | <!-- Column 2 end --> | ||
Line 1,023: | Line 911: | ||
</div> | </div> | ||
</div> | </div> | ||
+ | |||
+ | |||
+ | {{Vspace}} | ||
+ | |||
+ | {{Vspace}} | ||
+ | |||
+ | ==Suboptimal alignments== | ||
+ | |||
+ | Many sequences contain internal duplications - our's do too, in the ankyrin domains. To detect these, programs exist that will detect suboptimal alignments. | ||
+ | |||
+ | {{task|1= | ||
+ | |||
+ | * Retrieve the sequence of <code>MBP1_SACCE</code> from <code>myDB</code>. | ||
+ | * Access the [http://www.ebi.ac.uk/Tools/pfa/radar/ '''RADAR''' server at the EBI] and paste the sequence into the form. | ||
+ | * Review the results. Keep the window open, to compare the regions flagged as self-similar by RADAR with the SMART annotations you preduce below. | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | {{Vspace}} | ||
+ | |||
+ | {{Vspace}} | ||
== SMART domain annotation == | == SMART domain annotation == | ||
Line 1,035: | Line 945: | ||
# Access the [http://smart.embl-heidelberg.de/ '''SMART database'''] at http://smart.embl-heidelberg.de/ | # Access the [http://smart.embl-heidelberg.de/ '''SMART database'''] at http://smart.embl-heidelberg.de/ | ||
# Click the lick to access SMART in the '''normal''' mode. | # Click the lick to access SMART in the '''normal''' mode. | ||
− | # Paste the | + | # Paste the <code>MBP1_SPIPU</code> UniProtID into the '''Sequence ID or ACC''' field. Note: you will need to use the <code>chunkSeq()</code> utility function to get its entire length printed to the console so you can copy/paste it - RStudio will truncate long sequences. |
# Check all the boxes for: | # Check all the boxes for: | ||
## '''outlier homologues''' (also including homologues in the PDB structure database) | ## '''outlier homologues''' (also including homologues in the PDB structure database) | ||
## '''PFAM domains''' (domains defined by sequence similarity in the PFAM database) | ## '''PFAM domains''' (domains defined by sequence similarity in the PFAM database) | ||
− | ## '''signal peptides''' (using | + | ## '''signal peptides''' (using Gunnar von Heijne's SignalP 4.0 server at the Technical University in Lyngby, Denmark) |
## '''internal repeats''' (using the programs ''ariadne'' and ''prospero'' at the Wellcome Trust Centre for Human Genetics at Oxford University, England) | ## '''internal repeats''' (using the programs ''ariadne'' and ''prospero'' at the Wellcome Trust Centre for Human Genetics at Oxford University, England) | ||
# Click on '''Sequence SMART''' to run the search and annotation. <small>(In case you get an error like: "Sorry, your entry seems to have no SMART domain ...", try again with the actual sequence instead of the accession number.)</small> | # Click on '''Sequence SMART''' to run the search and annotation. <small>(In case you get an error like: "Sorry, your entry seems to have no SMART domain ...", try again with the actual sequence instead of the accession number.)</small> | ||
Line 1,045: | Line 955: | ||
Study the results. | Study the results. | ||
− | # Note down the following information so you can enter the annotation in the protein database for | + | # Note down the following information so you can enter the annotation in the protein database for ''Spizellomyces punctatus'': |
## From the section on "Confidently predicted domains ..." | ## From the section on "Confidently predicted domains ..." | ||
### The start and end coordinates of the '''KilA-N''' domain <small>(...according to SMART, not Pfam, in case the two differ)</small>. | ### The start and end coordinates of the '''KilA-N''' domain <small>(...according to SMART, not Pfam, in case the two differ)</small>. | ||
### All start and end coordinates of '''low complexity segments''' | ### All start and end coordinates of '''low complexity segments''' | ||
− | ### All start and end coordinates of '''ANK''' (Ankyrin) domains | + | ### All start and end coordinates of '''ANK''' (Ankyrin) domains. |
− | ### Start and end coordinates of '''coiled coil''' domain(s) | + | ### Start and end coordinates of '''coiled coil''' domain(s). |
### Start and end coordinates of '''AT hook''' domain(s) <small>I expect at most one - not all Mbp1 orthologues have one.</small> | ### Start and end coordinates of '''AT hook''' domain(s) <small>I expect at most one - not all Mbp1 orthologues have one.</small> | ||
## From the section on "Features NOT shown ..." | ## From the section on "Features NOT shown ..." | ||
− | ### | + | ### Start and end coordinates of '''low complexity segments''' for which the ''Reason'' is "overlap". |
− | ### | + | ### Start and end coordinates of overlapping '''Ankyrin''' (ANK_...) domains. Don't enter them all individually, but consolidate th contiguous/overlapping domains into a single annotation. |
− | ### | + | ### Start and end coordinates of overlapping '''coiled coil''' segments. |
+ | ### <small>If there are other features I have not mentioned here, feel encouraged to let me know.</small> | ||
## From the section on "Outlier homologues ..." | ## From the section on "Outlier homologues ..." | ||
### Start and end coordinates of a '''PDB:1SW6{{!}}B''' annotation (if you have one): this is a region of sequence similarity to a protein for which the 3D structural coordinate are known. | ### Start and end coordinates of a '''PDB:1SW6{{!}}B''' annotation (if you have one): this is a region of sequence similarity to a protein for which the 3D structural coordinate are known. | ||
− | ### <small>Of course there should also be annotations to the structure of 1BM8 / 1MB1 and/or 1L3G - all of which are structures of the Mbp1 APSES domain that we have already annotated as | + | ### <small>Of course there should also be annotations to the structure of 1BM8 / 1MB1 and/or 1L3G - all of which are structures of the Mbp1 APSES domain that we have already annotated as an "APSES fold" feature previously. And there may be BLAST annotations to Ankyrin domains. We will not annotate these separately either.</small> |
− | # Follow the links to the database entries for the | + | # Follow the links to the database entries for the annotated domains so you know what these domains and features are and understand their biological implications. |
+ | |||
+ | Finally, we'll enter the features into our database, so we can compare them with the annotations that I have prepared from SMART annotations of Mbp1 orthologues from the ten reference fungi. | ||
+ | |||
+ | * Complete <code>PART SIX: SMART DOMAIN ANNOTATIONS</code> of the <code>Sequence.R</code> script. | ||
}} | }} | ||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
− | + | After you execute the code, your plot should look similar to this one but include the <code>MBP1_SPIPU</code> annotations: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Image:DomainAnnotations.jpg|frame|none|SMART domain annotations for Mbp1 proteins for the ten reference fungi. | [[Image:DomainAnnotations.jpg|frame|none|SMART domain annotations for Mbp1 proteins for the ten reference fungi. | ||
Line 1,092: | Line 986: | ||
A note on the '''R''' code up to this point: You will find that we have been writing a lot of nested expressions for selections that join data from multiple tables of our data model. When I teach '''R''' workshops for graduate students, postdocs and research fellows, I find that the single greatest barrier in their actual research work is the preparation of data for analysis: filtering, selecting, cross-referencing, and integrating data from different sources. By now, I hope you will have acquired a somewhat robust sense for achieving this. You can imagine that there are ways to simplify those tasks with functions you write, or special resources from a variety of different packages you cab install. But the "pedestrian" approach we have been taking in our scripts has the advantage of working from a very small number of principles, with very few syntactic elements. | A note on the '''R''' code up to this point: You will find that we have been writing a lot of nested expressions for selections that join data from multiple tables of our data model. When I teach '''R''' workshops for graduate students, postdocs and research fellows, I find that the single greatest barrier in their actual research work is the preparation of data for analysis: filtering, selecting, cross-referencing, and integrating data from different sources. By now, I hope you will have acquired a somewhat robust sense for achieving this. You can imagine that there are ways to simplify those tasks with functions you write, or special resources from a variety of different packages you cab install. But the "pedestrian" approach we have been taking in our scripts has the advantage of working from a very small number of principles, with very few syntactic elements. | ||
+ | |||
+ | {{Vspace}} | ||
{{Vspace}} | {{Vspace}} | ||
Line 1,115: | Line 1,011: | ||
− | + | We shall use the Bioconductor '''msa''' package to align the sequences we have. Study and run the following code | |
Line 1,122: | Line 1,018: | ||
* Return to your RStudio session. | * Return to your RStudio session. | ||
* Make sure you have saved <code>myDB</code> as instructed previously. | * Make sure you have saved <code>myDB</code> as instructed previously. | ||
− | * Bring code and data resources up to date | + | * Bring code and data resources up to date by pulling the most recent version from GitHub. |
− | + | * Type <code>init()</code> to re-load any updated, supporting scripts. | |
− | * | + | * Study and work through the code in the <code>PART SEVEN: MULTIPLE SEQUENCE ALIGNMENT</code> section of the <code>Sequence.R</code> script. |
− | + | * Note that the final task asks you to print out some results, I may ask you to hand these in for credit at a later point. | |
− | * Study and work through the code in the <code> | ||
− | * Note that the final task asks you to print out some results | ||
}} | }} | ||
Line 1,175: | Line 1,069: | ||
--> | --> | ||
− | ===Computing alignments=== | + | ===Computing alignments online=== |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | The EBI has a very convenient [http://www.ebi.ac.uk/Tools/msa/ page to access a number of MSA algorithms]. This is especially convenient when you want to compare, e.g. T-Coffee and Muscle and MAFFT results to see which regions of your alignment are robust. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{task|1= | {{task|1= | ||
− | # | + | # Open the <code>.mfa</code> file <code>APSES_proteins.mfa</code> that you hve created in the previous RStudio session. |
+ | # Copy the sequences. | ||
+ | # Navigate to the [http://www.ebi.ac.uk/Tools/msa '''EBI MSA tools page'''], continue to the MAFFT page. | ||
+ | # Paste your sequences into the form. | ||
+ | # Click on '''Submit'''. | ||
+ | # In separate windows, do the same for '''Clustal Omega''', '''Kalign''', and '''TCoffee'''. | ||
+ | # Compare and interpret the results. Did any of the algorithms seem to get a difficult region more correct than the others? Which of the annotated regions does this correspond to? | ||
+ | # Post a summary of your comparison / interpretation on the mailing list. | ||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Sequence annotation== | ==Sequence annotation== | ||
− | + | {{Vspace}} | |
In this assignment we will first download a number of APSES domain containing sequences into our database - and we will automate the process. Then we will annotate them with domain data. First manually, and then again, we will automate this. Next we will extract the APSES domains from our database according to the annotations. And finally we will align them, and visualize domain conservation in the 3D model to study parts of the protein that are conserved. | In this assignment we will first download a number of APSES domain containing sequences into our database - and we will automate the process. Then we will annotate them with domain data. First manually, and then again, we will automate this. Next we will extract the APSES domains from our database according to the annotations. And finally we will align them, and visualize domain conservation in the 3D model to study parts of the protein that are conserved. | ||
+ | {{Vspace}} | ||
− | + | ===Downloading Protein Data From the Web=== | |
− | |||
− | ==Downloading Protein Data From the Web | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{task|1= | {{task|1= | ||
− | + | * Work through <code>PART EIGHT: DOWNLOADING DATA FROM THE WEB</code> of the <code>Sequence.R</code> script. | |
− | + | * Part of this code makes use of the <code>reutils</code> package: open the [https://cran.r-project.org/web/packages/reutils/reutils.pdf package vignette on CRAN] so you can read in more detail about the functions we cover. | |
}} | }} | ||
+ | {{Vspace}} | ||
− | + | ===Computing annotations over MSAs=== | |
− | |||
− | |||
− | |||
− | |||
− | == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{task|1= | {{task|1= | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * Work through <code>PART NINE: COMPUTING OVER MSAs</code> of the <code>Sequence.R</code> script. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
}} | }} | ||
Line 1,885: | Line 1,118: | ||
[[Image:InformationPlot.jpg|frame|none|Plot of information vs. sequence position produced by the '''R''' script above, for an alignment of Mbp1 ortholog APSES domains.]] | [[Image:InformationPlot.jpg|frame|none|Plot of information vs. sequence position produced by the '''R''' script above, for an alignment of Mbp1 ortholog APSES domains.]] | ||
− | + | {{Vspace}} | |
− | |||
− | |||
− | |||
− | {{ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | }} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Vspace}} | {{Vspace}} | ||
+ | ==Genomics== | ||
{{Vspace}} | {{Vspace}} | ||
− | |||
− | |||
Large scale genome sequencing and annotation has made a wealth of information available that is all related to the same biological objects: the DNA. The information however can be of very different types, it includes: | Large scale genome sequencing and annotation has made a wealth of information available that is all related to the same biological objects: the DNA. The information however can be of very different types, it includes: | ||
Line 2,209: | Line 1,139: | ||
Since all of this information relates to specific positions or ranges on the chromosome, displaying it alongside the chromosomal coordinates is a useful way to integrate and visualize it. We call such strips of annotation ''tracts'' and display them in ''genome browsers''. Quite a number of such browsers exist and most work on the same principle: server hosted databases are queried through a Web interface; the resulting data is displayed graphically in a Web browser window. The large data centres each have their own browsers, but arguably the best engineered, most informative and mostly widely used one is provided by the University of California Santa Cruz (UCSC) Genome Browser Project. | Since all of this information relates to specific positions or ranges on the chromosome, displaying it alongside the chromosomal coordinates is a useful way to integrate and visualize it. We call such strips of annotation ''tracts'' and display them in ''genome browsers''. Quite a number of such browsers exist and most work on the same principle: server hosted databases are queried through a Web interface; the resulting data is displayed graphically in a Web browser window. The large data centres each have their own browsers, but arguably the best engineered, most informative and mostly widely used one is provided by the University of California Santa Cruz (UCSC) Genome Browser Project. | ||
− | Compiling the data requires a massive annotation effort, which has not been completed for all genome-sequenced species. In particular, not | + | Compiling the data requires a massive annotation effort, which has not been completed for all genome-sequenced species. In particular, ''Spizellomyces punctatus'' has not been included in the major model-organism annotation efforts. The general strategy for analysis of a gene in ''Spizellomyces punctatus'' is thus to map it to homologous genes in {{WP|Model organism|model organisms}}. In this assignment you will explore the UCSC genome browser and we will go through an exercise that relates fungal replication genes to human genes. We have previously focused a lot on Mbp1 homologs, but these have no clear equivalences in "higher" eukaryotes. However one of the key target genes of Mbp1 is the cell cycle protein {{WP|Cdc6}}, which is well conserved in fungi and other eukaryotes eukaryotes and has a {{WP|CDC6|human homolog}}. Since generally speaking the annotation level for human genes is the highest, we will have a closer look at that gene. |
− | {{ | + | {{Vspace}} |
− | |||
− | |||
− | |||
− | + | ===The UCSC genome browser=== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | The | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{smallvspace}} | {{smallvspace}} | ||
Line 2,345: | Line 1,203: | ||
* You can also work through the [http://www.nature.com/scitable/ebooks/guide-to-the-ucsc-genome-browser-16569863 Guide to the UCSC Genome Browser at "nature"] which gives an excellent, in-depth overview. | * You can also work through the [http://www.nature.com/scitable/ebooks/guide-to-the-ucsc-genome-browser-16569863 Guide to the UCSC Genome Browser at "nature"] which gives an excellent, in-depth overview. | ||
* Study the ''User's guide to ENCODE'' paper linked below. | * Study the ''User's guide to ENCODE'' paper linked below. | ||
− | |||
{{task|1= | {{task|1= | ||
Line 2,359: | Line 1,216: | ||
}} | }} | ||
− | + | --> | |
Line 2,365: | Line 1,222: | ||
== Links and resources == | == Links and resources == | ||
+ | * [[Regular Expressions|More on Regular Expressions]] | ||
+ | |||
{{#pmid: 22764121}} | {{#pmid: 22764121}} | ||
{{smallvspace}} | {{smallvspace}} | ||
Line 2,372: | Line 1,231: | ||
{{smallvspace}} | {{smallvspace}} | ||
{{#pmid: 25645873}} | {{#pmid: 25645873}} | ||
+ | |||
+ | *{{#pmid: 15286655}} | ||
+ | |||
+ | *{{PDFlink|[https://www.bioconductor.org/packages/release/bioc/vignettes/Biostrings/inst/doc/BiostringsQuickOverview.pdf Biostrings Quick Overview]| summary of Biostrings functions (PDF)}} | ||
+ | |||
+ | *[[Reference_species_for_fungi|Our 10 "reference" fungi]] | ||
Latest revision as of 20:44, 3 January 2017
Sequence
Data | Sequence | Structure | Phylogeny | Function |
Contents
- 1 The Sequence Unit
- 2 Introduction
- 3 An S. punctatus homologue to Mbp1
- 4 Analyze
- 5 R Sequence Analysis Tools
- 6 Alignment
- 7 Pairwise Alignments: Optimal
- 8 Heuristic pairwise alignments: BLAST
- 9 Heuristic profile-based alignment: PSI BLAST
- 10 Model Based Alignments: PSSMs and HMMs
- 11 Suboptimal alignments
- 12 SMART domain annotation
- 13 Multiple Sequence Alignment
- 14 Sequence annotation
- 15 Genomics
- 16 Links and resources
- 17 Footnotes and references
- 18 Ask, if things don't work for you!
The Sequence Unit
This Unit is part of a brief introduction to bioinformatics. The material is more or less interleaved with the Sequence.R
Project File which is part of the RStudio project associated with this material. Refer to the course/workshop page for installation instructions.
This Unit introduces a target organism which has recently been genome-sequenced in which we will search for novel information about APSES domain transcription factors, it discusses pairwise- and multiple sequence alignment, and BLAST for fast database searches, it explores some methods for sequence analysis and introduces work with entire genomes.
Introduction
Sequence alignment is a very large, and important topic.
One of the foundations of bioinformatics is the empirical observation that related sequences conserve structure, and often function. Much of what we know about a protein's physiological function is based on the conservation of that function as the species evolves. Indeed, conservation is a defining aspect of what can rightly be said to be a protein's "function" in the first place. Conservation - or its opposite: variation - is a consequence of selection under constraints: protein sequences change as a consequence of DNA mutations, this changes the protein's structure, this in turn changes functions and that has multiple effects on a species' reproductive fitness. Detrimental variants may be removed. Variation that is tolerated is largely neutral and therefore found only in positions that are neither structurally nor functionally critical. Conservation patterns can thus provide evidence for many different questions: structural conservation among proteins with similar 3D-structures, functional conservation among homologues with comparable roles, or amino acid propensities as predictors for protein engineering and design tasks.
We assess conservation by comparing sequences between related proteins. This is the basis on which we can make inferences from well-studied model organisms for species that have not been studied as deeply. The foundation is to measure protein sequence similarity. If two sequences are much more similar than we could expect from chance, we hypothesize that their similarity comes from shared ancestry plus conservation. The measurement of sequence similarity however requires sequence alignment[1].
A carefully done sequence alignment is a cornerstone for the annotation of the essential properties a gene or protein. It can already tell us a lot about which proteins we expect to have similar functions in different species.
Multiple sequence alignments (MSAs) are further useful to resolve ambiguities in the precise placement of "indels"[2] and to ensure that columns in alignments actually contain amino acids that evolve in a similar context. MSAs serve as input for
- functional annotation;
- protein homology modelling;
- phylogenetic analyses, and
- sensitive homology searches in databases.
Below we will explore the essentials of
- optimal global and local pairwise alignment;
- Fast BLAST searches to determine best matches in large databases, and reciprocal best matches;
- PSI BLAST searches for exhaustive matches;
- Domain annotation by sequence alignment to statistical models;
- Multiple sequence alignments; and
- Genomes.
This is the scenario: the genome sequence of early-diverging fungus Spizellomyces punctatus has been recently published[3]. Does it contain proteins that are related to yeast Mbp1? If there are more, which one is the most closely related protein? Is its DNA binding domain conserved? How can we identify all related genes in S. punctatus? And, what can we learn from that collection of sequences?
An S. punctatus homologue to Mbp1
BLAST is a fast algorithm for searching related sequences in large databases. We will explore it in more detail below, for now, we just briefly use it to find the sequence in S. punctatus that is most closely related to MBP1_SACCE
.
Task:
- Return to the Mbp1 protein page at the NCBI and follow the link to Run BLAST under "Analyze this sequence" in the right-hand column.
- This allows you to perform a sequence similarity search. You need to set two parameters:
- As Database, select Reference proteins (refseq_protein) from the drop down menu;
- In the Organism field, type
spizellomyces punctatus
. The field will autocomplete to two choices, choose the DAOM BR117 strain (taxid:645134), as that is the strain which has been sequenced.
- Click on BLAST to start the search. This should find a handful of genes, all of them in S. punctatus. If you find none, or hundreds, or they are not all in the same species, you did something wrong. Ask on the mailing list and make sure to fix the problem.
- Look at the top "hit" in the Alignments section. It should be the hypothetical protein SPPG_00022, and it should have two matching Ranges reported.
- In the header information for each hit is a link to its database entry, right next to Sequence ID. It says
XP_016612325.1
... follow that link. - Open the Taxonmoy Browser page in a new tab (it's linked from the
ORGANISM
line of the sequernce record), explore it, and note the taxonomy ID. - Note the RefSeq ID, and the search results %ID, E-value, whether one or more similar regions were found etc. in your Journal. We will refer to this sequence as "S. punctatus Mbp1" or
MBP1_SPIPU
or similar in the future. - Finally access the UniProt ID mapping service to retrieve the UniProt ID for the protein. Paste the RefSeq ID and choose RefSeq Protein as the From: option and UniProtKB as the To: option.
- If the mapping works, the UniProt ID will be in the Entry: column of the table that is being returned. Click the link and have a look at the UniProt entry page while you're there.
Add MBP1_SPIPU to the database
Task:
- (Re)-open the RStudio project and open the
Sequence.R
file. - Work through
PART ONE: ADDING DATA
.
Analyze
Let us perform a few simple sequence analyses using the online EMBOSS tools. EMBOSS (the European Molecular Biology laboratory Open Software Suite) combines a large number of simple but fundamental sequence analysis tools. The tools can be installed locally on your own machine, or run via a public Web interface. Google for EMBOSS explorer, public access points include http://emboss.bioinformatics.nl/ .
Access an EMBOSS Explorer service and familiarize yourself with the offerings in the EMBOSS package. I find some of the nucleic acid tools indispensable in the lab, such as restriction-site mapping tools, and I frequently use the alignment tools Needle
and Water
, but by and large the utility of many of the components–while fast, efficient and straightforward to use– suffers from lack of reference and comparison and from terse output. The routines show their conceptual origin in the 1970s and 1980s. We will encounter alternatives in later assignments.
Task:
- Local composition
- Find
pepinfo
under the PROTEIN COMPOSITION heading. - Retrieve the
MBP1_SACCE
andMBP1_SPIPU
sequences from your R database, e.g. with something likecat(db$protein[db$protein$name == "MBP1_SACCE"), "sequence"]
- Do the following for both sequences in separate windows:
- Copy and paste the sequence into the input field.
- Run with default parameters.
- Scroll to the figures all the way at the bottom.
- Try to compare the result ... (kind of hard without reference, overlay and expectation, isn't it?)
Task:
- Global composition
- Find
pepstats
under the PROTEIN COMPOSITION heading. - Do the following for both sequences in separate windows:
- Paste the
MBP1_SACCE
resp. theMBP1_SPIPU
sequence into the input field. - Run with default parameters.
- Paste the
- Try to compare ... are there significant and unexpected differences?
Task:
- Transmembrane sequences
- Find
tmap
. Also findshuffleseq
. - Use the
MBP1_SPIPU
sequence to annotate transmembrane helices in the protein and at least five shuffled sequences.MBP1_SPIPU
is not expected to have TM helices, nor are the shuffled sequences expected to have any. If you do find some, these are most likely "false positives".
- Also compare the following positive control: Gef1 - a yeast chloride channel with 10 trans-membrane helices and outward localized N-terminus:
>gi|6322500|ref|NP_012574.1| Gef1p [Saccharomyces cerevisiae S288c]
MPTTYVPINQPIGDGEDVIDTNRFTNIPETQNFDQFVTIDKIAEENRPLSVDSDREFLNSKYRHYREVIW
DRAKTFITLSSTAIVIGCIAGFLQVFTETLVNWKTGHCQRNWLLNKSFCCNGVVNEVTSTSNLLLKRQEF
ECEAQGLWIAWKGHVSPFIIFMLLSVLFALISTLLVKYVAPMATGSGISEIKVWVSGFEYNKEFLGFLTL
VIKSVALPLAISSGLSVGKEGPSVHYATCCGYLLTKWLLRDTLTYSSQYEYITAASGAGVAVAFGAPIGG
VLFGLEEIASANRFNSSTLWKSYYVALVAITTLKYIDPFRNGRVILFNVTYDRDWKVQEIPIFIALGIFG
GLYGKYISKWNINFIHFRKMYLSSWPVQEVLFLATLTALISYFNEFLKLDMTESMGILFHECVKNDNTST
FSHRLCQLDENTHAFEFLKIFTSLCFATVIRALLVVVSYGARVPAGIFVPSMAVGATFGRAVSLLVERFI
SGPSVITPGAYAFLGAAATLSGITNLTLTVVVIMFELTGAFMYIIPLMIVVAITRIILSTSGISGGIADQ
MIMVNGFPYLEDEQDEEEEETLEKYTAEQLMSSKLITINETIYLSELESLLYDSASEYSVHGFPITKDED
KFEKEKRCIGYVLKRHLASKIMMQSVNSTKAQTTLVYFNKSNEELGHRENCIGFKDIMNESPISVKKAVP
VTLLFRMFKELGCKTIIVEESGILKGLVTAKDILRFKRIKYREVHGAKFTYNEALDRRCWSVIHFIIKRF
TTNRNGNVI
- Evaluate the output: does the algorithm (wrongly) predict TM-helices in
MBP1_SPIPU
? In the shuffled sequences? Does it find all ten TM-helices in Gef1?
Task:
- Motifs
- Find
pepcoil
, an algorithm to detect coiled coil motifs. - Run this with the YFO Mbp1 sequence and yeast Mbp1.
- Try to compare ... do both sequences have coiled-coil motif predictions? Are they annotated in approximately comparable regions of the respective sequence?
A textbook example of a coiled coil is the so-called leucine zipper domain. It is a protein-protein interaction module that has a number of leucine residues in i, i+7 position. We don't know what the intervening residues may be, thus we need to define the sequence we are looking for as a generic pattern. This is efficiently done using regular expressions.
A Brief Digression to Regular Expressions
- Regular expressions are a concise description language to define patterns for pattern-matching in strings.
Truth be told, many programmers have a love-hate relationship with regular expressions. The syntax of regular expressions is very powerful and expressive, but also terse, not always intuitive, and sometimes hard to understand. I'll introduce you to a few principles here that are quite straightforward and they will probably cover 99% of the cases you will encounter.
Here is our test-case: the sequence of Mbp1, copied from the NCBI Protein database page for yeast Mbp1.
1 msnqiysary sgvdvyefih stgsimkrkk ddwvnathil kaanfakakr trilekevlk 61 ethekvqggf gkyqgtwvpl niakqlaekf svydqlkplf dftqtdgsas pppapkhhha 121 skvdrkkair sastsaimet krnnkkaeen qfqsskilgn ptaaprkrgr pvgstrgsrr 181 klgvnlqrsq sdmgfprpai pnssisttql psirstmgpq sptlgileee rhdsrqqqpq 241 qnnsaqfkei dledglssdv epsqqlqqvf nqntgfvpqq qssliqtqqt esmatsvsss 301 pslptspgdf adsnpfeerf pgggtspiis miprypvtsr pqtsdindkv nkylsklvdy 361 fisnemksnk slpqvllhpp phsapyidap idpelhtafh wacsmgnlpi aealyeagts 421 irstnsqgqt plmrsslfhn sytrrtfpri fqllhetvfd idsqsqtvih hivkrksttp 481 savyyldvvl skikdfspqy rielllntqd kngdtalhia skngdvvffn tlvkmgaltt 541 isnkegltan eimnqqyeqm miqngtnqhv nssntdlnih vntnnietkn dvnsmvimsp 601 vspsdyityp sqiatnisrn ipnvvnsmkq masiyndlhe qhdneikslq ktlksisktk 661 iqvslktlev lkesskdeng eaqtnddfei lsrlqeqntk klrkrliryk rlikqkleyr 721 qtvllnklie detqattnnt vekdnntler lelaqeltml qlqrknklss lvkkfednak 781 ihkyrriire gtemnieevd ssldvilqtl iannnknkga eqiitisnan sha //
Task:
Navigate to http://regexpal.com and paste the sequence into the lower box. This site is one of a number of online regular expression testers; their immediate, visual feedback is invaluable when you are developing regular expression patterns. Set the dialect to PCRE in the drop-down menu, it is Javascript by default.
Lets try some expressions:
- Most characters are matched literally.
- Type "
a
" in to the upper box and you will see all "a
" characters matched. Then replacea
withq
. - Now type "
aa
" instead. Thenkrnnkk
. Sequences of characters are also matched literally.
- The pipe character | that symbolizes logical OR can be used to define that more than one character should match
i(s|m|q)n
matchesisn
ORimn
ORiqn
. Note how we can group with parentheses, and try what would happen without them.
- We can more conveniently specify more than one character to match if we place it in square brackets.
[lq]
matchesl
ORq
.[familyvw]
matches hydrophobic amino acids.
- Within square brackets, we can specify "ranges".
[1-5]
matches digits from 1 to 5.
- Within square brackets, we can specify characters that should NOT be matched, with the caret,
^
. [^0-9]
matches everything EXCEPT digits.[^a-z]
matches everything that is not a lower-case letter. That's what we need (try it).
Task:
- Work through
PART TWO: REGULAR EXPRESSIONS
section of theSequence.R
R script for a deeper exposure to regular expressions.
R Sequence Analysis Tools
It's interesting to see this collection of tools that were carefully designed some twenty years ago, as an open source replacement for a set of software tools - the GCG package - that was indispensable for molecular biology labs in the 80s and 90s, but whose cost had become prohibitive. Fundamentally this is a building block approach, and the field has turned to programming solutions instead.
As for functionality, much more sophisticated functions are available on the Web: do take a few minutes and browse the curated Web services directory of bioinformatics.ca.
As for versatility, R certainly has the edge. Let's explore some of the functions available in the seqinr
package that you already encountered in the introductory R tutorial. They are comparatively basic - but it is easy to prepare our own analysis.
Task:
- Study the code in the
PART THREE: SEQUENCE ANALYSIS
section of theSequence.R
script
Alignment
- Sequence alignments are the single most important task of bioinformatics algorithms.
DotPlots and the Mutation Data Matrix
Before we start calculating alignments, we should get a better sense of the underlying sequence similarity. A Dotplot is a perfect tool for that, because it displays alignment-free similarity information. Let's make a dotplot that uses the BLOSUM62 Mutation Data Matrix to measure pairwise amino acid similarity. The NCBI makes its alignment matrices available by ftp. They are located at ftp://ftp.ncbi.nih.gov/blast/matrices - for example here is a link to the BLOSUM62 matrix[4].
Scoring matrices are also available in the Bioconductor Biostrings package.
BLOSUM62
A R N D C Q E G H I L K M F P S T W Y V B J Z X *
A 4 -1 -2 -2 0 -1 -1 0 -2 -1 -1 -1 -1 -2 -1 1 0 -3 -2 0 -2 -1 -1 -1 -4
R -1 5 0 -2 -3 1 0 -2 0 -3 -2 2 -1 -3 -2 -1 -1 -3 -2 -3 -1 -2 0 -1 -4
N -2 0 6 1 -3 0 0 0 1 -3 -3 0 -2 -3 -2 1 0 -4 -2 -3 4 -3 0 -1 -4
D -2 -2 1 6 -3 0 2 -1 -1 -3 -4 -1 -3 -3 -1 0 -1 -4 -3 -3 4 -3 1 -1 -4
C 0 -3 -3 -3 9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -1 -3 -1 -4
Q -1 1 0 0 -3 5 2 -2 0 -3 -2 1 0 -3 -1 0 -1 -2 -1 -2 0 -2 4 -1 -4
E -1 0 0 2 -4 2 5 -2 0 -3 -3 1 -2 -3 -1 0 -1 -3 -2 -2 1 -3 4 -1 -4
G 0 -2 0 -1 -3 -2 -2 6 -2 -4 -4 -2 -3 -3 -2 0 -2 -2 -3 -3 -1 -4 -2 -1 -4
H -2 0 1 -1 -3 0 0 -2 8 -3 -3 -1 -2 -1 -2 -1 -2 -2 2 -3 0 -3 0 -1 -4
I -1 -3 -3 -3 -1 -3 -3 -4 -3 4 2 -3 1 0 -3 -2 -1 -3 -1 3 -3 3 -3 -1 -4
L -1 -2 -3 -4 -1 -2 -3 -4 -3 2 4 -2 2 0 -3 -2 -1 -2 -1 1 -4 3 -3 -1 -4
K -1 2 0 -1 -3 1 1 -2 -1 -3 -2 5 -1 -3 -1 0 -1 -3 -2 -2 0 -3 1 -1 -4
M -1 -1 -2 -3 -1 0 -2 -3 -2 1 2 -1 5 0 -2 -1 -1 -1 -1 1 -3 2 -1 -1 -4
F -2 -3 -3 -3 -2 -3 -3 -3 -1 0 0 -3 0 6 -4 -2 -2 1 3 -1 -3 0 -3 -1 -4
P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4 7 -1 -1 -4 -3 -2 -2 -3 -1 -1 -4
S 1 -1 1 0 -1 0 0 0 -1 -2 -2 0 -1 -2 -1 4 1 -3 -2 -2 0 -2 0 -1 -4
T 0 -1 0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1 1 5 -2 -2 0 -1 -1 -1 -1 -4
W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1 1 -4 -3 -2 11 2 -3 -4 -2 -2 -1 -4
Y -2 -2 -2 -3 -2 -1 -2 -3 2 -1 -1 -2 -1 3 -3 -2 -2 2 7 -1 -3 -1 -2 -1 -4
V 0 -3 -3 -3 -1 -2 -2 -3 -3 3 1 -2 1 -1 -2 -2 0 -3 -1 4 -3 2 -2 -1 -4
B -2 -1 4 4 -3 0 1 -1 0 -3 -4 0 -3 -3 -2 0 -1 -4 -3 -3 4 -3 0 -1 -4
J -1 -2 -3 -3 -1 -2 -3 -4 -3 3 3 -3 2 0 -3 -2 -1 -2 -1 2 -3 3 -3 -1 -4
Z -1 0 0 1 -3 4 4 -2 0 -3 -3 1 -1 -3 -1 0 -1 -2 -2 -2 0 -3 4 -1 -4
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -4
* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 1
Task:
- Study this table and make sure you understand what this information represents, how it can be used, and what a reasonable range of values for identities and pairscores for non-identical, similar and dissimilar residues is. Ask on the mailing list in case you have questions. This piece of data is the foundation of any sequence alignment. without it, no sensible alignment could be produced!
- Figure out the following values:
- Compare an identical match of histidine with an identical match of serine. What does this mean?
- How similar are lysine and leucine, as compared to leucine and isoleucine? Is this what you expect?
- PAM matrices are sensitive to an interesting artefact. Since W and R can be interchanged with a single point mutation, the probability of observing W→R and R→W exchanges in closely related sequences is much higher than one would expect from the two amino acid's biophysical properties. (Why?) PAM matrices were compiled from hypothetical point exchanges and then extrapolated. Therefore these matrices assign a relatively high degree of similarity to (W, R), that is not warranted considering what actually happens in nature. Do you see this problem in the BLOSUM matrix? If BLOSUM does not have this issue, why not?
Next, let's apply the scoring matrix for actual comparison:
Task:
- Return to your RStudio session.
- Study and work through the code in the
PART FOUR: DOTPLOT AND MDM
section of theSequence.R
script
Pairwise Alignments: Optimal
Optimal pairwise sequence alignment is the mainstay of sequence comparison. To consider such alignments in practice, we'll align the same sequences that we have just mapped in the dotplot exercise: MBP1_SACCE
and MBP1_SPIPU
. Your dotplots should have shown you two regions of similarity: a highly similar region focussed somewhere around the N-terminal 100 amino acids, and a more extended, but somewhat less similar region in the middle of the sequences. You can think of the sequence alignment algorithm as building the similarity matrix, and then discovering the best path along high-scoring diagonals.
Optimal Sequence Alignment: EMBOSS online tools
Online programs for optimal sequence alignment are part of the EMBOSS tools. The programs take FASTA files or raw text files as input.
Local optimal sequence alignment using "water"
Task:
- Fetch the sequences for
MBP1_SACCE
andMBP1_SPIPU
from your database. - Access the EMBOSS Explorer site (if you haven't done so yet, you might want to bookmark it.)
- Look for ALIGNMENT LOCAL, click on water, paste your sequences and run the program with default parameters.
- Study the results. You will probably find that the alignment extends over most of the protein, but does not include the termini.
- Change the Gap opening and Gap extension parameters to high values (e.g. 30 and 5). Then run the alignment again.
- Note what is different.
Global optimal sequence alignment using "needle"
Task:
- Look for ALIGNMENT GLOBAL, click on needle, paste the
MBP1_SACCE
andMBP1_SPIPU
sequences again and run the program with default parameters. - Study the results. You will find that the alignment extends over the entire protein, likely with long indels at the termini.
Optimal Sequence Alignment with R: Biostrings
Biostrings has extensive functions for sequence alignments. They are generally well written and tightly integrated with the rest of Bioconductor's functions. There are a few quirks however: for example alignments won't work with lower-case sequences[5].
Task:
- Return to your RStudio session.
- Study and work through the code in the
PART FIVE: BIOSTRINGS PAIRWISE ALIGNMENT
section of theSequence.R
script
Heuristic pairwise alignments: BLAST
BLAST is by a margin the most important computational tool of molecular biology. It is so important, that we have already used BLAST above, even before properly introducing the algorithm and the principles, to find the most similar sequence to MBP1_SACCE
in SPIPU.
In this part of the unit we will use BLAST to perform Reciprocal Best Matches.
One of the important questions of model-organism based inference is: which genes perform the same function in two different organisms. In the absence of other information, our best guess is that these are the two genes that are mutually most similar. The keyword here is mutually. If MBP1_SACCE
from S. cerevisiae is the best match to RES2_SCHPO
in S. pombe, the two proteins are only mutually most similar if RES2_SCHPO
is more similar to MBP1_SACCE
than to any other S. cerevisiae protein. We call this a Reciprocal Best Match, or "RBM"[6].
The argument is summarized in the figure on the right: genes that evolve under continuos selective pressure on their function have relatively lower mutation rates and are thus more similar to each other, than genes that undergo neo- or sub-functionalization after duplication.
However, there is a catch: proteins are often composed of multiple domains that implement distinct roles of their function. Under the assumptions above we could hypothesize:
- a gene in SPIPU that has the "same" function as the Mbp1 cell-cycle checkpoint switch in yeast should be an RBM to Mbp1;
- a gene that binds to the same DNA sites as Mbp1 should have a DNA-binding domain that is an RBM to the DNA binding domain of Mbp1.
Thus we'll compare RBMs in SPIPU for full-length Mbp1_SACCE
and its DNA-binding domain, and see if the results are the same.
Full-length RBM
You have already performed the first half of the experiment: matching from S. cerevisiae to S. punctatus . The backward match is simple.
Task:
- Access BLAST and follow the link to the protein blast program.
- Enter the RefSeq ID for
MBP1_SPIPU
in the Query sequence field. - Select
refseq_protein
as the database to search in, and enterSaccharomyces cerevisiae (taxid:4932)
to restrict the organism for which hits are reported. - Run BLAST. Examine the results.
If your top-hit is NP_010227
, you have confirmed the RBM between Mbp1_SACCE
and Mbp1_SPIPU
. If it is not, let me know. I expect this to be the same and would like to verify your results if it is not.
RBM for the DNA binding domain
The DNA-binding domain of Mbp1_SACCE
is called an APSES domain. If the RBM between Saccharomyces cerevisiae Mbp1 and Spizellomyces punctatus is truly an orthologue, we expect all of the protein's respective domains to have the RBM property as well. But let's not simply assume what we can easily test. We'll define the sequence of the APSES domain in MBP1_SACCE and YFO and see how these definitions reflect in a BLAST search.
Defining the range of the APSES domain annotation
The APSES domain is a well-defined type of DNA-binding domain that is ubiquitous in fungi and unique in that kingdom. Structurally it is a member of the Winged Helix-Turn-Helix family. Recently it was found that it is homologous to the somewhat shorter, prokaryotic KilA-N domain; thus the APSES domain was retired from pFam and instances were merged into the KilA-N family. However InterPro has a KilA-N entry but still recognizes the APSES domain.
KilA-N domain boundaries in Mbp1 can be derived from the results of a CDD search with the ID 1BM8_A (the Mbp1 DNA binding domain crystal structure). The KilA-N superfamily domain alignment is returned.
- (pfam 04383): KilA-N domain; The amino-terminal module of the D6R/N1R proteins defines a novel, conserved DNA-binding domain (the KilA-N domain) that is found in a wide range of proteins of large bacterial and eukaryotic DNA viruses. The KilA-N domain family also includes the previously defined APSES domain. The KilA-N and APSES domains may also share a common fold with the nucleic acid-binding modules of the LAGLIDADG nucleases and the amino-terminal domains of the tRNA endonuclease.
10 20 30 40 50 60 70 80
....*....|....*....|....*....|....*....|....*....|....*....|....*....|....*....|
1BM8A 16 IHSTGSIMKRKKDDWVNATHILKAANFAKaKRTRILEKEVLKETHEKVQ---------------GGFGKYQGTWVPLNIA 80
Cdd:pfam04383 3 YNDFEIIIRRDKDGYINATKLCKAAGETK-RFRNWLRLESTKELIEELSeennvdkseiiigrkGKNGRLQGTYVHPDLA 81
90
....*....|....
1BM8A 81 KQLA----EKFSVY 90
Cdd:pfam04383 82 LAIAswisPEFALK 95
Note that CDD and SMART are not consistent in how they apply pFam 04383
to the Mbp1 sequence. See annotation below.
The CDD KilA-N domain definition begins at position 16 of the 1BM8 sequence. But virtually all fungal APSES domains have a longer, structurally defined, conserved N-terminus. Blindly applying the KilA-N domain definition to these proteins would lose important information. For most purposes we will prefer the sequence spanned by the 1BM8_A structure. The sequence is given below, the KilA-N domain is coloured dark green. By this definition the APSES domain is 99 amino acids long and comprises residues 4 to 102 of the NP_010227
sequence.
10 20 30 40 50 60 70 80
....*....|....*....|....*....|....*....|....*....|....*....|....*....|....*....|
1BM8A 1 QIYSARYSGVDVYEFIHSTGSIMKRKKDDWVNATHILKAANFAKAKRTRILEKEVLKETHEKVQGGFGKYQGTWVPLNIA 80
90
....*....|....*....
1BM8A 81 KQLAEKFSVYDQLKPLFDF 99
- Yeast APSES domain sequence in FASTA format
>APSES_MBP1 Residues 4-102 of S. cerevisiae Mbp1 QIYSARYSGVDVYEFIHSTGSIMKRKKDDWVNATHILKAANFAKAKRTRI LEKEVLKETHEKVQGGFGKYQGTWVPLNIAKQLAEKFSVYDQLKPLFDF
- Synopsis of ranges
Domain | Link | Length | Boundary | Range (Mbp1) | Range (1BM8) |
KilA-N: pfam04383 (CDD) | CDD alignment | 72 | STGSI ... KFSVY | 21 - 93 | 18 - 90 |
KilA-N: pfam04383 (SMART) | Smart main page | 79 | IHSTG ... YDQLK | 19 - 97 | 16 - 94 |
KilA-N: SM01252 (SMART) | Smart main page | 84 | TGSIM ... DFTQT | 22 - 105 | 19 - 99... |
APSES: Interpro IPR003163 | (Interpro) | 130 | QIYSA ... IRSAS | 3 - 133 | 1 - 99... |
APSES (1BM8) | – | 99 | QIYSA ... PLFDF | 4 - 102 | 1 - 99 |
Executing the forward search
Task:
- Access BLAST and follow the link to the protein blast program.
- Forward search:
- Paste only the APSES domain sequence for
MBP1_SACCE
in the Query sequence field (copy the sequence from above). - Select
refseq_protein
as the database to search in, and enter the correct taxonomy ID for Spizellomyces punctatus in the Organism field. - Run BLAST. Examine the results.
- If the top hit is the same protein you have already seen, oK. If it's not, something went wrong.
- Paste only the APSES domain sequence for
With this we have confirmed the sequence with the most highly conserved APSES domain in Spizellomyces punctatus. Can we take the sequence for the reverse search from the alignment that BLAST returns? Actually, that is not a good idea. The BLAST alignment is not guaranteed to be optimal. We should do an optimal sequence alignment instead. That is: we use two different tools here for two different purposes: we use BLAST to identify one protein as the most similar among many alternatives and we use optimal sequence alignment to determine the best alignment between two sequences. That best alignment is what we will annotate as the Spizellomyces punctatus APSES domain.
Alignment to define the YFO APSES domain for the reverse search
Task:
- Return to your RStudio session.
- Study and work through the code in the
PART SIX: APSES DOMAIN ANNOTATION BY ALIGNMENT
section of theSequence.R
script.
Executing the reverse search
Task:
- Paste the the APSES domain sequence for the Spizellomyces punctatus protein and enter it into Query sequence field of the BLAST form.
- Select
refseq_protein
as the database to search in, and enterSaccharomyces cerevisiae (taxid:4932)
to restrict the organism for which hits are reported. - Run BLAST. Examine the results.
- Select
If your top-hit is again NP_010227
, you have confirmed the RBM between the APSES domain of Mbp1_SACCE
and Mbp1_SPIPU
. If it is not, something went wrong.
Heuristic profile-based alignment: PSI BLAST
It is (deceptively) easy to perform BLAST searches via the Web interface, but to use such powerful computational tools to their greatest advantage takes a considerable amount of care, caution and consideration.
PSI-BLAST allows to perform very sensitive searches for homologues that have diverged so far that their pairwise sequence similarity has become insignificant. It achieves this by establishing a profile of sequences to align with the database, rather than searching with individual sequences. This deemphasizes parts of the sequence that are variable and inconsequential, and focusses on the parts of greater structural and functional importance. As a consequence, the signal to noise ratio is greatly enhanced.
In this part of the assignment, we will set ourselves the task to use PSI-BLAST and find all orthologs and paralogs of the APSES domain containing transcription factors in YFO. We will use these sequences for multiple alignments, calculation of conservation etc.
The first methodical problem we have to address is what sequence to search with. The full-length Mbp1 sequence from Saccharomyces cerevisiae or its RBM from Spizellomyces punctatus are not suitable: They contain multiple domains (in particular the ubiquitous Ankyrin domains) and would create broad, non-specific profiles. The APSES domain sequence by contrast is structurally well defined. The KilA-N domain, being shorter, is less likely to make a sensitive profile. Indeed one of the results of our analysis will be to find whether APSES domains in fungi all have the same length as the Mbp1 domain, or whether some are indeed much shorter, like the KILA-N domain, as suggested by the Pfam alignment.
The second methodical problem we must address is how to perform a sensitive PSI-BLAST search in one organism. We need to balance two conflicting objectives:
- If we restrict the PSI-BLAST search to Spizellomyces punctatus, PSI-BLAST has little chance of building a meaningful profile - the number of homologues that actually are in S. punctatus is too small. Thus the search will not become very sensitive.
- If we don't restrict our search, but search in all species, the number of hits may become unwieldily large. It becomes increasingly difficult to closely check all hits as to whether they have good coverage. Also we need to evaluate the fringe cases of marginal E-value: should a new sequence be added to the profile, or should we hold off on it for one or two iterations, to see whether its E-value drops significantly. By all means, we need to avoid profile corruption.
Perhaps this is still be manageable when we are searching in fungi, but imagine you are working with a bacterial protein, or a protein that is conserved across the entire tree of life: your search may find tens of thousands of sequences. And by next year, thousands more will have been added.
Therefore we have to find a middle ground: add enough organisms (sequences) to compile a sensitive profile, but not so many that we can no longer individually assess the sequences that contribute to the profile. We need to define a broadly representative but manageable set of species - to exploit the transitivity of homology - even if we are interested only in matches in one species: YFO. Please reflect on this and make sure you understand why we include sequences in a PSI-BLAST search that we are not actually interested in.
We need a subset of species
- that represent as large a range as possible on the evolutionary tree;
- that are as well distributed as possible on the tree; and
- whose genomes are fully sequenced.
Selecting species for a PSI-BLAST search
To select species, we will use an approach that is conceptually simple: select a set of species according to their shared taxonomic rank in the tree of life. Biological classification provides a hierarchical system that describes evolutionary relatedness for all living entities. The levels of this hierarchy are so called taxonomic ranks. These ranks are defined in Codes of Nomenclature that are curated by the self-governed international associations of scientists working in the field. The number of ranks is not specified: there is a general consensus on seven principal ranks (see below, in bold) but many subcategories exist and may be newly introduced. It is desired–but not mandated–that ranks represent clades (a group of related species, or a "branch" of a phylogeny), and it is desired–but not madated–that the rank is sharply defined. The system is based on subjective dissimilarity. Needless to say that it is in flux.
If we follow a link to an entry in the NCBI's Taxonomy database, eg. Saccharomyces cerevisiae S228c, the strain from which the original "yeast genome" was sequenced in the late 1990s, we see the following specification of its taxonomic lineage:
cellular organisms; Eukaryota; Opisthokonta;
Fungi; Dikarya; Ascomycota; Saccharomyceta;
Saccharomycotina; Saccharomycetes;
Saccharomycetales; Saccharomycetaceae;
Saccharomyces; Saccharomyces cerevisiae
These names can be mapped into taxonomic ranks, since the suffixes of these names e.g. -mycotina, -mycetaceae are specific to defined ranks. (NCBI does not provide this mapping, but Wikipedia is helpful here.)
Rank | Suffix | Example |
Domain | Eukaryota (Eukarya) | |
Subdomain | Opisthokonta | |
Kingdom | Fungi | |
Subkingdom | Dikarya | |
Phylum | Ascomycota | |
rankless taxon[7] | -myceta | Saccharomyceta |
Subphylum | -mycotina | Saccharomycotina |
Class | -mycetes | Saccharomycetes |
Subclass | -mycetidae | |
Order | -ales | Saccharomycetales |
Family | -aceae | Saccharomycetaceae |
Subfamily | -oideae | |
Tribe | -eae | |
Subtribe | -ineae | |
Genus | Saccharomyces | |
Species | Saccharomyces cerevisiae |
You can see that there is no common mapping between the yeast lineage listed at the NCBI and the commonly recognized categories - not all ranks are represented. Nor is this consistent across species in the taxonomic database: some have subfamily ranks and some don't. And the tree is in no way normalized - some of the ranks have thousands of members, and for some, only a single extant member may be known, or it may be a rank that only relates to the fossil record.
But the ranks do provide some guidance to evolutionary divergence. Say you want to choose four species across the tree of life for a study, you should choose one from each of the major domains of life: Eubacteria, Euryarchaeota, Crenarchaeota-Eocytes, and Eukaryotes. Or you want to study a gene that is specific to mammals. Then you could choose from the clades listed in the NCBI taxonomy database under Mammalia (a class rank, and depending how many species you would want to include, use the subclass-, order-, or family rank (hover over the names to see their taxonomic rank.)
I have chosen the 10 species below to define a well-distributed search-space for PSI-BLAST. Of course we must also include Spizellomyces punctatus in the selection.
To enter these 10 species as an Entrez restriction, they need to be formatted as below. (One could also enter species one by one, by pressing the (+) button after the organism list)
"Wallemia mellicola"[organism] OR
"Puccinia Graminis"[organism] OR
"Ustilago maydis"[organism] OR
"Cryptococcus neoformans"[organism] OR
"Coprinopsis cinerea"[organism] OR
"Schizosaccharomyces pombe"[organism] OR
"Aspergillus nidulans"[organism] OR
"Neurospora crassa"[organism] OR
"Bipolaris oryzae"[organism] OR
"Saccharomyces cerevisiae"[organism] OR
"Spizellomyces punctatus"[organism]
Executing the PSI-BLAST search
We have a list of species. Good. Next up: how do we use it.
Task:
- Navigate to the BLAST homepage.
- Select protein BLAST.
- Paste the MBP1_SACCE APSES domain sequence into the search field:
>APSES_MBP1 Residues 4-102 of S. cerevisiae Mbp1 QIYSARYSGVDVYEFIHSTGSIMKRKKDDWVNATHILKAANFAKAKRTRI LEKEVLKETHEKVQGGFGKYQGTWVPLNIAKQLAEKFSVYDQLKPLFDF
- Select refseq as the database.
- Copy the Entrez restrictions from above. Paste the list into the Entrez Query field.
- In the Algorithm section, select PSI-BLAST.
- Click on BLAST.
Evaluate the results carefully. Since we did not change the algorithm parameters, the threshold for inclusion was set at an E-value of 0.005 by default, and that may be a bit too lenient, i.e. it might include sequences that are not homologous. If you look at the table of your hits– in the Sequences producing significant alignments... section– there may also be a few sequences that have a low query coverage of less than 80%. Let's exclude these from the profile initially: not to worry, if they are true positives, they will come back with improved E-values and greater coverage in subsequent iterations. But if they were false positives, their E-values will rise and they will drop out of the profile and not corrupt it.
Task:
- In the header section, click on Formatting options and in the line "Format for..." set the with inclusion threshold to
0.001
(This means E-values can't be above 10-03 for the sequence to be included.) - Click on the Reformat button (top right).
- In the table of sequence descriptions (not alignments!), click on Query cover to sort the table by coverage, not by score.
- Deselect the check mark next to these sequences in the second-to-rightmost column Select for PSI blast.
- Then scroll to Run PSI-BLAST iteration 2 ... and click on
Go
.
This is now the "real" PSI-BLAST at work: it constructs a profile from all the full-length sequences and searches with the profile, not with any individual sequence. Note that we are controlling what goes into the profile in two ways:
- we are explicitly removing sequences with poor coverage; and
- we are requiring a more stringent minimum E-value for each sequence.
Task:
- Again, study the table of hits. Sequences highlighted in yellow have met the search criteria in the second iteration and are proposed for inclusion in the next iteration. Note that the coverage of (some) of the previously excluded sequences is now above 80%. These are the ones you need to check carefully: do you agree that they should be included? If there is any doubt, perhaps because of a really marginal E-value, poor coverage or a function annotation that is not compatible with your query, it is safer to exclude a sequence than to risk profile corruption. If the sequence is a true positive, it will return to the list in later iterations, usually with a better E-value as the profile improves. It's a good idea to note such sequences in your journal so you can keep track of how their E-values change.
- Let's exclude partial matches one more time. Again, deselect all sequences with less than 80% coverage. Then run the third iteration.
- Iterate the search in this way, successively relaxing the coverage threshold, until no more "New" sequences are added to the profile. The search has converged. Obviously the result depends on your data, but it would be unusual if the search had not converged after 6 iterations or so, and there is probably a mistake if there are more than 70 hits or so.
- Now look at the list of excluded hits (if any), the hits that are reasonable but didn't quite make the cut. Are there any from Spizellomyces punctatus that seem like they should actually be included? Perhaps their E-value is only marginally above the threshold? If that's the case, try returning the E-value threshold to the default 0.005 and see what happens...
Once no "new" sequences have been added, we would always get the same result on additional iterations because there are no more changes to the profile. We say that the search has converged. Time to harvest.
Task:
- In the header section of the BLAST report, click on Taxonomy reports and find Spizellomyces punctatus in the Organism Report section. These are your APSES domain homologs. All of them. There is a link to the alignment, the BLAST score, the E-value, and a link to the entry in RefSeq.
- From the report copy the sequence identifiers from Spizellomyces punctatus, with E-values above your defined threshold to your notebook.
For example, the list of Saccharomyces genes contains the following information:
Saccharomyces cerevisiae S288c [ascomycetes] taxid 559292
4e-37 ref|NP_010227.1| Mbp1p [Saccharomyces cerevisiae S288c]
2e-30 ref|NP_011036.1| Swi4p [Saccharomyces cerevisiae S288c]
4e-27 ref|NP_012881.1| Phd1p [Saccharomyces cerevisiae S288c]
4e-27 ref|NP_013729.1| Sok2p [Saccharomyces cerevisiae S288c]
7e-06 ref|NP_012165.1| Xbp1p [Saccharomyces cerevisiae S288c]
Xbp1 is a special case. It has only very low coverage, but that is because it has a long domain insertion and the N-terminal match often is not recognized by alignment because the gap scores for long indels are unrealistically large. For now, I keep that sequence with the others.
Task:
- To add the sequences to your database, open each of the links to the RefSeq record for Spizellomyces punctatus organism into a separate tab.
- Find the UniProt IDs
- Go through the (short) section
add PSI BLAST results
in the Assignment 04 R-script.
So much for using PSI-BLAST. The last step seems a bit tedious, adding all this information by hand. There's got to be a better way, right?
But for now, we'll have a look at what the sequences tell us.
Model Based Alignments: PSSMs and HMMs
- Position Specific Scoring Matrices (PSSMs)
The sensitivity of PSI-BLAST is based on the alignment of profiles of related sequences. The profiles are represented as position specific scoring matrices compiled from the alignment of hits, first to the original sequence and then to the profile. Incidentally, this process can also be turned around, and a collection of pre-compiled PSSMs can be used to annotate protein sequence: this is the principle employed by RPS-BLAST, the tool that identifies conserved domains at the beginning of every BLAST search, and has been used to build the CDD database of conserved domains (for a very informative help-page on CDD see here.
- Hidden Markov Models (HMMs)
An approach to represent such profile information that is more general than PSSMs is a Hidden Markov model (HMM) and the standard tool to use HMMs in Bioinformatics is HMMER, written by Sean Eddy. HMMER has allowed to represent the entirety of protein sequences as a collection of profiles, stored in databases such as Pfam, Interpro, and SMART. While the details are slightly different, all of these services allow to scan sequences for the presence of domains. Importantly thus, the alignment results are not collections of full-length protein families, but annotate to domain families, i.e. full-length proteins are decomposed into their homologous domains. This is a very powerful approach towards the functional annotation of unknown sequences.
In this section, we will annotate the Spizellomyces punctatus sequence with the domains it contains, using the database of domain HMMs curated by SMART in Heidelberg and Pfam at the EMBL. We will then compare these annotations with those determined for the orthologues in the reference species. In this way we can enhance the information about one protein by determining how its features are conserved.
Suboptimal alignments
Many sequences contain internal duplications - our's do too, in the ankyrin domains. To detect these, programs exist that will detect suboptimal alignments.
Task:
- Retrieve the sequence of
MBP1_SACCE
frommyDB
. - Access the RADAR server at the EBI and paste the sequence into the form.
- Review the results. Keep the window open, to compare the regions flagged as self-similar by RADAR with the SMART annotations you preduce below.
SMART domain annotation
The SMART database at the EMBL in Heidelberg integrates a number of feature detection tools including Pfam domain annotation and its own, HMM based SMART domain database. You can search by sequence, or by accession number and retrieve domain annotations and more.
SMART search
Task:
- Access the SMART database at http://smart.embl-heidelberg.de/
- Click the lick to access SMART in the normal mode.
- Paste the
MBP1_SPIPU
UniProtID into the Sequence ID or ACC field. Note: you will need to use thechunkSeq()
utility function to get its entire length printed to the console so you can copy/paste it - RStudio will truncate long sequences. - Check all the boxes for:
- outlier homologues (also including homologues in the PDB structure database)
- PFAM domains (domains defined by sequence similarity in the PFAM database)
- signal peptides (using Gunnar von Heijne's SignalP 4.0 server at the Technical University in Lyngby, Denmark)
- internal repeats (using the programs ariadne and prospero at the Wellcome Trust Centre for Human Genetics at Oxford University, England)
- Click on Sequence SMART to run the search and annotation. (In case you get an error like: "Sorry, your entry seems to have no SMART domain ...", try again with the actual sequence instead of the accession number.)
Study the results.
- Note down the following information so you can enter the annotation in the protein database for Spizellomyces punctatus:
- From the section on "Confidently predicted domains ..."
- The start and end coordinates of the KilA-N domain (...according to SMART, not Pfam, in case the two differ).
- All start and end coordinates of low complexity segments
- All start and end coordinates of ANK (Ankyrin) domains.
- Start and end coordinates of coiled coil domain(s).
- Start and end coordinates of AT hook domain(s) I expect at most one - not all Mbp1 orthologues have one.
- From the section on "Features NOT shown ..."
- Start and end coordinates of low complexity segments for which the Reason is "overlap".
- Start and end coordinates of overlapping Ankyrin (ANK_...) domains. Don't enter them all individually, but consolidate th contiguous/overlapping domains into a single annotation.
- Start and end coordinates of overlapping coiled coil segments.
- If there are other features I have not mentioned here, feel encouraged to let me know.
- From the section on "Outlier homologues ..."
- Start and end coordinates of a PDB:1SW6|B annotation (if you have one): this is a region of sequence similarity to a protein for which the 3D structural coordinate are known.
- Of course there should also be annotations to the structure of 1BM8 / 1MB1 and/or 1L3G - all of which are structures of the Mbp1 APSES domain that we have already annotated as an "APSES fold" feature previously. And there may be BLAST annotations to Ankyrin domains. We will not annotate these separately either.
- From the section on "Confidently predicted domains ..."
- Follow the links to the database entries for the annotated domains so you know what these domains and features are and understand their biological implications.
Finally, we'll enter the features into our database, so we can compare them with the annotations that I have prepared from SMART annotations of Mbp1 orthologues from the ten reference fungi.
- Complete
PART SIX: SMART DOMAIN ANNOTATIONS
of theSequence.R
script.
After you execute the code, your plot should look similar to this one but include the MBP1_SPIPU
annotations:
A note on the R code up to this point: You will find that we have been writing a lot of nested expressions for selections that join data from multiple tables of our data model. When I teach R workshops for graduate students, postdocs and research fellows, I find that the single greatest barrier in their actual research work is the preparation of data for analysis: filtering, selecting, cross-referencing, and integrating data from different sources. By now, I hope you will have acquired a somewhat robust sense for achieving this. You can imagine that there are ways to simplify those tasks with functions you write, or special resources from a variety of different packages you cab install. But the "pedestrian" approach we have been taking in our scripts has the advantage of working from a very small number of principles, with very few syntactic elements.
Multiple Sequence Alignment
In order to perform a multiple sequence alignment, we obviously need a set of homologous sequences. This is not trivial. All interpretation of MSA results depends absolutely on how the input sequences were chosen. Should we include only orthologues, or paralogues as well? Should we include only species with fully sequenced genomes, or can we tolerate that some orthologous genes are possibly missing for a species? Should we include all sequences we can lay our hands on, or should we restrict the selection to a manageable number of representative sequences? All of these choices influence our interpretation:
- orthologues are expected to be functionally and structurally conserved;
- paralogues may have divergent function but have similar structure;
- missing genes may make paralogs look like orthologs; and
- selection bias may weight our results toward sequences that are over-represented and do not provide a fair representation of evolutionary divergence.
Computing an MSA in R
We shall use the Bioconductor msa package to align the sequences we have. Study and run the following code
Task:
- Return to your RStudio session.
- Make sure you have saved
myDB
as instructed previously. - Bring code and data resources up to date by pulling the most recent version from GitHub.
- Type
init()
to re-load any updated, supporting scripts. - Study and work through the code in the
PART SEVEN: MULTIPLE SEQUENCE ALIGNMENT
section of theSequence.R
script. - Note that the final task asks you to print out some results, I may ask you to hand these in for credit at a later point.
Sequence alignment editors
Really excellent software tools have been written that help you visualize and manually curate multiple sequence alignments. If anything, I think they tend to do too much. Past versions of the course have used Jalview, but I have heard good things of AliView (and if you are on a Mac seqotron might interest you, but I only cover software that is free and runs on all three major platforms).
Right now, I am just mentioning the two alignment editors. If you have experience with comparing them, let us know.
- [Jalview] an integrated MSA editor and sequence annotation workbench from the Barton lab in Dundee. Lots of functions.
- [AliView] from Uppsala: fast, lean, looks to be very practical.
Computing alignments online
The EBI has a very convenient page to access a number of MSA algorithms. This is especially convenient when you want to compare, e.g. T-Coffee and Muscle and MAFFT results to see which regions of your alignment are robust.
Task:
- Open the
.mfa
fileAPSES_proteins.mfa
that you hve created in the previous RStudio session. - Copy the sequences.
- Navigate to the EBI MSA tools page, continue to the MAFFT page.
- Paste your sequences into the form.
- Click on Submit.
- In separate windows, do the same for Clustal Omega, Kalign, and TCoffee.
- Compare and interpret the results. Did any of the algorithms seem to get a difficult region more correct than the others? Which of the annotated regions does this correspond to?
- Post a summary of your comparison / interpretation on the mailing list.
Sequence annotation
In this assignment we will first download a number of APSES domain containing sequences into our database - and we will automate the process. Then we will annotate them with domain data. First manually, and then again, we will automate this. Next we will extract the APSES domains from our database according to the annotations. And finally we will align them, and visualize domain conservation in the 3D model to study parts of the protein that are conserved.
Downloading Protein Data From the Web
Task:
- Work through
PART EIGHT: DOWNLOADING DATA FROM THE WEB
of theSequence.R
script. - Part of this code makes use of the
reutils
package: open the package vignette on CRAN so you can read in more detail about the functions we cover.
Computing annotations over MSAs
Task:
- Work through
PART NINE: COMPUTING OVER MSAs
of theSequence.R
script.
Genomics
Large scale genome sequencing and annotation has made a wealth of information available that is all related to the same biological objects: the DNA. The information however can be of very different types, it includes:
- the actual sequence
- sequence variants (SNPs and CNVs)
- conservation between related species
- genes (with introns and exons)
- mRNAs
- expression levels
- regulatory features such as transcription factor bindings sites
and much more.
Since all of this information relates to specific positions or ranges on the chromosome, displaying it alongside the chromosomal coordinates is a useful way to integrate and visualize it. We call such strips of annotation tracts and display them in genome browsers. Quite a number of such browsers exist and most work on the same principle: server hosted databases are queried through a Web interface; the resulting data is displayed graphically in a Web browser window. The large data centres each have their own browsers, but arguably the best engineered, most informative and mostly widely used one is provided by the University of California Santa Cruz (UCSC) Genome Browser Project.
Compiling the data requires a massive annotation effort, which has not been completed for all genome-sequenced species. In particular, Spizellomyces punctatus has not been included in the major model-organism annotation efforts. The general strategy for analysis of a gene in Spizellomyces punctatus is thus to map it to homologous genes in model organisms. In this assignment you will explore the UCSC genome browser and we will go through an exercise that relates fungal replication genes to human genes. We have previously focused a lot on Mbp1 homologs, but these have no clear equivalences in "higher" eukaryotes. However one of the key target genes of Mbp1 is the cell cycle protein Cdc6, which is well conserved in fungi and other eukaryotes eukaryotes and has a human homolog. Since generally speaking the annotation level for human genes is the highest, we will have a closer look at that gene.
The UCSC genome browser
The University of California Santa Cruz (UCSC) Genome Browser Project has the largest offering of annotation information. However it is strictly model-organism oriented and you will probably not find YFO among its curated genomes. Nevertheless, if you are studying eg. human genes, or yeast, the UCSC browser will probably be your first choice.
Task:
In this task you will access the UCSC genome browser view of the human Cdc6 gene. You will explore some of the very large number of tracks that are available and study the transcription factor binding region.
- Navigate to the UCSC Genome Bioinformatics entry page and follow the link to the Genome Browser in the "Our tools" section.
- Click on the link to humans. Note that this is the hg38 assembly.
- Enter CDC6 into the "Position/Search Term" field and click "Go". You should get a list of entries, click on the top link, the gene on chromosome 17: CDC6 (uc002huj.2) at chr17:40287633-40304657
- Zoom out 1.5x to view the upstream regulatory region: the end of the adjacent WIPF2 gene should have just come into view on the left.
- Study the Genome Browser view of the human CDC6 homolog.
- In particular, note the extensive functional annotations of DNA and the alignments of vertebrate syntenic regions that allow detailed genomic comparisons.
- Distinguish between exon and intron sequence.
- Note that the mammal Conservation track has high values for all of the exons, but not only for exons.
- Find more information on the "Layered H3K27Ac" tract.
- Note the large number of available tracks that have been integrated into this view. Most of them are switched off. Find the Regulation section, and follow the link to the "ORegAnno" information to see what that is about. Note that you can switch individual annotations on or off on this page, as well as set the display format for all of the results. Select the check-box only for "transcription factor binding site" to be on, select the "Display mode" to full and click submit.
- Study this information and note:
- There is a cluster of TFBS just upstream of the transcription initiation site.
- This cluster coincides with the highest H3K27Ac density.
- If you <control>-click (right-click?) on the top orange bar of this cluster, a contextual menu opens from which you can access the details page for OREG1791811 in a new window. Follow the link to the RBL2 transcription factor via ENST00000379935 ... from where you can access transcript and gene and expression and protein family and GO and all other information.
- Go back to the Genome Browser and set the ORegAnno tract to "pack" and click "refresh".
- Slide the SNP track to just beneath the RefSeq genes track that contains the introns and exons. You will notice that one of the SNPs is green, and two are red. Why? Set the "Common SNPs" track display mode to "pack" and click "refresh".
Based on this kind of information, it should be straightforward to identify human transcription factors that potentially regulate human Cdc6 and determine - via sequence comparisons - whether any of them are homologous to any of the yeast transcription factors or factors in YFO. Through a detailed analysis of existing systems, their regulatory components and the conservation of regulation, one can in principle establish functional equivalences across large evolutionary distances.
Links and resources
Wang et al. (2013) A brief introduction to web-based genome browsers. Brief Bioinformatics 14:131-43. (pmid: 22764121) |
[ PubMed ] [ DOI ] Genome browser provides a graphical interface for users to browse, search, retrieve and analyze genomic sequence and annotation data. Web-based genome browsers can be classified into general genome browsers with multiple species and species-specific genome browsers. In this review, we attempt to give an overview for the main functions and features of web-based genome browsers, covering data visualization, retrieval, analysis and customization. To give a brief introduction to the multiple-species genome browser, we describe the user interface and main functions of the Ensembl and UCSC genome browsers using the human alpha-globin gene cluster as an example. We further use the MSU and the Rice-Map genome browsers to show some special features of species-specific genome browser, taking a rice transcription factor gene OsSPL14 as an example. |
Sloan et al. (2016) ENCODE data at the ENCODE portal. Nucleic Acids Res 44:D726-32. (pmid: 26527727) |
[ PubMed ] [ DOI ] The Encyclopedia of DNA Elements (ENCODE) Project is in its third phase of creating a comprehensive catalog of functional elements in the human genome. This phase of the project includes an expansion of assays that measure diverse RNA populations, identify proteins that interact with RNA and DNA, probe regions of DNA hypersensitivity, and measure levels of DNA methylation in a wide range of cell and tissue types to identify putative regulatory elements. To date, results for almost 5000 experiments have been released for use by the scientific community. These data are available for searching, visualization and download at the new ENCODE Portal (www.encodeproject.org). The revamped ENCODE Portal provides new ways to browse and search the ENCODE data based on the metadata that describe the assays as well as summaries of the assays that focus on data provenance. In addition, it is a flexible platform that allows integration of genomic data from multiple projects. The portal experience was designed to improve access to ENCODE data by relying on metadata that allow reusability and reproducibility of the experiments. |
Pazin (2015) Using the ENCODE Resource for Functional Annotation of Genetic Variants. Cold Spring Harb Protoc 2015:522-36. (pmid: 25762420) |
[ PubMed ] [ DOI ] This article illustrates the use of the Encyclopedia of DNA Elements (ENCODE) resource to generate or refine hypotheses from genomic data on disease and other phenotypic traits. First, the goals and history of ENCODE and related epigenomics projects are reviewed. Second, the rationale for ENCODE and the major data types used by ENCODE are briefly described, as are some standard heuristics for their interpretation. Third, the use of the ENCODE resource is examined. Standard use cases for ENCODE, accessing the ENCODE resource, and accessing data from related projects are discussed. Although the focus of this article is the use of ENCODE data, some of the same approaches can be used with data from other projects. |
ENCODE Project Consortium (2011) A user's guide to the encyclopedia of DNA elements (ENCODE). PLoS Biol 9:e1001046. (pmid: 21526222) |
[ PubMed ] [ DOI ] The mission of the Encyclopedia of DNA Elements (ENCODE) Project is to enable the scientific and medical communities to interpret the human genome sequence and apply it to understand human biology and improve health. The ENCODE Consortium is integrating multiple technologies and approaches in a collective effort to discover and define the functional elements encoded in the human genome, including genes, transcripts, and transcriptional regulatory regions, together with their attendant chromatin states and DNA methylation patterns. In the process, standards to ensure high-quality data have been implemented, and novel algorithms have been developed to facilitate analysis. Data and derived results are made available through a freely accessible database. Here we provide an overview of the project and the resources it is generating and illustrate the application of ENCODE data to interpret the human genome. |
Zarrei et al. (2015) A copy number variation map of the human genome. Nat Rev Genet 16:172-83. (pmid: 25645873) |
[ PubMed ] [ DOI ] A major contribution to the genome variability among individuals comes from deletions and duplications - collectively termed copy number variations (CNVs) - which alter the diploid status of DNA. These alterations may have no phenotypic effect, account for adaptive traits or can underlie disease. We have compiled published high-quality data on healthy individuals of various ethnicities to construct an updated CNV map of the human genome. Depending on the level of stringency of the map, we estimated that 4.8-9.5% of the genome contributes to CNV and found approximately 100 genes that can be completely deleted without producing apparent phenotypic consequences. This map will aid the interpretation of new CNV findings for both clinical and research applications. |
Eddy (2004) Where did the BLOSUM62 alignment score matrix come from?. Nat Biotechnol 22:1035-6. (pmid: 15286655) [ PubMed ] [ DOI ] Many sequence alignment programs use the BLOSUM62 score matrix to score pairs of aligned residues. Where did BLOSUM62 come from?
- Biostrings Quick Overview ( summary of Biostrings functions (PDF))
Footnotes and references
- ↑ This is not strictly true in all cases: some algorithms measure similarity through an alignment-free approach, for example by comparing structural features, or domain annotations. These methods are less sensitive, but important when sequences are so highly diverged that no meaningful sequence alignment can be produced.
- ↑ "indel": insertion / deletion – a difference in sequence length between two aligned sequences that is accommodated by gaps in the alignment. Since we can't tell from the comparison of two sequences whether such a change was introduced by insertion into or deletion from the ancestral sequence, we join both into a portmanteau.
- ↑
Russ et al. (2016) Genome Sequence of Spizellomyces punctatus. Genome Announc 4:. (pmid: 27540072) [ PubMed ] [ DOI ] Spizellomyces punctatus is a basally branching chytrid fungus that is found in the Chytridiomycota phylum. Spizellomyces species are common in soil and of importance in terrestrial ecosystems. Here, we report the genome sequence of S. punctatus, which will facilitate the study of this group of early diverging fungi.
- ↑ That directory also contains sourcecode to generate the PAM matrices. This may be of interest if you ever want to produce scoring matrices from your own datasets.
- ↑ While this seems like an unnecessary limitation, given that we could easily write such code to transform to-upper when looking up values in the MDM, perhaps it is meant as an additional sanity check that we haven't inadvertently included text in the sequence that does not belong there, such as the FASTA header line perhaps.
- ↑ Note that RBMs are usually orthologues, but the definition of orthologue and RBM is not the same. Most importantly, many orthologues are not RBMs. We will explore this more when we discuss phylogenetic inference.
- ↑ The -myceta are well supported groups above the Class rank. See Leotiomyceta for details and references.
Ask, if things don't work for you!
- If anything about this page is not clear to you, please ask on the mailing list. You can be certain that others will have had similar problems. Success comes from joining the conversation.
- Do consider how to ask your questions so that a meaningful answer is possible:
- Review Netiquette for the course mailing list.
- Read How to create a Minimal, Complete, and Verifiable example on stackoverflow and ...
- How to make a great R reproducible example.
Data Sequence Structure Phylogeny Function