Exercise 6.2
Return to Week 3 Exercise 6.2 in Beginning Perl for Bioinformatics
I'm having trouble with this one!!
#!/usr/bin/perl
use warnings;
use strict;
#Erika Phelps
#28 Sept 2009
#Exercise 6.2
#Pseudocode:
#Ask for a DNA sequence from the user.
#Determine the length of the DNA sequence.
#Use a subroutine to calculate the percentage of each base.
#Print out the returned values.
#Define variables
my $DNA = 0;
my $A = "A";
my $T = "T";
my $G = "G";
my $C = "C";
my $Ap = 0;
my $Tp = 0;
my $Gp = 0;
my $Cp = 0;
#Obtain DNA sequence from user.
print "Please input your DNA sequence:\n";
$DNA = <STDIN>;
chomp $DNA;
#Call the subroutine for each base
#The result is saved in the string for each base
$Ap = percentATGC($DNA, $A);
$Tp = percentATGC($DNA, $T);
$Gp = percentATGC($DNA, $G);
$Cp = percentATGC($DNA, $C);
#Return the values
print "The percentage of each base in your sequence is as follows:\n";
print "A = $Ap% \n";
print "T = $Tp% \n";
print "G = $Gp% \n";
print "C = $Cp% \n\n";
exit;
####################
#Subroutine#
####################
sub percentATGC {
#Initialize arguments and variables
my($DNA,$base) = @_;
#Define variables
my $count = 0;
my $countT = 0;
my $countG = 0;
my $countC = 0;
my $length = 0;
print "This is dna $DNA\n";
print "this is base $base\n";
#Obtain a count of each base
$count = (eval($DNA =~ tr/$base//));
# $countT = ($DNA =~ tr/Tt//);
# $countG = ($DNA =~ tr/Gg//);
# $countC = ($DNA =~ tr/Cc//);
#Determine the length of the DNA sequence
# $length = ($DNA =~ tr/ATGCatgc//);
# my $value = $count/$length*100;
return $count;
# return $value;
}