You canít do this with the current API. For most implementations (in CDK) the feature vector is hashed and not reversible (one way). To do this, one would need to hold on to more info then they currently do. There is a getRawFingerprint() method which some implementations provide but this doesnít tell you which atom each feature was generated from.
It shouldnít be too difficult to encode paths / layers (i.e. using the AtomSignature) as a custom bit vector. Out of interest, what do you need this functionality for? There may be an alternative.
The problem how to interpret the fingerprint. Suppose for a molecule, I get a vector of bits as its fingerprint(assume it's default length 1024,depth 8) , some of the bits are on(1), how do I know which part of the bits are for which atom in the molecule? Thanks.