Exercise 6.2: Difference between revisions
Jump to navigation
Jump to search
New page: Return to Week 3 Exercise 6.2 in <i>Beginning Perl for Bioinformatics</i></b> <pre> </pre> |
No edit summary |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Return to [[Week 3]] | Return to [[Week 3]] | ||
Exercise 6.2 in <i>Beginning Perl for Bioinformatics</i></b> | Exercise 6.2 in <i>Beginning Perl for Bioinformatics</i></b> | ||
I'm having trouble with this one!! | |||
<pre> | <pre> | ||
#!/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; | |||
} | |||
</pre> | </pre> | ||
Latest revision as of 19:38, 1 October 2009
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;
}