Self-Assembly Of Porphyrins On Nucleic Acids And Polypeptides