<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_annotations(self, aname, sep=','):
 """Loads cell annotations. Loads the cell annoations specified by the 'aname' path. Parameters aname - string The path to the annotations file. First column should be cell IDs and second column should be the desired annotations. """

        ann = pd.read_csv(aname)

        cell_names = np.array(list(self.adata.obs_names))
        all_cell_names = np.array(list(self.adata_raw.obs_names))

        if(ann.shape[1] > 1):
            ann = pd.read_csv(aname, index_col=0, sep=sep)
            if(ann.shape[0] != all_cell_names.size):
                ann = pd.read_csv(aname, index_col=0, header=None, sep=sep)
        else:
            if(ann.shape[0] != all_cell_names.size):
                ann = pd.read_csv(aname, header=None, sep=sep)
        ann.index = np.array(list(ann.index.astype('<U100')))
        ann1 = np.array(list(ann.T[cell_names].T.values.flatten()))
        ann2 = np.array(list(ann.values.flatten()))

        self.adata_raw.obs['annotations'] = pd.Categorical(ann2)
        self.adata.obs['annotations'] = pd.Categorical(ann1)