<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def phylesystem_api_url(self, base_url, study_id):
 """Returns URL and param dict for a GET call to phylesystem_api """

        p = self._phylesystem_api_params()
        e = self._phylesystem_api_ext()
        if self.content == 'study':
            return '{d}/study/{i}{e}'.format(d=base_url, i=study_id, e=e), p
        elif self.content == 'tree':
            if self.content_id is None:
                return '{d}/study/{i}/tree{e}'.format(d=base_url, i=study_id, e=e), p
            return '{d}/study/{i}/tree/{t}{e}'.format(d=base_url, i=study_id, t=self.content_id, e=e), p
        elif self.content == 'subtree':
            assert self.content_id is not None
            t, n = self.content_id
            p['subtree_id'] = n
            return '{d}/study/{i}/subtree/{t}{e}'.format(d=base_url, i=study_id, t=t, e=e), p
        elif self.content == 'meta':
            return '{d}/study/{i}/meta{e}'.format(d=base_url, i=study_id, e=e), p
        elif self.content == 'otus':
            if self.content_id is None:
                return '{d}/study/{i}/otus{e}'.format(d=base_url, i=study_id, e=e), p
            return '{d}/study/{i}/otus/{t}{e}'.format(d=base_url, i=study_id, t=self.content_id, e=e), p
        elif self.content == 'otu':
            if self.content_id is None:
                return '{d}/study/{i}/otu{e}'.format(d=base_url, i=study_id, e=e), p
            return '{d}/study/{i}/otu/{t}{e}'.format(d=base_url, i=study_id, t=self.content_id, e=e), p
        elif self.content == 'otumap':
            return '{d}/otumap/{i}{e}'.format(d=base_url, i=study_id, e=e), p
        else:
            assert False