---
name: "Bio::PhyloNetwork::RandomFactory"
section: "3pm"
platform: "linux"
package: "libbio-perl-perl"
version: "1.7.2-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/Bio::PhyloNetwork::RandomFactory"
---

# Bio::PhyloNetwork::RandomFactory(3pm)

Module to generate random Phylogenetic Networks

## NAME

Bio::PhyloNetwork::RandomFactory - Module to generate random Phylogenetic Networks

## SYNOPSIS

```
 use strict;
 use warnings;
 use Bio::PhyloNetwork;
 use Bio::PhyloNetwork::RandomFactory;
 # Will generate at random all the 66 binary tree-child phylogenetic
 # networks with 3 leaves
 my $factory=Bio::PhyloNetwork::RandomFactory->new(-numleaves=>3,-norepeat=>1);
 my @nets;
 for (my $i=0; $i<66; $i++) {
   my $net=$factory->next_network();
   push @nets,$net;
   print "".(scalar @nets).": ".$net->eNewick()."\n";
 }
```

## DESCRIPTION

Builds a random (binary tree-child) phylogenetic network each time next\_network is called.

## AUTHOR

Gabriel Cardona, gabriel(dot)cardona(at)uib(dot)es

## SEE ALSO

Bio::PhyloNetwork

## APPENDIX

The rest of the documentation details each of the object methods.

### new

```
 Title   : new
 Usage   : my $factory = new Bio::PhyloNetwork::RandomFactory();
 Function: Creates a new Bio::PhyloNetwork::RandomFactory
 Returns : Bio::PhyloNetwork::RandomFactory
 Args    : -numleaves => integer
            OR
           -leaves => reference to an array (of leaves names)
           -numhybrids => integer [optional]
           -norepeat => boolean [optional]
```

Returns a Bio::PhyloNetwork::RandomFactory object. Such an object will create random binary tree-child phylogenetic networks each time next\_network is called.

If the parameter -leaves=\>\\@leaves is given, then the set of leaves of these networks will be `@leaves`. If it is given the parameter -numleaves=\>$numleaves, then the set of leaves will be "l1"..."l$numleaves".

If the parameter -numhybrids=\>$numhybrids is given, then the generated networks will have exactly `$numhybrids` hybrid nodes. Note that, necessarily, `$numhybrids` \< `$numleaves`. Otherwise, the number of hybrid nodes will be chosen at random for each call of next\_network.

If the parameter -norepeat=\>1 is given, then successive calls of next\_network will give non-isomorphic networks.

### next\_network

```
 Title   : next_network
 Usage   : my $net=$factory->next_network()
 Function: returns a random network
 Returns : Bio::PhyloNetwork
 Args    : none
```
