Bio-MaxQuant-Evidence-Statistics
view release on metacpan or search on metacpan
lib/Bio/MaxQuant/Evidence/Statistics.pm view on Meta::CPAN
my ($o,%opts) = @_;
# options :
# use Data::Dumper;
# print STDERR 'OPTS: ', Dumper \%opts;
my $data = $o->{data};
my $result = {};
foreach my $experiment(keys %$data){
if(! exists $opts{experiment} || $experiment =~ /$opts{experiment}/){
$result->{$experiment} = {};
my $exptdata = $data->{$experiment};
foreach my $pgid(keys %$exptdata){
if(! exists $opts{proteinGroupId} || $pgid =~ /$opts{proteinGroupId}/){
my $pgdata = $exptdata->{$pgid};
if(! exists $opts{leadingProteins} || $pgdata->{'Leading Proteins'} =~ /$opts{leadingProteins}/){
if(! exists $opts{notLeadingProteins} || $pgdata->{'Leading Proteins'} !~ /$opts{notLeadingProteins}/){
$result->{$experiment}->{$pgid} = $pgdata;
}
}
}
}
}
}
# print STDERR Dumper $result if $opts{experiment} eq qr/^LCC1.nE.r2$/;
my $p = $o->new;
%$p = %$o;
$p->{data} = $result;
lib/Bio/MaxQuant/Evidence/Statistics.pm view on Meta::CPAN
Logs data, if not already done, calculates median for each replicate, and subtracts median from each evidence in that replicate.
=cut
sub replicateMedianSubtractions {
my ($o, %opts) = @_; # can set filter here
$o->logRatios();
foreach my $replicate($o->experiments()){
my $median = $o->replicateMedian(%opts, experiment=>$replicate);
my $p = $o->filter(experiment=>$replicate);
foreach my $pgid(keys %{$p->{data}->{$replicate}}){
foreach my $i(0.. $#{$p->{data}->{$replicate}->{$pgid}->{'Ratio H/L'}}){
if($p->{data}->{$replicate}->{$pgid}->{'Ratio H/L'}->[$i] =~ /\d/){
$p->{data}->{$replicate}->{$pgid}->{'Ratio H/L'}->[$i] -= $median;
}
}
}
}
# i guess we should do something better with generating this status:
return 1;
}
=head2 median
( run in 1.327 second using v1.01-cache-2.11-cpan-5735350b133 )