BioX-CLPM
view release on metacpan or search on metacpan
lib/BioX/CLPM/Engine.pm view on Meta::CPAN
case 'oxidized methionine' { $aa_masses->{'M'} = $aa_masses->{'M2'} }
}
return $aa_masses;
}
# PRIV
sub _has_lc {
my ( $self, $str ) = @_;
if ( $str =~m/.*[a-z]+.*/ ) { return 1; } else { return 0; }
}
# PRIV
sub _has_uc_last {
my ( $self, $str ) = @_;
if( $str =~ m/[A-Z]$/ ) { return 1; } else { return 0; }
}
# PRIV
sub _mark_links {
my ( $self, $arg_ref ) = @_;
my $sequence = defined $arg_ref->{sequence} ? $arg_ref->{sequence} : $self->get_sequence();
my $sequence_str = $sequence->get_sequence();
my $end = defined $arg_ref->{end} ? $arg_ref->{end} : $self->get_end();
my @amino_acids = split( '', $end );
foreach my $amino_acid ( @amino_acids ) {
my $amino_acid_lc = lc($amino_acid);
$amino_acid = uc($amino_acid);
$sequence_str =~ s/$amino_acid/$amino_acid_lc/g;
}
$sequence->set_cl_sequence( $sequence_str );
return $sequence;
}
# UTIL
sub insert_run {
my ( $self ) = @_;
my $enzyme_id = $self->get_enzyme->get_enzyme_id();
my $linker_id = $self->get_linker->get_linker_id();
my $tolerance = $self->get_tolerance();
my $missed_clvg = $self->get_missed_clvg();
my $stat_mod = $self->get_stat_mod();
my $var_mod = $self->get_var_mod();
my $sql = "insert into run_data ( enzyme_id, linker_id, tolerance, missed_clvg, stat_mod, var_mod) values ($enzyme_id, $linker_id, $tolerance, $missed_clvg, '$stat_mod', '$var_mod' )";
$self->sqlexec( $sql );
$sql = 'select LAST_INSERT_ID()';
my ( $run_id ) = $self->sqlexec( $sql, '\@@' );
return $run_id;
}
# UTIL
sub db_trunc {
my ( $self ) = @_;
warn "ENGINE db_trunc() \n";
$self->sqlexec("truncate table sequences");
$self->sqlexec("truncate table fragments");
$self->sqlexec("truncate table final_fragment_masses");
$self->sqlexec("truncate table run_data");
$self->sqlexec("truncate table file_masses");
$self->sqlexec("truncate table results");
$self->sqlexec("truncate table precursor_masses");
}
# UTIL
sub get_seq {
my ( $self, $arg_ref ) = @_;
my $file = $arg_ref->{file} ? $arg_ref->{file} : '';
my $id = $arg_ref->{id} ? $arg_ref->{id} : 0;
my $sequence;
if ( -e $file ) {
# Guess file format from extension with read_sequence()
my $seq_object = read_sequence( $file );
$sequence = $seq_object->seq();
}
elsif ( $id ) {
# Get sequence from database
# TODO
}
return $sequence;
}
# sub add_sequence {
# my ( $self, $arg_ref ) = @_;
# my @sequences = @{$self->get_sequences()};
# push( @sequences,
# BioX::CLPM::Sequence->new( { sequence => $arg_ref->{sequence} },
# { sequence_id => $arg_ref->{sequence_id} ? $arg_ref->{sequence_id} : (@$sequences + 1) } );
# $self->set_sequences(\@sequences);
# }
}
1; # Magic true value required at end of module
__END__
=head1 NAME
BioX::CLPM::Engine - Control object for mass spec peptide analysis projects
=head1 VERSION
This document describes BioX::CLPM::Engine version 0.0.1
=head1 SYNOPSIS
use BioX::CLPM::Engine;
# Run parameters
my $file1 = '/home/mihir/clpm_perl/data/test_sequence1.fasta';
my $file2 = '/home/mihir/clpm_perl/data/bsa_sequence.fasta';
my $params = { enzyme_id => 1,
linker_id => 1,
sequences => { files => [ $file1, $file2 ] },
tolerance => '500',
missed_clvg => 3,
stat_mod => 'carbamidomethylated',
var_mod => { C => 160.2, M => -90.56 } };
# Create engine
my $engine = BioX::CLPM::Engine->new( $params );
( run in 1.492 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )