Self-assembly of porphyrins on nucleic acid templates.