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)
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))
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))