Modeling the specificity of protein-DNA interactions