<?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 find inverted repeats !]]></title>
	<link>https://bioinformaticsonline.com/snippets/view/44212/perl-script-to-find-inverted-repeats?</link>
	<atom:link href="https://bioinformaticsonline.com/snippets/view/44212/perl-script-to-find-inverted-repeats?" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/snippets/view/44212/perl-script-to-find-inverted-repeats</guid>
	<pubDate>Tue, 07 Mar 2023 06:25:23 -0600</pubDate>
	<link>https://bioinformaticsonline.com/snippets/view/44212/perl-script-to-find-inverted-repeats</link>
	<title><![CDATA[Perl script to find inverted repeats !]]></title>
	<description><![CDATA[<code>#!/usr/bin/perl

use strict;
use warnings;

use Bio::SeqIO;
use Bio::Tools::Run::RepeatMasker;

my $genome_file = &quot;genome.fasta&quot;;

# read genome sequence
my $seqio = Bio::SeqIO-&gt;new(-file =&gt; $genome_file, -format =&gt; &quot;fasta&quot;);
my $seqobj = $seqio-&gt;next_seq();
my $seq = $seqobj-&gt;seq();

# run RepeatMasker
my $rm = Bio::Tools::Run::RepeatMasker-&gt;new();
my $rm_report = $rm-&gt;run($genome_file);

# parse RepeatMasker output
while (my $rm_result = $rm_report-&gt;next_result()) {
    my $rm_match = $rm_result-&gt;repeat_consensus();
    my $rm_class = $rm_result-&gt;repeat_class();
    my $rm_start = $rm_result-&gt;start();
    my $rm_end = $rm_result-&gt;end();
    my $rm_strand = $rm_result-&gt;strand();
    
    if ($rm_class eq &quot;Inverted&quot;) {
        my $rm_seq = substr($seq, $rm_start-1, $rm_end-$rm_start+1);
        if ($rm_strand eq &quot;-&quot;) {
            $rm_seq = reverse_complement($rm_seq);
        }
        print &quot;Inverted repeat found at positions $rm_start-$rm_end: $rm_seq\n&quot;;
    }
}

sub reverse_complement {
    my ($seq) = @_;
    $seq = reverse($seq);
    $seq =~ tr/ACGTacgt/TGCAtgca/;
    return $seq;
}</code>]]></description>
	<dc:creator>BioStar</dc:creator>
</item>

</channel>
</rss>