<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def summarize(self):
 """ G protein annotation summary in a text format :return: A string summary of the annotation :rtype: str """

        data = [
            ['Sequence ID', self.seqrecord.id],
            ['G domain', ' '.join(self.gdomain_regions) if self.gdomain_regions else None],
            ['E-value vs rab db', self.evalue_bh_rabs],
            ['E-value vs non-rab db', self.evalue_bh_non_rabs],
            ['RabF motifs', ' '.join(map(str, self.rabf_motifs)) if self.rabf_motifs else None],
            ['Is Rab?', self.is_rab()]
        ]
        summary = ''
        for name, value in data:
            summary += '{:25s}{}\n'.format(name, value)
        if self.is_rab():
            summary += '{:25s}{}\n'.format('Top 5 subfamilies',
                                           ', '.join('{:s} ({:.2g})'.format(name, score) for name, score
                                                     in self.rab_subfamily_top5))
        return summary