Solving and analyzing side-chain positioning problems using linear and integer programming | Synapse