Python en biología molecular (UNLUX 2008)

Post on 21-Jun-2015

1.360 views 0 download

description

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

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

Python para biología molecularSebastián Bassi. 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"

EL RESULTADO ...

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

“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

BIOINFORMÁTICA

BIOLOGÍA COMPUTACIONAL

INFORMACIÓN GENÉTICA ESTRUCTURA MOLECULAR

FUNCIONESFENOTIPO

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

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.

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.

Scripting

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

Algunos usuarios de Python

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.

www.mitochondrialgenome.org

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);}

Copia de archivo en Python

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

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

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?)

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)

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

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

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.

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

Ventajas uso de MAS

➲ Aceleración de tiempos.

➲ Ahorro al no continuar lineas sin el trait.

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

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.

Búsqueda de intrones

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

>>> 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

Relaciones entre especies

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

Ejemplo con AT (fuente: Wikipedia).

Herramientas

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

Envio de secuencias a Genbank

Blog post: tinyurl.com/seqsubmit

Modelado molecular

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

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!!!