Flexible docking

Hi,
I am using HADDOCK to dock a protein-peptide complex.
To test how well haddock is good for my system I have done a practice test, using restraints from the original PDB structure and in the binding site made the amino acids fully flexible.
However, the results show that the amino acids at the N and C terminus are not in the right position (probably due to the change in orientation because of the fully flexible segment). Is there a way to overcome this issue? So the docking will still be flexible for some amino acids but on the other amino acids will stay in place?
Attached is a Pymol image of the original on the docked structure.
The original PDB is yellow-green (green are the amino acids that are fully flexible) and the docked is colored orange (flexible) and wheat.
And as seen in the figure the N and C terminus are not in the right place. how can I keep them in the right orientation?
Thank you!

Hi,
Why are the rigid amino acids moving? is there a way to prevent this so that only the fully flexible amino acids move?
Thank you

What do you mean by rigid amino acids?

What I mean is that I have amino acids that are considered “fully flexible” and some that are not (so they should be rigid). However, the move. How can this be?
In the figure above it is shown how the N and C terminus are are not in the correct position, even though they should not be able to move.

The flexibility mode is by default automatic, meaning any residue at the interface will be treated as flexible.
This is different than the full flexibility option.

If you want a molecule to be rigid you can specify that.

Defining fully flexible residues only add extra flexibility to those resides, but does not change the behaviour of the other residues (i.e. the automatic flexibility mode).

Thank you!
How can I define rigid amino acids?

I thought the default flexibility isn’t strong enough to completely change the protein structure when those amino acids are far from the interface… this is something that never happened before I made some of the amino acids fully flexible. Why is that?

You can only define a full molecule as rigid.

You can also turn off the automatic flexibility treatment and define the semi-flexible segments manually.

This is what I have now:
What settings do you mean I should change? Where can I define a full molecule as rigid?
The amino acids at the C and N terminus are more than 5 A away from each other in the initial structure

semi-flexible:

{========= Definition of semi-flexible interface ============}
{* Define the interface of each molecule.}
{
Side-chains and backbone of these residues will be allowed to move during semi-flexible refinement*}
{* Distance cutoff in A for the automatic definition of flexible segments based on intermolecular residues contacts }
{===>} flcut_nb=5.0;
{
number of semi-flexible segments for molecule 1 (-1 for automated mode) }
{
Note that current max is 10 (edit the run.cns to add more segments *}
{===>} nseg_1=-1;

And fully flexible:
{===>} nfle_1=3;
{* Fully flexible segments of molecule 1 *}
{+ table: rows=5 “segment 1” “segment 2” “segment 3” “segment 4” “segment 5” cols=2 “Start residue” “End residue” +}
{===>} start_fle_1_1=“90”;
{===>} end_fle_1_1=“99”;
{===>} start_fle_1_2=“116”;
{===>} end_fle_1_2=“119”;
{===>} start_fle_1_3=“134”;
{===>} end_fle_1_3=“137”;

Set nseg_X to 0 for the molecule X you want to keep rigid

Thank you
I tried this, but still, some of the structures do not stay rigid in the correct places.
What else can I try?
it looks like this:

instead of

Don’t know the details of what you are doing, but something is clearly wrong in your settings…

Did you try running it on server?

these are the exact changes I do in run.cns file, what is wrong here?

sed -i ‘s/delenph=true/delenph=false/g’ run.cns
sed -i ‘s/{===>} clust_meth=“FCC”;/{===>} clust_meth=“RMSD”;/g’ run.cns
sed -i ‘s/{===>} clust_cutoff=0.60;/{===>} clust_cutoff=5;/g’ run.cns
sed -i ‘s/{===>} cpunumber_1=4;/{===>} cpunumber_1=18;/g’ run.cns
sed -i ‘s/{===>} waterrefine=200;/{===>} waterrefine=400;/g’ run.cns
sed -i ‘s/{===>} initiosteps=500;/{===>} initiosteps=2000;/g’ run.cns
sed -i ‘s/{===>} cool1_steps=500;/{===>} cool1_steps=2000;/g’ run.cns
sed -i ‘s/{===>} cool2_steps=1000;/{===>} cool2_steps=4000;/g’ run.cns
sed -i ‘s/{===>} cool3_steps=1000;/{===>} cool3_steps=4000;/g’ run.cns
sed -i ‘s/{===>} structures_0=1000;/{===>} structures_0=9900;/g’ run.cns
sed -i ‘s/{===>} structures_1=200;/{===>} structures_1=400;/g’ run.cns

sed -i ‘s/{===>} nfle_2=0;/{===>} nfle_2=1;/g’ run.cns
sed -i ‘s/{===>} start_fle_2_1=“”;/{===>} start_fle_2_1=“1”;/g’ run.cns
sed -i ‘s/{===>} end_fle_2_1=“”;/{===>} end_fle_2_1=“70”;/g’ run.cns

sed -i ‘s/{===>} nseg_1=-1;/{===>} nseg_1=0;/g’ run.cns
sed -i ‘s/{===>} nfle_1=0;/{===>} nfle_1=3;/g’ run.cns

sed -i ‘s/{===>} runana=“cluster”;/{===>} runana=“full”;/g’ run.cns

and changed the following:
{===>} start_fle_1_1=“23”;
{===>} end_fle_1_1=“32”;
{===>} start_fle_1_2=“47”;
{===>} end_fle_1_2=“52”;
{===>} start_fle_1_3=“65”;
{===>} end_fle_1_3=“68”;

unambig restraints are:
assign(segid A and resid 26 and name HH)(segid B and resid 10 and name HG2) 2.511 0.5 0.5
assign(segid A and resid 52 and name HB1)(segid B and resid 14 and name HG1) 2.691 0.5 0.5
assign(segid A and resid 52 and name HZ2)(segid B and resid 11 and name HD2) 2.694 0.5 0.5
assign(segid A and resid 65 and name HB2)(segid B and resid 10 and name HE2) 2.655 0.5 0.5
assign(segid A and resid 68 and name HD1)(segid B and resid 10 and name HE2) 2.622 0.5 0.5
assign(segid A and resid 68 and name HE1)(segid B and resid 8 and name HD2) 2.677 0.5 0.5

and run.param is:
HADDOCK_DIR=/home/qnt/drorimi2/software/haddock2.4-2023-01/
N_COMP=2
PDB_FILE1=/home/qnt/drorimi2/full_analize_40PDB/7pll/HADDOCK_2/input_files/7pll_prot.pdb
PDB_FILE2=/home/qnt/drorimi2/full_analize_40PDB/7pll/HADDOCK_2/input_files/7pll_beta.pdb
PDB_LIST2=/home/qnt/drorimi2/full_analize_40PDB/7pll/HADDOCK_2/input_files/structures.list
PROJECT_DIR=./
PROT_SEGID_1=A
PROT_SEGID_2=B
UNAMBIG_TBL=/home/qnt/drorimi2/full_analize_40PDB/7pll/HADDOCK_2/prepare_tbl/make_tbl/range_0.5/random_20.tbl
RUN_NUMBER=_random_20_0
submit_save=Save updated parameters

Which molecule is your protein?

You are now defining fully flexible segments for both.

What do you want to do exactly?

My protein is segment A., I want to define in the protein specific amino acids that are fully flexible in the binding zone, and in the peptide all amino acids (I marked them 1-70 so it will include all of them (I use the same changes for different peptides so its easier for me to define this way).
I want the areas that I marked fully flexible to be flexible, but I don’t know why the C and N terminus in the protein move so much… they are not supposed to move. Not in all the structures this happens, but it happens in about a third.
My goal is to dock PDB complex “7pll” using restraints to reproduce the original solved structure.
I am also trying to run on the web server to compare, and it is still queued for several hours.

Depending on how you define your fully flexible segments, this can of course allow the termini to move.

HADDOCK is not using positions restraints, but freeze dihedral angles in the torsion angle dynamics refinement stage.

I would suggest not to define your protein segments as fully flexible but rather keep the automatic flexibility in this case.

Note that you can also automatically define backbone dihedral angle restraints to maintain the structure:

{* Automatically define backbone dihedral angle restraints from structure? *}
{* Error treshold for restraint violation is defined by error_dih *}
{+ choice: none all alpha alphabeta +}
{+ define the error treshold for the restraint violation +}
{===>} ssdihed=none;
{===>} error_dih=10;

I don’t understand why “Depending on how you define your fully flexible segments, this can of course allow the termini to move.”
I didn’t define the N and C termini as flexible, so why would it?
and I want to define the binding area as fully flexible since sometimes the loop moves a little (without disrupting the structure) and the peptide is completely flexible. So if I define dihedral angle restraints from structure It won’t be able to take this into account. Am I correct?

Think of a tree - you might define part of branch as flexible. If it moves, then the tip of the branch will also move, even if that part if rigid.

I don’t understand why “Depending on how you define your fully flexible segments, this can of course allow the termini to move.”
I didn’t define the N and C termini as flexible, so why would it?
and I want to define the binding area as fully flexible since sometimes the loop moves a little (without disrupting the structure) and the peptide is completely flexible. So if I define dihedral angle restraints from structure It won’t be able to take this into account. Am I correct?

Why not start simple… Now you have problems. So try first the automatic flexibility setting at least for the protein part…

Ok thank you
Is there a way to define backbone dihedral angle restraints from structure only for the protein?
This way I can keep the peptide fully flexible and the protein won’t break structure (although it’s not fully flexible if the dihydral angels are rigid)

You would have to do that manually and provide a restraint file.

But try first the automatic flexibility (default) for your protein

I tried this, and the results are much better, but I still want most of the amino acids in the protein to be completely rigid, and not move at all even if the “head” of the branch moves.
Is there another way to do this except to define backbone dihedral angle restraints (or other manually input restraints?). Since this is a lot of work
Thank you