def dMutAdd(project, mutID, mutparent,kind, name='', descr='', color=None): ''' Check and add a mutant ''' org = Organism(project) if org.isOrg(mutID): logger.warning('Organism %s is already present'%mutID) logger.warning('Remove it before addition') return False if not org.isOrg(mutparent): logger.error('Parent organism %s not present!'%mutparent) return False elif org.isMutant(mutparent): logger.error('Parent organism %s cannot be a mutant!'%mutparent) return False parents = len(org) - org.howManyMutants() if parents != 1: logger.error('Only one parent is allowed!') return False if not color: org.addOrg(mutID, name=name, description=descr, mutant=True, reference=mutparent, mkind=kind) else: org.addOrg(mutID, name=name, description=descr, mutant=True, reference=mutparent, mkind=kind, color=color) logger.info('Mutant %s (%s) added' %(mutID, org.getOrg(mutID).mkind)) return True
def dSetKind(project): ''' Set the kind of genomic project and return its value ''' proj = Project(project) proj.getProject() org = Organism(project) if org.howManyMutants() > 0: logger.info('%d mutants are present'%org.howManyMutants()) proj.setKind('mutants') return 'mutants' elif org.howMany() == 1: logger.info('Just one organism is present') proj.setKind('single') return 'single' elif org.howMany() == 0: logger.info('No organisms are present yet') return None else: logger.info('%d organisms are present'%org.howMany()) proj.setKind('pangenome') return 'pangenome'