def log_variants(variants): output = [' - variants:\n'] count = 0 for variant in funcs.genVariants(variants, 'active'): count += 1 output.append(' | ') output.append(str(variant)) output.append('\n') if count == 1: output.append(' - add segment ') for variant in funcs.genVariants(variants, 'active'): output.append(str(variant)) output.append('\n') elif count == 0: output += ' | nothing' output += ' - create new variant storage\n' return ''.join(output)
def log_mergeVariants(variants): output = [' - merge variants\n'] output.append(' from\n') for variant in variants: output.append(' | ') output.append(str(variant)) output.append('\n') output.append(' to\n') for variants in funcs.genVariants(variants, 'active'): output.append(' | ') output.append(str(variant)) output.append('\n') return ''.join(output)
def __handleGroups(self): """ Данный метод обрабатывает группы активных вариантов, имеющие равные segment.id Текущая реализация в каждой группе оставляет активным наиболее вероятный вариант с использованием метода VariantStorage.__selectMostProbable """ groups = {} for variant in funcs.genVariants(self.variants, 'active'): if groups.get(variant.segment.id) is None: groups[variant.segment.id] = [] groups[variant.segment.id].append(variant) for key in groups: if len(groups[key]) > 1: self.__selectMostProbable(groups[key], 0) logger.logByCondFunc(self.isLog, log_mergeVariants, args=(groups[key],), end='')
def log_selMostProbable(variants): output = [' - select most probable segment '] output.append(str(next(funcs.genVariants(variants, 'active')))) return ''.join(output)