Difference between revisions of "BIO Assignment Week 4"

From "A B C"
Jump to navigation Jump to search
m
 
(35 intermediate revisions by the same user not shown)
Line 15: Line 15:
  
 
__TOC__
 
__TOC__
 +
  
 
 
 
 
  
==Introduction==
+
<div class="quote-box">
 +
&nbsp;<br>
  
In this assignment we will perform an optimal global and local sequence alignment, and use '''R''' to plot the alignment quality as a colored bar-graph.
+
;Take care of things, and they will take care of you.
 +
:''Shunryu Suzuki''
 +
</div>
  
  
== Optimal sequence alignments ==
+
{{Vspace}}
  
 +
==Introduction==
  
Online programs for optimal sequence alignment are part of the EMBOSS tools. The programs take FASTA files as input.
+
{{Vspace}}
  
;Local optimal SEQUENCE alignment "water"  
+
<div class="colmask doublepage">
{{task|1=
+
  <div class="colleft">
# Retrieve the FASTA file for the YFO Mbp1 protein and for [http://www.ncbi.nlm.nih.gov/protein/NP_010227?report=fasta&log$=seqview&format=text ''Saccharomyces cerevisiae''].
+
    <div class="col1">
# Save the files as text files to your computer, (if you haven't done so already). You could give them an extension of <code>.fa</code>.
+
      <!-- Column 1 start -->
# Access the [http://emboss.bioinformatics.nl/ EMBOSS Explorer site] (if you haven't done so yet, you might want to bookmark it.)
+
Sequence alignment is a '''very''' large, and important topic.
# Look for '''ALIGNMENT LOCAL''', click on '''water''', paste your FASTA 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.
 
# Considering the sequence identy cutoff we discussed in class (25% over the length of a domain), do you believe that the APSES domains are homologous?
 
# 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.
 
# You could try getting only an alignment for the ankyrin domains that you have found in the last assignment, by deleting the approximate region of the APSES domains from your input.
 
}}
 
  
 +
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.
  
;Global optimal SEQUENCE alignment "needle"
+
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<ref>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.</ref>.
{{task|1=
 
# Look for '''ALIGNMENT GLOBAL''', click on '''needle''', paste your FASTA sequences 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.
 
# Change the '''Output alignment format''' to '''FASTA pairwise simple''', to retrieve the aligned FASTA files with indels.
 
# Copy the aligned sequences (with indels) and save them to your computer. You could give them an extension of <code>.fal</code> to remind you that they are aligned FASTA sequences.
 
}}
 
  
 +
    <!-- Column 1 end -->
 +
    </div>
 +
    <div class="col2">
 +
      <!-- Column 2 start -->
  
&nbsp;
+
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.
  
== The Mutation Data Matrix ==
+
Multiple sequence alignments ('''MSAs''') are further useful to resolve ambiguities in the precise placement of  "indels"<ref>"indel": '''in'''sertion / '''del'''etion – 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 {{WP|Portmanteau|''portmanteau''}}.</ref> 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.
  
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 [ftp://ftp.ncbi.nih.gov/blast/matrices/BLOSUM62 '''BLOSUM62 matrix''']<ref>The directory also contains sourcecode to generte the PAM matrices. This may be of interest for you if you ever want to produce scoring matrices from your own datasets.</ref>. Access that site and download the <code>BLOSUM62</code> matrix to your computer. You could give it a filename of <code>BLOSUM62.mdm</code>.
+
In this assignment we will explore the essentials of  
  
It should look like this.
+
<div class="emphasis-box">
 +
* 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; and
 +
* Multiple sequence alignments.
 +
</div>
  
<source lang="text">
 
#  Matrix made by matblas from blosum62.iij
 
#  * column uses minimum score
 
#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
 
#  Blocks Database = /data/blocks_5.0/blocks.dat
 
#  Cluster Percentage: >= 62
 
#  Entropy =  0.6979, Expected =  -0.5209
 
  A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  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  0 -4
 
R -1  5  0 -2 -3  1  0 -2  0 -3 -2  2 -1 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -4
 
N -2  0  6  1 -3  0  0  0  1 -3 -3  0 -2 -3 -2  1  0 -4 -2 -3  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  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 -3 -2 -4
 
Q -1  1  0  0 -3  5  2 -2  0 -3 -2  1  0 -3 -1  0 -1 -2 -1 -2  0  3 -1 -4
 
E -1  0  0  2 -4  2  5 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -2  1  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 -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  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 -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 -1 -4
 
K -1  2  0 -1 -3  1  1 -2 -1 -3 -2  5 -1 -3 -1  0 -1 -3 -2 -2  0  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 -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 -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 -1 -2 -4
 
S  1 -1  1  0 -1  0  0  0 -1 -2 -2  0 -1 -2 -1  4  1 -3 -2 -2  0  0  0 -4
 
T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  1  5 -2 -2  0 -1 -1  0 -4
 
W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1  1 -4 -3 -2 11  2 -3 -4 -3 -2 -4
 
Y -2 -2 -2 -3 -2 -1 -2 -3  2 -1 -1 -2 -1  3 -3 -2 -2  2  7 -1 -3 -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 -1 -4
 
B -2 -1  3  4 -3  0  1 -1  0 -3 -4  0 -3 -3 -2  0 -1 -4 -3 -3  4  1 -1 -4
 
Z -1  0  0  1 -3  3  4 -2  0 -3 -3  1 -1 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4
 
X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2  0  0 -2 -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  1
 
</source>
 
  
 +
As usual, the focus will be on practical, hands on approaches.
  
{{task|
+
This is the scenario: you have previously identified a best match for a Mbp1 relative in YFO. Is this the most closely related protein? Is its DNA binding domain conserved? How can we identify '''all''' related genes in YFO? And, what can we learn from that collection of sequences?
* Study this and make sure you understand what this table is, 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.
+
      <!-- Column 2 end -->
}}
+
    </div>
 +
  </div>
 +
</div>
  
 +
{{Vspace}}
  
 +
=== Preparation: Updated Database Functions ===
  
&nbsp;
+
{{Vspace}}
== The DNA binding site ==
 
  
 +
The database contents and tables will change over time in this course. This means we need a mechanism to update the database, without throwing away previous work.
  
Now, that you know how YFO Mbp1 aligns with yeast Mbp1, you can evaluate functional conservation in these homologous proteins. You probably already downloaded the two Biochemistry papers by Taylor et al. (2000) and by Deleeuw et al. (2008) that we encountered in Assignment 2. These discuss the residues involved in DNA binding<ref>([http://www.ncbi.nlm.nih.gov/pubmed/10747782 Taylor ''et al.'' (2000) ''Biochemistry'' '''39''': 3943-3954] and [http://www.ncbi.nlm.nih.gov/pubmed/18491920 Deleeuw ''et al.'' (2008) Biochemistry. '''47''':6378-6385])</ref>. In particular the residues between 50-74 have been proposed to comprise the DNA recognition domain.
+
{{task|1 =
  
{{task|
+
* Open the BCH441 project scripts in RStudio by selecting '''File''' &rarr; '''Recent Projects''' &rarr; '''BCH441_216'''
# Using the APSES domain alignment you have just constructed, find the YFO Mbp1 residues that correspond to the range 50-74 in yeast.
+
* Load the newest versions of scripts and data by pulling from the master file on GitHub.
# Note whether the sequences are especially highly conserved in this region.
+
* Study the code in the <code>Database maintenance</code> section of the <code>BCH441_A04.R</code> script
# Using Chimera, look at the region. Use the sequence window '''to make sure''' that the sequence numbering between the paper and the PDB file are the same (they are often not identical!). Then select the residues - the proposed recognition domain -  and color them differently for emphasis. Study this in stereo to get a sense of the spatial relationships. Check where the conserved residues are.
 
# A good representation is '''stick''' - but other representations that include sidechains will also serve well.
 
# Calculate a solvent accessible surface of the protein in a separate representation and make it transparent.
 
# You could  combine three representations: (1) the backbone (in '''ribbon view'''), (2) the sidechains of residues that presumably contact DNA, distinctly colored, and (3) a transparent surface of the entire protein. This image should show whether residues annotated as DNA binding form a contiguous binding interface.
 
}}
 
  
 
DNA binding interfaces are expected to comprise a number of positively charged amino acids, that might form salt-bridges with the phosphate backbone.
 
 
 
{{task|
 
*Study and consider whether this is the case here and which residues might be included.
 
 
}}
 
}}
  
 +
{{Vspace}}
  
&nbsp;
+
=== DotPlots and the Mutation Data Matrix ===
== R code: coloring the alignment by quality ==
 
 
 
  
 +
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 [ftp://ftp.ncbi.nih.gov/blast/matrices/BLOSUM62 '''BLOSUM62 matrix''']<ref>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.</ref>.
  
{{task|1=
+
{{Vspace}}
  
* Study this code carefully, execute it, section by section and make sure you understand all of it. Ask on the list if anything is not clear.
+
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 [ftp://ftp.ncbi.nih.gov/blast/matrices/BLOSUM62 '''BLOSUM62 matrix''']<ref>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.</ref>.  
  
<source lang="R">
+
Scoring matrices are also available in the Bioconductor Biostrings package.
# BiostringsExample.R
 
# Short tutorial on sequence alignment with the Biostrings package.
 
# Boris Steipe for BCH441, 2013 - 2014
 
#
 
setwd("~/path/to/your/R_files/")
 
setwd("~/Documents/07.TEACHING/37-BCH441 Bioinformatics 2014/05-Materials/Assignment_5 data")
 
  
# Biostrings is a package within the bioconductor project.
+
<source lang="text">
# bioconducter packages have their own installation system,
 
# they are normally not installed via CRAN.
 
  
# First, you load the BioConductor installer...
+
BLOSUM62
source("http://bioconductor.org/biocLite.R")
 
  
# Then you can install the Biostrings package and all of its dependencies.
+
  A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  J  Z  X  *
biocLite("Biostrings")
+
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
  
# ... and load the library.
+
</source>
library(Biostrings)
 
  
# Some basic (technical) information is available ...
 
library(help=Biostrings)
 
  
# ... but for more in depth documentation, use the
+
{{task|
# so called "vignettes" that are provided with every R package.
+
* Study this and make sure you understand what this table is, 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!'''
browseVignettes("Biostrings")
+
* 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&rarr;R and R&rarr;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?
 +
}}
  
# In this code, we mostly use functions that are discussed in the
+
{{Vspace}}
# pairwise alignement vignette.
 

# Read in two fasta files - you will need to edit this for YFO
 
sacce <- readAAStringSet("mbp1-sacce.fa", format="fasta")
 
  
# "USTMA" is used only as an example here - modify for YFO  :-)
+
Next, let's apply the scoring matrix for actual comparison:
ustma <- readAAStringSet("mbp1-ustma.fa", format="fasta")
 
  
sacce
+
{{Vspace}}
names(sacce)
 
names(sacce) <- "Mbp1 SACCE"
 
names(ustma) <- "Mbp1 USTMA" # Example only ... modify for YFO
 
  
width(sacce)
+
{{task|1 =
as.character(sacce)
 
  
# Biostrings takes a sophisticated approach to sequence alignment ...
+
* Return to your RStudio session.
?pairwiseAlignment
+
* If you've been away from it for a while, it's probably a good idea to update to the newest versions of scripts and data by pulling from the master file on GitHub.
 +
* Study and work through the code in the <code>Dotplot and MDM</code> section of the <code>BCH441_A04.R</code> script
  
# ... but the use in practice is quite simple:
+
}}
ali <- pairwiseAlignment(sacce, ustma, substitutionMatrix = "BLOSUM50")
 
ali
 
  
pattern(ali)
+
{{Vspace}}
subject(ali)
 
  
writePairwiseAlignments(ali)
+
== Pairwise Alignments: Optimal ==
  
p <- aligned(pattern(ali))
+
{{Vspace}}
names(p) <- "Mbp1 SACCE aligned"
 
s <- aligned(subject(ali))
 
names(s) <- "Mbp1 USTMA aligned"
 
  
# don't overwrite your EMBOSS .fal files
+
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 and its YFO relative. For simplicity, I will call the two proteins <code>MBP1_SACCE</code> and <code>MBP1_YFO</code> through the remainder of the assignment. 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.
writeXStringSet(p, "mbp1-sacce.R.fal", append=FALSE, format="fasta")
 
writeXStringSet(s, "mbp1-ustma.R.fal", append=FALSE, format="fasta")
 
  
# Done.
+
{{Vspace}}
  
</source>
+
=== Optimal Sequence Alignment: EMBOSS online tools===
  
* Compare the alignments you received from the EMBOSS server, and that you co puted using '''R'''. Are they aproximately the same? Exactly? You did use different matrices and gap aameters, so minor differences are to be expected. But by and large you should get the same alignments.
+
{{Vspace}}
  
}}
+
Online programs for optimal sequence alignment are part of the EMBOSS tools. The programs take FASTA files or raw text files as input.  
 
 
We will now use the aligned sequences to compute a graphical display of alignment quality.
 
  
 +
'''Local''' optimal sequence alignment using "water"
  
 
{{task|1=
 
{{task|1=
 +
# Fetch the sequences for <code>MBP1_SACCE</code> and <code>MBP1_YFO</code> from your database. You can simply select them by name (if you have given your sequence the suggested name when you eneterd it into your database): paste the following into the console:
  
* Study this code carefully, execute it, section by section and make sure you understand all of it. Ask on the list if anything is not clear.
+
* to print the <code>MBP1_SACCE</code> protein sequence to the console
 +
<source lang="R">
 +
myDB$protein$sequence[myDB$protein$name == "MBP1_SACCE"]
 +
</source>
  
 +
* to print the <code>MBP1_YFO</code> protein sequence to the console:
 
<source lang="R">
 
<source lang="R">
# aliScore.R
+
YFOseq <- paste("MBP1_", biCode(YFO), sep="")
# Evaluating an alignment with a sliding window score
+
myDB$protein$sequence[myDB$protein$name == YFOseq]
# Boris Steipe, October 2012. Update October 2013
+
</source>
setwd("~/path/to/your/R_files/")
 
  
# Scoring matrices can be found at the NCBI.
+
(If this didn't work, fix it. Did you give your sequence the right '''name'''?)
# ftp://ftp.ncbi.nih.gov/blast/matrices/BLOSUM62
 
  
# It is good practice to set variables you might want to change
+
# Access the [http://emboss.bioinformatics.nl/ EMBOSS Explorer site] (if you haven't done so yet, you might want to bookmark it.)
# in a header block so you don't need to hunt all over the code
+
# Look for '''ALIGNMENT LOCAL''', click on '''water''', paste your sequences and run the program with default parameters.
# for strings you need to update.
+
# Study the results. You will probably find that the alignment extends over most of the protein, but does not include the termini.
#
+
# Considering the sequence identity cutoff we discussed in class (25% over the length of a domain), do you believe that the N-terminal domains (the APSES domains) are homologous?
fa1      <- "mbp1-sacce.R.fal"
+
# Change the '''Gap opening''' and '''Gap extension''' parameters to high values (e.g. 30 and 5). Then run the alignment again.
fa2      <- "mbp1-ustma.R.fal"
+
# Note what is different.
code1    <- "SACCE"
+
}}
code2    <- "USTMA"
 
mdmFile  <- "BLOSUM62.mdm"
 
window  <- 9  # window-size (should be an odd integer)
 
  
# ================================================
 
#    Read data files
 
# ================================================
 
  
# read fasta datafiles using seqinr function read.fasta()
+
'''Global''' optimal sequence alignment using "needle"  
install.packages("seqinr")
+
{{task|1=
library(seqinr)
+
# Look for '''ALIGNMENT GLOBAL''', click on '''needle''', paste the <code>MBP1_SACCE</code> and <code>MBP1_YFO</code> sequences again and run the program with default parameters.
tmp  <- unlist(read.fasta(fa1, seqtype="AA", as.string=FALSE, seqonly=TRUE))
+
# Study the results. You will find that the alignment extends over the entire protein, likely with long ''indels'' at the termini.
seq1 <- unlist(strsplit(as.character(tmp), split=""))
+
}}
  
tmp  <- unlist(read.fasta(fa2, seqtype="AA", as.string=FALSE, seqonly=TRUE))
 
seq2 <- unlist(strsplit(as.character(tmp), split=""))
 
  
if (length(seq1) != length(seq2)) {
 
print("Error: Sequences have unequal length!")
 
}
 
 
lSeq <- length(seq1)
 
  
# ================================================
+
{{Vspace}}
#    Read scoring matrix
 
# ================================================
 
  
MDM <- read.table(mdmFile, skip=6)
 
  
# This is a dataframe. Study how it can be accessed:
+
=== Optimal Sequence Alignment with '''R''': Biostrings ===
  
MDM
+
{{Vspace}}
MDM[1,]
 
MDM[,1]
 
MDM[5,5]  # Cys-Cys
 
MDM[20,20] # Val-Val
 
MDM[,"W"]  # the tryptophan column
 
MDM["R","W"]  # Arg-Trp pairscore
 
MDM["W","R"]  # Trp-Arg pairscore: pairscores are symmetric
 
  
colnames(MDM)  # names of columns
+
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<ref>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.</ref>.
rownames(MDM)  # names of rows
 
colnames(MDM)[3]  # third column
 
rownames(MDM)[12]  # twelfth row
 
  
# change the two "*" names to "-" so we can use them to score
 
# indels of the alignment. This is a bit of a hack, since this
 
# does not reflect the actual indel penalties (which is, as you)
 
# remember from your lectures, calculated as a gap opening
 
# + gap extension penalty; it can't be calculated in a pairwise
 
# manner) EMBOSS defaults for BLODSUM62 are opening -10 and
 
# extension -0.5 i.e. a gap of size 3 (-11.5) has approximately
 
# the same penalty as a 3-character score of "-" matches (-12)
 
# so a pairscore of -4 is not entirely unreasonable.
 
  
colnames(MDM)[24]
+
{{Vspace}}
rownames(MDM)[24]
 
colnames(MDM)[24] <- "-"
 
rownames(MDM)[24] <- "-"
 
colnames(MDM)[24]
 
rownames(MDM)[24]
 
MDM["Q", "-"]
 
MDM["-", "D"]
 
# so far so good.
 
  
# ================================================
+
{{task|1 =
#    Tabulate pairscores for alignment
 
# ================================================
 
  
 +
* Return to your RStudio session.
 +
* Once again, if you've been away from it for a while, it's always a good idea to update to pull updtaes from the master file on GitHub.
 +
* Study and work through the code in the <code>Biostrings Pairwise Alignment</code> section of the <code>BCH441_A04.R</code> script
  
# It is trivial to create a pairscore vector along the
+
}}
# length of the aligned sequences.
 
  
PS <- vector()
+
{{Vspace}}
for (i in 1:lSeq) {
 
  aa1 <- seq1[i]
 
  aa2 <- seq2[i]
 
  PS[i] = MDM[aa1, aa2]
 
}
 
  
PS
+
==Heuristic pairwise alignments: BLAST==
  
 +
{{Vspace}}
  
# The same vector could be created - albeit perhaps not so
 
# easy to understand - with the expression ...
 
MDM[cbind(seq1,seq2)]
 
  
 +
<div class="colmask doublepage">
 +
  <div class="colleft">
 +
    <div class="col1">
 +
      <!-- 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 in [[BIO_Assignment_Week_3#Selecting_the_YFO_.22Mbp1.22|Assignment 3]] even before properly introducing the algorithm and the principles, to find the most similar sequence to <code>MBP1_SACCE</code> in YFO.
  
 +
In this part of the assignment 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>.
#    Calculate moving averages
 
# ================================================
 
  
# In order to evaluate the alignment, we will calculate a
+
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.
# sliding window average over the pairscores. Somewhat surprisingly
 
# R doesn't (yet) have a native function for moving averages: options
 
# that are quoted are:
 
#  - rollmean() in the "zoo" package http://rss.acs.unt.edu/Rdoc/library/zoo/html/rollmean.html
 
- MovingAverages() in "TTR"  http://rss.acs.unt.edu/Rdoc/library/TTR/html/MovingAverages.html
 
- ma() in "forecast"  http://robjhyndman.com/software/forecast/
 
# But since this is easy to code, we shall implement it ourselves.
 
  
PSma <- vector()          # will hold the averages
+
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:
winS <- floor(window/2)    # span of elements above/below the centre
+
* a gene in YFO that has the "same" function as the Mbp1 cell-cycle checkpoint switch in yeast should be an RBM to Mbp1;
winC <- winS+1            # centre of the window
+
* 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.
  
# extend the vector PS with zeros (virtual observations) above and below
+
Thus we'll compare RBMs in YFO for full-length <code>Mbp1_SACCE</code> and its DNA-binding domain, and see if the results are the same.
PS <- c(rep(0, winS), PS , rep(0, winS))
 
  
# initialize the window score for the first position
 
winScore <- sum(PS[1:window])
 
  
# write the first score to PSma
+
      <!-- Column 1 end -->
PSma[1] <- winScore
+
    </div>
 +
    <div class="col2">
 +
      <!-- Column 2 start -->
 +
[[Image:RBM.jpg|frame|A hypothetical phylogenetic gene tree. "S" is a speciation in the tree, "D" is a duplication within a species. The duplicated gene (teal triangle) evolves towards a different function and thus acquires more mutations than its paralogue (teal circle). If an RBM search start from the blue triangle, it finds the red circle. However the reciprocal match finds the teal circle. The red and teal circles fulfill the '''RBM''' criterion.]]
  
# Slide the window along the sequence, and recalculate sum()
+
      <!-- Column 2 end -->
# Loop from the next position, to the last position that does not exceed the vector...
+
    </div>
for (i in (winC + 1):(lSeq + winS)) {
+
  </div>
  # subtract the value that has just dropped out of the window
+
</div>
  winScore <- winScore - PS[(i-winS-1)]
 
  # add the value that has just entered the window
 
  winScore <- winScore + PS[(i+winS)] 
 
  # put score into PSma
 
  PSma[i-winS] <- winScore
 
}
 
  
# convert the sums to averages
 
PSma <- PSma / window
 
  
# have a quick look at the score distributions
+
{{Vspace}}
  
boxplot(PSma)
+
===Full-length RBM===
hist(PSma)
 
  
# ================================================
+
{{Vspace}}
#    Plot the alignment scores
 
# ================================================
 
  
# normalize the scores
+
You have already performed the first half of the experiment: matching from ''S. cerevisiae'' to YFO. The backward match is simple.
PSma <- (PSma-min(PSma))/(max(PSma) - min(PSma) + 0.0001)
 
# spread the normalized values to a desired range, n
 
nCol <- 10
 
PSma <- floor(PSma * nCol) + 1
 
  
# Assign a colorspectrum to a vector (with a bit of colormagic,
+
{{task|1=
# don't worry about that for now). Dark colors are poor scores,
+
# Access [http://www.ncbi.nlm.nih.gov/blast '''BLAST'''] and follow the link to the '''protein blast''' program.
# "hot" colors are high scores
+
# Enter the RefSeq ID for <code>MBP1_YFO</code> in the '''Query sequence''' field.
spect <- colorRampPalette(c("black", "red", "yellow", "white"), bias=0.4)(nCol)
+
# 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.
# Color is an often abused aspect of plotting. One can use color to label
 
# *quantities* or *qualities*. For the most part, our pairscores measure amino
 
# acid similarity. That is a quantity and with the spectrum that we just defined
 
# we associte the measured quantities with the color of a glowing piece
 
# of metal: we start with black #000000, then first we ramp up the red
 
# (i.e. low-energy) part of the visible spectrum to red #FF0000, then we
 
# add and ramp up the green spectrum giving us yellow #FFFF00 and finally we
 
# add blue, giving us white #FFFFFF. Let's have a look at the spectrum:
 
 
 
s <- rep(1, nCol)
 
barplot(s, col=spect, axes=F, main="Color spectrum")
 
 
 
# But one aspect of our data is not quantitatively different: indels.
 
# We valued indels with pairscores of -4. But indels are not simply poor alignment,
 
# rather they are non-alignment. This means stretches of -4 values are really
 
# *qualitatively* different. Let's color them differently by changing the lowest
 
# level of the spectrum to grey.
 
 
 
spect[1] <- "#CCCCCC"
 
barplot(s, col=spect, axes=F, main="Color spectrum")
 
 
 
# Now we can display our alignment score vector with colored rectangles.
 
 
 
# Convert the integers in PSma to color values from spect
 
PScol <- vector()
 
for (i in 1:length(PSma)) {
 
PScol[i] <- spect[ PSma[i] ]  # this is how a value from PSma is used as an index of spect
 
}
 
 
 
# Plot the scores. The code is similar to the last assignment.
 
# Create an empty plot window of appropriate size
 
plot(1,1, xlim=c(-100, lSeq), ylim=c(0, 2) , type="n", yaxt="n", bty="n", xlab="position in alignment", ylab="")
 
 
 
# Add a label to the left
 
text (-30, 1, adj=1, labels=c(paste("Mbp1:\n", code1, "\nvs.\n", code2)), cex=0.9 )
 
 
 
# Loop over the vector and draw boxes  without border, filled with color.
 
for (i in 1:lSeq) {
 
  rect(i, 0.9, i+1, 1.1, border=NA, col=PScol[i])
 
}
 
  
# Note that the numbers along the X-axis are not sequence numbers, but numbers
+
If your top-hit is <code>NP_010227</code>, you have confirmed the RBM between <code>Mbp1_SACCE</code> and <code>Mbp1_YFO</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<ref>One such case we encountered involved a protein that has a corrupted annotation for the DNA binding domain. It appears to be the correct orthologue, but it only has the second highest BLAST score.</ref>.
# of the alignment, i.e. sequence number + indel length. That is important to
 
# realize: if you would like to add the annotations from the last assignment
 
# which I will leave as an exercise, you need to map your sequence numbering
 
# into alignment numbering. Let me know in case you try that but need some help.
 
  
</source>
 
 
}}
 
}}
  
 +
{{Vspace}}
  
;That is all.
+
===RBM for the DNA binding domain===
 
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
==Choosing the Sequence (formerly A3)
 
 
 
 
 
One of the foundations of bioinformatics is the empirical observation that related sequences conserve structure, and often function. This is the basis on which we can make inferences from well-studied model organisms in species that have not been studied as deeply. The model case for our assignments is to take annotations from baker's yeast, ''Saccharomyces cerevisiae'' and apply them to YFO.
 
 
 
Therefore, in this assignment we will
 
* use the sequence search program BLAST to retrieve a sequence similar to yeast Mbp1 in YFO;
 
* use a number of tools to annotate the sequence.
 
 
 
Keeping with our theme of sequence analysis, we will
 
* explore EMBOSS tools;
 
* compute and plot relative amino acid frequencies in '''R''';
 
* and (optionally) use Chimera to explore H-bond patterns in the Mbp1 APSES domain structure.
 
 
 
&nbsp;
 
  
==Retrieve==
 
  
 +
{{Vspace}}
  
In [[BIO_Assignment_Week_2#Protein|Assignment 2]] you looked at sequences in YFO that are [http://www.ncbi.nlm.nih.gov/protein?LinkName=protein_protein&from_uid=6320147 related to yeast Mbp1], by following a link from the RefSeq record. I mentioned that there are more principled ways to find related proteins: that principle is to search for similar sequences. Exactly how this works will be the subject of later lectures, but the tool that is most commonly used for this task is called '''BLAST''' (Basic Local Alignment And Search Tool). The task of this assignment is to perform a number of sequence annotations to the sequence from YFO that is '''most similar''' to Mbp1, or, more precisely, that contains an APSES domain that is most similar<ref>As you will see later on in the assignment, Mbp1-related proteins contain "Ankyrin" domains, a very widely distributed protein-protein interaction motif that may give rise to false-positive similarities for full-length sequence searches. Therefore, we search only with the DNA binding domain sequence, since this is the functionality that best characterizes the "function" of the protein we are interested in.</ref>.
+
The DNA-binding domain of  <code>Mbp1_SACCE</code> is called an '''APSES''' domain. If the RBM between ''Saccharomyces cerevisiae'' Mbp1 and YFO 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.
  
&nbsp;
+
{{Vspace}}
===Search input===
 
  
 +
====Defining the range of the APSES domain annotation====
  
First, we need to '''define the sequence''' we will search with, as the search input.
+
{{#lst:Reference annotation yeast Mbp1|CDD_APSES}}
  
  
====Defining the sequence to search with====
+
{{Vspace}}
  
I have highlighted the extent of the APSES domain sequence in the previous assignment, but when you explored the corresponding structure in Chimera, you saw that the structured protein domain is larger and the additional secondary structure elements are in fact well integrated into the overall domain. This is not surprising: canonical domain definitions are compiled from many species and examples, and they generally comprise only the common core. Looking up the source of the domain annotations for Mbp1 is very easy:
+
====Executing the forward search====
  
 +
{{Vspace}}
  
 
{{task|1=
 
{{task|1=
<ol>
+
# Access [http://www.ncbi.nlm.nih.gov/blast '''BLAST'''] and follow the link to the '''protein blast''' program.
<li> Access the [http://www.ncbi.nlm.nih.gov/protein/NP_010227 RefSeq record for yeast Mbp1].</li>
+
# '''Forward search:'''
<li> While you are here, download a FASTA formatted version of the sequence to your '''R''' working directory and give it a filename of <code>mbp1-sacce.fa</code>. We will need it later. <small>It should be straightforward from the NCBI page how to achieve that. As a hint, you need to use the '''Send to...''' link to actually download the file.</small></li>
+
## Paste only the APSES domain sequence for <code>MBP1_SACCE</code> in the '''Query sequence''' field (copy the sequence from above).
<li> On the RefSeq page, look for the link '''Related Information''' &rarr; '''CDD Search Results''' and  follow it.</li>
+
## Select <code>refseq_protein</code> as the '''database''' to search in, and enter the correct taxonomy ID for YFO in the '''Organism''' field.
</ol>
+
## Run BLAST. Examine the results.
 +
## If the top hit is the same protein you have already seen, oK. If it's not '''add it to your protein database in RStudio'''.
  
 +
}}
  
This is a domain annotation: CDD is the NCBI's '''C'''onserved '''D'''omain '''D'''atabase and the annotation was done by a tool that scanned the sequence of Mbp1 for segments that are similar to any of the domain definitions stored in the CDD. We will return to CDD in the next assignment.
+
With this we have confirmed the sequence with the most highly conserved APSES domain in YFO. 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 sequnece 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 YFO APSES domain.
 
 
<ol start="4">
 
<li>Click on the blue box labeled Kila-N in the graph to access the CDD entry for this domain.</li>
 
<li>Read the abstract. You should understand the relationship between Kila-N and APSES domains. One is a subfamily of the other.</li>
 
<li>Confirm that the domain definition &ndash; as applied to the Mbp1 sequence (which is labeled as "query") &ndash; corresponds to the region we highlighted in the last assignment.</li>
 
</ol>
 
 
 
 
 
What precisely constitutes an APSES domain however is a matter of definition, as you can explore in the following (optional) task.
 
 
 
 
 
<div class="mw-collapsible mw-collapsed" data-expandtext="Expand" data-collapsetext="Collapse" style="border:#000000 solid 1px; padding: 10px; margin-left:25px; margin-right:25px;">Optional: Load the structure in Chimera, like you did in the last assignment and switch on stereo viewing ... (more) <div  class="mw-collapsible-content">
 
<ol start="7">
 
<li>Display the protein in ribbon style, e.g. with the '''Interactive 1''' preset.
 
<li>Access the '''Interpro''' information page for Mbp1 at the EBI: http://www.ebi.ac.uk/interpro/protein/P39678
 
<li>In the section '''Domains and repeats''', mouse over the red annotations and note down the residue numbers for the annotated domains. Also follow the links to the respective Interpro domain definition pages.
 
</ol>
 
 
 
At this point we have definitions for the following regions on the Mbp1 protein ...
 
*The KilA-N (pfam 04383) domain definition as applied to the Mbp1 protein sequence by CDD;
 
*The InterPro ''KilA, N-terminal/APSES-type HTH, DNA-binding (IPR018004)'' definition annotated on the Mbp1 sequence;
 
*The InterPro ''Transcription regulator HTH, APSES-type DNA-binding domain (IPR003163)'' definition annotated on the Mbp1 sequence;
 
*<small>(... in addition &ndash; without following the source here &ndash; the UniProt record for Mbp1 annotates a "HTH APSES-type" domain from residues 5-111)</small>
 
 
 
... each with its distinct and partially overlapping sequence range. Back to Chimera:
 
 
 
<!-- For reference:
 
1MB1: 3-100
 
2BM8: 4-102
 
CDD KilA-N: 19-93
 
InterPro KilA-N: 23-88
 
InterPro APSES: 3-133
 
Uniprot HTH/APSES: 5-111
 
-->
 
 
 
<ol start="10">
 
<li>In the sequence window, select the sequence corresponding to the '''Interpro KilA-N''' annotation and colour this fragment red. <small>Remember that you can get the sequence numbers of a residue in the sequence window when you hover the pointer over it - but do confirm that the sequence numbering that Chimera displays matches the numbering of the Interpro domain definition.</small></li>
 
 
 
<li>Then select the residue range(s) by which the '''CDD KilA-N''' definition is larger, and colour that fragment orange.</li>
 
 
 
<li>Then select the residue range(s) by which the '''InterPro APSES domain''' definition is larger, and colour that fragment yellow.</li>
 
 
 
<li>If the structure contains residues outside these ranges, colour these white.</li>
 
 
 
<li>Study this in a side-by-side stereo view and get a sense for how the ''extra'' sequence beyond the Kil-A N domain(s) is part of the structure, and how the integrity of the folded structure would be affected if these fragments were missing.</li>
 
  
<li>Display Hydrogen bonds, to get a sense of interactions between residues from the differently colored parts. First show the protein as a stick model, with sticks that are thicker than the default to give a better sense of sidechain packing:<br />
+
{{Vspace}}
::(i) '''Select''' &rarr; '''Select all''' <br />
 
::(ii) '''Actions''' &rarr; '''Ribbon''' &rarr; '''hide''' <br />
 
::(iii) '''Select''' &rarr; '''Structure''' &rarr; '''protein''' <br />
 
::(iv) '''Actions''' &rarr; '''Atoms/Bonds''' &rarr; '''show''' <br />
 
::(v)  '''Actions''' &rarr; '''Atoms/Bonds''' &rarr; '''stick''' <br />
 
::(vi) click on the looking glass icon at the bottom right of the graphics window to bring up the inspector window and choose '''Inspect ... Bond'''. Change the radius to 0.4.<br />
 
</li>
 
  
<li>Then calculate and display the hydrogen bonds:<br />
+
====Alignment to define the YFO APSES domain for the reverse search====
::(vii) '''Tools''' &rarr; '''Surface/Binding Analysis''' &rarr; '''FindHbond''' <br />
 
::(viii) Set the '''Line width''' to 3.0, leave all other parameters with their default values an click '''Apply'''<br />
 
:: Clear the selection.<br />
 
Study this view, especially regarding side chain H-bonds. Are there many? Do side chains interact more with other sidechains, or with the backbone?
 
</li>
 
  
<li>Let's now simplify the scene a bit and focus on backbone/backbone H-bonds:<br />
+
{{Vspace}}
::(ix) '''Select''' &rarr; '''Structure''' &rarr; '''Backbone''' &rarr; '''full'''<br />
 
::(x)  '''Actions''' &rarr; '''Atoms/Bonds''' &rarr; '''show only'''<br /><br />
 
:: Clear the selection.<br />
 
In this way you can appreciate how H-bonds build secondary structure - &alpha;-helices and &beta;-sheets - and how these interact with each other ... in part '''across the KilA N boundary'''.
 
</li>
 
  
  
<li>Save the resulting image as a jpeg no larger than 600px across and upload it to your Lab notebook on the Wiki.</li>
+
{{task|1 =
<li>When you are done, congratulate yourself on having earned a bonus of 10% on the next quiz.</li>
 
</ol>
 
  
</div>
+
* Return to your RStudio session.
</div>
+
* Study and work through the code in the <code>APSES Domain annotation by alignment</code> section of the <code>BCH441_A04.R</code> script
  
 
There is a rather important lesson in this: domain definitions may be fluid, and their boundaries may be computationally derived from sequence comparisons across many families, and do not necessarily correspond to individual structures. Make sure you understand this well.
 
 
}}
 
}}
  
 +
{{Vspace}}
  
Given this, it seems appropriate to search the sequence database with the sequence of an Mbp1 structure&ndash;this being a structured, stable, subdomain of the whole that presumably contains the protein's most unique and specific function. Let us retrieve this sequence. All PDB structures have their sequences stored in the NCBI protein database. They can be accessed simply via the PDB-ID, which serves as an identifier both for the NCBI and the PDB databases. However there is a small catch (isn't there always?). PDB files can contain more than one protein, e.g. if the crystal structure contains a complex<ref>Think of the [http://www.pdb.org/pdb/101/motm.do?momID=121 ribosome] or [http://www.pdb.org/pdb/101/motm.do?momID=3 DNA-polymerase] as extreme examples.</ref>. Each of the individual proteins gets a so-called '''chain ID'''&ndash;a one letter identifier&ndash; to identify them uniquely. To find their unique sequence in the database, you need to know the PDB ID as well as the chain ID. If the file contains only a single protein (as in our case), the chain ID is always '''<code>A</code>'''<ref>Otherwise, you need to study the PDB Web page for the structure, or the text in the PDB file itself, to identify which part of the complex is labeled with which chain ID. For example, immunoglobulin structures some time label the ''light-'' and ''heavy chain'' fragments as "L" and "H", and sometimes as "A" and "B"&ndash;there are no fixed rules. You can also load the structure in VMD, color "by chain" and use the mouse to click on residues in each chain to identify it.</ref>. make sure you understand the concept of protein chains, and chain IDs.
+
====Executing the reverse search====
  
 +
{{Vspace}}
  
 
{{task|1=
 
{{task|1=
<ol>
+
#Paste the the APSES domain sequence for the YFO best-match and enter it into '''Query sequence''' field of the BLAST form.
<li> Back at the [http://www.ncbi.nlm.nih.gov/protein/NP_010227 RefSeq record for yeast Mbp1], enter the '''PDB-ID''', an underscore, and the '''chain ID''' for one of the crystal structures into the search field. You can use <code>1MB1_A</code> or <code>1BM8_A</code>, but don't use <code>1L3G</code>: this NMR structure includes a large stretch of unstructured residues.</li>
+
## 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.
<li> Click on '''Display settings''' and choose '''FASTA (text)'''. You should get something like:
+
## Run BLAST. Examine the results.
<source lang="text">
 
>gi|157830387|pdb|1BM8|A Chain A, Dna-Binding Domain Of Mbp1
 
QIYSARYSGVDVYEFIHSTGSIMKRKKDDWVNATHILKAANFAKAKRTRILEKEVLKETHEKVQGGFGKY
 
QGTWVPLNIAKQLAEKFSVYDQLKPLFDF
 
</source></li>
 
<li> Save this sequence in your notebook, in case we need it later.</li>
 
</ol>
 
}}
 
 
 
 
 
Next, we use this sequence to find its most similar relative in YFO using BLAST.
 
  
 
+
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_&lt;YFO&gt;</code>. If it is not, let me know. There may be some organisms for which the full-length and APSES RBMs are different and I would like to discuss these cases.
&nbsp;
 
 
 
====BLAST search====
 
 
 
 
 
{{task|1=
 
# Navigate to the [http://www.ncbi.nlm.nih.gov/blast '''BLAST''' entry page at the NCBI].
 
# Click on '''protein blast''' as the BLAST program to run.
 
# Paste the sequence of the yeast Mbp1 DNA-binding domain into the search field.
 
# Set the following parameters:
 
## As '''Database''' option choose '''Reference proteins (refseq_protein)'''
 
## As '''Organism''' enter the binomial name of YFO. Make sure you spell it right, the page will try to autocomplete your entry. Species level is detailed enough, you don't have to specify the strain (e.g. I would specify "''Ustilago maydis''" '''not''' "''Ustilago maydis'' 521").
 
# Then click on the '''BLAST''' button and wait for the result to appear. You will first see a graph of any conserved domains in your query sequence, this is not yet what you are waiting for...
 
# Patience.
 
# Patience. The database is large.
 
# Patience. Execution times vary greatly by time of day.
 
# The top "hit" on the results page is what you are looking for. Its alignment and alignment score are shown in the '''Alignments''' section a bit further down the page. Your hit should have on the order of more than 40% identities to the query and match at least 80 residues or so. <small>If your match seems less and worse than that, please eMail me to troubleshoot.</small>
 
# The first item for each hit is a link to its database entry, right next to the checkbox.  It says something like <code>ref&#124;NP_123456789</code> or <code>ref&#124;XP_123456789</code> ... follow that link.
 
# Note the RefSeq ID, and save the sequence in FASTA format into your '''R''' working directory, as you did for Mbp1 at the beginning of the assignment. Give this a filename of <code>mbp1-xxxxx.fa</code>, but replace <code>xxxxx</code> with its short species label for YFO. For simplicity I will refer to this sequence as "''YFO'' Mbp1" in the future.
 
 
}}
 
}}
  
  
&nbsp;
+
{{Vspace}}
  
 +
==Heuristic profile-based alignment: PSI BLAST==
  
 +
{{Vspace}}
  
 +
<div class="colmask doublepage">
 +
  <div class="colleft">
 +
    <div class="col1">
 +
      <!-- Column 1 start -->
 +
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 YFO 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.
  
==MSA (formerly A5)==
+
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:
  
<div style="padding: 2px; background: #F0F1F7;  border:solid 1px #AAAAAA; font-size:125%;color:#444444">
 
 
 
&nbsp;<br>
 
 
;Take care of things, and they will take care of you.
 
:''Shunryu Suzuki''
 
</div>
 
 
 
Anyone can click buttons on a Web page, but to use the powerful sequence database search tools ''right'' often takes considerable more care, caution and consideration.
 
 
Much of what we know about a protein's physiological function is based on the '''conservation''' of that function as the species evolves. We assess conservation by comparing sequences between related proteins. 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 the multiple effects on a species' fitness function. 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.
 
 
Measuring conservation requires alignment. Therefore a carefully done multiple sequence alignment ('''MSA''') is a cornerstone for the annotation of the essential properties a gene or protein. MSAs are also useful to resolve ambiguities in the precise placement of indels 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 modeling;
 
* phylogenetic analyses, and
 
* sensitive homology searches in databases.
 
 
In order to perform a multiple sequence alignment, we obviously need a set of homologous sequences. This is where the trouble begins. All interpretation of MSA results depends '''absolutely''' on how the input sequences were chosen. Should we include only orthologs, or paralogs 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:
 
*orthologs are expected to be functionally and structurally conserved;
 
*paralogs 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.
 
 
 
In this 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 later for multiple alignments, calculation of conservation ''etc''. The methodical problem we will address is: how do we perform a sensitive PSI-BLAST search '''in one organism'''. There is an issue to consider:
 
 
* If we restrict the PSI-BLAST search to YFO, PSI-BLAST has little chance of building a meaningful profile - the number of homologues that actually are '''in''' YFO is too small. Thus the search will not become very sensitive.
 
* If we restrict the PSI-BLAST search to YFO, PSI-BLAST has little chance of building a meaningful profile - the number of homologues that actually are '''in''' YFO 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 too large. It becomes increasingly difficult to closely check all hits as to whether they have good coverage, and how will we evaluate the fringe cases of marginal E-value, where we need to decide whether to include a new sequence in the profile, or whether to hold off on it for one or two iterations, to see whether the E-value drops significantly. Profile corruption would make the search useless. This is maybe still manageable if we restrict our search to fungi, but imagine you are working with a bacterial protein, or a protein that is conserved across the entire tree of life: your search will find thousands of sequences. And by next year, thousands more will have been added.
 
  
Therefore we have to find a middle ground: add enough species (sequences) to compile a sensitive profile, but not so many that we can no longer individually assess the sequences that contribute to the profile.
+
      <!-- Column 1 end -->
 +
    </div>
 +
    <div class="col2">
 +
      <!-- Column 2 start -->
  
 +
* 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.
  
Thus in practice, a sensitive PSI-BLAST search needs to address two issues before we begin:
+
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.  
# We need to define the sequence we are searching with; and
 
# We need to define the dataset we are searching in.
 
  
 +
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.
  
  
  
==Defining the sequence to search with==
+
      <!-- Column 2 end -->
 
+
    </div>
 
+
  </div>
Consider again the task we set out from: '''find all orthologs and paralogs of the APSES domain containing transcription factors in YFO'''.
+
</div>
 
 
 
 
{{task|1=
 
What query sequence should you use? Should you ...
 
 
 
 
 
# Search with the full-length Mbp1 sequence from ''Saccharomyces cerevisiae''?
 
# Search with the full-length Mbp1 homolog that you found in YFO?
 
# Search with the structurally defined ''S. cerevisiae'' APSES domain sequence?
 
# Search with the APSES domain sequence from the YFO homolog, that you have defined by sequence alignment with the yeast protein?
 
# Search with the KilA-N domain sequence?
 
 
 
 
 
<div class="mw-collapsible mw-collapsed" data-expandtext="Expand" data-collapsetext="Collapse" style="border:#000000 solid 1px; padding: 10px; margin-left:25px; margin-right:25px;">Reflect on this (pretend this is a quiz question) and come up with a reasoned answer. Then click on "Expand" to read my opinion on this question.
 
<div class="mw-collapsible-content">
 
;The full-length Mbp1 sequence from ''Saccharomyces cerevisiae''
 
:Since this sequence contains multiple domains (in particular the ubiquitous Ankyrin domains) it is not suitable for BLAST database searches. You must restrict your search to the domain of greatest interest for your question. That would be the APSES domain.
 
 
 
;The full-length Mbp1 homolog that you found in YFO
 
:What organism the search sequence comes from does not make a difference. Since you aim to find '''all''' homologs in YFO, it is not necessary to have your search sequence more or less similar to '''any particular''' homologs. In fact '''any''' APSES sequence should give you the same result, since they are '''all''' homologous. But the full-length sequence in YFO has the same problem as the ''Saccharomyces'' sequence.
 
 
 
;The structurally defined ''S. cerevisiae'' APSES domain sequence?
 
:That would be my first choice, just because it is structurally well defined as a complete domain, and the sequence is easy to obtain from the <code>1BM8</code> PDB entry. (<code>1MB1</code> would also work, but you would need to edit out the penta-Histidine tag at the C-terminus that was engineered into the sequence to help purify the recombinantly expressed protein.)
 
 
 
;The APSES domain sequence from the YFO homolog, that you have defined by sequence alignment with the yeast protein?
 
:As argued above: since they are all homologs, any of them should lead to the same set of results.
 
 
 
;The KilA-N domain sequence?
 
:This is a shorter sequence and a more distant homolog to the domain we are interested in. It would not be my first choice: the fact that it is more distantly related might make the search '''more sensitive'''. The fact that it is shorter might make the search '''less specific'''. The effect of this tradeoff would need to be compared and considered. By the way: the same holds for the even shorter subdomain 50-74 we discussed in the last assignment. However: one of the results of our analysis will be '''whether APSES domains in fungi all have the same length as the Mbp1 domain, or whether some are indeed much shorter, as suggested by the Pfam alignment.'''
 
 
 
  
So in my opinion, you should search with the yeast Mbp1 APSES domain, i.e. the sequence which you have previously studied in the crystal structure. Where is that? Well, you might have saved it in your journal, or you can get it again from the [http://www.pdb.org/pdb/explore/explore.do?structureId=1BM8 '''PDB'''] (i.e. [http://www.pdb.org/pdb/files/fasta.txt?structureIdList=1BM8 here], or from [[BIO_Assignment_Week_3#Search input|Assignment 3]].
 
 
</div>
 
</div>
 
}}
 
  
 
&nbsp;
 
&nbsp;
  
==Selecting species for a PSI-BLAST search==
 
  
  
As discussed in the introduction, in order to use our sequence set for studying structural and functional features and conservation patterns of our APSES domain proteins, we should start with a well selected dataset of APSES domain containing homologs in YFO. Since these may be quite divergent, we can't rely on '''BLAST''' to find all of them, we need to use the much more sensitive search of '''PSI-BLAST''' instead. But even though you are interested only in YFO's genes, it would be a mistake to restrict the PSI-BLAST search to YFO. PSI-BLAST becomes more sensitive if the profile represents more diverged homologs. Therefore we should always search with a broadly representative set of species, even if we are interested only in the results for one of the species. This is important. Please reflect on this for a bit and make sure you understand the rationale why we include sequences in the search that we are not actually interested in.
 
  
 +
{{Vspace}}
  
But you can also search with '''too many''' species: if the number of species is large and PSI-BLAST finds a large number of results:
+
===Selecting species for a PSI-BLAST search===
# it becomes unwieldy to check the newly included sequences at each iteration, inclusion of false-positive hits may result, profile corruption and loss of specificity. The search will fail.
 
# since genomes from some parts of the Tree Of Life are over represented, the inclusion of all sequences leads to selection bias and loss of sensitivity.
 
 
 
 
 
We should therefore try to find 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.
 
  
These criteria are important. Again, reflect on them and understand their justification. Choosing your species well for a PSI-BLAST search can be crucial to obtain results that are robust and meaningful.
+
{{Vspace}}
  
How can we '''define''' a list of such species, and how can we '''use''' the list?
 
  
The definition is a rather typical bioinformatics task for integrating datasources: "retrieve a list of representative fungi with fully sequenced genomes".  Unfortunately, to do this in a principled way requires tools that you can't (yet) program: we would need to use a list of genome sequenced fungi, estimate their evolutionary distance and select a well-distributed sample. Regrettably you can't combine such information easily with the resources available from the NCBI.
+
<div class="colmask doublepage">
 +
  <div class="colleft">
 +
    <div class="col1">
 +
      <!-- Column 1 start -->
  
We will use an approach that is conceptually similar: selecting a set of species according to their shared taxonomic rank in the tree of life. {{WP|Biological classification|'''Biological classification'''}} provides a hierarchical system that describes evolutionary relatedness for all living entities. The levels of this hierarchy are so called {{WP|Taxonomic rank|'''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&ndash;but not mandated&ndash;that ranks represent ''clades'' (a group of related species, or a "branch" of a phylogeny), and it is desired&ndash;but not madated&ndash;that the rank is sharply defined. The system is based on subjective dissimilarity. Needless to say that it is in flux.  
+
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. {{WP|Biological classification|'''Biological classification'''}} provides a hierarchical system that describes evolutionary relatedness for all living entities. The levels of this hierarchy are so called {{WP|Taxonomic rank|'''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&ndash;but not mandated&ndash;that ranks represent ''clades'' (a group of related species, or a "branch" of a phylogeny), and it is desired&ndash;but not madated&ndash;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. [http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=559292 ''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:
 
If we follow a link to an entry in the NCBI's Taxonomy database, eg. [http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=559292 ''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:
Line 725: Line 418:
  
 
<source lang="text">
 
<source lang="text">
cellular organisms; Eukaryota; Opisthokonta; Fungi; Dikarya;  
+
cellular organisms; Eukaryota; Opisthokonta;
Ascomycota; Saccharomyceta; Saccharomycotina; Saccharomycetes;  
+
Fungi; Dikarya; Ascomycota; Saccharomyceta;
Saccharomycetales; Saccharomycetaceae; Saccharomyces; Saccharomyces cerevisiae
+
Saccharomycotina; Saccharomycetes;  
 +
Saccharomycetales; Saccharomycetaceae;
 +
Saccharomyces; Saccharomyces cerevisiae
 
</source>
 
</source>
  
  
These names can be mapped into taxonomic ranks ranks, since the suffixes of these names e.g. ''-mycotina'', ''-mycetaceae'' are specific to defined ranks. (NCBI does not provide this mapping, but {{WP|Taxonomic rank|Wikipedia}} is helpful here.)
+
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 {{WP|Taxonomic rank|Wikipedia}} is helpful here.)
  
 
<table>
 
<table>
Line 743: Line 438:
 
<tr class="s1">
 
<tr class="s1">
 
<td>Domain</td>
 
<td>Domain</td>
<td></td>
+
<td>&nbsp;</td>
 
<td>Eukaryota (Eukarya)</td>
 
<td>Eukaryota (Eukarya)</td>
 
</tr>
 
</tr>
Line 837: Line 532:
 
</tr>
 
</tr>
  
<table>
+
</table>
 +
 
 +
 
 +
      <!-- Column 1 end -->
 +
    </div>
 +
    <div class="col2">
 +
      <!-- Column 2 start -->
  
 +
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.
  
You can see that there is not a common mapping between the yeast lineage 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 [http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=40674&lvl=4 '''Mammalia'''] (a {{WP|Mammal_classification|'''class rank'''}}, and depending how many species you would want to include, use the  
+
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 [http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=40674&lvl=4 '''Mammalia'''] (a {{WP|Mammal_classification|'''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.)
 
subclass-, order-, or family rank (hover over the names to see their taxonomic rank.)
  
There will still be quite a bit of manual work involved and an exploration of different options on the Web may be useful. For our purposes here we can retrieve a good set of organisms from the [http://fungi.ensembl.org/info/website/species.html '''ensembl fungal genomes page'''] - maintained by the EBI's genome annotation group - that lists species grouped by taxonomic ''order''. All of these organisms are genome-sequenced, we can pick a set of representatives:
+
I have chosen the 10 species below to define a well-distributed search-space for PSI-BLAST. Of course '''you must also include YFO in the selection''' (<small>if YFO is not in this list already</small>).
  
# Capnodiales&nbsp;&nbsp;&nbsp;''Zymoseptoria tritici''
+
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>)
# Erysiphales&nbsp;&nbsp;&nbsp;''Blumeria graminis''
 
# Eurotiales&nbsp;&nbsp;&nbsp;''Aspergillus nidulans''
 
# Glomerellales&nbsp;&nbsp;&nbsp;''Glomerella graminicola''
 
# Hypocreales&nbsp;&nbsp;&nbsp;''Trichoderma reesei''
 
# Magnaporthales&nbsp;&nbsp;&nbsp;''Magnaporthe oryzae''
 
# Microbotryales&nbsp;&nbsp;&nbsp;''Microbotryum violaceum''
 
# Pezizales&nbsp;&nbsp;&nbsp;''Tuber melanosporum''
 
# Pleosporales&nbsp;&nbsp;&nbsp;''Phaeosphaeria nodorum''
 
# Pucciniales&nbsp;&nbsp;&nbsp;''Puccinia graminis''
 
# Saccharomycetales&nbsp;&nbsp;&nbsp;''Saccharomyces cerevisiae''
 
# Schizosaccharomycetales&nbsp;&nbsp;&nbsp;''Schizosaccharomyces pombe''
 
# Sclerotiniaceae&nbsp;&nbsp;&nbsp;''Sclerotinia sclerotiorum''
 
# Sordariales&nbsp;&nbsp;&nbsp;''Neurospora crassa''
 
# Tremellales&nbsp;&nbsp;&nbsp;''Cryptococcus neoformans''
 
# Ustilaginales&nbsp;&nbsp;&nbsp;''Ustilago maydis''
 
  
This set of organisms thus can be used to generate a PSI-BLAST search in a well-distributed set of species. Of course '''you must also include YFO''' (<small>if YFO is not in this list already</small>).
+
<source lang="text">
  
To enter these 16 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>)
+
"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]
  
 +
</source>
  
<source lang="text">
 
Aspergillus nidulans[orgn]
 
OR Blumeria graminis[orgn]
 
OR Cryptococcus neoformans[orgn]
 
OR Glomerella graminicola[orgn]
 
OR Magnaporthe oryzae[orgn]
 
OR Microbotryum violaceum[orgn]
 
OR Neurospora crassa[orgn]
 
OR Phaeosphaeria nodorum[orgn]
 
OR Puccinia graminis[orgn]
 
OR Sclerotinia sclerotiorum[orgn]
 
OR Trichoderma reesei[orgn]
 
OR Tuber melanosporum[orgn]
 
OR Saccharomyces cerevisiae[orgn]
 
OR Schizosaccharomyces pombe[orgn]
 
OR Ustilago maydis[orgn]
 
OR Zymoseptoria tritici[orgn]
 
  
</source>
+
      <!-- Column 2 end -->
 +
    </div>
 +
  </div>
 +
</div>
 +
 
  
 +
{{Vspace}}
  
 +
===Executing the PSI-BLAST search===
  
&nbsp;
+
{{Vspace}}
  
==Executing the PSI-BLAST search==
 
  
 
We have a list of species. Good. Next up: how do we '''use''' it.
 
We have a list of species. Good. Next up: how do we '''use''' it.
Line 898: Line 583:
  
  
# Navigate to the BLAST homepage.
+
# Navigate to the [http://www.ncbi.nlm/nih.gov/blast/ BLAST homepage].
 
# Select '''protein BLAST'''.
 
# Select '''protein BLAST'''.
# Paste the APSES domain sequence into the search field.
+
# 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.
 
# Select '''refseq''' as the database.
# Copy the organism restriction list from above '''and enter the correct name for YFO''' into the list if it is not there already. Obviously, you can't find sequences in YFO if YFO is not included in your search space. Paste the list into the '''Entrez Query''' field.
+
# Copy the Entrez restrictions from above '''and add the correct name for YFO''' to the list if it is not there already. (Obviously, you can't find sequences in YFO if YFO is not included among the genomes you are searching in.) 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 908: Line 596:
  
  
Evaluate the results carefully. Since we used default parameters, the threshold for inclusion was set at an '''E-value''' of 0.005 by default, and that may be a bit too lenient. If you look at the table of your hits&ndash; in the '''Sequences producing significant alignments...''' section&ndash; 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, the 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 should drop out of the profile and not contaminate it.
+
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&ndash; in the '''Sequences producing significant alignments...''' section&ndash; 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, the 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 contaminate it.
  
  
Line 914: Line 602:
 
#In the header section, click on '''Formatting options''' and in the line "Format for..." set the '''with inclusion threshold''' to <code>0.001</code> (This means E-values can't be above 10<sup>-03</sup> for the sequence to be included.)
 
#In the header section, click on '''Formatting options''' and in the line "Format for..." set the '''with inclusion threshold''' to <code>0.001</code> (This means E-values can't be above 10<sup>-03</sup> for the sequence to be included.)
 
# Click on the '''Reformat''' button (top right).
 
# Click on the '''Reformat''' button (top right).
# In the table of sequence descriptions (not alignments!), click on the '''Query coverage''' to sort the table by coverage, not by score.
+
# In the table of sequence descriptions (not alignments!), click on '''Query cover''' to sort the table by coverage, not by score.  
# Copy the rows with a coverage of less than 80% and paste them into some text editor so you can compare what happens with these sequences in the next iteration.
+
# '''Deselect''' the check mark next to these sequences in the second-to-rightmost column '''Select for PSI blast'''.  
# '''Deselect''' the check mark next to these sequences in the right-hand column '''Select for PSI blast'''. (For me these are six sequences, but with YFO included that may be a bit different.)
 
 
# Then scroll to '''Run PSI-BLAST iteration 2 ...''' and click on '''<code>Go</code>'''.
 
# Then scroll to '''Run PSI-BLAST iteration 2 ...''' and click on '''<code>Go</code>'''.
 
}}
 
}}
Line 927: Line 614:
  
 
{{task|1=
 
{{task|1=
#Again, study the table of hits. Sequences highlighted in yellow have met the search criteria in the second iteration. Note that the coverage of (some) of the previously excluded sequences is now above 80%.  
+
#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.
 
# 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 until no more "New" sequences are added to the profile. Then scan the list of excluded hits ... are there any from YFO that seem like they could potentially make the list? Marginal E-value perhaps, or reasonable E-value but less coverage? If that's the case, try returning the E-value threshold to the default 0.005 and see what happens...
+
# 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 YFO 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, if we were to repeat the process again and again, we would always get the same result because the profile stays the same. We say that the search has '''converged'''. Good. Time to harvest.
+
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|1=
 
{{task|1=
# At the header, click on '''Taxonomy reports''' and find YFO in the '''Organism Report''' section. These are your APSES domain homologs. All of them. Actually, perhaps more than all: the report may also include sequences with E-values above the inclusion threshold.
+
# In the header section of the BLAST report, click on '''Taxonomy reports''' and find YFO 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 the report copy the sequence identifiers from YFO, with E-values above your defined threshold to your notebook.
## from YFO,
 
## with E-values above your defined threshold.
 
 
}}
 
}}
  
For example, the list of ''Saccharomyces'' genes is the following:
+
For example, the list of ''Saccharomyces'' genes contains the following information:
  
 
<code>
 
<code>
<b>[http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=559292 Saccharomyces cerevisiae S288c]</b> [http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=4890 [ascomycetes]] taxid 559292<br \>
+
[http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=559292 Saccharomyces cerevisiae S288c]</b> [http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=4890 [ascomycetes]] taxid 559292<br \>
[http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6320147&dopt=GenPept ref|NP_010227.1|] Mbp1p [Saccharomyces cerevisiae S288c]         [ 131]  1e-38<br \>
+
4e-37  [http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6320147&dopt=GenPept ref|NP_010227.1|] Mbp1p [Saccharomyces cerevisiae S288c]<br \>
[http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6320957&dopt=GenPept ref|NP_011036.1|] Swi4p [Saccharomyces cerevisiae S288c]         [ 123]  1e-35<br \>
+
2e-30  [http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6320957&dopt=GenPept ref|NP_011036.1|] Swi4p [Saccharomyces cerevisiae S288c]<br \>
[http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6322808&dopt=GenPept ref|NP_012881.1|] Phd1p [Saccharomyces cerevisiae S288c]         [  91]  1e-25<br \>
+
4e-27  [http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6322808&dopt=GenPept ref|NP_012881.1|] Phd1p [Saccharomyces cerevisiae S288c]<br \>
[http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6323658&dopt=GenPept ref|NP_013729.1|] Sok2p [Saccharomyces cerevisiae S288c]         [  93]  3e-25<br \>
+
4e-27  [http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6323658&dopt=GenPept ref|NP_013729.1|] Sok2p [Saccharomyces cerevisiae S288c]<br \>
[http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6322090&dopt=GenPept ref|NP_012165.1|] Xbp1p [Saccharomyces cerevisiae S288c]         [  40]  5e-07<br \>
+
7e-06  [http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=6322090&dopt=GenPept ref|NP_012165.1|] Xbp1p [Saccharomyces cerevisiae S288c]<br \>
 
</code>
 
</code>
 
[[Saccharomyces cerevisiae Xbp1|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.
 
  
  
Next we need to retrieve the sequences. Tedious to retrieve them one by one, but we can get them all at the same time:
+
<small>[[Saccharomyces cerevisiae Xbp1|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.</small>
  
  
 
{{task|1=
 
{{task|1=
  
# Return to the BLAST results page and again open the '''Formatting options'''.
+
# To add the sequences to your database, open each of the links to the RefSeq record for YFO organism into a separate tab.
# Find the '''Limit results''' section and enter YFO's name into the field. For example <code>Saccharomyces cerevisiae [ORGN]</code>
+
# Find the UniProt IDs
# Click on '''Reformat'''
+
# Go through the (short) section <code>add PSI BLAST results</code> in the Assignment 04 R-script.
# Scroll to the '''Descriptions''' section, check the box at the left-hand margin, next to each sequence you want to keep. Then click on '''Download &rarr; FASTA complete sequence &rarr; Continue'''.
 
  
 +
}}
  
 
<div class="mw-collapsible mw-collapsed" data-expandtext="Expand" data-collapsetext="Collapse" style="border:#000000 solid 1px; padding: 10px; margin-left:25px; margin-right:25px;">There are actually several ways to download lists of sequences. Using the results page utility is only one. But if you know the GIs of the sequences you need, you can get them more directly by putting them into the URL...
 
<div  class="mw-collapsible-content">
 
 
* http://www.ncbi.nlm.nih.gov/protein/6320147,6320957,6322808,6323658,6322090?report=docsum  - The default report
 
* http://www.ncbi.nlm.nih.gov/protein/6320147,6320957,6322808,6323658,6322090?report=fasta - FASTA sequences with NCBI HTML markup
 
 
Even more flexible is the [http://www.ncbi.nlm.nih.gov/books/NBK25500/#chapter1.Downloading_Full_Records '''eUtils'''] interface to the NCBI databases. For example you can download the dataset in text format by clicking below.
 
 
* http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=protein&id=6320147,6320957,6322808,6323658,6322090&rettype=fasta&retmode=text
 
 
Note that this utility does not '''show''' anything, but downloads the (multi) fasta file to your default download directory.
 
 
</div>
 
</div>
 
}}
 
 
<!--
 
<!--
  
Line 994: Line 662:
  
  
==Introduction==
+
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?
  
In the last assignment we discovered homologs to ''S. cerevisiae'' Mbp1 in YFO. Some of these will be orthologs to Mbp1, some will be paralogs. Some will have similar function, some will not. We discussed previously that genes that evolve under continuously similar evolutionary pressure should be most similar in sequence, and should have the most similar "function".  
+
But for now, we'll have a look at what the sequences tell us.
  
In this assignment we will define the YFO gene that is the most similar ortholog to ''S. cerevisiae'' Mbp1, and perform a multiple sequence alignment with it.
 
  
Let us briefly review the basic concepts.
+
{{Vspace}}
  
==Orthologs and Paralogs revisited==
+
==Model Based Alignments: PSSMs and HMMs==
  
<div style="padding: 2px; background: #F0F1F7;  border:solid 1px #AAAAAA; font-size:125%;color:#444444">
+
{{Vspace}}
  
&nbsp;<br>
+
<div class="colmask doublepage">
;All related genes are homologs.
+
  <div class="colleft">
</div>
+
    <div class="col1">
 +
      <!-- Column 1 start -->
  
 +
;Position Specific Scoring Matrices (PSSMs)
  
Two central definitions about the mutual relationships between related genes go back to Walter Fitch who stated them in the 1970s:
+
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 [https://www.ncbi.nlm.nih.gov/Structure/cdd/cdd_help.shtml '''see here'''].
<div style="padding: 2px; background: #F0F1F7;  border:solid 1px #AAAAAA; font-size:125%;color:#444444">
 
  
&nbsp;<br>
+
<!--
;Orthologs have diverged after speciation.
+
=== CDD domain annotation ===
  
;Paralogs have diverged after duplication.
+
In the last assignment, you followed a link to '''CDD Search Results''' from the [http://www.ncbi.nlm.nih.gov/protein/NP_010227 RefSeq record for yeast Mbp1] and briefly looked at the information offered by the NCBI's Conserved Domain Database, a database of ''Position Specific Scoring Matrices'' that embody domain definitions. Rather than access precomputed results, you can also search CDD with sequences: assuming you have saved the YFO Mbp1 sequence in FASTA format, this is straightforward. If you did not save this sequence, return to [[BIO_Assignment_Week_3|Assignment 3]] and retrieve it again.
</div>
 
  
  
&nbsp;
+
{{task|1=
 +
# Access the [http://www.ncbi.nlm.nih.gov/Structure/cdd/cdd.shtml '''CDD database'''] at http://www.ncbi.nlm.nih.gov/Structure/cdd/cdd.shtml
 +
# Read the information. CDD is a superset of various other database domain annotations as well as NCBI-curated domain definitions.
 +
# Copy the YFO Mbp1 FASTA sequence, paste it into the search form and click '''Submit'''.
 +
## On the result page, clik on '''View full result'''
 +
## Note that there are a number of partially overlapping ankyrin domain modules. We will study ankyrin domains in a later assignment.
 +
## Also note that there may be blocks of sequence colored cyan in the sequence bar. Hover your mouse over the blocks to see what these blocks signify.
 +
## Open the link to '''Search for similar domain architecture''' in a separate window and study it. This is the '''CDART''' database. Think about what these results may be useful for.
 +
## Click on one of the ANK superfamily graphics and see what the associated information looks like: there is a summary of structure and function, links to specific literature and a tree of the relationship of related sequences.
 +
}}
 +
-->
  
  
[[Image:OrthologParalog.jpg|frame|none|'''Hypothetical evolutionary tree.''' A single gene evolves through two speciation events and one duplication event. A duplication occurs during the evolution from reptilian to synapsid. It is easy to see how this pair of genes (paralogs) in the ancestral synapsid gives rise to two pairs of genes in pig and elephant, respectively. All ''circle'' genes are mutually orthologs, they form a "cluster of orthologs". All genes within one species are mutual paralogs&ndash;they are so called ''in-paralogs''. The ''circle'' gene in pig and the ''triangle'' gene in the elephant are so-called ''out-paralogs''. Somewhat counterintuitively, the ''triangle'' gene in the pig and the ''circle'' gene in the raven are also orthologs - but this has to be, since the last common ancestor diverged by '''speciation'''.
 
  
The "phylogram" on the right symbolizes the amount of evolutionary change as proportional to height difference to the "root". It is easy to see how a bidirectional BLAST search will only find pairs of most similar orthologs. If applied to a group of species, bidirectional BLAST searches will find clusters of orthologs only (except if genes were lost, or there are  anomalies in the evolutionary rate.)]]
+
      <!-- Column 1 end -->
 +
    </div>
 +
    <div class="col2">
 +
      <!-- Column 2 start -->
  
 +
; Hidden Markov Models (HMMs)
  
==Defining orthologs==
+
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.
  
To be reasonably certain about orthology relationships, we would need to construct and analyze detailed evolutionary trees. This is computationally expensive and the results are not always unambiguous either, as we will see in a later assignment. But a number of different strategies are available that use precomputed results to define orthologs. These are especially useful for large, cross genome surveys. They are less useful for detailed analysis of individual genes. Pay the sites a visit and try a search.
+
In this section, we will annotate the YFO 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 -->
;Orthologs by eggNOG
+
    </div>
:The [http://eggnog.embl.de/ '''eggNOG'''] (evolutionary genealogy of genes: Non-supervised Orthologous Groups) database contains orthologous groups of genes at the EMBL. It seems to be continuously updtaed, the search functionality is reasonable and the results for yeast Mbp1 show many genes from several fungi. Importantly, there is only one gene annotated for each species. Alignments and trees are also available, as are database downloads for algorithmic analysis.
+
  </div>
<div class="mw-collapsible mw-collapsed" data-expandtext="more..." data-collapsetext="less" style="width:800px">
 
&nbsp;
 
<div class="mw-collapsible-content">
 
 
{{#pmid: 24297252}}
 
 
 
</div>
 
 
</div>
 
</div>
  
 +
== SMART domain annotation ==
  
;Orthologs at OrthoDB
 
:[http://www.orthodb.org/ '''OrthoDB'''] includes a large number of species, among them all of our protein-sequenced fungi. However the search function (by keyword) retrieves many paralogs together with the orthologs, for example, the yeast Soc2 and Phd1 proteins are found in the same orthologous group these two are clearly paralogs.
 
<div class="mw-collapsible mw-collapsed" data-expandtext="more..." data-collapsetext="less" style="width:800px">
 
&nbsp;
 
<div class="mw-collapsible-content">
 
 
{{#pmid: 23180791}}
 
  
</div>
+
The [http://smart.embl-heidelberg.de/ 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.
</div>
 
  
  
;Orthologs at OMA
+
===SMART search===
[http://omabrowser.org/ '''OMA'''] (the Orthologous Matrix) maintained at the Swiss Federal Institute of Technology contains a large number of orthologs from sequenced genomes. Searching with <code>MBP1_YEAST</code> (this is the Swissprot ID) as a "Group" search finds the correct gene in EREGO, KLULA, CANGL and SACCE. But searching with the sequence of the ''Ustilago maydis'' ortholog does not find the yeast protein, but the orthologs in YARLI, SCHPO, LACCBI, CRYNE and USTMA. Apparently the orthologous group has been split into several subgroups across the fungi. However as a whole the database is carefully constructed and available for download and API access; a large and useful resource.
 
<div class="mw-collapsible mw-collapsed" data-expandtext="more..." data-collapsetext="less" style="width:800px">
 
&nbsp;
 
<div class="mw-collapsible-content">
 
 
{{#pmid: 21113020}}
 
 
 
... see also the related articles, much innovative and carefully done work on automated orthologue definition by the Dessimoz group.
 
</div>
 
</div>
 
 
 
 
 
;Orthologs by syntenic gene order conservation
 
:We will revisit this when we explore the UCSC genome browser.
 
 
 
 
 
;Orthologs by RBM
 
:Defining it yourself. RBM (or: Reciprocal Best Match) is easy to compute and half of the work you have already done in [[BIO_Assignment_Week_3|Assignment 3]]. Get the ID for the gene which you have identified and annotated as the best BLAST match for Mbp1 in YFO and confirm that this gene has Mbp1 as the most significant hit in the yeast proteome. <small>The results are unambiguous, but there may be residual doubt whether these two best-matching sequences are actually the most similar orthologs.</small>
 
  
 
{{task|1=
 
{{task|1=
# Navigate to the BLAST homepage.
+
# Access the [http://smart.embl-heidelberg.de/ '''SMART database'''] at http://smart.embl-heidelberg.de/
# Paste the YFO RefSeq sequence identifier into the search field. (You don't have to search with sequences&ndash;you can search directly with an NCBI identifier '''IF''' you want to search with the full-length sequence.)
+
# Click the lick to access SMART in the '''normal''' mode.
# Set the database to refseq, and restrict the species to ''Saccharomyces cerevisiae''.
+
# Paste the YFO Mbp1 UniProtKB Accession number into the '''Sequence ID or ACC''' field. If you were not able to find a UniProt ID, paste the sequence instead.
# Run BLAST.
+
# Check all the boxes for:
# Keep the window open for the next task.
+
## '''outlier homologues''' (also including homologues in the PDB structure database)
 +
## '''PFAM domains''' (domains defined by sequence similarity in the PFAM database)
 +
## '''signal peptides''' (using the 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. <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>
  
The top hit should be yeast Mbp1 (NP_010227). E mail me your sequence identifiers if it is not.
+
Study the results.  
If it is, you have confirmed the '''RBM''' or '''BBM''' criterion (Reciprocal Best Match or Bidirectional Best Hit, respectively).
 
  
<small>Technically, this is not perfectly true since you have searched with the APSES domain in one direction, with the full-length sequence in the other. For this task I wanted you to try the ''search-with-accession-number''. Therefore the procedural laxness, I hope it is permissible. In fact, performing the reverse search with the YFO APSES domain should actually be more stringent, i.e. if you find the right gene with the longer sequence, you are even more likely to find the right gene with the shorter one.</small>  
+
# Note down the following information so you can enter the annotation in the protein database for YFO:
}}
+
## 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>.
 +
### 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) <small>I expect only 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 ..."
 +
### All start and end coordinates of '''low complexity segments''' for which the ''Reason'' is "overlap".
 +
### Any start and end coordinates of overlapping '''coiled coil''' segments.
 +
### <small>I expect all other annotations - besides the overlapping KilA-N domain defined by Pfam - to arise from the succession of ankyrin domains that the proteins have, both '''Pfam_ANK..''' domains, as well as internal repeats. However, if there are other features I have not mentioned here, feel encouraged to let me know.</small>
 +
## 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.
 +
### <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 will be BLAST annotations to Ankyrin domains. We will not annotate these separately either.</small>
 +
# Follow the links to the database entries for the information so you know what these domains and features are.
  
 
;Orthology by annotation
 
:The NCBI precomputes BLAST results and makes them available at the RefSeq database entry for your protein.
 
 
{{task|1=
 
# In your BLAST result page, click on the RefSeq link for your query to navigate to the RefSeq database entry for your protein.
 
# Follow the '''Blink''' link in the right-hand column under '''Related information'''.
 
# Restrict the view RefSeq under the "Display options" and to Fungi.
 
 
You should see a number of genes with low E-values and high coverage in other fungi - however this search is problematic since the full length gene across the database finds mostly Ankyrin domains.
 
 
}}
 
}}
  
 +
Next 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.
  
You will find that '''all''' of these approaches yield '''some''' of the orthologs. But none finds them all. The take home message is: precomputed results are good for large-scale survey-type investigations, where you can't humanly process the information by hand. But for more detailed questions, careful manual searches are still indsipensable.
+
{{Vspace}}
 
 
<div class="mw-collapsible mw-collapsed" data-expandtext="Expand for crowdsourcing" data-collapsetext="Collapse">
 
;Orthology by crowdsourcing
 
:Luckily a crowd of willing hands has prepared the necessary sequences for you: in the section below you will find a link to the annotated and verified Mbp1 orthologs from last year's course  :-)
 
 
 
<div class="mw-collapsible-content">
 
We could call this annotation by many hands {{WP|Crowdsourcing|"crowdsourcing"}} - handing out small parcels of work to many workers, who would typically allocate only a small share of their time, but here the strength is in numbers and especially projects that organize via the Internet can tally up very impressive manpower, for free, or as {{WP|Microwork}}. These developments have some interest for bioinformatics: many of our more difficult tasks  can not be easily built into an algorithm, language related tasks such as text-mining, or pattern matching tasks come to mind. Allocating this to a large number of human contributors may be a viable alternative to computation. A marketplace where this kind of work is already a reality is {{WP|Amazon Mechanical Turk|Amazon's "Mechanical Turk" Marketplace}}: programmers&ndash;"requesters"&ndash; use an open interface to post tasks for payment, "providers" from all over the world can engage in these. Tasks may include matching of pictures, or evaluating the aesthetics of competing designs. A quirky example I came across recently was when information designer David McCandless had 200 "Mechanical Turks" draw a small picture of their soul for his collection.
 
 
 
The name {{WP|The Turk|"Mechanical Turk"}} by the way relates to a famous ruse, when a Hungarian inventor and adventurer toured the imperial courts of 18<sup>th</sup> century Europe with an automaton, dressed in turkish robes and turban, that played chess at the grandmaster level against opponents that included Napoleon Bonaparte and Benjamin Franklin. No small mechanical feat in any case, it was only in the 19<sup>th</sup> century that it was revealed that the computational power was actually provided by a concealed human.
 
  
Are you up for some "Turking"? Before the next quiz, edit [http://biochemistry.utoronto.ca/steipe/abc/students/index.php/BCH441_2014_Assignment_7_RBM '''the Mbp1 RBM page on the Student Wiki] and include the RBM for Mbp1, for a 10% bonus on the next quiz.
+
=== Visual comparison of domain annotations in '''R''' ===
 
 
</div>
 
</div>
 
  
 +
The versatile plotting functions of '''R''' allow us to compare domain annotations. The distribution of segments that are annotated as "low-complexity, presumably disordered, is particularly interesting: these are functional features that are often not associated with sequence similarity but may have arisen from convergent evolution. Those would not be detectable through sequence alignment - which is after all based on amino acid pair scores and therefore context independent.
  
&nbsp;
+
In the following code tutorial, we create a plot similar to the CDD and SMART displays. It is based on the SMART domain annotations of the six-fungal reference species for the course.
  
==Align and Annotate==
 
  
  
&nbsp;<br>
+
{{task|1 =
  
 
+
* Return to your RStudio session.
===Review of domain annotations===
+
* Make sure you have saved <code>myDB</code> as instructed previously. Then quit the program, restart, and re-open the project via the '''File''' &rarr; '''Recent projects ...''' menu. This is to clear out-of-date assignments and functions from the workspace.
 
+
* Do not type <code>init()</code> yet, but '''pull''' the most recent version of files from github. Then type <code>init()</code>.
 
+
* Study and work through the code in the <code>SMART domain annotations</code> section of the <code>BCH441_A04.R</code> script. This includes entering your domain and other feature annotations into the database.
APSES domains are relatively easy to identify and annotate but we have had problems with the ankyrin domains in Mbp1 homologues. Both CDD as well as SMART have identified such domains, but while the domain model was based on the same Pfam profile for both, and both annotated approximately the same regions, the details of the alignments and the extent of the predicted region was different.
+
* At the end of the script, print out your plot of the domain annotations for MB1_YFO and the reference proteins. Bring this plot with you for the next quiz.
 
+
* Can this plot be improved? What would you do differently to maximize its utility from an information-design point of view?
[http://www.yeastgenome.org/cgi-bin/locus.fpl?locus=mbp1 Mbp1] forms heterodimeric complexes with a homologue, [http://www.yeastgenome.org/cgi-bin/locus.fpl?locus=swi6 Swi6]. Swi6 does not have an APSES domain, thus it does not bind DNA. But it is similar to Mbp1 in the region spanning the ankyrin domains and in 1999 [http://www.ncbi.nlm.nih.gov/pubmed/10048928 Foord ''et al.''] published its crystal structure ([http://www.rcsb.org/pdb/cgi/explore.cgi?pdbId=1SW6 1SW6]). This structure is a good model for Ankyrin repeats in Mbp1. For details, please refer to the consolidated [[Reference annotation yeast Mbp1|Mbp1 annotation page]] I have prepared.
 
 
 
In what follows, we will use the program JALVIEW - a Java based multiple sequence alignment editor to load and align sequences and to consider structural similarity between yeast Mbp1 and its closest homologue in your organism.
 
 
 
In this part of the assignment,
 
 
 
#You will load sequences that are most similar to Mbp1 into an MSA editor;
 
#You will add sequences of ankyrin domain models;
 
#You will perform a multiple sequence alignment;
 
#You will try to improve the alignment manually;
 
<!-- Finally you will consider if the Mbp1 APSES domains could extend beyond the section of homology with Swi6 -->
 
 
 
 
 
===Jalview, loading sequences===
 
 
 
 
 
Geoff Barton's lab in Dundee has developed an integrated MSA editor and sequence annotation workbench with a number of very useful functions. It is written in Java and should run on Mac, Linux and Windows platforms without modifications.  
 
 
 
 
 
{{#pmid: 19151095}}
 
 
 
 
 
We will use this tool for this assignment and explore its features as we go along.
 
 
 
{{task|1=
 
#Navigate to the [http://www.jalview.org/ Jalview homepage] click on '''Download''', install Jalview on your computer and start it. A number of windows that showcase the program's abilities will load, you can close these.
 
#Prepare homologous Mbp1 sequences for alignment:
 
##Open the '''[[Reference Mbp1 orthologues (all fungi)]]''' page. (This is the list of Mbp1 orthologs I mentioned above.)
 
##Copy the FASTA sequences of the reference proteins, paste them into a text file (TextEdit on the Mac, Notepad on Windows) and save the file; you could give it an extension of <code>.fa</code>&ndash;but you don't have to.
 
##Check whether the sequence for YFO is included in the list. If it is, fine. If it is not, retrieve it from NCBI, paste it into the file and edit the header like the other sequences. If the wrong sequence from YFO is included, replace it and let me know.
 
#Return to Jalview and select File &rarr; Input Alignment &rarr; from File and open your file. A window with sequences should appear.
 
#Copy the sequences for ankyrin domain models (below), click on the Jalview window, select File &rarr; Add sequences &rarr; from Textbox and paste them into the Jalview textbox. Paste two separate copies of the CD00204 consensus sequence and one copy of 1SW6.
 
##When all the sequences are present, click on '''Add'''.  
 
 
 
Jalview now displays all the sequences, but of course this is not yet an alignment.
 
  
 
}}
 
}}
  
;Ankyrin domain models
+
When you execute the code, your plot should look similar to this one:
>CD00204 ankyrin repeat consensus sequence from CDD
 
NARDEDGRTPLHLAASNGHLEVVKLLLENGADVNAKDNDGRTPLHLAAKNGHLEIVKLLL
 
EKGADVNARDKDGNTPLHLAARNGNLDVVKLLLKHGADVNARDKDGRTPLHLAAKNGHL
 
  
>1SW6 from PDB - unstructured loops replaced with xxxx
+
[[Image:DomainAnnotations.jpg|frame|none|SMART domain annotations for Mbp1 proteins for the ten reference fungi.
GPIITFTHDLTSDFLSSPLKIMKALPSPVVNDNEQKMKLEAFLQRLLFxxxxSFDSLLQE
+
]]
VNDAFPNTQLNLNIPVDEHGNTPLHWLTSIANLELVKHLVKHGSNRLYGDNMGESCLVKA
 
VKSVNNYDSGTFEALLDYLYPCLILEDSMNRTILHHIIITSGMTGCSAAAKYYLDILMGW
 
IVKKQNRPIQSGxxxxDSILENLDLKWIIANMLNAQDSNGDTCLNIAARLGNISIVDALL
 
DYGADPFIANKSGLRPVDFGAG
 
  
===Computing alignments===
+
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.
  
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. You could use any of these tools, just paste your sequences into a Webform, download the results and load into Jalview. Easy.
 
 
But even easier is to calculate the alignments directly from Jalview.  available. (Not today. <small>Bummer.</small>)
 
 
;Calculate a MAFFT alignment using the Jalview Web service option:
 
  
 +
<!--
 
{{task|1=
 
{{task|1=
#In Jalview, select '''Web Service &rarr; Alignment &rarr; MAFFT with defaults...'''. The alignment is calculated in a few minutes and displayed in a new window.
 
}}
 
  
;Calculate a MAFFT alignment when the Jalview Web service is NOT available:
+
; Optional - care to share?
  
{{task|1=
+
# Copy one of the list definitions for Mbp1 domains and edit it with the appropriate values for your own annotations.
#In Jalview, select '''File &rarr; Output to Textbox &rarr; FASTA'''
+
# Test that you can add the YFO annotation to the plot.
#Copy the sequences.
+
# Submit your validated code block to the [http://biochemistry.utoronto.ca/steipe/abc/students/index.php/BCH441_2014_Assignment_4_domain_annotations '''Student Wiki here''']. The goal is to compile an overview of all species we are studying in class. 
#Navigate to the [http://www.ebi.ac.uk/Tools/msa/mafft/ '''MAFFT Input form'''] at the EBI.
+
# If your working annotation block is in the Wiki before noontime on Wednesday, you will be awarded a 10% bonus on the quiz.
#Paste your sequences into the form.
 
#Click on '''Submit'''.
 
#Close the Jalview sequence window and either save your MAFFT alignment to file and load in Jalview, or simply ''''File &rarr; Input Alignment &rarr; from Textbox''', paste and click '''New Window'''.
 
 
}}
 
}}
 +
-->
  
 +
{{Vspace}}
  
In any case, you should now have an alignment.
+
==Multiple Sequence Alignment==
 
 
{{task|1=
 
#Choose '''Colour &rarr; Hydrophobicity''' and '''&rarr; by Conservation'''. Then adjust the slider left or right to see which columns are highly conserved. You will notice that the Swi6 sequence that was supposed to align only to the ankyrin domains was in fact aligned to other parts of the sequence as well. This is one part of the MSA that we will have to correct manually and a common problem when aligning sequences of different lengths.
 
}}
 
  
 +
{{Vspace}}
  
 +
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.
  
&nbsp;
+
&nbsp;<br>
 
 
===Editing ankyrin domain alignments===
 
 
 
 
 
A '''good''' MSA comprises only columns of residues that play similar roles in the proteins' mechanism and/or that evolve in a comparable structural context. Since the alignment reflects the result of biological selection and conservation, it has relatively few indels and the indels it has are usually not placed into elements of secondary structure or into functional motifs. The contiguous features annotated for Mbp1 are expected to be left intact by a good alignment.
 
 
 
A '''poor''' MSA has many errors in its columns; these contain residues that actually have different functions or structural roles, even though they may look similar according to a (pairwise!) scoring matrix. A poor MSA also may have introduced indels in biologically irrelevant positions, to maximize spurious sequence similarities. Some of the features annotated for Mbp1 will be disrupted in a poor alignment and residues that are conserved may be placed into different columns.
 
 
 
Often errors or inconsistencies are easy to spot, and manually editing an MSA is not generally frowned upon, even though this is not a strictly objective procedure. The main goal of manual editing is to make an alignment biologically more plausible. Most comonly this means to mimize the number of rare evolutionary events that the alignment suggests and/or to emphasize conservation of known functional motifs. Here are some examples for what one might aim for in manually editing an alignment:
 
 
 
;Reduce number of indels
 
From a Probcons alignment:
 
0447_DEBHA    ILKTE-K<span style="color: rgb(255, 0, 0);">-</span>T<span style="color: rgb(255, 0, 0);">---</span>K--SVVK      ILKTE----KTK---SVVK
 
9978_GIBZE    MLGLN<span style="color: rgb(255, 0, 0);">-</span>PGLKEIT--HSIT      MLGLNPGLKEIT---HSIT
 
1513_CANAL    ILKTE-K<span style="color: rgb(255, 0, 0);">-</span>I<span style="color: rgb(255, 0, 0);">---</span>K--NVVK      ILKTE----KIK---NVVK
 
6132_SCHPO    ELDDI-I<span style="color: rgb(255, 0, 0);">-</span>ESGDY--ENVD      ELDDI-IESGDY---ENVD
 
1244_ASPFU    ----N<span style="color: rgb(255, 0, 0);">-</span>PGLREIC--HSIT  -&gt;  ----NPGLREIC---HSIT
 
0925_USTMA    LVKTC<span style="color: rgb(255, 0, 0);">-</span>PALDPHI--TKLK      LVKTCPALDPHI---TKLK
 
2599_ASPTE    VLDAN<span style="color: rgb(255, 0, 0);">-</span>PGLREIS--HSIT      VLDANPGLREIS---HSIT
 
9773_DEBHA    LLESTPKQYHQHI--KRIR      LLESTPKQYHQHI--KRIR
 
0918_CANAL    LLESTPKEYQQYI--KRIR      LLESTPKEYQQYI--KRIR
 
 
 
<small>Gaps marked in red were moved. The sequence similarity in the alignment does not change considerably, however the total number of indels in this excerpt is reduced to 13 from the original 22</small>
 
 
 
 
 
;Move indels to more plausible position
 
From a CLUSTAL alignment:
 
4966_CANGL    MKHEKVQ------GGYGRFQ---GTW      MKHEKV<span style="color: rgb(0, 170, 0);">Q</span>------GGYGRFQ---GTW
 
1513_CANAL    KIKNVVK------VGSMNLK---GVW      KIKNVV<span style="color: rgb(0, 170, 0);">K</span>------VGSMNLK---GVW
 
6132_SCHPO    VDSKHP<span style="color: rgb(255, 0, 0);">-</span>----------<span style="color: rgb(255, 0, 0);">Q</span>ID---GVW  -&gt;  VDSKHP<span style="color: rgb(0, 170, 0);">Q</span>-----------ID---GVW
 
1244_ASPFU    EICHSIT------GGALAAQ---GYW      EICHSI<span style="color: rgb(0, 170, 0);">T</span>------GGALAAQ---GYW
 
  
<small>The two characters marked in red were swapped. This does not change the number of indels but places the "Q" into a a column in which it is more highly conserved (green). Progressive alignments are especially prone to this type of error.</small>
 
  
;Conserve motifs
+
{{Vspace}}
From a CLUSTAL alignment:
 
6166_SCHPO      --DKR<span style="color: rgb(255, 0, 0);">V</span>A---<span style="color: rgb(255, 0, 0);">G</span>LWVPP      --DKR<span style="color: rgb(0, 255, 0);">V</span>A--<span style="color: rgb(0, 255, 0);">G</span>-LWVPP
 
XBP1_SACCE      GGYIK<span style="color: rgb(255, 0, 0);">I</span>Q---<span style="color: rgb(255, 0, 0);">G</span>TWLPM      GGYIK<span style="color: rgb(0, 255, 0);">I</span>Q--<span style="color: rgb(0, 255, 0);">G</span>-TWLPM
 
6355_ASPTE      --DE<span style="color: rgb(255, 0, 0);">I</span>A<span style="color: rgb(255, 0, 0);">G</span>---NVWISP  -&gt;  ---DE<span style="color: rgb(0, 255, 0);">I</span>A--<span style="color: rgb(0, 255, 0);">G</span>NVWISP
 
5262_KLULA      GGYIK<span style="color: rgb(255, 0, 0);">I</span>Q---<span style="color: rgb(255, 0, 0);">G</span>TWLPY      GGYIK<span style="color: rgb(0, 255, 0);">I</span>Q--<span style="color: rgb(0, 255, 0);">G</span>-TWLPY
 
  
<small>The first of the two residues marked in red is a conserved, solvent exposed hydrophobic residue that may mediate domain interactions. The second residue is the conserved glycine in a beta turn that cannot be mutated without structural disruption. Changing the position of a gap and insertion in one sequence improves the conservation of both motifs.</small>
+
===Computing an MSA in R===
  
 +
{{Vspace}}
  
The Ankyrin domains are quite highly diverged, the boundaries not well defined and not even CDD, SMART and SAS agree on the precise annotations. We expect there to be alignment errors in this region. Nevertheless we would hope that a good alignment would recognize homology in that region and that ideally the required <i>indels</i> would be placed between the secondary structure elements, not in their middle. But judging from the sequence alignment alone, we cannot judge where the secondary structure elements ought to be. You should therefore add the following "sequence" to the alignment; it contains exactly as many characters as the Swi6 sequence above and annotates the secondary structure elements. I have derived it from the 1SW6 structure
 
  
>SecStruc 1SW6 E: strand  t: turn  H: helix  _: irregular
+
Let's use the Bioconductor msa package to align the sequences we have. Study and run the following code
_EEE__tt___ttt______EE_____t___HHHHHHHHHHHHHHHH_xxxx_HHHHHHH
 
HHHH_t_____t_____t____HHHHHHH__tHHHHHHHHH____t___tt____HHHHH
 
HH__HHHH___HHHHHHHHHHHHHEE_t____HHHHHHHHH__t__HHHHHHHHHHHHHH
 
HHHHHH__EEE_xxxx_HHHHHt_HHHHHHH______t____HHHHHHHH__HHHHHHHH
 
H____t____t____HHHH___
 
  
<div class="reference-box">[http://www.ebi.ac.uk/thornton-srv/databases/cgi-bin/pdbsum/GetPage.pl?pdbcode=1sw6&template=protein.html&r=wiring&l=1&chain=A '''1SW6_A''' at the PDBSum database of structure annotations] You can compare the diagram there with this text string.</div>
 
  
 +
{{task|1 =
  
To proceed:
+
* Return to your RStudio session.
#Manually align the Swi6 sequence with yeast Mbp1
+
* Make sure you have saved <code>myDB</code> as instructed previously.
#Bring the Secondary structure annotation into its correct alignment with Swi6
+
* Bring code and data resources up to date:
#Bring both CDD ankyrin profiles into the correct alignment with yeast Mbp1
+
** '''pull''' the most recent version of the project from GitHub
 +
** type <code>init()</code> to lod the most recent files and functions
 +
** re-merge your current <code>myDB</code>
 +
* Study and work through the code in the <code>Multiple sequence alignments</code> section of the <code>BCH441_A04.R</code> script.
 +
* Note that the final task asks you to print out some results and bring them to class for the next quiz.
  
Proceed along the following steps:
 
 
{{task|1=
 
#Add the secondary structure annotation to the sequence alignment in Jalview. Copy the annotation, select File &rarr; Add sequences &rarr; from Textbox and paste the sequence.
 
#Select Help &rarr; Documentation and read about '''Editing Alignments''', '''Cursor Mode''' and '''Key strokes'''.
 
#Click on the yeast Mbp1 sequence '''row''' to select the entire row. Then use the cursor key to move that sequence down, so it is directly above the 1SW6 sequence. Select the row of 1SW6 and use shift/mouse to move the sequence elements and edit the alignment to match yeast Mbp1. Refer to the alignment given in the [[Reference annotation yeast Mbp1|Mbp1 annotation page]] for the correct alignment.
 
#Align the secondary structure elements with the 1SW6 sequence: Every character of 1SW6 should be matched with either E, t, H, or _. The result should be similar to the [[Reference annotation yeast Mbp1|Mbp1 annotation page]]. If you need to insert gaps into all sequences in the alignment, simply drag your mouse over all row headers - movement of sequences is constrained to selected regions, the rest is locked into place to prevent inadvertent misalignments. Remember to save your project from time to time: '''File &rarr; save''' so you can reload a previous state if anything goes wrong and can't be fixed with '''Edit &rarr; Undo'''.
 
#Finally align the two CD00204 consensus sequences to their correct positions (again, refer to the [[Reference annotation yeast Mbp1|Mbp1 annotation page]]).
 
#You can now consider the principles stated above and see if you can improve the alignment, for example by moving indels out of regions of secondary structure if that is possible without changing the character of the aligned columns significantly. Select blocks within which to work to leave the remaining alignment unchanged. So that this does not become tedious, you can restrict your editing to one Ankyrin repeat that is structurally defined in Swi6. You may want to open the 1SW6 structure in VMD to define the boundaries of one such repeat. You can copy and paste sections from Jalview into your assignment for documentation or export sections of the alignment to HTML (see the example below).
 
 
}}
 
}}
  
=== Editing ankyrin domain alignments - Sample===
+
{{Vspace}}
  
This sample was created by
+
===Sequence alignment editors===
  
# Editing the alignments as described above;
+
{{Vspace}}
# Copying a block of aligned sequence;
 
# Pasting it To New Alignment;
 
# Colouring the residues by Hydrophobicity and setting the colour saturation according to Conservation;
 
# Choosing File &rarr; Export Image &rarr; HTML and pasting the resulting HTML source into this Wikipage.
 
  
 +
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 <small>(and if you are on a Mac [https://github.com/4ment/seqotron seqotron] might interest you, but I only cover software that is free and runs on all three major platforms)</small>.
  
<table border="1"><tr><td>
+
Right now, I am just mentioning the two alignment editors. If you have experience with comparing them, let us know.
<table border="0" cellpadding="0" cellspacing="0">
 
  
<tr><td colspan="6"></td>
+
* [[http://www.jalview.org/ '''Jalview''']] an integrated MSA editor and sequence annotation workbench from the Barton lab in Dundee. Lots of functions.
<td colspan="9">10<br>|</td><td></td>
+
* [[http://www.ormbunkar.se/aliview/ '''AliView''']] from Uppsala: fast, lean, looks to be very practical.
<td colspan="9">20<br>|</td><td></td>
 
<td colspan="9">30<br>|</td><td></td>
 
<td colspan="3"></td><td colspan="3">40<br>|</td>
 
  
</tr>
 
<tr><td nowrap="nowrap">MBP1_USTMA/341-368&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f3eef9">Y</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#fdeeef">L</td>
 
  
<td>-</td>
+
{{Vspace}}
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
  
<td>-</td>
+
<!--
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#ffd8d8">I</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
  
<td>-</td>
+
====Jalview: alignment editor====
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#fbeef1">F</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#eeeefe">E</td>
 
  
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">E</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#d3c2ee">P</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#ccaddf">T</td>
 
<td bgcolor="#ecc2d5">M</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
  
<td bgcolor="#adadff">R</td>
+
Geoff Barton's lab in Dundee has developed an integrated MSA editor and sequence annotation workbench with a number of very useful functions. It is written in Java and should run on Mac, Linux and Windows platforms without modifications.
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#f4eef8">S</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1B_SCHCO/470-498&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#eeeefe">E</td>
 
  
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#f3eef9">Y</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeeff">K</td>
 
<td bgcolor="#f4eef8">S</td>
 
  
<td>-</td>
+
{{#pmid: 19151095}}
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
  
<td>-</td>
 
<td bgcolor="#f7d8e0">F</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#fdeeef">L</td>
 
  
<td bgcolor="#eeeefe">Q</td>
+
<!--
<td bgcolor="#c5c2fb">D</td>
+
We will quickly install Jalview and explore its features in other assignments.  
<td bgcolor="#c5c2fb">E</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
 
 
<td bgcolor="#b0adfa">N</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#fcc2c4">V</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">N</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBP1_ASHGO/465-494&nbsp;&nbsp;</td>
 
<td>F</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#f3eef9">Y</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#f4eef8">T</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#ffd8d8">I</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#efc2d0">C</td>
 
<td bgcolor="#eeeeff">K</td>
 
<td bgcolor="#cfaddc">G</td>
 
 
 
<td bgcolor="#e6d8f0">S</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#d3c2ee">P</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e5adc6">M</td>
 
 
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#eeeefe">D</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_CLALU/550-586&nbsp;&nbsp;</td>
 
<td>G</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#eeeefe">N</td>
 
 
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td>N</td>
 
<td>D</td>
 
<td>K</td>
 
<td bgcolor="#eeeeff">K</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#ffd8d8">I</td>
 
<td>S</td>
 
<td>K</td>
 
<td>F</td>
 
<td>L</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#eeeefe">Q</td>
 
 
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#edadbd">F</td>
 
<td bgcolor="#b3adf7">H</td>
 
 
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#c6ade5">Y</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f9eef3">M</td>
 
<td bgcolor="#f4eef8">S</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBPA_COPCI/514-542&nbsp;&nbsp;</td>
 
 
 
<td>-</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#fbeef1">F</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fdd8da">V</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">E</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
 
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#ffadad">I</td>
 
<td bgcolor="#b0adfa">N</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#fcc2c4">V</td>
 
 
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">N</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_DEBHA/507-550&nbsp;&nbsp;</td>
 
<td>I</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#eeeefe">Q</td>
 
 
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td>K</td>
 
<td>K</td>
 
 
 
<td>L</td>
 
<td>S</td>
 
<td>L</td>
 
<td>S</td>
 
<td>D</td>
 
<td>K</td>
 
<td>K</td>
 
<td>E</td>
 
<td bgcolor="#fbd8db">L</td>
 
 
 
<td bgcolor="#ffd8d8">I</td>
 
<td>A</td>
 
<td>K</td>
 
<td>F</td>
 
<td>I</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
 
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#edadbd">F</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#ffc2c2">I</td>
 
 
 
<td bgcolor="#fbadaf">V</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#c6ade5">Y</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td bgcolor="#eeeefe">N</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1A_SCHCO/388-415&nbsp;&nbsp;</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#f3eef9">Y</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeeff">K</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fdd8da">V</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#fbeef1">F</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">E</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">E</td>
 
<td bgcolor="#d9c2e7">T</td>
 
 
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#ccaddf">T</td>
 
<td bgcolor="#ecc2d5">M</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#efc2d0">C</td>
 
<td bgcolor="#eeeeff">R</td>
 
 
 
<td bgcolor="#f4eef8">S</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_AJECA/374-403&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#eeeefe">Q</td>
 
 
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#f9eef3">M</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#e6d8f0">S</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#d8c2e8">S</td>
 
 
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
 
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">K</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#faeef2">C</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_PARBR/380-409&nbsp;&nbsp;</td>
 
<td>I</td>
 
<td bgcolor="#fdeeef">L</td>
 
 
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f4eef8">S</td>
 
 
 
<td bgcolor="#fdeeef">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#e6d8f0">S</td>
 
 
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#d8c2e8">S</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
 
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">K</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#faeef2">C</td>
 
 
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_NEOFI/363-392&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#faeef2">C</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#ffeeee">I</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#e6d8f0">S</td>
 
<td bgcolor="#faeef2">C</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#d8c2e8">S</td>
 
<td bgcolor="#eeeefe">N</td>
 
 
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#fcc2c4">V</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
 
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#f9eef3">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_ASPNI/365-394&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#fbeef1">F</td>
 
<td bgcolor="#f4eef8">S</td>
 
 
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#fdeeee">V</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#fdeeef">L</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#e6d8f0">S</td>
 
<td bgcolor="#faeef2">C</td>
 
 
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#d8c2e8">S</td>
 
<td bgcolor="#fdeeee">V</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#fbadaf">V</td>
 
 
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#fcc2c4">V</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#fdeeee">V</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBP1_UNCRE/377-406&nbsp;&nbsp;</td>
 
<td>M</td>
 
<td bgcolor="#f3eef9">Y</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#fdeeee">V</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f2d8e5">A</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#d8c2e8">S</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
 
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">K</td>
 
 
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#faeef2">C</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_PENCH/439-468&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#faeef2">C</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#eeeefe">Q</td>
 
 
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#f9eef3">M</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#e6d8f0">S</td>
 
<td bgcolor="#faeef2">C</td>
 
<td bgcolor="#eeeefe">Q</td>
 
 
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">Q</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#fbadaf">V</td>
 
<td bgcolor="#f7adb3">L</td>
 
 
 
<td bgcolor="#fcc2c4">V</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#f9eef3">A</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBPA_TRIVE/407-436&nbsp;&nbsp;</td>
 
 
 
<td>V</td>
 
<td bgcolor="#fbeef1">F</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#e6d8f0">S</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
 
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">K</td>
 
<td bgcolor="#c5c2fb">N</td>
 
 
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#faeef2">C</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_PHANO/400-429&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#f4eef9">W</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeefe">E</td>
 
 
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#fdeeee">V</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f4eef8">T</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
 
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
 
 
<td bgcolor="#c5c2fb">Q</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#ffadad">I</td>
 
<td bgcolor="#e5adc6">M</td>
 
<td bgcolor="#ffc2c2">I</td>
 
 
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#f9eef3">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBPA_SCLSC/294-313&nbsp;&nbsp;</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#d9c2e7">T</td>
 
 
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#ffadad">I</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">K</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#eeeeff">K</td>
 
 
 
<td bgcolor="#f9eef3">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBPA_PYRIS/363-392&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#f4eef9">W</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#eeeefe">E</td>
 
 
 
<td bgcolor="#fdeeee">V</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f4eef8">T</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">Q</td>
 
 
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#ffadad">I</td>
 
<td bgcolor="#e5adc6">M</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#e4adc7">A</td>
 
 
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#f9eef3">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_/361-390&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td>G</td>
 
<td>V</td>
 
<td>L</td>
 
<td bgcolor="#f4eef8">S</td>
 
 
 
<td bgcolor="#eeeefe">Q</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f7d8e0">F</td>
 
<td bgcolor="#f3d8e4">M</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">D</td>
 
 
 
<td bgcolor="#f4eef8">T</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
 
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#d8c2e8">S</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#f9eef3">A</td>
 
 
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_ASPFL/328-364&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#fdeeee">V</td>
 
 
 
<td>I</td>
 
<td>T</td>
 
<td>L</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f7d8e0">F</td>
 
<td bgcolor="#ffd8d8">I</td>
 
<td>S</td>
 
 
 
<td>E</td>
 
<td>I</td>
 
<td>V</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#eeeefe">Q</td>
 
 
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#b0adfa">N</td>
 
<td bgcolor="#f9c2c7">L</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#cfaddc">G</td>
 
 
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#f4eef8">S</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBPA_MAGOR/375-404&nbsp;&nbsp;</td>
 
<td>Q</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#eeeefe">D</td>
 
 
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#fbeef1">F</td>
 
<td bgcolor="#fdeeee">V</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#eeeefe">Q</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#f9eef3">A</td>
 
 
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#fbadaf">V</td>
 
 
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#f9c2c7">L</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#b0adfa">Q</td>
 
<td bgcolor="#c2c2ff">R</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#f4eef8">S</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBP1_CHAGL/361-390&nbsp;&nbsp;</td>
 
<td>S</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#cfaddc">G</td>
 
 
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#fbadaf">V</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#f9c2c7">L</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e5adc6">M</td>
 
 
 
<td bgcolor="#c2c2ff">R</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#f9eef3">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_PODAN/372-401&nbsp;&nbsp;</td>
 
<td>V</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#f2eefa">P</td>
 
 
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#fdeeee">V</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">Q</td>
 
 
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">E</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#b3adf7">H</td>
 
 
 
<td bgcolor="#f9c2c7">L</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#fcc2c4">V</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#f9eef3">A</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBP1_LACTH/458-487&nbsp;&nbsp;</td>
 
 
 
<td>F</td>
 
<td bgcolor="#f4eef8">S</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#f3eef9">Y</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#ffd8d8">I</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">Q</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
 
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#fbadaf">V</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#f9c2c7">L</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#b0adfa">Q</td>
 
<td bgcolor="#c5c2fb">N</td>
 
 
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">D</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_FILNE/433-460&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f3eef9">Y</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeefe">Q</td>
 
 
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fdd8da">V</td>
 
 
 
<td bgcolor="#ffd8d8">I</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#fbeef1">F</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
 
 
<td bgcolor="#c5c2fb">E</td>
 
<td bgcolor="#eeeefe">E</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">E</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#ccaddf">T</td>
 
<td bgcolor="#ffc2c2">I</td>
 
 
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#f4eef8">S</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_KLULA/477-506&nbsp;&nbsp;</td>
 
<td>F</td>
 
 
 
<td bgcolor="#f4eef8">T</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#f3eef9">Y</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#fdeeee">V</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#ffd8d8">I</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#d8c2e8">S</td>
 
 
 
<td bgcolor="#d3c2ee">P</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#d5c2ec">Y</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#ccaddf">T</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#eeeeff">K</td>
 
 
 
<td bgcolor="#eeeefe">D</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_SCHST/468-501&nbsp;&nbsp;</td>
 
<td>A</td>
 
<td bgcolor="#eeeeff">K</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#eeeefe">N</td>
 
 
 
<td bgcolor="#eeeeff">K</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeeff">K</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#ffd8d8">I</td>
 
 
 
<td>A</td>
 
<td>K</td>
 
<td>F</td>
 
<td>I</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#d8c2e8">S</td>
 
 
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
<td bgcolor="#edadbd">F</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#eaadc0">C</td>
 
 
 
<td bgcolor="#caade0">S</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td bgcolor="#eeeefe">N</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_SACCE/496-525&nbsp;&nbsp;</td>
 
<td>F</td>
 
<td bgcolor="#f4eef8">S</td>
 
 
 
<td bgcolor="#f2eefa">P</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#f3eef9">Y</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#eeeefe">E</td>
 
 
 
<td bgcolor="#fdeeef">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
 
 
<td bgcolor="#f4eef8">T</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c2c2ff">K</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#ebc2d5">A</td>
 
 
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#caade0">S</td>
 
<td bgcolor="#adadff">K</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">D</td>
 
 
 
</tr>
 
<tr><td nowrap="nowrap">CD00204/1-19&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c5c2fb">E</td>
 
<td bgcolor="#eeeefe">D</td>
 
 
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#d8d8ff">R</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#d3c2ee">P</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#f9c2c7">L</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
 
 
<td bgcolor="#caade0">S</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#efeefd">H</td>
 
</tr>
 
<tr><td nowrap="nowrap">CD00204/99-118&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fdd8da">V</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#f9eef3">A</td>
 
 
 
<td bgcolor="#eeeeff">R</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#c2c2ff">K</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#cfaddc">G</td>
 
<td bgcolor="#d8d8ff">R</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#d3c2ee">P</td>
 
<td bgcolor="#f7adb3">L</td>
 
 
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#f9c2c7">L</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">K</td>
 
<td bgcolor="#c5c2fb">N</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#efeefd">H</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">1SW6/203-232&nbsp;&nbsp;</td>
 
<td>L</td>
 
<td bgcolor="#eeeefe">D</td>
 
<td bgcolor="#fdeeef">L</td>
 
<td bgcolor="#eeeeff">K</td>
 
<td bgcolor="#f4eef9">W</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td bgcolor="#ffeeee">I</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f3d8e4">M</td>
 
<td bgcolor="#fbd8db">L</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dad8fd">N</td>
 
<td bgcolor="#f9eef3">A</td>
 
<td bgcolor="#eeeefe">Q</td>
 
<td bgcolor="#c5c2fb">D</td>
 
<td bgcolor="#d8c2e8">S</td>
 
<td bgcolor="#eeeefe">N</td>
 
<td bgcolor="#cfaddc">G</td>
 
 
 
<td bgcolor="#dad8fd">D</td>
 
<td bgcolor="#d9c2e7">T</td>
 
<td bgcolor="#efc2d0">C</td>
 
<td bgcolor="#f7adb3">L</td>
 
<td bgcolor="#b0adfa">N</td>
 
<td bgcolor="#ffc2c2">I</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#e4adc7">A</td>
 
<td bgcolor="#adadff">R</td>
 
 
 
<td bgcolor="#f9c2c7">L</td>
 
<td bgcolor="#f4eef7">G</td>
 
<td bgcolor="#eeeefe">N</td>
 
</tr>
 
<tr><td nowrap="nowrap">SecStruc/203-232&nbsp;&nbsp;</td>
 
<td>t</td>
 
<td bgcolor="#f5eef6">_</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#efeefd">H</td>
 
 
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#efeefd">H</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#efeefd">H</td>
 
<td bgcolor="#efeefd">H</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#ead8ed">_</td>
 
<td bgcolor="#ead8ed">_</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#ead8ed">_</td>
 
<td bgcolor="#f5eef6">_</td>
 
<td bgcolor="#f5eef6">_</td>
 
 
 
<td bgcolor="#dec2e3">_</td>
 
<td bgcolor="#d9c2e7">t</td>
 
<td bgcolor="#f5eef6">_</td>
 
<td bgcolor="#d2add8">_</td>
 
<td bgcolor="#ead8ed">_</td>
 
<td bgcolor="#dec2e3">_</td>
 
<td bgcolor="#c7c2f9">H</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#b3adf7">H</td>
 
 
 
<td bgcolor="#c7c2f9">H</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#b3adf7">H</td>
 
<td bgcolor="#c7c2f9">H</td>
 
<td bgcolor="#f5eef6">_</td>
 
<td bgcolor="#f5eef6">_</td>
 
</tr>
 
</table>
 
</td></tr>
 
 
 
</table>
 
;Aligned sequences before editing. The algorithm has placed gaps into the Swi6 helix <code>LKWIIAN</code> and the four-residue gaps before the block of well aligned sequence on the right are poorly supported.
 
 
 
 
 
<table border="1"><tr><td>
 
<table border="0" cellpadding="0" cellspacing="0">
 
 
 
<tr><td colspan="6"></td>
 
<td colspan="9">10<br>|</td><td></td>
 
<td colspan="9">20<br>|</td><td></td>
 
 
 
<td colspan="9">30<br>|</td><td></td>
 
<td colspan="3"></td><td colspan="3">40<br>|</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_USTMA/341-368&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dfd2f0">Y</td>
 
<td bgcolor="#e4d2ec">G</td>
 
 
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#ffbfbf">I</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#f5d2db">F</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#d4d2fc">E</td>
 
 
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">E</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#c2abe8">P</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#bf99d7">T</td>
 
<td bgcolor="#e5abc5">M</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
 
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#e2d2ee">S</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1B_SCHCO/470-498&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#d4d2fc">E</td>
 
 
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#dfd2f0">Y</td>
 
<td bgcolor="#d2d2ff">K</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f2bfcc">F</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">E</td>
 
 
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#9d99f9">N</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#dd99b9">A</td>
 
 
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#fcabae">V</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d4d2fc">N</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_ASHGO/465-494&nbsp;&nbsp;</td>
 
<td>F</td>
 
<td bgcolor="#e2d2ee">S</td>
 
 
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#dfd2f0">Y</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#e2d2ed">T</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#ffbfbf">I</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
 
 
<td bgcolor="#eaabbf">C</td>
 
<td bgcolor="#d2d2ff">K</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#d6bfe7">S</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#c2abe8">P</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#ffabab">I</td>
 
 
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#df99b8">M</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#d4d2fc">D</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_CLALU/550-586&nbsp;&nbsp;</td>
 
<td>G</td>
 
 
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td>K</td>
 
 
 
<td>K</td>
 
<td>E</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>L</td>
 
<td>I</td>
 
<td>S</td>
 
<td>K</td>
 
<td bgcolor="#f2bfcc">F</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
 
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#e999ad">F</td>
 
<td bgcolor="#a199f6">H</td>
 
 
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#b899df">Y</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#f0d2df">M</td>
 
<td bgcolor="#e2d2ee">S</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBPA_COPCI/514-542&nbsp;&nbsp;</td>
 
 
 
<td>-</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#f5d2db">F</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#e2d2ee">S</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#fcbfc1">V</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#fbd2d5">L</td>
 
 
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">E</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#ff9999">I</td>
 
 
 
<td bgcolor="#9d99f9">N</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#fcabae">V</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d4d2fc">N</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBP1_DEBHA/507-550&nbsp;&nbsp;</td>
 
<td>I</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#d4d2fc">E</td>
 
 
 
<td bgcolor="#d4d2fc">N</td>
 
<td>K</td>
 
<td>K</td>
 
<td>L</td>
 
<td>S</td>
 
<td>L</td>
 
<td>S</td>
 
<td>D</td>
 
<td>K</td>
 
 
 
<td>K</td>
 
<td>E</td>
 
<td>L</td>
 
<td>I</td>
 
<td>A</td>
 
<td>K</td>
 
<td bgcolor="#f2bfcc">F</td>
 
<td bgcolor="#ffbfbf">I</td>
 
<td bgcolor="#c2bffc">N</td>
 
 
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
 
 
<td bgcolor="#e999ad">F</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#fb999c">V</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#b899df">Y</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#d4d2fc">N</td>
 
 
 
</tr>
 
<tr><td nowrap="nowrap">MBP1A_SCHCO/388-415&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dfd2f0">Y</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d2d2ff">K</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#fbd2d5">L</td>
 
 
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fcbfc1">V</td>
 
<td bgcolor="#f9bfc4">L</td>
 
 
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#f5d2db">F</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">E</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">E</td>
 
<td bgcolor="#cbabdf">T</td>
 
 
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#bf99d7">T</td>
 
<td bgcolor="#e5abc5">M</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#eaabbf">C</td>
 
<td bgcolor="#d2d2ff">R</td>
 
 
 
<td bgcolor="#e2d2ee">S</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBP1_AJECA/374-403&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
 
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#f0d2df">M</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
 
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#d6bfe7">S</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#caabe0">S</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
 
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">K</td>
 
<td bgcolor="#afabfa">N</td>
 
 
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#f4d2dc">C</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_PARBR/380-409&nbsp;&nbsp;</td>
 
<td>I</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d5d2fb">H</td>
 
 
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#d6bfe7">S</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#caabe0">S</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
 
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">K</td>
 
 
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#f4d2dc">C</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_NEOFI/363-392&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#f4d2dc">C</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
 
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#d6bfe7">S</td>
 
<td bgcolor="#f4d2dc">C</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#caabe0">S</td>
 
<td bgcolor="#d4d2fc">N</td>
 
 
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#fcabae">V</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
 
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#f0d2e0">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_ASPNI/365-394&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#f5d2db">F</td>
 
<td bgcolor="#e2d2ee">S</td>
 
 
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#fcd2d3">V</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#d6bfe7">S</td>
 
<td bgcolor="#f4d2dc">C</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#caabe0">S</td>
 
 
 
<td bgcolor="#fcd2d3">V</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#fb999c">V</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#fcabae">V</td>
 
<td bgcolor="#dd99b9">A</td>
 
 
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#fcd2d3">V</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_UNCRE/377-406&nbsp;&nbsp;</td>
 
<td>M</td>
 
<td bgcolor="#dfd2f0">Y</td>
 
 
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#fcd2d3">V</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#eabfd3">A</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
 
 
<td bgcolor="#caabe0">S</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#cbabdf">T</td>
 
 
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">K</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#f4d2dc">C</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_PENCH/439-468&nbsp;&nbsp;</td>
 
<td>T</td>
 
 
 
<td bgcolor="#f4d2dc">C</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#f0d2df">M</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#d6bfe7">S</td>
 
<td bgcolor="#f4d2dc">C</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
 
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">Q</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#fb999c">V</td>
 
<td bgcolor="#f699a1">L</td>
 
 
 
<td bgcolor="#fcabae">V</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#f0d2e0">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBPA_TRIVE/407-436&nbsp;&nbsp;</td>
 
 
 
<td>V</td>
 
<td bgcolor="#f5d2db">F</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#fbd2d5">L</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#d6bfe7">S</td>
 
<td bgcolor="#e2d2ee">S</td>
 
 
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
 
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">K</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#f4d2dc">C</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBP1_PHANO/400-429&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#e2d2ef">W</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#fcd2d3">V</td>
 
<td bgcolor="#e2d2ed">T</td>
 
 
 
<td bgcolor="#d2d2ff">R</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">N</td>
 
 
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">Q</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
 
 
<td bgcolor="#ff9999">I</td>
 
<td bgcolor="#df99b8">M</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#f0d2e0">A</td>
 
 
 
</tr>
 
<tr><td nowrap="nowrap">MBPA_SCLSC/294-313&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
 
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#cbabdf">T</td>
 
 
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#ff9999">I</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">K</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#d2d2ff">K</td>
 
 
 
<td bgcolor="#f0d2e0">A</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBPA_PYRIS/363-392&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#e2d2ef">W</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#d4d2fc">E</td>
 
 
 
<td bgcolor="#fcd2d3">V</td>
 
<td bgcolor="#e2d2ed">T</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
 
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">Q</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
 
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#ff9999">I</td>
 
<td bgcolor="#df99b8">M</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#afabfa">N</td>
 
 
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#f0d2e0">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_/361-390&nbsp;&nbsp;</td>
 
<td>N</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#e4d2ec">G</td>
 
 
 
<td bgcolor="#fcd2d3">V</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#f2bfcc">F</td>
 
<td bgcolor="#ebbfd3">M</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#e2d2ed">T</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#c399d4">G</td>
 
 
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
 
 
<td bgcolor="#caabe0">S</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#f0d2e0">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_ASPFL/328-364&nbsp;&nbsp;</td>
 
<td>T</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#ded2f2">P</td>
 
 
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#fcd2d3">V</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#e2d2ed">T</td>
 
<td>L</td>
 
<td>G</td>
 
<td>R</td>
 
<td>F</td>
 
 
 
<td>I</td>
 
<td>S</td>
 
<td>E</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td bgcolor="#ffbfbf">I</td>
 
<td bgcolor="#fcbfc1">V</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
 
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#9d99f9">N</td>
 
<td bgcolor="#f7abb2">L</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#c399d4">G</td>
 
 
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#e2d2ee">S</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBPA_MAGOR/375-404&nbsp;&nbsp;</td>
 
<td>Q</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d4d2fc">D</td>
 
 
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#f5d2db">F</td>
 
<td bgcolor="#fcd2d3">V</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">N</td>
 
 
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#fb999c">V</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#f7abb2">L</td>
 
<td bgcolor="#dd99b9">A</td>
 
 
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9d99f9">Q</td>
 
<td bgcolor="#ababff">R</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#e2d2ee">S</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_CHAGL/361-390&nbsp;&nbsp;</td>
 
<td>S</td>
 
<td bgcolor="#d2d2ff">R</td>
 
 
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
 
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#fb999c">V</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#f7abb2">L</td>
 
 
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#df99b8">M</td>
 
<td bgcolor="#ababff">R</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#f0d2e0">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_PODAN/372-401&nbsp;&nbsp;</td>
 
<td>V</td>
 
 
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#fcd2d3">V</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
 
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">E</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#a199f6">H</td>
 
 
 
<td bgcolor="#f7abb2">L</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#fcabae">V</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#f0d2e0">A</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_LACTH/458-487&nbsp;&nbsp;</td>
 
 
 
<td>F</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#dfd2f0">Y</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#d4d2fc">N</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#ffbfbf">I</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#f0d2e0">A</td>
 
 
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">Q</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#fb999c">V</td>
 
 
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#f7abb2">L</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9d99f9">Q</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d4d2fc">D</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBP1_FILNE/433-460&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dfd2f0">Y</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#f0d2e0">A</td>
 
 
 
<td bgcolor="#d4d2fc">D</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fcbfc1">V</td>
 
<td bgcolor="#ffbfbf">I</td>
 
<td bgcolor="#c2bffc">N</td>
 
 
 
<td bgcolor="#f5d2db">F</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">E</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">E</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
 
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#bf99d7">T</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#e2d2ee">S</td>
 
 
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_KLULA/477-506&nbsp;&nbsp;</td>
 
<td>F</td>
 
<td bgcolor="#e2d2ed">T</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#dfd2f0">Y</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#ffd2d2">I</td>
 
 
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#fcd2d3">V</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#ffbfbf">I</td>
 
 
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#caabe0">S</td>
 
 
 
<td bgcolor="#c2abe8">P</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#c5abe5">Y</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#bf99d7">T</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#d2d2ff">K</td>
 
 
 
<td bgcolor="#d4d2fc">D</td>
 
</tr>
 
 
 
<tr><td nowrap="nowrap">MBP1_SCHST/468-501&nbsp;&nbsp;</td>
 
<td>A</td>
 
<td bgcolor="#d2d2ff">K</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#d4d2fc">N</td>
 
 
 
<td bgcolor="#d2d2ff">K</td>
 
<td bgcolor="#d2d2ff">K</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>L</td>
 
<td>I</td>
 
<td>A</td>
 
<td>K</td>
 
<td bgcolor="#f2bfcc">F</td>
 
 
 
<td bgcolor="#ffbfbf">I</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#caabe0">S</td>
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">N</td>
 
 
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#e999ad">F</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#e699b1">C</td>
 
<td bgcolor="#be99d9">S</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#afabfa">N</td>
 
 
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#d4d2fc">N</td>
 
</tr>
 
<tr><td nowrap="nowrap">MBP1_SACCE/496-525&nbsp;&nbsp;</td>
 
<td>F</td>
 
<td bgcolor="#e2d2ee">S</td>
 
<td bgcolor="#ded2f2">P</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#dfd2f0">Y</td>
 
 
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#d4d2fc">E</td>
 
<td bgcolor="#fbd2d5">L</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#e2d2ed">T</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#ababff">K</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
 
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#e3abc6">A</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#ffabab">I</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#be99d9">S</td>
 
<td bgcolor="#9999ff">K</td>
 
 
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d4d2fc">D</td>
 
</tr>
 
<tr><td nowrap="nowrap">CD00204/1-19&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#afabfa">E</td>
 
<td bgcolor="#d4d2fc">D</td>
 
 
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#bfbfff">R</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#c2abe8">P</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#f7abb2">L</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
 
 
<td bgcolor="#be99d9">S</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d5d2fb">H</td>
 
</tr>
 
<tr><td nowrap="nowrap">CD00204/99-118&nbsp;&nbsp;</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#fcbfc1">V</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d2d2ff">R</td>
 
<td bgcolor="#afabfa">D</td>
 
<td bgcolor="#ababff">K</td>
 
 
 
<td bgcolor="#d4d2fc">D</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#bfbfff">R</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#c2abe8">P</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#f7abb2">L</td>
 
<td bgcolor="#dd99b9">A</td>
 
 
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">K</td>
 
<td bgcolor="#afabfa">N</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d5d2fb">H</td>
 
</tr>
 
<tr><td nowrap="nowrap">1SW6/203-232&nbsp;&nbsp;</td>
 
<td>L</td>
 
<td bgcolor="#d4d2fc">D</td>
 
 
 
<td bgcolor="#fbd2d5">L</td>
 
<td bgcolor="#d2d2ff">K</td>
 
<td bgcolor="#e2d2ef">W</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#ffd2d2">I</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#ebbfd3">M</td>
 
<td bgcolor="#f9bfc4">L</td>
 
<td bgcolor="#c2bffc">N</td>
 
<td bgcolor="#f0d2e0">A</td>
 
<td bgcolor="#d4d2fc">Q</td>
 
<td bgcolor="#afabfa">D</td>
 
 
 
<td bgcolor="#caabe0">S</td>
 
<td bgcolor="#d4d2fc">N</td>
 
<td bgcolor="#c399d4">G</td>
 
<td bgcolor="#c2bffc">D</td>
 
<td bgcolor="#cbabdf">T</td>
 
<td bgcolor="#eaabbf">C</td>
 
<td bgcolor="#f699a1">L</td>
 
<td bgcolor="#9d99f9">N</td>
 
<td bgcolor="#ffabab">I</td>
 
 
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#dd99b9">A</td>
 
<td bgcolor="#9999ff">R</td>
 
<td bgcolor="#f7abb2">L</td>
 
<td bgcolor="#e4d2ec">G</td>
 
<td bgcolor="#d4d2fc">N</td>
 
</tr>
 
<tr><td nowrap="nowrap">SecStruc/203-232&nbsp;&nbsp;</td>
 
<td>t</td>
 
 
 
<td bgcolor="#e6d2e9">_</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td bgcolor="#d5d2fb">H</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
 
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td>-</td>
 
<td bgcolor="#dcbfe1">_</td>
 
<td bgcolor="#dcbfe1">_</td>
 
<td bgcolor="#dcbfe1">_</td>
 
<td bgcolor="#e6d2e9">_</td>
 
<td bgcolor="#e6d2e9">_</td>
 
 
 
<td bgcolor="#d2abd8">_</td>
 
<td bgcolor="#cbabdf">t</td>
 
<td bgcolor="#e6d2e9">_</td>
 
<td bgcolor="#c799cf">_</td>
 
<td bgcolor="#dcbfe1">_</td>
 
<td bgcolor="#d2abd8">_</td>
 
<td bgcolor="#b2abf7">H</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#a199f6">H</td>
 
 
 
<td bgcolor="#b2abf7">H</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#a199f6">H</td>
 
<td bgcolor="#b2abf7">H</td>
 
<td bgcolor="#e6d2e9">_</td>
 
<td bgcolor="#e6d2e9">_</td>
 
</tr>
 
</table>
 
</td></tr>
 
 
 
</table>
 
;Aligned sequence after editing. A significant cleanup of the frayed region is possible. Now there is only one insertion event, and it is placed into the loop that connects two helices of the 1SW6 structure.
 
 
 
 
 
===Final analysis===
 
 
 
 
 
{{task|1=
 
* Compare the distribution of indels in the ankyrin repeat regions of your alignments.
 
**'''Review''' whether the indels in this region are concentrated in segments that connect the helices, or if they are more or less evenly distributed along the entire region of similarity.
 
**Think about whether the assertion that ''indels should not be placed in elements of secondary structure'' has merit in your alignment.
 
**Recognize that an indel in an element of secondary structure could be interpreted in a number of different ways:
 
*** The alignment is correct, the annotation is correct too: the indel is tolerated in that particular case, for example by extending the length of an &alpha;-helix or &beta;-strand;
 
*** The alignment algorithm has made an error, the structural annotation is correct: the indel should be moved a few residues;
 
*** The alignment is correct, the structural annotation is wrong, this is not a secondary structure element after all;
 
*** Both the algorithm and the annotation are probably wrong, but we have no data to improve the situation.
 
 
 
(<small>NB: remember that the structural annotations have been made for the yeast protein and might have turned out differently for the other proteins...</small>)
 
 
 
You should be able to analyse discrepancies between annotation and expectation in a structured and systematic way. In particular if you notice indels that have been placed into an '''annotated''' region of secondary structure, you should be able to comment on whether the location of the indel has strong support from aligned sequence motifs, or whether the indel could possibly be moved into a different location without much loss in alignment quality.
 
 
 
*Considering the whole alignment and your experience with editing, you should be able to state whether the position of indels relative to structural features of the ankyrin domains in your organism's Mbp1 protein is reliable. That would be the result of this task, in which you combine multiple sequence and structural information.
 
 
 
*You can also critically evaluate database information that you have encountered:
 
# Navigate to the [http://www.ncbi.nlm.nih.gov/Structure/cdd/wrpsb.cgi?INPUT_TYPE=precalc&SEQUENCE=6320147 '''CDD annotation'''] for yeast Mbp1.
 
# You can check the precise alignment boundaries of the ankyrin domains by clicking on the (+) icon to the left of the matching domain definition.
 
# Confirm that CDD extends the ankyrin domain annotation beyond the 1SW6 domain boundaries. Given your assessment of conservation in the region beyond the structural annotation:  do you think that extending the annotation is reasonable also in YFO's protein? Is there evidence for this in the alignment of the CD00204 consensus with well aligned blocks of sequence beyond the positions that match Swi6?
 
}}
 
 
 
==R code: load alignment and compute information scores==
 
<!-- Add sequence weighting and sampling bias correction ? -->
 
 
 
As discussed in the lecture, Shannon information is calculated as the difference between expected and observed entropy, where entropy is the negative sum over probabilities times the log of those probabilities:
 
 
 
 
 
 
 
 
 
 
 
Here we compute Shannon information scores for aligned positions of the APSES domain, and plot the values in '''R'''. You can try this with any part of your alignment, but I have used only the aligned residues for the APSES domain for my example. This is a good choice for a first try, since there are (almost) no gaps.
 
  
 
{{task|1=
 
{{task|1=
# Export only the sequences of the aligned APSES domains to a file on your computer, in FASTA format as explained below. You could call this: <code>Mbp1_All_APSES.fa</code>.
+
#Navigate to the [http://www.jalview.org/ Jalview homepage] click on the '''Download''' link, and install Jalview on your computer. For Mac OS X, use the '''Install Jalview Only''' link.
##Use your mouse and clik and drag to ''select'' the aligned APSES domains in the alignment window.
+
# Start Jalview. A number of windows that showcase the program's abilities will load, you can close these.
##Copy your selection to the clipboard.
+
#Select File &rarr; Input Alignment &rarr; from File and open the <code>APSES_proteins.mfa</code> file you have prepared above. An alignment window with sequences should appear.
##Use the main menu (not the menu of your alignment window) and select '''File &rarr; Input alignment &rarr; from Textbox'''; paste the selection into the textbox and click '''New Window'''.
+
# Choose '''Web Service''' &rarr; '''Alignment''' &rarr; '''Tcoffee with Defaults''' to run a Tcoffee MSA remotely at the Barton lab. The program should execute remotely and download the aligned results into a new window. Scroll along the window to get a sense of what has and hasn't been aligned.
##Use '''File &rarr; save as''' to save the aligned siequences in multi-FASTA format under the filename you want in your '''R''' project directory.
+
#Select File &rarr; Input Alignment &rarr; from File and open the <code>APSES_proteins_muscle.mfa</code> file you have prepared above. An alignment window with your Muscle alignment should appear.
 
+
#Compare the two alignments and get a sense for how similar or different they are.
# Explore the R-code below. Be sure that you understand it correctly. Note that this code does not implement any sampling bias correction, so positions with large numbers of gaps will receive artificially high scores (the alignment looks like the gap charecter were a conserved character).
 
 
 
 
 
<source lang="rsplus">
 
 
 
# CalculateInformation.R
 
# Calculate Shannon information for positions in a multiple sequence alignment.
 
# Requires: an MSA in multi FASTA format
 
 
# It is good practice to set variables you might want to change
 
# in a header block so you don't need to hunt all over the code
 
# for strings you need to update.
 
#
 
setwd("/your/R/working/directory")
 
mfa      <- "MBP1_All_APSES.fa"
 
 
# ================================================
 
#    Read sequence alignment fasta file
 
# ================================================
 
 
# read MFA datafile using seqinr function read.fasta()
 
library(seqinr)
 
tmp  <- read.alignment(mfa, format="fasta")
 
MSA  <- as.matrix(tmp)  # convert the list into a characterwise matrix
 
                        # with appropriate row and column names using
 
                        # the seqinr function as.matrix.alignment()
 
                        # You could have a look under the hood of this
 
                        # function to understand beter how to convert a
 
                        # list into something else ... simply type
 
                        # "as.matrix.alignment" - without the parentheses
 
                        # to retrieve the function source code (as for any
 
                        # function btw).
 
 
 
### Explore contents of and access to the matrix of sequences
 
MSA
 
MSA[1,]
 
MSA[,1]
 
length(MSA[,1])
 
 
 
 
 
# ================================================
 
#    define function to calculate entropy
 
# ================================================
 
 
 
entropy <- function(v) { # calculate shannon entropy for the aa vector v
 
                    # Note: we are not correcting for small sample sizes
 
                    # here. Thus if there are a large number of gaps in
 
                    # the alignment, this will look like small entropy
 
                    # since only a few amino acids are present. In the  
 
                    # extreme case: if a position is only present in
 
                    # one sequence, that one amino acid will be treated
 
                    # as 100% conserved - zero entropy. Sampling error
 
                    # corrections are discussed eg. in Schneider et al.
 
                    # (1986) JMB 188:414
 
l <- length(v)
 
a <- rep(0, 21)      # initialize a vector with 21 elements (20 aa plus gap)
 
                    # the set the name of each row to the one letter
 
                    # code. Through this, we can access a row by its
 
                    # one letter code.
 
names(a)  <- unlist(strsplit("acdefghiklmnpqrstvwy-", ""))
 
 
for (i in 1:l) {      # for the whole vector of amino acids
 
c <- v[i]          # retrieve the character
 
a[c] <- a[c] + 1  # increment its count by one
 
} # note: we could also have used the table() function for this
 
 
tot <- sum(a) - a["-"] # calculate number of observed amino acids
 
                      # i.e. subtract gaps
 
a <- a/tot            # frequency is observations of one amino acid
 
                      # divided by all observations. We assume that
 
                      # frequency equals probability.
 
a["-"] <- 0                             
 
for (i in 1:length(a)) {
 
if (a[i] != 0) { # if a[i] is not zero, otherwise leave as is.
 
            # By definition, 0*log(0) = 0  but R calculates
 
            # this in parts and returns NaN for log(0).
 
a[i] <- a[i] * (log(a[i])/log(2)) # replace a[i] with
 
                                  # p(i) log_2(p(i))
 
}
 
}
 
return(-sum(a)) # return Shannon entropy
 
}
 
 
 
# ================================================
 
#    calculate entropy for reference distribution
 
#    (from UniProt, c.f. Assignment 2)
 
# ================================================
 
 
 
refData <- c(
 
    "A"=8.26,
 
    "Q"=3.93,
 
    "L"=9.66,
 
    "S"=6.56,
 
    "R"=5.53,
 
    "E"=6.75,
 
    "K"=5.84,
 
    "T"=5.34,
 
    "N"=4.06,
 
    "G"=7.08,
 
    "M"=2.42,
 
    "W"=1.08,
 
    "D"=5.45,
 
    "H"=2.27,
 
    "F"=3.86,
 
    "Y"=2.92,
 
    "C"=1.37,
 
    "I"=5.96,
 
    "P"=4.70,
 
    "V"=6.87
 
    )
 
 
 
### Calculate the entropy of this distribution
 
 
 
H.ref <- 0
 
for (i in 1:length(refData)) {
 
p <- refData[i]/sum(refData) # convert % to probabilities
 
    H.ref <- H.ref - (p * (log(p)/log(2)))
 
}
 
 
 
# ================================================
 
#    calculate information for each position of
 
#    multiple sequence alignment
 
# ================================================
 
 
 
lAli <- dim(MSA)[2] # length of row in matrix is second element of dim(<matrix>).
 
I <- rep(0, lAli)  # initialize result vector
 
for (i in 1:lAli) {
 
I[i] = H.ref - entropy(MSA[,i])  # I = H_ref - H_obs
 
}
 
 
 
### evaluate I
 
I
 
quantile(I)
 
hist(I)
 
plot(I)
 
 
 
# you can see that we have quite a large number of columns with the same,
 
# high value ... what are these?
 
 
 
which(I > 4)
 
MSA[,which(I > 4)]
 
 
 
# And what is in the columns with low values?
 
MSA[,which(I < 1.5)]
 
 
 
 
 
# ===================================================
 
#    plot the information
 
#    (c.f. Assignment 5, see there for explanations)
 
# ===================================================
 
 
 
IP <- (I-min(I))/(max(I) - min(I) + 0.0001)
 
nCol <- 15
 
IP <- floor(IP * nCol) + 1
 
spect <- colorRampPalette(c("#DD0033", "#00BB66", "#3300DD"), bias=0.6)(nCol)
 
# lets set the information scores from single informations to grey. We 
 
# change the highest level of the spectrum to grey.
 
#spect[nCol] <- "#CCCCCC"
 
Icol <- vector()
 
for (i in 1:length(I)) {
 
Icol[i] <- spect[ IP[i] ]
 
}
 
 
plot(1,1, xlim=c(0, lAli), ylim=c(-0.5, 5) ,
 
    type="n", bty="n", xlab="position in alignment", ylab="Information (bits)")
 
 
 
# plot as rectangles: height is information and color is coded to information
 
for (i in 1:lAli) {
 
  rect(i, 0, i+1, I[i], border=NA, col=Icol[i])
 
}
 
 
 
# As you can see, some of the columns reach very high values, but they are not
 
# contiguous in sequence. Are they contiguous in structure? We will find out in
 
# a later assignment, when we map computed values to structure.
 
  
</source>
 
 
}}
 
}}
 
 
[[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.]]
 
 
  
  
 
&nbsp;
 
&nbsp;
 +
-->
  
 
;That is all.
 
;That is all.
  
  
&nbsp;
+
{{Vspace}}
  
 
== Links and resources ==
 
== Links and resources ==
  
 +
{{Vspace}}
 +
 +
*{{#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]]
  
 
<!-- {{#pmid: 19957275}} -->
 
<!-- {{#pmid: 19957275}} -->

Latest revision as of 16:46, 7 August 2017

Assignment for Week 4
Sequence alignment

< Assignment 3 Assignment 5 >

Note! This assignment is currently inactive. Major and minor unannounced changes may be made at any time.

 
 

Concepts and activities (and reading, if applicable) for this assignment will be topics on next week's quiz.



 

 

Take care of things, and they will take care of you.
Shunryu Suzuki


 

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.

In this assignment 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; and
  • Multiple sequence alignments.


As usual, the focus will be on practical, hands on approaches.

This is the scenario: you have previously identified a best match for a Mbp1 relative in YFO. Is this the most closely related protein? Is its DNA binding domain conserved? How can we identify all related genes in YFO? And, what can we learn from that collection of sequences?


 

Preparation: Updated Database Functions

 

The database contents and tables will change over time in this course. This means we need a mechanism to update the database, without throwing away previous work.

Task:

  • Open the BCH441 project scripts in RStudio by selecting FileRecent ProjectsBCH441_216
  • Load the newest versions of scripts and data by pulling from the master file on GitHub.
  • Study the code in the Database maintenance section of the BCH441_A04.R script


 

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[3].


 

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 and make sure you understand what this table is, 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.
  • If you've been away from it for a while, it's probably a good idea to update to the newest versions of scripts and data by pulling from the master file on GitHub.
  • Study and work through the code in the Dotplot and MDM section of the BCH441_A04.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 and its YFO relative. For simplicity, I will call the two proteins MBP1_SACCE and MBP1_YFO through the remainder of the assignment. 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:

  1. Fetch the sequences for MBP1_SACCE and MBP1_YFO from your database. You can simply select them by name (if you have given your sequence the suggested name when you eneterd it into your database): paste the following into the console:
  • to print the MBP1_SACCE protein sequence to the console
myDB$protein$sequence[myDB$protein$name == "MBP1_SACCE"]
  • to print the MBP1_YFO protein sequence to the console:
YFOseq <- paste("MBP1_", biCode(YFO), sep="")  
myDB$protein$sequence[myDB$protein$name == YFOseq]

(If this didn't work, fix it. Did you give your sequence the right name?)

  1. Access the EMBOSS Explorer site (if you haven't done so yet, you might want to bookmark it.)
  2. Look for ALIGNMENT LOCAL, click on water, paste your sequences and run the program with default parameters.
  3. Study the results. You will probably find that the alignment extends over most of the protein, but does not include the termini.
  4. Considering the sequence identity cutoff we discussed in class (25% over the length of a domain), do you believe that the N-terminal domains (the APSES domains) are homologous?
  5. Change the Gap opening and Gap extension parameters to high values (e.g. 30 and 5). Then run the alignment again.
  6. Note what is different.


Global optimal sequence alignment using "needle"

Task:

  1. Look for ALIGNMENT GLOBAL, click on needle, paste the MBP1_SACCE and MBP1_YFO sequences again and run the program with default parameters.
  2. 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.
  • Once again, if you've been away from it for a while, it's always a good idea to update to pull updtaes from the master file on GitHub.
  • Study and work through the code in the Biostrings Pairwise Alignment section of the BCH441_A04.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 in Assignment 3 even before properly introducing the algorithm and the principles, to find the most similar sequence to MBP1_SACCE in YFO.

In this part of the assignment 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 YFO 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 YFO for full-length Mbp1_SACCE and its DNA-binding domain, and see if the results are the same.


A hypothetical phylogenetic gene tree. "S" is a speciation in the tree, "D" is a duplication within a species. The duplicated gene (teal triangle) evolves towards a different function and thus acquires more mutations than its paralogue (teal circle). If an RBM search start from the blue triangle, it finds the red circle. However the reciprocal match finds the teal circle. The red and teal circles fulfill the RBM criterion.


 

Full-length RBM

 

You have already performed the first half of the experiment: matching from S. cerevisiae to YFO. The backward match is simple.

Task:

  1. Access BLAST and follow the link to the protein blast program.
  2. Enter the RefSeq ID for MBP1_YFO in the Query sequence field.
  3. Select refseq_protein as the database to search in, and enter Saccharomyces cerevisiae (taxid:4932) to restrict the organism for which hits are reported.
  4. Run BLAST. Examine the results.

If your top-hit is NP_010227, you have confirmed the RBM between Mbp1_SACCE and Mbp1_YFO. 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[7].


 

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 YFO 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:

  1. Access BLAST and follow the link to the protein blast program.
  2. Forward search:
    1. Paste only the APSES domain sequence for MBP1_SACCE in the Query sequence field (copy the sequence from above).
    2. Select refseq_protein as the database to search in, and enter the correct taxonomy ID for YFO in the Organism field.
    3. Run BLAST. Examine the results.
    4. If the top hit is the same protein you have already seen, oK. If it's not add it to your protein database in RStudio.

With this we have confirmed the sequence with the most highly conserved APSES domain in YFO. 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 sequnece 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 YFO 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 APSES Domain annotation by alignment section of the BCH441_A04.R script


 

Executing the reverse search

 

Task:

  1. Paste the the APSES domain sequence for the YFO best-match and enter it into Query sequence field of the BLAST form.
    1. Select refseq_protein as the database to search in, and enter Saccharomyces cerevisiae (taxid:4932) to restrict the organism for which hits are reported.
    2. Run BLAST. Examine the results.

If your top-hit is again NP_010227, you have confirmed the RBM between the APSES domain of Mbp1_SACCE and Mbp1_<YFO>. If it is not, let me know. There may be some organisms for which the full-length and APSES RBMs are different and I would like to discuss these cases.


 

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 YFO 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 YFO, PSI-BLAST has little chance of building a meaningful profile - the number of homologues that actually are in YFO 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

  1. that represent as large a range as possible on the evolutionary tree;
  2. that are as well distributed as possible on the tree; and
  3. 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[8] -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 you must also include YFO in the selection (if YFO is not in this list already).

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]



 

Executing the PSI-BLAST search

 


We have a list of species. Good. Next up: how do we use it.

Task:

  1. Navigate to the BLAST homepage.
  2. Select protein BLAST.
  3. Paste the MBP1_SACCE APSES domain sequence into the search field:
>APSES_MBP1 Residues 4-102 of S. cerevisiae Mbp1
QIYSARYSGVDVYEFIHSTGSIMKRKKDDWVNATHILKAANFAKAKRTRI
LEKEVLKETHEKVQGGFGKYQGTWVPLNIAKQLAEKFSVYDQLKPLFDF
  1. Select refseq as the database.
  2. Copy the Entrez restrictions from above and add the correct name for YFO to the list if it is not there already. (Obviously, you can't find sequences in YFO if YFO is not included among the genomes you are searching in.) Paste the list into the Entrez Query field.
  3. In the Algorithm section, select PSI-BLAST.
  4. 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, the 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 contaminate it.


Task:

  1. 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.)
  2. Click on the Reformat button (top right).
  3. In the table of sequence descriptions (not alignments!), click on Query cover to sort the table by coverage, not by score.
  4. Deselect the check mark next to these sequences in the second-to-rightmost column Select for PSI blast.
  5. 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:

  1. we are explicitly removing sequences with poor coverage; and
  2. we are requiring a more stringent minimum E-value for each sequence.


Task:

  1. 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.
  2. Let's exclude partial matches one more time. Again, deselect all sequences with less than 80% coverage. Then run the third iteration.
  3. 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.
  4. 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 YFO 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:

  1. In the header section of the BLAST report, click on Taxonomy reports and find YFO 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.
  2. From the report copy the sequence identifiers from YFO, 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:

  1. To add the sequences to your database, open each of the links to the RefSeq record for YFO organism into a separate tab.
  2. Find the UniProt IDs
  3. 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 YFO 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.

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:

  1. Access the SMART database at http://smart.embl-heidelberg.de/
  2. Click the lick to access SMART in the normal mode.
  3. Paste the YFO Mbp1 UniProtKB Accession number into the Sequence ID or ACC field. If you were not able to find a UniProt ID, paste the sequence instead.
  4. Check all the boxes for:
    1. outlier homologues (also including homologues in the PDB structure database)
    2. PFAM domains (domains defined by sequence similarity in the PFAM database)
    3. signal peptides (using the Gunnar von Heijne's SignalP 4.0 server at the Technical University in Lyngby, Denmark)
    4. internal repeats (using the programs ariadne and prospero at the Wellcome Trust Centre for Human Genetics at Oxford University, England)
  5. 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.

  1. Note down the following information so you can enter the annotation in the protein database for YFO:
    1. From the section on "Confidently predicted domains ..."
      1. The start and end coordinates of the KilA-N domain (...according to SMART, not Pfam, in case the two differ).
      2. All start and end coordinates of low complexity segments
      3. All start and end coordinates of ANK (Ankyrin) domains
      4. Start and end coordinates of coiled coil domain(s) I expect only one.
      5. Start and end coordinates of AT hook domain(s) I expect at most one - not all Mbp1 orthologues have one.
    2. From the section on "Features NOT shown ..."
      1. All start and end coordinates of low complexity segments for which the Reason is "overlap".
      2. Any start and end coordinates of overlapping coiled coil segments.
      3. I expect all other annotations - besides the overlapping KilA-N domain defined by Pfam - to arise from the succession of ankyrin domains that the proteins have, both Pfam_ANK.. domains, as well as internal repeats. However, if there are other features I have not mentioned here, feel encouraged to let me know.
    3. From the section on "Outlier homologues ..."
      1. 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.
      2. 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 will be BLAST annotations to Ankyrin domains. We will not annotate these separately either.
  2. Follow the links to the database entries for the information so you know what these domains and features are.

Next 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.


 

Visual comparison of domain annotations in R

The versatile plotting functions of R allow us to compare domain annotations. The distribution of segments that are annotated as "low-complexity, presumably disordered, is particularly interesting: these are functional features that are often not associated with sequence similarity but may have arisen from convergent evolution. Those would not be detectable through sequence alignment - which is after all based on amino acid pair scores and therefore context independent.

In the following code tutorial, we create a plot similar to the CDD and SMART displays. It is based on the SMART domain annotations of the six-fungal reference species for the course.


Task:

  • Return to your RStudio session.
  • Make sure you have saved myDB as instructed previously. Then quit the program, restart, and re-open the project via the FileRecent projects ... menu. This is to clear out-of-date assignments and functions from the workspace.
  • Do not type init() yet, but pull the most recent version of files from github. Then type init().
  • Study and work through the code in the SMART domain annotations section of the BCH441_A04.R script. This includes entering your domain and other feature annotations into the database.
  • At the end of the script, print out your plot of the domain annotations for MB1_YFO and the reference proteins. Bring this plot with you for the next quiz.
  • Can this plot be improved? What would you do differently to maximize its utility from an information-design point of view?

When you execute the code, your plot should look similar to this one:

SMART domain annotations for Mbp1 proteins for the ten reference fungi.

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

 


Let's 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:
    • pull the most recent version of the project from GitHub
    • type init() to lod the most recent files and functions
    • re-merge your current myDB
  • Study and work through the code in the Multiple sequence alignments section of the BCH441_A04.R script.
  • Note that the final task asks you to print out some results and bring them to class for the next quiz.


 

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.


 


That is all.


 

Links and resources

 
  • 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?


     


    Footnotes and references

    1. 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.
    2. "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.
    3. 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.
    4. 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.
    5. 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.
    6. 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.
    7. One such case we encountered involved a protein that has a corrupted annotation for the DNA binding domain. It appears to be the correct orthologue, but it only has the second highest BLAST score.
    8. 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 the assignment 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.



    < Assignment 3 Assignment 5 >