NAME
Bio::Gonzales::SummarizedExperiment - represent experimental matrix-like data (assay) with features and sample info
SYNOPSIS
DESCRIPTION
ATTRIBUTES
assay
my $assay = $se->assay;
Return the assay of the summarized experiment.
col_data
my $col_data = $se->col_data;
$se->col_data(\@col_data);
row_data
row_names
col_names
row_data_names
col_data_names
meta_data
na_value
Set the NA value if the object is stored. Internally, while in memory, undef will be used. So this value will only have an effect if data is read or written somewhere. Default is Bio::Gonzales::SummarizedExperiment::NA_VALUE
.
METHODS
data
my $assay = $se->data;
A alias for assay.
add_col
add_cols
add_rows
aggregate
$se = $se->aggregate_by_idcs(\@idcs, sub { ... }, \@col_names)
The callback gets passed the grouping keys, rows and row indices. $_
is set to the group has that comes from the (internally used) $se->group
function.
sub {
my ($key, $rows, $row_idcs) = @_;
my $group = $_;
}
$se = $se->aggregate_by_names(\@names, sub { ... }, \@col_names)
apply
as_hash
cbind
clone
col_apply
col_idx
col_idx_map
my $I = $se->col_idx_map;
my %I = $se->col_idx_map;
Returns a hash that maps the column names to their column index. col_idx_map is context sensitve and returns a hash in list context and a hash reference in scalar context.
col_idx_match
col_names_to_idcs
col_rename
dim
each
extract_col_by_idx
extract_col_by_name
group
group_by_idcs
group_by_names
has_col_data
has_col_names =head2 has_row_data =head2 has_row_names =head2 header =head2 header_idx =head2 header_idx_match =head2 inconsistencies =head2 json_spew =head2 make_consistent =head2 merge
Merge two SummarizedExperiment objects.
use Bio::Gonzales::SummarizedExperiment;
my $se_x = Bio::Gonzales::SummarizedExperiment->new(
assay => [ [ 1, "homer", "simpson" ], [ 2, "bart", "simpson" ], [ 3, "lisa simpson" ] ],
col_names => [qw(user_id first_name surname)]
);
my $se_y = Bio::Gonzales::SummarizedExperiment->new(
assay => [ [ 1, 120 ], [ 2, 20 ] ],
col_names => [qw(user_id weight_kg)]
);
# inner join by default
my $merged_se = $se_x->merge($se_y, { by => [ 'user_id' ] });
# user_id first_name surname weight_kg
# 1 homer simpson 120
# 2 bart simpson 20
# Lisa is missing, because the $se_y lacks weight information.
names_to_idcs =head2 ncol =head2 nrow =head2 rbind =head2 row_apply
Apply a callback to each row. $se-
row_apply(@args)> is equivalent to $se-
apply(1, @args)>
use Bio::Gonzales::SummarizedExperiment;
my $se = Bio::Gonzales::SummarizedExperiment->new(
assay => [ [ 1, "homer", "simpson" ], [ 2, "bart", "simpson" ], [ 3, "lisa", "simpson" ] ],
col_names => [qw(user_id first_name surname)]
);
# WITHOUT MODIFYING THE SUMMARIZEDEXPERIMENT OBJECT
$se->row_apply(sub { (my $name = $_->[1]) =~ s/[ra]/z/; $name });
# [ 'homez', 'bzrt', 'lisz' ];
$se->extract_col_by_idx(1);
# [ 'homer', 'bart', 'lisa' ];
# WITH MODIFYING THE SUMMARIZEDEXPERIMENT OBJECT
$se->row_apply(sub { $_->[1] =~ s/[ra]/z/; $_->[1] });
# [ 'homez', 'bzrt', 'lisz' ];
$se->extract_col_by_idx(1);
# [ 'homez', 'bzrt', 'lisz' ];
row_idx =head2 row_idx_map =head2 row_idx_match =head2 shuffle
slice_by_idcs
$se->slice_by_idcs(\@idcs);
$se->slice_by_idcs([0,5,13]);
Extract a column-"slice" from the summarized experiment. The indices select the columns.
slice_by_names
slurp_assay
my $se = Bio::Gonzales::SummarizedExperiment->slurp_assay($source, \%params);
my $se = Bio::Gonzales::SummarizedExperiment->slurp_assay("data.csv", { header => 1, sep => ';' });
Create a new summarized experiment from matrix/tabular data.
sort =head2 spew_assay =head2 subset =head2 encode_as_json =head2 transpose =head2 uniq
LIMITATIONS
NOTES
By convention,
constructor or function arguments ending in
?
are optionalmethods ending in
!
will modify the object it is called on
SEE ALSO
AUTHOR
jw bargsten, <jwb at cpan dot org>
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 895:
Unterminated C< ... > sequence
- Around line 905:
Unterminated C< ... > sequence