Bacteriorhodopsine is a 7-transmembrane protein, which means that it is built from seven helices that cross the cell membrane (see the left figure below). As a consequence, this protein must consist of seven hydrophobic (water resistant) segments that don't react with the greasy cell membrane, alternating with the hydrophylic segments that don't react with the watery cytoplasm and the environment outside the cell. To every amino acid of a protein, a gradation of hydrophobicity can be appointed, ranging from very hydrophobic to very hydrophilic. The table underneath (right) gives the hydrophobicity values for various amino acids (positive values are hydrophobic and negative values are hydrophylic) as they were determined by Kyte and Doolittle1.

bacteriorhodopsine structure
residue value
A 1.8
R -4.5
N -3.5
D -3.5
C 2.5
Q -3.5
E -3.5
G -0.4
H -3.2
I 4.5
residue value
L 3.8
K -3.9
M 1.9
F 2.8
P -1.6
S -0.8
T -0.7
W -0.9
Y -1.3
V 4.2

The left figure below gives a picture of the list with data points that represent the hydrophobicity values of bacteriorhodopsine. A hydrofobicity value gives the chance a certain amino acid occurs in a hydrophobic region. However, it is not an exact prophecy. An amino acid with a high hydrophobicity can still occur in water, and vice versa. Because of this the signal contains a lot of noise, and it is almost impossible to find hydrophobic regions in this figure. By applying a mathematical filter technique, the noise can be suppressed. In the middle figure, for example, a mean filter was used, and the seven helices are indicated with yellow strips. Here we can obviously see that the filtering strengthens the signal, and the peaks of high hydrophobicity can clearly be linked to the regions where the helices are. The right-hand figure is analogous to the middle figure, but uses a triangle filter. The effect is that the signal is further strengthened.

hydrofobiciteit (ongefilterd) hydrofobiciteit (gemiddelde filter) hydrofobiciteit (driehoeksfilter)

Assignment

Example

>>> protein = 'AQITGRPEWI'
>>> kd = { 
...     'A': 1.8, 'R':-4.5, 'N':-3.5, 'D':-3.5, 'C': 2.5,  
...     'Q':-3.5, 'E':-3.5, 'G':-0.4, 'H':-3.2, 'I': 4.5,   
...     'L': 3.8, 'K':-3.9, 'M': 1.9, 'F': 2.8, 'P':-1.6, 
...     'S':-0.8, 'T':-0.7, 'W':-0.9, 'Y':-1.3, 'V': 4.2
... }

>>> datapoints = hydrophobicity(protein, kd)
>>> datapoints
[1.8, -3.5, 4.5, -0.7, -0.4, -4.5, -1.6, -3.5, -0.9, 4.5]

>>> filterAverage(datapoints)
[0.34, -0.92, -0.54, -2.14, -2.18, -1.2]
>>> filterAverage(datapoints, width=5)
[0.34, -0.92, -0.54, -2.14, -2.18, -1.2]

>>> filterTriangle(datapoints, width=3)
[-0.175, 1.2, 0.675, -1.5, -2.75, -2.8, -2.375, -0.2]