<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
	<title><![CDATA[BOL: Perl script to Mutate a DNA Sequence]]></title>
	<link>https://bioinformaticsonline.com/snippets/view/27295/perl-script-to-mutate-a-dna-sequence?</link>
	<atom:link href="https://bioinformaticsonline.com/snippets/view/27295/perl-script-to-mutate-a-dna-sequence?" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/snippets/view/27295/perl-script-to-mutate-a-dna-sequence</guid>
	<pubDate>Wed, 11 May 2016 10:27:58 -0500</pubDate>
	<link>https://bioinformaticsonline.com/snippets/view/27295/perl-script-to-mutate-a-dna-sequence</link>
	<title><![CDATA[Perl script to Mutate a DNA Sequence]]></title>
	<description><![CDATA[<code>#!/usr/local/bin/perl -w

# This script randomly mutates the DNA sequence and generates 10 successive mutation results.
# While executing this script it asks for the file name of the DNA sequence.
# If the DNA sequence file is not in the same directory of this script, enter the file name with its full path.
# Example:
# In windows:  c:\rnafile.txt
# In Linux  : /home/user/sequence/rnafile.txt

use File::Path;

print &quot;ENTER THE FILENAME OF THE DNA SEQUENCE:= &quot;;
$dnafilename = &lt;STDIN&gt;;
chomp $dnafilename;
unless ( open(DNAFILE, $dnafilename) ) 
{
    print &quot;Cannot open file \&quot;$dnafilename\&quot;\n\n&quot;;
    goto h;
}
my $DNA = &lt;DNAFILE&gt;;
close DNAFILE;

my $i;
my $mutant;
$mutant = mutate($DNA);
print &quot;Mutate DNA\n\n&quot;;

print &quot;HERE ARE THE 10 SUCCESSIVE MUTATIONS:\n\n&quot;;
for ($i=0 ; $i &lt; 10 ; ++$i)
  {
    $mutant = mutate($mutant);
    print &quot;$mutant\n&quot;;
        print WRITE &quot;$mutant\n&quot;;
  }

sub mutate
  {
        my($dna) = @_;
        my($position) = randomposition($dna);
        my $current_base = substr($dna, $position, 1);
        my $newbase;
    do
  {
        $newbase = randomnucleotide();
  }
        until ($newbase ne $current_base);
        substr($dna,$position,1,$newbase);
        return $dna;
  }
sub randomposition
  {
        my($string) = @_;
        return int rand length $string;
  }
sub randomelement
  {
    my(@array) = @_;
    return $array[rand @array];
  }
sub randomnucleotide
  {
    my(@nucleotides) = (&#039;A&#039;, &#039;C&#039;, &#039;G&#039;, &#039;T&#039;);
    return randomelement(@nucleotides);
  }</code>]]></description>
	<dc:creator>Anjana</dc:creator>
</item>

</channel>
</rss>