docs: def parse(isatab_ref):
      """Entry point to parse an ISA-Tab directory.
      isatab_ref can point to a directory of ISA-Tab data, in which case we
      search for the investigator file, or be a reference to the high level
      investigation file.
      """
      if os.path.isdir(isatab_ref):
          fnames = glob.glob(os.path.join(isatab_ref, "i_*.txt")) + \
                   glob.glob(os.path.join(isatab_ref, "*.idf.txt"))
          assert len(fnames) == 1
          isatab_ref = fnames[0]
      assert os.path.exists(isatab_ref), "Did not find investigation file: %s" % isatab_ref
      i_parser = InvestigationParser()
      with open(isatab_ref, "rU") as in_handle:
          rec = i_parser.parse(in_handle)
      s_parser = StudyAssayParser(isatab_ref)
      rec = s_parser.parse(rec)
      return rec