(1) return  
(2) for     to  repeat  do
(3)     P if bernoulli , else H
(4)     th amino acid in conformation
(5)     : unoccupied new position for
(6)    hcc findHCC ()
(7)    foreach   : type( ) =   do
(8)      getDistance ( , hcc)
(9)     if       then
(10)       findFreePoint ( )
(11)      applyDiagonalMove ( )
(12)     else
(13)       findFreePoint ( )
(14)       getDistance ( , hcc)
(15)      if     then
(16)        applyDiagonalMove ( )
(17)        break
Algorithm 5: The pseudocode of macro-mutation operator: macroMutation(AA, repeat).