Re: [Python-es] Problemas con el modulo re

2012-03-05 Por tema Carlos Zuniga
2012/3/1 alito s alit...@gmail.com:
 Hola de nuevo:
 Ya tengo respuesta a mi pequeño dilema.
 Les pongo el código y espero que a alguien le sirva en un futuro.

 match1 = re.compile(r^()(.+)(\n)(UGAGGUAGUAGGUUGUAU)(\w+), re.MULTILINE)
 for match in match1.finditer(myfile):
      sequence = match.group()
      print sequence

 El detalle estaba en que cuando uno quiere buscar en diferentes líneas,
 tiene que utilizar MULTILINE, jeje...
 Si alguien tiene alguna sugerencia, es bienvenida.
 Saludos!

Cuando necesito iterar sobre pares de algo utilizo está función:

def iterpairs(iterable):
it = iter(iterable)
first = next(it)
for second in it:
yield first, second
first = second

Que por ejemplo para 'ABCDE' devuelve AB, BC, CD y DE.
En caso del código en tu primer mensaje quedaría así:

for line1, line2 in iterpairs(myfile):
match1 = re.search(r'()(.*)(\n)', line1)
match2 = re.search(r'(UGAGGUAGUAGGUUGUAU)(\w+)', line2)
if match2:
print match1.group() + \n
print match2.group() + \n


Saludos

-- 
Linux Registered User # 386081
A menudo unas pocas horas de Prueba y error podrán ahorrarte minutos
de leer manuales.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problemas con el modulo re

2012-03-05 Por tema alito81


Hola Carlos:
Gracias por tu sugerencia. Como siempre hay mil formas de hacerse cosas.
Saludos!

El 05/03/2012, a las 06:34, Carlos Zuniga carlos@gmail.com escribió:

 2012/3/1 alito s alit...@gmail.com:
 Hola de nuevo:
 Ya tengo respuesta a mi pequeño dilema.
 Les pongo el código y espero que a alguien le sirva en un futuro.
 
 match1 = re.compile(r^()(.+)(\n)(UGAGGUAGUAGGUUGUAU)(\w+), re.MULTILINE)
 for match in match1.finditer(myfile):
  sequence = match.group()
  print sequence
 
 El detalle estaba en que cuando uno quiere buscar en diferentes líneas,
 tiene que utilizar MULTILINE, jeje...
 Si alguien tiene alguna sugerencia, es bienvenida.
 Saludos!
 
 Cuando necesito iterar sobre pares de algo utilizo está función:
 
 def iterpairs(iterable):
it = iter(iterable)
first = next(it)
for second in it:
yield first, second
first = second
 
 Que por ejemplo para 'ABCDE' devuelve AB, BC, CD y DE.
 En caso del código en tu primer mensaje quedaría así:
 
 for line1, line2 in iterpairs(myfile):
match1 = re.search(r'()(.*)(\n)', line1)
match2 = re.search(r'(UGAGGUAGUAGGUUGUAU)(\w+)', line2)
if match2:
print match1.group() + \n
print match2.group() + \n
 
 
 Saludos
 
 -- 
 Linux Registered User # 386081
 A menudo unas pocas horas de Prueba y error podrán ahorrarte minutos
 de leer manuales.
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


[Python-es] Problemas con el modulo re

2012-03-01 Por tema alito s
Hola a tod@s:
Me gustaría preguntarles una cosa, quizás muy básica pero llevo un ratito
rompiendome la cabeza. Resulta que estoy buscando una secuencia en
particular en un formato denominado fasta. Mi problema viene cuando quiero
que me ponga el nombre de la secuencia y además lo que estoy buscando en la
secuencia.
Por ejemplo, el archivo fasta consta de un  dónde se encuentra el nombre
de la secuencia, seguido por un \n y posteriormente la secuencia como tal.

Ejemplo de formato fasta
hsa58962351 | 4568
CUGUACAGCCUCCUAGCUUUCC

Hice el siguiente programa:

inp = open(files, 'r')
myfile = inp.readlines()
for line in myfile:
 match1 = re.search(r'()(.*)(\n)', line)
 match2 = re.search(r'(UGAGGUAGUAGGUUGUAU)(\w+)', line)

# Es aqui donde ya me hago pelotas, porque lo que quiero es que me imprima
en la pantalla tanto el nombre de la secuencia como la línea donde entontro
mi secuencia determinada (match2).
# Entonces pongo algo así:
 if match2:
  print match1.group() + \n
  print match2.group() + \n

# Evidentemente aqui tengo un error garrafal porque match2 no lo encuentra,
simplemente porque no se encuentra en la misma línea dónde busco match1.
Entonces decidi hacer lo siguiente:

for line in myfile:
 match1 = re.search(r'()(.*)(\n)(UGAGGUAGUAGGUUGUAU)(\w+)', line)

Pero tampoco me funciona. Así que después de contarles mi trágica historia
quería ver si alguien de ustedes sabe como buscar en varias líneas o como
imprimir mis busquedas (el caso en donde busco match1 y match2) en la
pantalla.
Gracias.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problemas con el modulo re

2012-03-01 Por tema alito s
Hola de nuevo:
Ya tengo respuesta a mi pequeño dilema.
Les pongo el código y espero que a alguien le sirva en un futuro.

match1 = re.compile(r^()(.+)(\n)(UGAGGUAGUAGGUUGUAU)(\w+), re.MULTILINE)
for match in match1.finditer(myfile):
 sequence = match.group()
 print sequence

El detalle estaba en que cuando uno quiere buscar en diferentes líneas,
tiene que utilizar MULTILINE, jeje...
Si alguien tiene alguna sugerencia, es bienvenida.
Saludos!

2012/3/1 alito s alit...@gmail.com

 Hola a tod@s:
 Me gustaría preguntarles una cosa, quizás muy básica pero llevo un ratito
 rompiendome la cabeza. Resulta que estoy buscando una secuencia en
 particular en un formato denominado fasta. Mi problema viene cuando quiero
 que me ponga el nombre de la secuencia y además lo que estoy buscando en la
 secuencia.
 Por ejemplo, el archivo fasta consta de un  dónde se encuentra el
 nombre de la secuencia, seguido por un \n y posteriormente la secuencia
 como tal.

 Ejemplo de formato fasta
 hsa58962351 | 4568
 CUGUACAGCCUCCUAGCUUUCC

 Hice el siguiente programa:

 inp = open(files, 'r')
 myfile = inp.readlines()
 for line in myfile:
  match1 = re.search(r'()(.*)(\n)', line)
  match2 = re.search(r'(UGAGGUAGUAGGUUGUAU)(\w+)', line)

 # Es aqui donde ya me hago pelotas, porque lo que quiero es que me imprima
 en la pantalla tanto el nombre de la secuencia como la línea donde entontro
 mi secuencia determinada (match2).
 # Entonces pongo algo así:
  if match2:
   print match1.group() + \n
   print match2.group() + \n

 # Evidentemente aqui tengo un error garrafal porque match2 no lo
 encuentra, simplemente porque no se encuentra en la misma línea dónde busco
 match1. Entonces decidi hacer lo siguiente:

 for line in myfile:
  match1 = re.search(r'()(.*)(\n)(UGAGGUAGUAGGUUGUAU)(\w+)', line)

 Pero tampoco me funciona. Así que después de contarles mi trágica historia
 quería ver si alguien de ustedes sabe como buscar en varias líneas o como
 imprimir mis busquedas (el caso en donde busco match1 y match2) en la
 pantalla.
 Gracias.

___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/