From 799274dbe4361d6327a6e2fed92ca3c65c82a758 Mon Sep 17 00:00:00 2001
From: Graham McVicker <mcvicker@sanger.ac.uk>
Date: Mon, 23 Feb 2004 15:29:02 +0000
Subject: [PATCH] moved reverse_comp function into its own utility module

---
 modules/Bio/EnsEMBL/Utils/Sequence.pm | 70 +++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 modules/Bio/EnsEMBL/Utils/Sequence.pm

diff --git a/modules/Bio/EnsEMBL/Utils/Sequence.pm b/modules/Bio/EnsEMBL/Utils/Sequence.pm
new file mode 100644
index 0000000000..21dae5d649
--- /dev/null
+++ b/modules/Bio/EnsEMBL/Utils/Sequence.pm
@@ -0,0 +1,70 @@
+# EnsEMBL module for Bio::EnsEMBL::Utils::Sequence
+#
+#
+
+=head1 NAME
+
+Bio::EnsEMBL::Utils::Sequence - Utility functions for sequences
+
+=head1 SYNOPSIS
+
+  use Bio::EnsEMBL::Utils::Sequence qw(reverse_comp);
+
+  my $seq = 'ACTTTAAAGGCTATCCCAATATG';
+
+  print "my sequence = $seq\n";
+
+  reverse_comp(\$seq);
+
+  print "my reverse comp = $seq\n";
+
+
+=head1 METHODS
+
+=cut
+
+
+use strict;
+use warnings;
+
+package Bio::EnsEMBL::Utils::Sequence;
+
+use Exporter;
+
+use vars qw(@ISA @EXPORT_OK);
+
+@ISA = qw(Exporter);
+
+@EXPORT_OK = qw(&reverse_comp);
+
+
+=head2 reverse_comp
+
+  Arg [1]    : reference to a string $seqref
+  Example    : use Bio::EnsEMBL::Utils::Sequence qw(reverse_comp);
+
+               $seq = 'ACCTGAA';
+               reverse_comp(\$seq);
+               print $seq;
+
+  Description: Does an in place reverse compliment of a passed in string
+               reference.  The string is passed by reference
+               rather than by value for memory efficiency.
+  Returntype : none
+  Exceptions : none
+  Caller     : SequenceAdaptor, SliceAdaptor
+
+=cut
+
+sub reverse_comp {
+  my $seqref = shift;
+
+  $$seqref = reverse( $$seqref );
+  $$seqref =~
+    tr/acgtrymkswhbvdnxACGTRYMKSWHBVDNX/tgcayrkmswdvbhnxTGCAYRKMSWDVBHNX/;
+
+  return;
+}
+
+
+1;
-- 
GitLab