Dear Rosetta Community,
I am trying to generate conformations for a 29 residue cyclic peptide with N-C terminal cyclisation. I've written a Rosetta Script that declares a bond between the N and C terminals and then performs a loop closure based on GeneralizedKIC.
However I am facing the following error:
ERROR: Unable to auto-assign a lower anchor for the loop to be closed. Check that the first residue is connected to something that isn't in the loop to be closed and isn't a tail residue. ERROR:: Exit from: src/protocols/generalized_kinematic_closure/GeneralizedKIC.cc line: 1323 protocols.rosetta_scripts.ParsedProtocol: (0) [ ERROR ] Exception while processing procotol: File: src/protocols/generalized_kinematic_closure/GeneralizedKIC.cc:1323
I am running my XML script on version Rosetta2020.03 using the following command:
module load apps/Rosetta/2020.03/intel2019 mpirun -np 1 $ROSETTA_BIN/rosetta_scripts.mpi.linuxiccrelease -parser:protocol nothing.xml -s 2LUR0.pdb -nstruct 1 -overwrite
I am attaching the XML script ("nothing.txt") for reference. I've tried to verify my script from the available Rosetta GeneralizedKIC documentation, and referred to papers from Bhardwaj, G., et al. (2016); Mulligan, V. K., et al. (2021) and a few others but I am unable to rectify. Any help will be appreciated.
A snippet from the code:
<AddResidue res_index="1" /> . . . <AddResidue res_index="29" /> <SetPivots res1="1" res2="16" res3="29" atom1="CA" atom2="CA" atom3="CA" />
GeneralizedKIC requires that at least one residue in the macrocycle be outside of the loop that you're closing. You have to pick an "anchor" or "stub" residue, randomize its conformation using something else (e.g. the RandomizeBBByRamaPrepro mover, the SetTorsion mover, etc.) and then use GenKIC to close the remaining residues. Let's say you pick residue 14 to be that residue. Then your script becomes:
Note that by picking an anchor near the middle of the linear sequence, the peptide bond between residues 29 and 1 is now in the middle of the loop to be closed. This allows you to use CloseBond to force good peptide bond geometry there.
Thanks for the detailed and clear explanation. It works well now !