docs: def parse(self, limit=None):
          """
          Override Source.parse()
          Args:
              :param limit (int, optional) limit the number of rows processed
          Returns:
              :return None
          """
          if limit is not None:
              LOG.info("Only parsing first %d rows", limit)
  
          sgd_file = '/'.join((self.rawdir, self.files['sgd_phenotype']['file']))
          columns = [
              'Feature Name', 'Feature Type', 'Gene Name', 'SGDID', 'Reference',
              'Experiment Type', 'Mutant Type', 'Allele', 'Strain Background',
              'Phenotype', 'Chemical', 'Condition', 'Details', 'Reporter']
          sgd_df = pd.read_csv(sgd_file, sep='\t', names=columns)
          records = sgd_df.to_dict(orient='records')
          for index, assoc in enumerate(records):
              if isinstance(assoc['Gene Name'], str):
                  if limit is not None and index > limit:
                      break
                  self.make_association(assoc)
  
          return