Positioning protein molecules on surfaces: A nanoengineering approach to supramolecular chemistry