code: def phenotypes_to_scored(self,phenotypes=None,overwrite=False):
          
          if not self.is_uniform(): raise ValueError("inconsistent phenotypes")
          if phenotypes is None: 
              phenotypes = self.phenotypes
          elif isinstance(phenotypes,str):
              phenotypes = [phenotypes]
          def _post(binary,phenotype_label,phenotypes,overwrite):
              d = binary.copy()
              if len(set(phenotypes)&set(list(binary.keys()))) > 0 and overwrite==False:
                  raise ValueError("Error, phenotype already exists as a scored type")
              for label in phenotypes: d[label] = 0
              if phenotype_label == phenotype_label and phenotype_label in phenotypes:
                  d[phenotype_label] = 1
              return d
          output = self.copy()
          output['scored_calls'] = output.apply(lambda x: 
                  _post(x['scored_calls'],x['phenotype_label'],phenotypes,overwrite)
              ,1)
          return output
docs: Add mutually exclusive phenotypes to the scored calls
  
          Args:
              phenotypes (list): a list of phenotypes to add to scored calls.  if none or not set, add them all
              overwrite (bool): if True allow the overwrite of a phenotype, if False, the phenotype must not exist in the scored calls
          Returns:
              CellDataFrame