-
Exercise 7.1
-
Write a program that asks you to pick an amino acid and then keeps
(randomly) guessing which amino acid you picked.
-
Exercise 7.2
-
Write a program that picks one of the four nucleotides and then keeps
prompting until you correctly guess the nucleotide it picked.
-
Exercise 7.3
-
Write a subroutine to randomly shuffle the elements of an array. The
subroutine should take an array as an argument and return an array
with the same elements but shuffled in a random order. Each element
of the original array should appear exactly once in the output array,
just like shuffling a deck of cards.
-
Exercise 7.4
-
Write a program to mutate protein sequence, similar to the code in
Example 7-2 that mutates DNA.
-
Exercise 7.5
-
Write a subroutine that, given a codon (a
fragment of DNA of length 3), returns a random mutation in the codon.
-
Exercise 7.6
-
Some versions of Perl automatically seed the random number generator,
making it superfluous to call srand for that
purpose before using rand to generate random
numbers. Experiment to see if your implementation of
rand calls srand automatically,
or if you have to explicitly call srand yourself,
as you have seen done in the code in this chapter.
-
Exercise 7.7
-
Sometimes not all choices are will be picked in a random selection.
Write a subroutine that randomly returns a nucleotide, in which the
probability of each nucleotide can be specified. Pass the subroutine
four numbers as arguments, representing the probabilities of each
nucleotide; if each probability is 0.25, the subroutine is equally
likely to pick each nucleotide. As error checking, have the
subroutine ensure that the sum of the four probabilities is 1.
Hint: one way to accomplish this is to divide
the range between 0 and 1 into four intervals with lengths
corresponding to the probability of the respective nucleotides. Then,
simply pick a random number between 0 and 1, see in which interval it
falls, and return the corresponding nucleotide.
-
Exercise 7.8
-
This is a more difficult exercise. The
study function in Perl may speed up searches for
motifs in DNA or protein. Read the Perl documentation on this
function. Its use is simple: given some sequence data in a variable
$sequence, type:
study $sequence;
before doing the searches. Do you think study
will speed up searches in DNA or protein, based on what you've
read about it in the documentation?