Previously, I said you just have to replace side chains in the parent with side chains
from your sequence, but is it going to be so easy?
Of course not, because you need coordinates for the new side chains.
And first of all, put this problem in context.
Do you always care about side chain coordinates?
Sometimes it's not an issue.
Obviously, glycine has no side chain, it just has a proton.
Alanine only has a beta carbon, and the geometry of the beta carbon, you can actually calculate
out analytically from the backbone.
So those two cases are boring.
But then we get into real chemistry.
Some residues are on the surface of a protein, and that means they are interacting with the
solvent, and that usually means they don't actually have very fixed positions.
So look at this aspartate here.
There's pretty much free rotation around this bond here, and of course this side chain
is being hit by water molecules all the time.
So there are coordinates in the protein databank, but they probably don't mean anything.
So we shouldn't worry too much about them.
And the barriers to rotation are usually smaller than the kinetic energy that a typical
atom has at room temperature.
So normally you would talk about Boltzmann's constant, that's this K here, times the temperature.
So these barriers are something you can jump over, and that means this side chain here
is going to explore the possible conformations anyway.
On the other hand, there are times that you should worry.
So here's a piece of a protein with a great big buried hydrophobic tryptophan side chain.
This thing here is usually found in the middle of a protein, and it cannot rotate.
It has coordinates which are relatively fixed.
So if we're talking about a large buried hydrophobic side chain, then you probably do want to try
to predict reasonable coordinates.
The first rule is when you should do nothing.
If your sequence at some position has the same residue type as the template, then just
copy the coordinates of your side chain from the parent structure.
Don't try to do any fancy optimization or guesses.
Empirically, this seems to be the best thing to do.
So if your side chain is identical to the one in the parent, reuse the parent coordinates.
That's easy and not so interesting.
What's more interesting is what do you do when you have to replace a side chain with
a different side chain, which is always going to be bigger or smaller.
It's going to have some differences.
So first of all, let's look at it from an optimization point of view.
Here is a fairly typical but nasty example.
We have a piece of backbone here and a tryptophan side chain up here.
And of course, all the angles, the bond lengths and angles here are fixed.
They don't change at room temperature.
So from an optimization point of view, I've only got two variables to look at.
So the rotation around this bond here and the rotation around this bond here.
And of course, because we are chemists, these bond angles have got names.
The first one is key eights and the second one is keyed spire.
If we're looking at it from an optimization point of view, which is where we will start,
your first question will be, what do I use as a starting value?
So where do I start with this residue?
I could put it down randomly, or in fact, I could look in the protein data bank at known
structures and put it in the most likely position from the protein data bank.
And then I'm going to need some optimization procedure.
In this case, although I like numerical optimization, I'm going to eventually get to what might
be the best method, which doesn't use numerical optimization.
So that's coming in about two slides.
What are the considerations here?
We can't have atoms on top of each other.
We also can't have holes in the middle of a protein.
So residues, if you look at crystal structures, in the middle of a protein, there are no holes.
Residues like to pack on top of each other.
This comes up next semester, but there are good energetic reasons for that.
The next thing is, you would say, hydrophobic residues like to be near each other.
And charged and polar residues, those are talking to the solvent anyway, to water molecules.
And much less common, but still in all the textbooks, you can sometimes bury charges
in a protein in salt bridges, so have a positive, near a negative.
You don't see that very often, but if you must bury a charged or even a polar residue,
it has to have a confirmation, so it will have a partner residue to talk to.
So you will never see a lonely, positively charged residue in the middle of a protein.
I say never.
I have never seen one.
Can you take all of this and quantify it?
Can you take these ideas?
Yes, you can.
These are basically the ideas that appear in energy functions, and that's what I talk
about in the first few weeks of summer semester.
So you will have to wait for that story.
For today, we're just going to use approximations.
So we're going to optimize side chains, and we have some function for, I've called it
energy, I should say, happiness of the system.
You might think of numerical optimization methods, energy minimization, molecular dynamics
simulations.
You can also approach this problem with Monte Carlo and simulated kneeling.
There are methods in the literature called self-consistent mean field methods, which
I quite like.
What I'm going to talk about today is what's called clique finding methods, oder auf Deutsch,
clique zuker matorda.
The idea is, in general, of all of these methods, turn the side chains around and try to find
the most likely conformations.
But when we get to the clique method, we're not explicitly rotating side chains.
Let me explain.
There are many possible methods for optimizing side chains.
I mentioned them a moment ago.
What I want to talk about is clique detection.
It's one example.
It may or may not be the best, but it's really rather swift, and it does give good results,
and it's used in the popular programs.
The ingredients that we will need are, firstly, a discretization of side chain conformations.
That's coming on the next slide.
Some kind of method for scoring energies, but it's going to be primitive.
What we'll say is the score is bad or the energy is very high if two atoms are on top
of each other or nearly on top of each other.
That would be a clash, and that is effectively forbidden.
This is a very primitive approach to energies.
What we're also going to need is a definition, and that's this word here, a clique.
A clique is very easy to explain, not so easy to write programs that know about cliques.
A clique means we have some graph here, so canton and canoton, so edges and nodes, of
the kind you have probably met in data, shtukturen und algorithmen, forlaysenen.
A clique is a subgraph of this bigger graph, and in this subgraph here, marked in black,
each node is connected to every other node.
If you look, this guy here is connected to node 1, he's connected to node 2, 3, and via
this edge to node 4.
This black part here is a clique subgraph of this larger gray graph here.
So we will need the definition of a clique in a few seconds.
Let's go back to sidechain rotamers.
Rotamers are a concept that turn up everywhere, and probably in proferarais for laysenen.
Most sidechains have got some rotatable angles.
Some sidechains have got more than one rotatable angle.
So if you look at my phenylalanine here, he's got one rotatable bond and a second rotatable bond here.
Now, if you look in the protein databank, you will find all possible values here do seem
to exist, but some are much more likely than others.
So think back if you've done, in organic chemistry lectures, a picture of butane, butana.
Remember, butane is just four carbons connected to each other.
So it can exist like this, gauche minus, like this, gauche plus, or in this conformation
trans.
That is a sort of approximation.
Those are the three preferred rotamers.
Other conformations are possible, but we can say we can approximate the coordinates
of butane with the three most likely conformations.
And we can do the same with amino acids.
So here is an example from a paper that's 100 years old.
They did a survey of tyrosine sidechains.
We looked at the value of the first angle here, chi-1, and they just made a histogram
of the values for this angle that you see in coordinates in the protein databank.
And you can see there are three strongly preferred positions.
An angle here is not impossible, but it's very unlikely.
An angle at exactly 60, 180, or 240 is much more likely.
So we will say that the conformations for a phenylalanine, just looking at the first
angle, are limited to one of three choices here.
And we will say everything else in between is impossible.
So for some amino acids, like for phenylalanine, we've got one rotatable angle here times the
number of possibilities there.
But that's actually not so interesting for a phenylalanine.
But we might have, for a typical sidechain, three possibilities here, maybe three possibilities
here, and so on.
So for a sidechain, we might have three rotamers or nine possible rotamers, some number like
that.
This is an approximation to the possible coordinates.
It's not the truth.
You could say it's crude, but it turns out to be very useful for transforming our problem
into a smaller search space.
How do we take advantage of the rotamer discretization and approximation in this context?
What we're going to have to do is fit possible rotamers from different sidechains to each
other.
On the right-hand side, I have one of my high-resolution pictures of the middle of a protein.
So I've got a phenylalanine residue here, a second amino acid here, a third, and a fourth
amino acid.
What I've done, though, is number the rotamers for all of the amino acids.
So the first one is not so interesting, but look at the second amino acid here.
He's got possible rotamers one, two, and three, three possible configurations of this
sidechain.
The second amino acid here has got rotamers four, five, and six, and the second, the third,
the last amino acid has rotamers seven, eight, and nine, which are possibilities.
Now imagine this guy is fixed just for argument's sake.
So rotamers zero is fixed for this phenylalanine.
The next amino acid, rotamers one, is not compatible with, because that would mean I
have overlap a clash of the atoms exactly here with the phenylalanine sidechain.
But rotamers two and three are compatible with rotamers zero of the phenylalanine.
If this sidechain is in confirmation two or three, it's no problem here.
There's no clash.
If I look at rotamers one from the second amino acid, it's not compatible with other
rotamers of itself, but it is quite happy with rotamers four, five, and six from the
next sidechain.
So what we're looking for is a set of compatible rotamers, so something that makes residue
this residue here happy and is compatible with this residue and is compatible with
that residue and so on.
So a list of which rotamers are compatible with each other.
So what we can do is turn this into a graph problem.
So remember rotamers one is not compatible with two or three, they are from the same
amino acid, so there is no edge from one to two or three.
But rotamers one is compatible with four, five, six, seven, eight, and nine.
So I put down an edge from one over to four and five and six and on this side seven, eight,
and nine.
And of course my picture doesn't have every possible edge in it because then it would
be uninterpretable for a human.
But what I have on this graph, if it's complete, is all of the possible rotamers from all of
the different amino acids and an edge for every rotamer that is compatible with every
other rotamer.
And so what that means is if I can find a clique within this graph here, by construction
it is a set of rotamers that fit with each other, which was exactly the problem as I
posed it.
So imagine you have the middle of a protein and there is only one set of rotamers that
fit with each other.
Then every rotamer is connected to every other one within this clique.
So all I have to do is find the largest clique in my potentially large graph.
Imagine there are two solutions, which is actually very likely.
Then there will actually be two cliques within my graph over here.
So the full application will be take the protein for each side chain, get all of the
rotamers and then look which ones fit with each other and then build a graph and then
find all cliques or at least all with a certain size and then write out the rotamers inside
each clique, which are the lists of possible side chain confirmations.
So this sounded like a very difficult problem.
In some ways it is, but there's still one aspect which is a little bit difficult.
The killer problem, I would say, is that although it might sound easy in a day of
follows on, finding programming out the search for maximal cliques is one of these really
difficult programming jobs.
It's something where it would be nice to find a working implementation, a debugged and tested
implementation.
The algorithm has some name like the Bronwyn-Kerbosh algorithm.
It's really nasty.
There are other problems.
The whole idea of rotamers is an approximation.
Side chains do not exist at only 0, 120 and 240 degrees.
You see examples of every possible angle somewhere in the protein data bank.
The energy model is really simple that we used.
We just said, are amino acids compatible or not compatible with each other?
A real energy model would be better, but much more expensive.