code: def parse_catalytic(insertion, gff):
      
      offset = insertion['offset']
      GeneStrand = insertion['strand']
      if type(insertion['intron']) is not str:
          return gff
      for intron in parse_fasta(insertion['intron'].split('|')):
          ID, annot, strand, pos = intron[0].split('>')[1].split()
          Start, End = [int(i) for i in pos.split('-')]
          if strand != GeneStrand:
              if strand == '+':
                  strand = '-'
              else:
                  strand = '+'
              Start, End = End - 2, Start - 2
          Start, End = abs(Start + offset) - 1, abs(End + offset) - 1
          gff['#seqname'].append(insertion['ID'])
          gff['source'].append('Rfam')
          gff['feature'].append('Catalytic RNA')
          gff['start'].append(Start)
          gff['end'].append(End)
          gff['score'].append('.')
          gff['strand'].append(strand)
          gff['frame'].append('.')
          gff['attribute'].append('ID=%s; Name=%s' % (ID, annot))
      return gff
docs: parse catalytic RNAs to gff format