There is an implementation for Bader analysis which can be used with SIESTA:
http://theory.cm.utexas.edu/bader/
Some minor additional coding is needed for SIESTA, I did it and can share.
Though, it's very rough, since I discontinued to work with it since
Bader analysis gave me very similar results to Mulliken and Andrei's tool.
I cannot agree that observing the relative change in Mulliken charges
instead of absolute values would be correct. I had experience that DZP
showed transfer of charge from surface to molecule, while TZP showed the
opposite (though the charge transfer itself was very smal - about 0.1e)