Cooperative self-assembly of porphyrins and derivatives