Map joint orientation to Unity avatar


I am using Orbbec Astra S and would like to map joint orientation to an avatar in Unity using quaternions. The joint orientation data from Orbbec is received as AxisX, AxisY, and AxisZ. I am not sure how I can apply these orientation data to quaternions. For example, I tried for head rotation using the following code:

Astra.Joint headJoint = body.Joints[(int)JointType.Head];
sphere.transform.rotation = Quaternion.Euler(0, -90, 0) * new Quaternion(head_Or_Y.X, head_Or_Y.Y, head_Or_Y.Z, 0.8f);

this is quite hard to identify which axis should be used for rotation. The same code does not work for all joints and I am not sure why. Any help and explanation will be really appreciated. Thanks