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
1.191 visualizaciones desde el 29 de Julio del 2019
232,4 KB
25 paginas
Creado hace 8a (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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad