PDF de programación - Programación en Python 3

Imágen de pdf Programación en Python 3

Programación en Python 3gráfica de visualizaciones

Publicado el 29 de Julio del 2019
654 visualizaciones desde el 29 de Julio del 2019
232,4 KB
25 paginas
Creado hace 4a (14/12/2015)
PROGRAMACIÓN EN
PYTHON 3

Clara Higuera
Laboratorio Integrado de Biofísica y
Bioinformática
Nov-2015


Ficheros de texto
•  Los ficheros son secuencias de datos almacenados en disco
(real o virtual)
•  Primero, abrir el fichero para obtener un manejador (handle)
•  Se especifica la ruta hasta el fichero y el modo de operación
(opcional), ambos como cadenas

>>> fh = open('file.txt', 'r')

•  Rutas:Absolutas: ruta completa desde raiz

•  'C:\Users\Alice\file.txt’

•  Relativas: Desde el directorio actual

Ficheros de texto
•  Modos

•  'r': Sólo lectura (modo por defecto)
•  'w': Escritura (¡OJO! El fichero se crea de nuevo)
•  'a': Adición

•  En modo 'w' o 'a', el fichero se crea. En modo 'w' se
sobreescriben los contenidos
•  Un '+' tras la letra indica tanto lectura como escritura

Ficheros de texto
•  Lectura de ficheros

•  Un fichero de texto se puede leer de una vez

>>> fh = open('fichero.txt')
>>> contenido = fh.read() # Leemos todo el fichero
•  Devuelve una cadena con todo el contenido del fichero.



•  También se puede leer linea a linea

>>> l1 = fh.readline() # Leemos una línea
>>> l2 = fh.readline() # Hasta que se agotan

•  O almacenar todas las líneas en una lista, donde cada elemento de

la lista contiene una línea
>>> lista = fh.readlines()

Ficheros de texto
•  Lectura

•  Al terminar de acceder al fichero debemos cerrar el recurso

>>> fh.close()

•  A menudo, necesitaremos leer el fichero línea a línea y eliminar los

saltos de línea

•  También podemos usar un bucle para ir accediendo a cada línea

for linea in fh:
print linea

Ficheros de texto
•  Escritura

>>> fh = open('nuevo.txt','w')

•  Para escribir un fichero, primero lo abrimos en mode 'w' o 'a’


•  Cuidado con borrar el contenido de un fichero ya existente
•  El método para escribir es write

>>> fh.write("Contenido\n") # No olvidar '\n'

•  El método write recibe como parámetro una cadena.
>>> fh.write(10) # ERROR! Hay que convertir con str

Ficheros de texto
•  Lectura

•  Ejercicio 1

•  Descargar del campus fichero fasta_file.fasta
>gi|182723|gb|J00140.1|HUMFOLMES Human dihydrofolate reductase gene
TGCAGGGGGGGGGGGGGGGGCGGAGGTCCTCCCGCTGCTGTCATGGTTGGTTCGCTAAACTGCATCGTCG
CTGTGTCCCAGAACATGGGCATCGGCAAGAACGGGGACCTGCCCTGGCCACCGCTCAGGAATGAATTCAG
ATATTTCCAGAGAATGACCACAACCTCTTCAGTAGAAGGTAAACAGAATCTGGTGATTATGGGTAAGAAG
ACCTGGTTCTCCATTCCTGAGAAGAATCGACCTTTAAAGGGTAGAATTAATTTAGTTCTCAGCAGAGAAC
TCAAGGAACCTCCACAAGGAGCTCATTTTCTTTCCAGAAGTCTAGATGATGCCTTAAAACTTACTGAACA
ACCAGAATTAGCAAATAAAGTAGACATGGTCTGGATAGTTGGTGGCAGTTCTGTTTATAAGGAAGCCATG
AATCACCCAGGCCATCTTAAACTATTTGTGACAAGGATCATGCAAGACTTTGAAAGTGACACGTTTTTTC
CAGAAATTGATTTGGAGAAATATAAACTTCTGCCAGAATACCCAGGTGTTCTCTCTGATGTCCAGGAGGA
GAAAGGCATTAAGTACAAATTTGAAGTATATGAGAAGAATGATTAATATGAAGGTGTTTTCTAGTTTAAG
TTGTTCCCCCTCCCTCTGAAAAAAGTATGTATTTTTACATTAGAAAAGGTTTTTTGTTGACTTTAGATCT
ATAATTATTTCTAAGCAACTTGTTTTTATTCCCCACTACTCTTCTCTCTATCAGATACCATTTATGAGAC
ATTCTTGCTATAACTAAGTGCTTCTCCAAGACCCCAACTGAGTCCCCAGCACCTGCTACAGTGAGCTGCC
ATTCCACACCCATCACATGTGGCACTCTTGCCAGTCCTTGACATTGTCGGGCTTTTCACATGTTGGTAAT
ATTTATTAAAGATGAAGATCCACATACCCTTCAACTGAGCAGTTTCACTAGTGGAAATACCAAAAGCTT

Ficheros de texto

•  Ejercicio 1

•  Abrir el fichero para lectura
•  Almacenar en una variable la primera linea que contiene

información del gen e imprimirla.

•  Leer el resto de líneas y crear una variable que contenga toda la

secuencia de nucleotidos reconstruida sin saltos de línea.
•  Nota: usar la función rstrip() y la concatenación de cadenas

•  Escribir en un nuevo fichero la linea de información del gen en la

primera linea y la secuencia completa de DNA reconstruída sin
saltos de linea.

Ficheros de texto
•  Ejercicio 2

•  Abrir el fichero dna1.txt.
•  Este fichero contiene 5 líneas de cabecero y el resto con
DNA. Ignorar las 5 primeras.
•  Leer las líneas del fichero que contienen DNA en una lista y
reconstruir la cadena no teniendo en cuenta los números que
aparecen al principio
•  Nota: hacer uso de la función split() de cadenas

•  Contar cuántas veces aparece cada una de las bases en la
cadena de DNA.
•  Escribir en un fichero el numero de a’s de c’s, de g’s y t’s

Expresiones regulares
•  Una expresión regular, ER, es una cadena que describe un
patrón.
•  Su utilidad es:

•  Buscar una cadena en otra
•  Extraer las partes deseadas de una cadena
•  Tratar ficheros con formato, como Fasta o GB
•  Analizar secuencias de importancia biológica

•  Por ejemplo, motivos de unión de factores de transcripción, sitios de

enzimas de restricción, etc.

•  Se basan en:

•  Repetición
•  Concatenación
•  Alternancia

Expresiones regulares
•  La ER más sencilla es simplemente una cadena de
caracteres que describe ese patrón

•  ‘Hola’ es la ER que describe al patrón Hola

•  Lo interesante es que una única expresión regular puede
describir a muchos patrones

•  Ejemplo:

•  El punto en una ER describe a cualquier carácter:

‘.ython’ describe al patrón ‘python’, a ’sython’ , o cualquier
palabra de 6 letras acabada en ‘ython’

Expresiones regulares
•  Para poder manejar expresiones regulares:

•  Para hacer una búsqueda, usamos la función search. Busca en la
cadena especificada la primera aparición del patrón si es que se
encuentra.

>>> import re

>>> re.search(exp_regular, cadena)

>>> busqueda = re.search("GCG", "GCAGCATGAGCG")

•  Devuelve un objeto (MatchObject) con el resultado


•  A este objeto están asociadas varias funciones:

>>> busqueda.group()
'GCG'
>>> busqueda.span()
(9, 12)

>>> busqueda.start()
9
>>> busqueda.end()
12

Distingue entre
mayúsculas y
minúsculas

Expresiones regulares
•  El objeto resultado también puede usarse como condición:

busqueda= re.search('hola','hola buenos dias')
if busqueda:
print "encontrado el patron en la cadena”
elif:
print “no encontrado”


•  Otras funciones de el modulo re

•  re.sub(patron, repl, cadena)

Devuelve la cadena obtenida reemplazando las apariciones (no solapadas y por la
izquierda) del patrón en la cadena con repl.



>>> re.sub('tardes','noches','Hola, Buenas tardes')
'Hola, Buenas noches'

Expresiones regulares
•  Caracteres especiales. Hay una serie de caracteres que
tienen significado especial dentro de una ER, por ejemplo
el punto.
•  Los caracteres especiales son:

{ } [ ] ( ) ^ $ . | * + ? \


•  Como en las cadenas de caracteres \ sirve para mostrar
caracteres especiales, si se quiere usar \ para dar
significado a algo en ER debe ponerse doble \\

Expresiones regulares
•  Caracteres especiales
—  . (punto) = Cualquier carácter menos '\n’


Algunos sirven para indicar repeticiones:

* = Cero o más repeticiones del carácter anterior
—  + = Una o más repeticiones del carácter anterior
—  ? = Zero o una vez el carácter anterior
—  {n} = Exactamente n repeticiones del carácter anterior
—  {m,n} = Entre m y n repeticiones del carácter anterior

Expresiones regulares
•  Caracteres especiales

( ) = Grupo. Ej: (CT)* = cero o más repeticiones de CT
\ = Escape. El siguiente carácter se interpreta literalmente

—  P. ej. Para representar ?, es necesario escribir \?

—  | = Separa alternativas, es decir (A|B)C = AC o BC
—  [ ] = Representa conjuntos de caracteres
—  \w = un carácter alfanumerico
—  \W = un carácter no alfanumérico
—  \d = un carácter numérico
—  \D = un carácter no numérico
—  \s = cualquier espacio (lo mismo que \t\n)
—  \S = un no espacio

Expresiones regulares
•  Conjuntos de caracteres


•  Permiten a un conjunto de caracteres, en vez de a uno solo,

aparecer en un punto dado de una ER.


•  Se representan mediante corchetes [ ], donde lo que aparece

dentro de los corchetes son los caracteres que se quiere hacer
coincidir.

•  Ej:

•  [bcr]at identificaría “bat”, “cat” o “rat”
•  [yY][eE][sS] identificaría yes, sin preocuparse de mayúsculas y

minúsculas.
>>> busqueda = re.search("GC[AG]", "GCAGCATGAGCG")
>>> busqueda.group()
'GCA'

Expresiones regulares
•  Conjuntos de caracteres

•  Rangos. Dentro de los conjuntos de caracteres se puede usar

rangos, especificados con –
•  [a‐z] identifica cualquier carácter alfabético en minúsculas
•  [a‐zA‐Z0‐9] identifica cualquier carácter alfabético o numérico
•  Un circunflejo al principio niega, i.e. [^0-9] es cualquier cosa menos un

número

•  Alternancia

•  Se expresan mediante el pipe: |
•  ‘python|perl’ identifica o python o perl
•  ‘p(ython|erl)’ identifica lo mismo

Expresiones regulares

•  Grupos

•  () identifica la ER que esté dentro de los paréntesis.
•  Indica el comienzo y fin de un grupo identificado
•  Se puede acceder a los grupos que se numeran por su paréntesis

izquierdo

•  El grupo 0 es todo el patrón

Expresiones regulares
•  Anclajes

•  ^ busca una subcadena al principio de una cadena
•  ‘^http’
•  $ busca una subcadena al final de una cadena
‘org$’
•  ‘^http$’ identifica solo http

Expresiones regulares
•  Ejercicio 3

•  Para el siguiente código:

busqueda1= re.search(‘(.*)(cat)(.*)', ‘the cat in the hat’)

•  Determinar qué se identifica en cada grupo.

•  Hacer lo mismo para este código:
busqueda2= re.search('(.*)(at)(.*)', 'the cat in the hat')

Expresiones regulares

Ejercicio 4
•  En PERL los nombres de variable se forman igual que en
Python pero van precedidos del símbolo $.
•  Crear un programa que pida al usuario una palabra y diga si es
una variable legal de PERL

Expresiones regulares
Ejercicio 5
En Python los números reales (float) pueden aparecer con
los siguientes formatos:
•  1.23
•  1.
•  3.14e-10
•  4E21
•  4.0e+45

Crear un programa que pida al usuario un número y diga si
es un número real

Expresiones regulares
•  Multiples resultados: findall. Encuentra todos los
pat
  • Links de descarga
http://lwp-l.com/pdf16387

Comentarios de: Programación en Python 3 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad