Data-driven Methods and Models for Predicting Protein Structure using Dynamic Fragments and Rotamers