Python en biología molecular (UNLUX 2008)
-
Upload
guestadf0d8 -
Category
Education
-
view
1.359 -
download
0
description
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!!!