docs: def parse_tmhmm_long(tmhmm_results):
      """Parse the 'long' output format of TMHMM and return a dictionary of ``{sequence_ID: TMHMM_prediction}``.
  
      Args:
          tmhmm_results (str): Path to long format TMHMM output.
  
      Returns:
          dict: Dictionary of ``{sequence_ID: TMHMM_prediction}``
  
      """
      with open(tmhmm_results) as f:
          lines = f.read().splitlines()
  
      infodict = defaultdict(dict)
  
      for l in lines:
          if 'Number of predicted TMHs:' in l:
              gene = l.split(' Number')[0].strip('# ')
              infodict[gene]['num_tm_helices'] = int(l.split(': ')[1])
  
          if 'WARNING' in l:
              log.warning('{}: no TMHMM predictions'.format(l))
              continue
  
          # TODO: POSSIBLE N-term signal sequence - parse this
  
          # Look for the lines without #, these are the TM predicted regions
          if '#' not in l:
              stuff = l.split()
              if stuff[1] == 'TMHMM2.0':
  
                  gene = stuff[0]
                  region = stuff[2]
                  region_start = stuff[3]
                  region_end = stuff[4]
  
                  if 'sequence' in infodict[gene]:
                      tm_seq = infodict[gene]['sequence']
                  else:
                      tm_seq = ''
  
                  if region == 'outside':
                      info = 'O'
                  elif region == 'inside':
                      info = 'I'
                  elif region == 'TMhelix':
                      info = 'T'
                  else:
                      log.error('{}: unknown region type'.format(info))
                      info = '-'
  
                  for r in range(int(region_start), int(region_end) + 1):
                      tm_seq += info
  
                  infodict[gene]['sequence'] = tm_seq
  
      return infodict