DI is loosely based on IDP. When you want write a custom signature, your best bet is with IDP. DI is not able to process complex inspection of signatures, so if the signature you write is fairly detailed (like a P2P signature), DI will not be able to handle that. I usually recommend using DI only with the pre-defined signatures and anamolies that are downloadable. Anything more specific should be handled with IDP.