search pattern

L

Li Chen

Hi all,

I have a Ruby script as follow. What I try to do is to find a pattern in
the string and report its position. I wonder how to get the position of
pattern in the string.

Thank you in advance,

Li



seq="5'aaaAAAAAACCCCCCCCTTTTTTTGGGGGGGGG-3'"

seq.upcase!# change to upper case
puts "old sequence:"
puts seq.gsub!(/[^A-Z]/,'')# extract the string
puts pattern if seq=~/AC/

#how to get the position of pattern in the string?
 
S

Stefano Crocco

Alle gioved=C3=AC 10 gennaio 2008, Li Chen ha scritto:
Hi all,

I have a Ruby script as follow. What I try to do is to find a pattern in
the string and report its position. I wonder how to get the position of
pattern in the string.

Thank you in advance,

Li



seq=3D"5'aaaAAAAAACCCCCCCCTTTTTTTGGGGGGGGG-3'"

seq.upcase!# change to upper case
puts "old sequence:"
puts seq.gsub!(/[^A-Z]/,'')# extract the string
puts pattern if seq=3D~/AC/

#how to get the position of pattern in the string?

String=3D~ returns the position of the starting of the match, so

seq=3D~pattern

will return what you want.

Stefano
 
L

Li Chen

Stefano said:
Alle giovedì 10 gennaio 2008, Li Chen ha scritto:
seq="5'aaaAAAAAACCCCCCCCTTTTTTTGGGGGGGGG-3'"

seq.upcase!# change to upper case
puts "old sequence:"
puts seq.gsub!(/[^A-Z]/,'')# extract the string
puts pattern if seq=~/AC/

#how to get the position of pattern in the string?

String=~ returns the position of the starting of the match, so

seq=~pattern

will return what you want.

Stefano
The size if seq is 33. What I try to do is starting position of "AC" in
the seq.

How do I calculate the position of it?

Thanks,

Li
 
S

Siep Korteling

Li said:
The size if seq is 33. What I try to do is starting position of "AC" in
the seq.

How do I calculate the position of it?

Thanks,

Li
You're so close.

seq="5'aaaAAAAAACCCCCCCCTTTTTTTGGGGGGGGG-3'"

seq.upcase!# change to upper case
puts "old sequence:"
puts seq.gsub!(/[^A-Z]/,'')# extract the string
puts position = seq=~/AC/
#The counting starts at zero. Or use the more simple but less powerfull
puts position = seq.index("AC")

regards,

Siep
 
S

Sebastian Hungerecker

Li said:
The size if seq is 33. What I try to do is starting position of "AC" in
the seq.

How do I calculate the position of it?

For some reason I have the Jeopardy melody in my head now...
Anyway:
seq="AACGTGTAGGCTTGAAA" => "AACGTGTAGGCTTGAAA"
pattern = /TA/ => TA
position = seq =~ pattern => 6
seq[position,2] => "TA"
seq[position..-1] => "TAGGCTTGAAA"
seq[pattern]
=> "TA"


HTH,
Sebastian
 
L

Li Chen

Hi all,

Thank you all for the help.

Now I have a question: is it possible in Ruby to highlight or underscore
or use different font size for the found pattern?

Li
 
S

Sebastian Hungerecker

Li said:
Now I have a question: is it possible in Ruby to highlight or underscore
or use different font size for the found pattern?

That depends on how/where you output the data, obviously. If you're writing a
GUI app or a webpage you can, of course, go as crazy with the font as you
want to.
In terminal apps you don't have control about font size or face. Changing
color, inverting color or underlining is possible, but terminal dependant
(specifically I don't think the terminal in Windows handles ANSI escape
sequences). There probably are gems to abstract away the differences between
platforms, though.


HTH,
Sebastian
 
L

Li Chen

Sebastian said:
That depends on how/where you output the data, obviously. If you're
writing a
GUI app or a webpage you can, of course, go as crazy with the font as
you
want to.
In terminal apps you don't have control about font size or face.
Changing
color, inverting color or underlining is possible, but terminal
dependant
(specifically I don't think the terminal in Windows handles ANSI escape
sequences). There probably are gems to abstract away the differences
between
platforms, though.


HTH,
Sebastian

Thank you so much,

Li
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,276
Messages
2,571,384
Members
48,073
Latest member
ImogenePal

Latest Threads

Top