I'm trying to find the set of bitcoin addresses from a public key associated with a user just to analyse this user transaction. Is there any way to derive/find all the addresses that have been generated by this public key so far?
One Private key can generate only one public key and in a similar manner one public key can generate only one bitcoin address. So a proper question should be is there a way to find out whether two addresses or two public keys belong to the same person ? Then answer is No, you can not efficiently find out whether these two addresses belong to the same person or not. Even if that person tells you, he has to reveal corresponding private keys in order to prove this thing to you.
Expanding shesek's comment as an answer:
The "SIN" key you're looking at, on a profile on bitrated.com, is a particular feature of that site. These keys are not directly used for Bitcoin transactions at all, so you certainly can't discover addresses from them.
As for Bitcoin public keys, one public key generates one address; you cannot use a public key to compute other addresses belonging to that user. (Though you might find other addresses that participate in transactions with the first one, and guess that they belong to the same person; but that's not proof.)
If someone is using an HD wallet, there is a concept of a master public key, from which one can determine the public keys for many different addresses that the user might be using. People usually don't share those if they value their transaction privacy.