#!/usr/bin/perl # Program to generate Random DNA set: use strict; use warnings; print"\n\n Enter No. of DNA Molecules required: ";# Line 5 my $number= ; print"\n Enter Maximum length of DNA (bases): "; my $maxl= ; print"\n Enter Minimum length of DNA (bases): "; my $minl= ; # Line 10 # An array initialized to the empty list, to store the DNA in: my @random_DNA= (); srand(time|$$); # Call the subroutine to do the real job: @random_DNA=make_random_DNA_set($minl,$maxl,$number); # print the results, one per line: Line 16 print"\n The DNA set containing $number DNA molecules, varying in length from $minl to $maxl bases, are:\n\n"; my $dna=(); foreach my $dna (@random_DNA) { # Line 19 print"$dna\n";} print"\n";# one per line Line 21 my $output="RandDNA .txt"; unless (open(RESULT,">my $output")){ print"Cannot open file\"my $output\".\n\n"; exit; } # Line 26 print RESULT"\n Randomly Generated dna:\n The DNA set containing $number molecules varying in length from $minl to $maxl bases are:\n\n my $dna\n"; close(RESULT);# Line 30 exit; # Line 32 Subroutines (five): # Calling the subroutine make_random_DNA_set: # Line 33 sub make_random_DNA_set { # Collect arguments, declare variables my ($minl,$maxl,$number)=@_; # Length of each DNA fragment # Line 37 my $length; # DNA fragment: my $dna; # Line 40 # Set of DNA fragments my @set; # Create set of random DNA: for (my $i=0;$i<$number;++$i) { # find a random length between min & max Line 45: $length= randomlength ($minl,$maxl); # add $dna fragment to @set Line 47: push (@set,$dna);} return @set;} # Line 49 # Write the Subroutine randomlength: sub randomlength { # Collect arguments, declare variables Line 52: my ($minl,$maxl)=@_; # Get the random number in correct interval: return (int(rand($maxl-$minl+1))+$minl);} # Now write the subroutine make_random_DNA: sub make_random_DNA { # Line 57 # Collect arguments, declare variables: my ($length)=@_; # Line 59 my $dna; for (my $i=0;$i<$length;++$i) { $dna.=randomnucleotide();} # Line 62 return $dna;} # Now write the subroutine randomnucleotide Line 64: sub randomnucleotide { my (@nucleotides)=('A','T','G','C'); return randomelement(@nucleotides); # Line 67 # Now write the subroutine randomelement: sub randomelement { my(@array)=@_; return $array[rand @array];} # Line 71 }