コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
    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='')
コード例 #4
0
def log_selMostProbable(variants):
    output = ['  - select most probable segment ']
    output.append(str(next(funcs.genVariants(variants, 'active'))))

    return ''.join(output)