Bio::ViennaNGS::Expression - An object oriented interface for computing read-count based gene expression as TPM or RPKM
use Bio::ViennaNGS::Expression; my $expression = Bio::ViennaNGS::Expression->new(); # parse read counts from an extended BED12 file $expression->parse_readcounts_bed12("$bed12"); # compute normalized expression of ith sample in Transcript per # Million (TPM) $expression->computeTPM($i, $readlength); # compute normalized expression of ith sample in Reads per Kilobase # per Million Reads (RPKM) $expression->computeRPKM($i); # write extended BED12 file with normalized expression in TPM for # each condition past the 12th column $expression->write_expression_bed12("TPM", $dest, $basename);
This module provides a Moose interface for computation of gene / transcript expression from read counts.
Title : parse_readcounts_bed12
Usage : $obj->parse_readcounts_bed12($file);
$obj->parse_readcounts_bed12($file);
Function : Parses a bedtools multicov (multiBamCov) file, i.e. an extended BED12 file, into an Array of Hash of Hashes data structure (@{$self->data}).
@{$self->data}
Args : $file is the input file, i.e. and extended BED12 file where each column past the 12th lists read counts for this bedline's feature(s) for a specific sample/condition.
$file
Returns :
Notes : This method evaluates the number of samples/conditions present in the input, i.e. the number of columns extending the canonical BED12 columns in the input multicov file and populates $self->conds. Also populates $self->nr_features with the number of genes/features present in the input (evidently, this should be the same for each sample/condition in the input).
$self->conds
$self->nr_features
Title : computeTPM
Usage : $obj->computeTPM($sample, $readlength);
$obj->computeTPM($sample, $readlength);
Function : Computes expression values of each gene/feature present in $self->data in Transcript per Million (TPM) [Wagner et.al. Theory Biosci. (2012)]. $self->data is a reference to a Hash of Hashes data strqucture where keys are feature names and values hold a hash that must at least contain length and raw read counts. Practically, $featCount_sample is represented by _one_ element of @featCount, which is populated from a multicov file by parse_multicov().
$self->data
$featCount_sample
@featCount
parse_multicov()
Args : $sample is the sample index of @{$self->data}. This is especially handy if one is only interested in computing normalized expression values for a specific sample, rather than all samples in multicov BED12 file. $readlength is the read length of the RNA-seq sequencing experiment.
$sample
$readlength
Returns : Returns the mean TPM of the processed sample, which is invariant among samples. (TPM models relative molar concentration and thus fulfills the invariant average criterion.)
Title : computeRPKM
Usage : $obj->computeRPKM($sample);
$obj->computeRPKM($sample);
Function : Computes expression values of each gene/feature present in $self->data in Reads per Kilobase per Million Reads (RPKM). $self->data is a reference to a Hash of Hashes data structure where keys are feature names and values hold a hash that must at least contain length and raw read counts.
Returns: Returns the mean RPKM of the processed sample.
Title : write_expression_bed12
Usage : $obj->write_expression_bed12($measure,$dest,$basename);
$obj->write_expression_bed12($measure,$dest,$basename);
Function : Writes normalized expression data to a bedtools multicov (multiBamCov)-type BED12 file.
Args : $measure specifies the type in which normalized expression data from @{$self->data} is dumped. Allowed values are 'TPM' and 'RPKM'. Corresponding TPM/RPKM values must have been computed and inserted into @{self->data} beforehand by $self->computeTPM() and $self->computeRPKM(), respectively. $dest and $base_name give path and base name of the output file, respectively.
$measure
@{self->data}
$self->computeTPM()
$self->computeRPKM()
$dest
$base_name
Returns : None. The output is a position-sorted extended BED12 file.
Michael T. Wolfinger, <michael@wolfinger.eu>
Copyright (C) 2015-2017 by Michael T. Wolfinger
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
To install Bio::ViennaNGS, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Bio::ViennaNGS
CPAN shell
perl -MCPAN -e shell install Bio::ViennaNGS
For more information on module installation, please visit the detailed CPAN module installation guide.