[Bioperl-l] regular expression help!

Guojun Yang gyang at plantbio.uga.edu
Mon Jan 17 11:17:31 EST 2005


Thanks for everybody's comments, the only thing I am interested in is a regular expression to recognize the pattern (it should not be confined to certain sequences as have suggested by some). For example: in tttaatatcaaAGCATgggaaaggatat....atatcctttcccGCATacatataccata, the regex should recognize AGCATgggaaaggatat....atatcctttcccGCAT. The problem is not the direct repeat AGCAT, but how to match the atatcctttccc with the gggaaaggatat. I guess there must be a way to do it. I tried the following and obtained weird results:
/.*(\S+)(\S)(\S)(\S)(\S)(\S)(\S)(\S)(\S)(\S)(\S).*(??{convert(\11);})(??{convert(\10);})(??{convert(\9);})(??{convert(\8);})(??{convert(\7);})(??{convert(\6);})(??{convert(\5);})(??{convert(\4);})(??{convert(\3);})(??{convert(\2);})\1.*/i
...

sub convert{
my $return=$_[0];
$return =~ tr/ATCG/TAGC/;
$return =reverse($return);
return $return;
}

Can anybody give me a hint on the -e switch when using perl script inside a regex?

Yang





----- Original Message -----
From: Willy West <corenth at gmail.com>
To: Jan.Aerts at wur.nl, bioperl-l at portal.open-bio.org
Sent: Sun, 16 Jan 2005 09:53:55 -0500
Subject: Re: [Bioperl-l] regular expression help!


> oops- i'd forgotten to "reply to all" with this... i apologize.
> 
> 
> On Sun, 16 Jan 2005 11:13:45 +0100, Aerts, Jan <Jan.Aerts at wur.nl> wrote:
> > The problem is (or I might miss something here), that he wants to _test_ a
> regex. It's not possible to write something like
> > $_ =~ /(.*)(.*)foo(\2)(.*)/e
> > I think...
> > 
> > jan.
> 
> now i'm trying to do this with the test regex and am not successful :(
>   this is an interesting problem and i really would love to find a
> way..
> 
> one solution would be to explode the whole thing in another
> subroutine... but if it's
> not  what you want, i'm not yet sure how to do it.
> 
> good challenge though.....
> 
> :)
> 
> > 
> > 
> > -----Original Message-----
> > From:   Willy West [mailto:corenth at gmail.com]
> > Sent:   Sun 16-Jan-05 00:09
> > To:     Aerts, Jan
> > Cc:
> > Subject:        Re: [Bioperl-l] regular expression help!
> > On Sat, 15 Jan 2005 15:17:28 +0100, Aerts, Jan <Jan.Aerts at wur.nl> wrote:
> > > You're right... Should have looked at the actual expression.
> > > Idea: is it possible in this case to call subroutines from within a regex
> and evaluating them using the 'e' switch?
> > 
> > if i recall::
> > 
> > sub foo {
> >            return 'hello genome';
> > }
> > 
> > $data = "ih ho hum bababa";
> > 
> > $data =~ s/ih/foo/e; #one way to do it.
> > 
> > print "$data\n";
> > 
> > seems to work..
> 
> 
> -- 
> Willy
> http://www.hackswell.com/corenth
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
> 




More information about the Bioperl-l mailing list