コード例 #1
0
ファイル: tree_gen.py プロジェクト: skumagai/migselsim
    while parent is not None and parent.time < time:
        if parent.parent is not None and parent.parent.time < time:
            parent = parent.parent
        else:
            break

    if parent is None:
        return hit
    else:
        return parent


def build_tree(f, args, chrom, pop_sizes):
    for line in f:
        # Skip over a line, which contains the seed for a simulation run.
        line = f.next()
        data = eval(line)
        for r in range(args.reps):
            generate_trees(data[chrom],
                           args.size1,
                           args.size2,
                           pop_sizes,
                           args.internal)

if __name__ == '__main__':
    parser = parse_common_arguments('Construct gene tree.')
    parser.add_argument('-i', '--internal',
                        action = 'store_true',
                        help = 'output names of internal nodes')
    run(parser.parse_args(), build_tree)
コード例 #2
0
ファイル: exit_states.py プロジェクト: skumagai/migselsim
              if coal_gen.count(i) == 2][0]
    unchanged = [0, 0]

    for s1 in coal_gen[:size1]:
        if s1 < pop_size / 2 and s1 != merged:
            unchanged[0] += 1
    for s2 in coal_gen[size1:]:
        if s2 < pop_size / 2 and s2 != merged:
            unchanged[1] += 1

    merged1 = coal_gen.index(merged)
    merged2 = coal_gen.index(merged, merged1 + 1)
    if merged1 < size1 and merged2 < size1:
        ctype = 0
    elif merged1 < size1:
        ctype = 1
    else:
        ctype = 2
    if merged < pop_size / 2:
        deme = 1
    else:
        deme = 2

    print('{}, {}, {}, {}, {}'.format(
        time, unchanged[0], unchanged[1], deme, ctype))
    return True


if __name__ == '__main__':
    run(parse_common_arguments('Summarize coalescence time and exit states').parse_args(), get_exit_states)