Mercurial > repos > willmclaren > ensembl_vep
diff variant_effect_predictor/Bio/EnsEMBL/Utils/Sequence.pm @ 0:21066c0abaf5 draft
Uploaded
author | willmclaren |
---|---|
date | Fri, 03 Aug 2012 10:04:48 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/EnsEMBL/Utils/Sequence.pm Fri Aug 03 10:04:48 2012 -0400 @@ -0,0 +1,113 @@ +=head1 LICENSE + + Copyright (c) 1999-2012 The European Bioinformatics Institute and + Genome Research Limited. All rights reserved. + + This software is distributed under a modified Apache license. + For license details, please see + + http://www.ensembl.org/info/about/code_licence.html + +=head1 CONTACT + + Please email comments or questions to the public Ensembl + developers list at <dev@ensembl.org>. + + Questions may also be sent to the Ensembl help desk at + <helpdesk@ensembl.org>. + +=cut + +=head1 NAME + +Bio::EnsEMBL::Utils::Sequence - Utility functions for sequences + +=head1 SYNOPSIS + + use Bio::EnsEMBL::Utils::Sequence qw(reverse_comp expand); + + my $seq = 'ACTTTAAAGGCTATCCCAATATG'; + + print "my sequence = $seq\n"; + + reverse_comp( \$seq ); + + print "my reverse comp = $seq\n"; + + my $compressed_seq = '(AC)3'; + + print "my expanded seq is = expand($compressed_seq)"; + +=head1 METHODS + +=cut + + +package Bio::EnsEMBL::Utils::Sequence; + +use strict; +use warnings; + +use Exporter; + +use vars qw(@ISA @EXPORT_OK); + +@ISA = qw(Exporter); + +@EXPORT_OK = qw(&reverse_comp &expand); + + +=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; +} + +=head2 expand + + Arg [1] : reference to a string $seqref + Example : use Bio::EnsEMBL::Utils::Sequence qw(expand); + + $seq = '(AC)3'; + expand(\$seq); + print $seq; + + + Description: Expands a genomic sequence. The string is passed by reference + rather than by value for memory efficiency. + Returntype : none + Exceptions : none + Caller : SequenceAdaptor, SliceAdaptor + +=cut + +sub expand { + my $seq_ref = shift; + $$seq_ref =~ s/(\w*)\((\w+)\)(\d+)/$1.$2 x $3/eg if ($$seq_ref =~ /\(/);#expressions with parenthesis, expand the alleles + return; +} + + +1;