Python en biología molecular (UNLUX 2008)

43
Python para biología molecular Sebastián Bassi. UNLUX 2008

description

Charla para dar en UNLUX 2008 http://tinyurl.com/69n2zh

Transcript of Python en biología molecular (UNLUX 2008)

Page 1: Python en biología molecular (UNLUX 2008)

Python para biología molecularSebastián Bassi. UNLUX 2008

Page 2: Python en biología molecular (UNLUX 2008)

La biología está siendo transformada en una ciencia de la información

"LOS COMPUTADORES SON A LA BIOLOGIA, LO QUE LA MATEMÁTICA ES

A LA FISICA"

Page 3: Python en biología molecular (UNLUX 2008)
Page 4: Python en biología molecular (UNLUX 2008)
Page 5: Python en biología molecular (UNLUX 2008)

EL RESULTADO ...

Page 6: Python en biología molecular (UNLUX 2008)

La información acumulada no sólo es información genética (secuencias de DNA).

Expresión de RNAs

Interacción entre proteínas

Estructuras tridimensionales

Anulación sistemática de genes

Etc, etc, ...

Cada vez más diversos estudios comienzan con el análisis de bases de datos.

Cada vez más el trabajo de laboratorio termina en la acumulación de colecciones masivas de datos que deben ser luego analizados

Page 7: Python en biología molecular (UNLUX 2008)

“This deluge of genomic information has, in turn, led to an absolute requirement for computerized databases to store, organize, and index the data and for specialized tools to view and analyze the data.”

Source: NCBI, National Center for Biotechnology Information

www.ncbi.nlm.nih.gov

Page 8: Python en biología molecular (UNLUX 2008)

BIOINFORMÁTICA

BIOLOGÍA COMPUTACIONAL

INFORMACIÓN GENÉTICA ESTRUCTURA MOLECULAR

FUNCIONESFENOTIPO

Page 9: Python en biología molecular (UNLUX 2008)

Desarrollo e implementación de herramientas para acceder, usar y administrar varios tipos de información.

Desarrollo de nuevos algoritmos para establecer relaciones entre miembros de grandes cantidades de datos: Localizar genes en secuencias, predecir estructuras proteicas o función, establecer relaciones evolutivas, agrupar proteinas en familias, etc.

Campos de acción de la bioinformática

Page 10: Python en biología molecular (UNLUX 2008)

Lenguajes: Compilados vs. Interpretados

Esquema ciclo de lenguaje compilado

The Intute Consortium. This material may be freely distributed and copied for educational purposes only, provided that appropriate acknowledgement is given to Intute as the copyright holder and original publisher.

Page 11: Python en biología molecular (UNLUX 2008)

Ejecución programa interpretado

The Intute Consortium. This material may be freely distributed and copied for educational purposes only, provided that appropriate acknowledgement is given to Intute as the copyright holder and original publisher.

Ciclo de desarrollo mas corto.Mayor tiempo de ejecución.

Page 12: Python en biología molecular (UNLUX 2008)

Scripting

Asociado a “lenguaje interpretado”Automatización de tareas.Interfase con otros programasEjemplos: Perl – Python – PHP – Ruby – Tlc – JS (ojo: JS!=JAVA)

Page 13: Python en biología molecular (UNLUX 2008)

Algunos usuarios de Python

Page 14: Python en biología molecular (UNLUX 2008)

Ventajas de Python para Bioinformática

Manejo de texto y expresiones regulares: Nombres de secuencias, secuencias, anotaciones, referencias bibliograficas, etc.Modular: Puede integrarse upstream o downstream con otros programas (en Python o en otros lenguajes).Fácil de escribir: Ideal para programadores no profesionalesBuen lenguaje para prototipos: Es rápido para “codear”.Apto para aplicaciones web: Método estandar en laboratorios para mostrar datos.

Page 15: Python en biología molecular (UNLUX 2008)

www.mitochondrialgenome.org

Page 16: Python en biología molecular (UNLUX 2008)

Copia de archivo en C

#include <stdio.h>int main(int argc, char **argv) { FILE *in, *out; int c; in = fopen("input.txt", "r"); out = fopen("output.txt", "w"); while ((c = fgetc(in)) != EOF) { fputc(c, out); } fclose(out); fclose(in);}

Page 17: Python en biología molecular (UNLUX 2008)

Copia de archivo en Python

in = open("input.txt")out = open("output.txt", "w")out.writelines(in)

Page 18: Python en biología molecular (UNLUX 2008)

Biopython

Colección de módulos para análisis bioinfomático

Soporte de secuencias, formatos biológicos y operaciones comunes

Proyecto abierto y colaborativo (cualquiera puede aportar).

Dependencias mínimas. Dínamico.

www.biopython.org

Page 19: Python en biología molecular (UNLUX 2008)

Aplicaciones bioinformáticas: Búsqueda de similitud de secuencias.

BLAST: Basic Local Alignment Search Tool

Descripción del problema: Se obtienen nuevas secuencias y se quiere averiguar su función (¿codifica para una proteína? ¿que función cumple?)

Page 20: Python en biología molecular (UNLUX 2008)
Page 21: Python en biología molecular (UNLUX 2008)
Page 22: Python en biología molecular (UNLUX 2008)

Biopython:

NCBIStandalone and NCBIXML

>>> from Bio.Blast import NCBIStandalone>>> rh, eh = NCBIStandalone.blastall(my_blast_exe, "blastn", my_blast_db, in_file)

>>> from Bio.Blast import NCBIXML>>> blast_records = NCBIXML.parse(rh)

Page 23: Python en biología molecular (UNLUX 2008)

M.A.S (Selección Asistida por marcadores).

➲ Técnica utilizada actualmente para la mayoría de los traits.

➲ Seguimiento de los traits usando marcadores moleculares

➲ Conceptos involucrados: Selección “tradicional”. Marcadores moleculares

Page 24: Python en biología molecular (UNLUX 2008)

Selección tradicional➲ Se determina una propiedad (trait)

que se desea modificar (altura, % de aceite, color de hoja resistencia a quiebre, a enfermedades, etc).

➲ Se identifica fuente del trait (o se induce si no la hubiese).

➲ Se cruza la variedad que tiene el trait de interes, contra línea elite.

➲ Se busca en la descendencia a los portadores del trait.

➲ Se cruza nuevamente con los progenitores

Page 25: Python en biología molecular (UNLUX 2008)

Marcadores moleculares

➲ Permiten “mapear” zonas específicas del cromosoma.

➲ Tienen sentido ubicarlos en regiones de alta variabilidad nucleotídica:

Regiones no codificantes (NCR, aka “junk DNA”).

Intrones Secuencias repetitivas.

Page 26: Python en biología molecular (UNLUX 2008)

MAS➲ Se determina una propiedad (trait)

que se desea modificar (altura, % de aceite, color de hoja resistencia a quiebre, a enfermedades, etc).

➲ Se identifica fuente del trait (o se induce si no la hubiese).

➲ Se cruza la variedad que tiene el trait de interes, contra línea elite.

➲ Se busca en la descendencia a los portadores de los marcadores.

➲ Se cruza nuevamente con los progenitores

Page 27: Python en biología molecular (UNLUX 2008)

Ventajas uso de MAS

➲ Aceleración de tiempos.

➲ Ahorro al no continuar lineas sin el trait.

Page 28: Python en biología molecular (UNLUX 2008)

Aportes de la Bioinformática al MAS

➲ Construcción de bases de datos de marcadores moleculares

➲ ID de NCR➲ Diseño de primers➲ Búsqueda regiones polimorficas➲ ID de SNPs

Page 29: Python en biología molecular (UNLUX 2008)

Estrategia de selección de primers

Partida: Secuencia “blanco” (EST) Objetivo: Buscar 1 zona de + variabilidad

rodeada de zonas “estables” (- variabilidad). Estrategia: Predecir intrones en el EST en base

a Arabidopsis Thaliana.

Page 30: Python en biología molecular (UNLUX 2008)
Page 31: Python en biología molecular (UNLUX 2008)

Búsqueda de intrones

Page 32: Python en biología molecular (UNLUX 2008)

Búsqueda por homología de secuencia homologa en AT mRNA: BLAST. Herramientas: NCBIStandalone y NCBIXML

Database retrieval de los resultados. Herramientas: MySQL-Python o SQLite

Alineamiento de 3 secuencias: problema (o target), AT mRNA y AT full length. Herramientas: Bio.Clustalw.MultipleAlignCL y Bio.Clustalw.do_alignment

Page 33: Python en biología molecular (UNLUX 2008)

>>> from Bio.Clustalw import MultipleAlignCL

>>> clpath='/opt/clustalw'

>>> cl = MultipleAlignCL('i_file.fas',command=clpath)

>>> cl.set_output('cltest.txt')

>>> from Bio.Clustalw import do_alignment

>>> align = do_alignment(cl)

>>> for seq in align.get_all_seqs():

.... print seq.description

.... print seq.seq

40|1tetH|gi|13278069

QVQLQQSDAELVKPGASVKISCKVSGYTFTDHT----IHWVKQRPE

139|1tetH|gi|19343851

QVQLLQSGPELVKPGASVKISCRASGYAFSKSW----MNWVKRRPG

Page 34: Python en biología molecular (UNLUX 2008)
Page 35: Python en biología molecular (UNLUX 2008)

Relaciones entre especies

Sintenia: Preservación de un orden dado de genes entre cromosomas de especies relacionadas.

Ejemplo con AT (fuente: Wikipedia).

Page 36: Python en biología molecular (UNLUX 2008)

Herramientas

import cPickleimport csvfrom Bio import SeqIO, SeqRecord, Seqfrom Bio.Blast import NCBIStandalonefrom Bio.Blast import NCBIXMLimport xlrd

Page 37: Python en biología molecular (UNLUX 2008)
Page 38: Python en biología molecular (UNLUX 2008)

Envio de secuencias a Genbank

Blog post: tinyurl.com/seqsubmit

Page 39: Python en biología molecular (UNLUX 2008)

Modelado molecular

Programa de referencia en modelado molecular: Core en FORTRAN, “scripteable” en Python.

Page 40: Python en biología molecular (UNLUX 2008)
Page 41: Python en biología molecular (UNLUX 2008)
Page 42: Python en biología molecular (UNLUX 2008)
Page 43: Python en biología molecular (UNLUX 2008)

Para saber mas... www.python.org www.biopython.org www.python.com.ar (PyAr) www.bioinformatica.info PLoS Python: tinyurl.com/pythonplos PLoS Argentina: tinyurl.com/bioargentina Libro: tinyurl.com/biopython XML MiniDOM: tinyurl.com/xmlminidom

¡¡¡GRACIAS!!!