Transcript

Semiramis Castro Laboratorio de Genómica Evolutiva Licenciatura en Ciencias Genómicas - CCG UNAM Febrero 2015

Introducción Caracteres especiales Cuantificadores y posiciones Agrupamiento y alternativas Escape de caracteres Comprobar equivalencias Encontrar patrones Compilar Sustituciones Subcadenas

Las expresiones regulares nos sirven para encontrar patrones dentro de una cadena (string)

Es necesario escapar algunos caracteres especiales

Existen distintas funciones para cada propósito: encontrar, sustituir, etc. Se encuentran en el módulo re

Símbolo Significado

. Cualquier caracter, excepto \n

\d Cualquier dígito

\D Cualquier caracter que NO sea dígito

\w Cualquier caracter alfanumérico

\W Cualquier caracter que NO sea alfanumérico

\s Espacio en blanco

\S Cualquier caracter que NO sea espacio

\t Tabulador

\n Salto de línea (Unix)

Símbolo Significado

? Cero o una vez

* Cero o más veces

+ Una o más veces

{ n } "n" es un número que indica la cantidad exacta de veces

{ x, y } Mínimo y máximo de ocurrencias

^ Inicio de cadena

$ Final de cadena

Símbolo(s) Uso

( ) Aislar un grupo de caracteres

[ ] Expresar rangos (números, letras, etc)

| Nos permite elegir entre alternativas

cadena="Hola, Mundo. Empecemos" patronParaEncontrarSaludo="^\w+,\s\w+.\.*" secuencia="CCTAGGCTT" opcionesADN="A|T|C|G" opcionesARN="A|U|C|G"

Cuando queremos usar o referirnos a un caracter especial le anteponemos una diagonal invertida

\.py \(

match(patrón, cadena, flag)

flag Significado

re.IGNORECASE No distingue entre mayúsculas y minúsculas

re.VERBOSE Ignorar comentarios y espacios en la expresión

cadena="Hola, Mundo. Empecemos" patron="^\w+,\s\w+.\.*" if re.match(patron, cadena): print("Primero saludaste al mundo") cadena1="Hola" cadena2="hola" if re.match(cadena1, cadena2,re.IGNORECASE): print("Me dijiste Hola")

search(patrón, cadena, flag) cadena="Hola, Mundo. Empecemos" patron="^\w+,\s\w+.\.*" if re.search(patron, cadena): print("Lo encontramos")

findall(patrón, cadena, flag) devuelve una lista con todas las sub-cadenas que cumplan con el patrón

secuencia="TTGAATTCGCTCGAG" EcoRI_XhoI="(GAATTC|CTCGAG)" sitios=re.findall(EcoRI_XhoI, secuencia) print(sitios)

finditer(patrón, cadena, flag) devuelve tuplas con las posiciones de las sub-cadenas que cumplan con el patrón

secuencia="TTGAATTCGCTCGAGAATTCG" EcoRI="(GAATTC|CTTAAG)" posiciones=re.finditer(EcoRI, secuencia) for coordenadas in posiciones: print(coordenadas.span())

compile() nos devuelve un objeto tipo RegexObject

Es un paso previo para ciertos métodos Hace que se lleve a cabo la evaluación de la

expresión regular

sub(conQué, aQuién) uracilos=re.compile("(U|u)+") secuencia="AUGAUGGGUAUUU" ADN=uracilos.sub("T", secuencia) print(ADN) ó secuencia="AUGAUGGGUAUUU" ADN=re.compile("(U|u)+").sub("T", secuencia) print(ADN)

subn(conQué, aQuién) devuelve una tupla con la cadena con los cambios y la cantidad de sustituciones realizadas

secuencia="AUGAUGGGUAUUU" tuplaADN=re.compile("(U|u)+").subn("T", secuencia) print(tuplaADN[0]) print(tuplaADN[1])

split(cadena, máximo) codones="atcaug.ccg.gga.ttc" print(re.compile("\.").split(codones, maxsplit=2))


Recommended