(Nearly) end-to-end differentiable learning of protein structure