Exemplo n.º 1
0
    def random_yule(self, nspecies=None, names=None):
        if names and nspecies:
            if not nspecies == len(names):
                nspecies = len(names)
        elif names and not nspecies:
            nspecies = len(names)
        elif not names:
            if not nspecies:
                nspecies = 16
            names = taxonnames.names[:nspecies]
            if nspecies > len(taxonnames.names):
                names.extend(['Sp{0}'.format(i) for i in
                             range(len(taxonnames.names) + 1, nspecies
                             + 1)])

        taxon_set = dpy.TaxonSet(names)
        tree = treesim.uniform_pure_birth(taxon_set)

        newick = '[&R] ' + tree.as_newick_string()
        if not newick.endswith(';'):
            newick += ';'

        return Tree(newick)
Exemplo n.º 2
0
    parser.add_option(
        "-s",
        "--seed",
        action="store",
        dest="seed",
        type=long,
        default=0,
        help="The seed of the random number generator",
    )

    (opts, args) = parser.parse_args()
    num_leaves = opts.num_leaves
    if num_leaves < 3:
        sys.exit("The number of leaves must be greater than 2")
    seed = opts.seed
    if seed < 0:
        sys.exit("Seed must be positive")
    if seed < 1:
        seed = time.time()
    rng = random.Random()
    sys.stderr.write("seed = %ld\n" % seed)
    rng.seed(seed)
    outstr = sys.stdout

    taxa = TaxonSet(["t%d" % i for i in xrange(1, 1 + num_leaves)])
    tree = uniform_pure_birth(taxa, rng=rng)
    for e in tree.preorder_edge_iter():
        e.length = rng.random()
    outstr.write("%s;\n" % tree.as_newick_string(preserve_spaces=True))
Exemplo n.º 3
0
                      default=4,
                      help='The number of leaves to generate.')

    parser.add_option('-s',
                      '--seed',
                      action='store',
                      dest='seed',
                      type=long,
                      default=0,
                      help='The seed of the random number generator')

    (opts, args) = parser.parse_args()
    num_leaves = opts.num_leaves
    if num_leaves < 3:
        sys.exit("The number of leaves must be greater than 2")
    seed = opts.seed
    if seed < 0:
        sys.exit("Seed must be positive")
    if seed < 1:
        seed = time.time()
    rng = random.Random()
    sys.stderr.write("seed = %ld\n" % seed)
    rng.seed(seed)
    outstr = sys.stdout

    taxa = TaxonSet(["t%d" % i for i in xrange(1, 1 + num_leaves)])
    tree = uniform_pure_birth(taxa, rng=rng)
    for e in tree.preorder_edge_iter():
        e.length = rng.random()
    outstr.write("%s;\n" % tree.as_newick_string(preserve_spaces=True))