code: def read(file_path):
      
      # Read in file
      actual_file_path = os.path.expanduser(file_path)
      with open(actual_file_path, 'r') as f:
          lines = f.readlines()
      
      # Create GMT object
      gmt = []
      
      # Iterate over each line
      for line_num, line in enumerate(lines):
          # Separate along tabs
          fields = line.split('\t')
  
          assert len(fields) > 2, (
              "Each line must have at least 3 tab-delimited items. " +
              "line_num: {}, fields: {}").format(line_num, fields)
          
          # Get rid of trailing whitespace
          fields[-1] = fields[-1].rstrip()
          
          # Collect entries
          entries = fields[2:]
          
          # Remove empty entries
          entries = [x for x in entries if x]
  
          assert len(set(entries)) == len(entries), (
              "There should not be duplicate entries for the same set. " +
              "line_num: {}, entries: {}").format(line_num, entries)
  
          # Store this line as a dictionary
          line_dict = {SET_IDENTIFIER_FIELD: fields[0],
                       SET_DESC_FIELD: fields[1],
                       SET_MEMBERS_FIELD: entries}
          gmt.append(line_dict)
  
      verify_gmt_integrity(gmt)
  
      return gmt
docs: Read a gmt file at the path specified by file_path.
  
      Args:
          file_path (string): path to gmt file
  
      Returns:
          gmt (GMT object): list of dicts, where each dict corresponds to one
              line of the GMT file