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 )