<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def gibbs_sampling_step(self, visible, n_features):
 """Perform one step of gibbs sampling. :param visible: activations of the visible units :param n_features: number of features :return: tuple(hidden probs, hidden states, visible probs, new hidden probs, new hidden states) """

        hprobs, hstates = self.sample_hidden_from_visible(visible)
        vprobs = self.sample_visible_from_hidden(hprobs, n_features)
        hprobs1, hstates1 = self.sample_hidden_from_visible(vprobs)

        return hprobs, hstates, vprobs, hprobs1, hstates1