Bio-Community
view release on metacpan or search on metacpan
lib/Bio/Community/IO.pm view on Meta::CPAN
function is implemented by the Bio::Community::IO::Driver used to
parse the given file format.
Args : None
Returns : An array containing:
A Bio::Community::Member object (or undef)
A positive number (or undef)
=cut
method next_member () {
$self->throw_not_implemented;
}
=head2 next_community
Usage : my $community = $in->next_community;
Function: Get the next community. Note that communities without members are
skipped.
Args : None
Returns : A Bio::Community object
lib/Bio/Community/IO.pm view on Meta::CPAN
}
}
# Community is undef if all communities have been seen
return $community;
}
method _next_community_init () {
# Driver-side method to initialize new community and return its name
$self->throw_not_implemented;
}
method _next_community_finish () {
# Driver-side method to finalize a community
$self->throw_not_implemented;
}
=head2 next_metacommunity
Usage : my $meta = $in->next_metacommunity;
Function: Get the next metacommunity. It may contain one or several communities
depending on the format of the file read,
Args : None
Returns : A Bio::Community::Meta object
lib/Bio/Community/IO.pm view on Meta::CPAN
$self->_meta->add_communities([$community]);
}
# _next_metacommunity_finish will happen before close()
}
return $meta;
}
method _next_metacommunity_init () {
# Driver-side method to initialize new metacommunity and return its name
$self->throw_not_implemented;
}
method _next_metacommunity_finish () {
# Driver-side method to finalize reading a metacommunity
$self->throw_not_implemented;
}
=head2 write_member
Usage : $out->write_member($member, $abundance);
Function: Write the next member from the community and its count or relative
abundance. This function is implemented by a Bio::Community::IO::Driver
specific to the given file format.
Args : A Bio::Community::Member object
A positive number
Returns : 1 for success
=cut
method write_member (Bio::Community::Member $member, Count $count) {
$self->throw_not_implemented;
}
=head2 write_community
Usage : $out->write_community($community);
Function: Write the next community.
Args : A Bio::Community object
Returns : 1 for success
lib/Bio/Community/IO.pm view on Meta::CPAN
if ( ($self->_meta->get_communities_count > 1) && (not $self->multiple_communities) ) {
$self->throw('Format '.$self->format.' only supports writing one community per file');
}
return 1;
}
method _write_community_init (Bio::Community $community) {
# Driver-side method to initialize writing a community
$self->throw_not_implemented;
}
method _write_community_finish (Bio::Community $community) {
# Driver-side method to finalize writing a community
$self->throw_not_implemented;
}
=head2 write_metacommunity
Usage : $out->write_metacommunity($meta);
Function: Write a metacommunity.
Args : A Bio::Community::Meta object
Returns : 1 for success
lib/Bio/Community/IO.pm view on Meta::CPAN
# _write_metacommunity_finish will happen before close()
} else {
$self->throw('Can write only one metacommunity');
}
return 1;
}
method _write_metacommunity_init (Bio::Community::Meta $meta) {
# Driver-side method to initialize writing a metacommunity
$self->throw_not_implemented;
}
method _write_metacommunity_finish (Bio::Community::Meta $meta) {
# Driver-side method to finalize writing a metacommunity
$self->throw_not_implemented;
}
before 'close' => sub {
my $self = shift;
if ($self->mode eq 'r') {
$self->_next_metacommunity_finish();
} else {
# Finish preparing the metacommunity for writing
$self->_write_metacommunity_finish($self->_meta);
lib/Bio/Community/Meta/Beta.pm view on Meta::CPAN
$p /= 100;
# Calculate the Maxiphi index
my $m = 1 - $s * (2-$p) / 2;
return $m;
}
method _unifrac ($meta, $tree) {
#### TODO: unifrac
$self->throw_not_implemented;
}
#######
# TODO:
# Many more beta diversity indices to calculate:
# Unifrac
# ...
#######
( run in 0.692 second using v1.01-cache-2.11-cpan-0a987023a57 )