Your SlideShare is downloading. ×
Python en ciencia Pycon Argentina 2009
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Python en ciencia Pycon Argentina 2009

3,141
views

Published on

Razones para usar Python en proyectos científicos, incluyendo ejemplos de uso en la vida real en el area de bioinformatica.

Razones para usar Python en proyectos científicos, incluyendo ejemplos de uso en la vida real en el area de bioinformatica.

Published in: Technology, Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,141
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Inexact : >>> getcontext() Context(..., flags=[Rounded, Inexact], ...) Rounded : This signal is used to detect loss of significant digits. >>> getcontext() Context(..., flags=[Rounded], ...)
  • Por ejemplo, dos autos del mismo modelo, color, motor, salidos de la misma línea de producción el mismo día no dejan de ser dos autos diferentes, por más que su conjunto de atributos y sus valores sean iguales. La única posibilidad de que dos objetos sean iguales es que sean el mismo objeto.
  • La forma más sencilla de entender el concepto de clase es si la vemos como una agrupación de objetos con características similares. Por ejemplo, un auto ES UN tipo particular de vehículo motorizado, con lo cual dentro de su comportamiento podemos encontrar “arrancar” y “frenar”, entre otros. Ahora bien, una motocicleta también ES UN vehículo motorizado, y tiene dentro de su comportamiento “arrancar” y “frenar”. El conjunto de atributos también es compartido entre una motocicleta y un automóvil, aunque sus valores no coincidan necesariamente. Por ejemplo, ambos tienen el atributo “cantidad de ruedas”, sólo que el auto tiene 4 y la motocicleta 2.
  • Otra forma útil de ver una clase es como una plantilla, plano o molde de un conjunto de entidades a partir del cual se crearán luego instancias particulares (los objetos). La interacción de las entidades en el mundo real se produce entre objetos, no entre clases. Las clases no tienen “vida” en el mundo real, los objetos sí. Para poder interactuar con alguna clase deberemos crear una instancia particular de ella, con un conjunto de valores definidos para los atributos. A este proceso se lo conoce como “instanciación de un objeto”.
  • Transcript

    • 1. Python y ciencia
        • Sebastián Bassi
        • GenesDigitales, SoLAr, Biopython, DNALinux, PyAr, Wikimedia-AR, INTA (EuSol)
      Una fórmula exitosa
    • 2. ¿Qué es Python?
      • Python es un lenguaje de programación orientado a objetos que puede usarse para varios tipos de desarrollo de software. Ofrece soporte para integrarse con otros lenguajes y herramientas, viene con una importante biblioteca estándar, y puede aprenderse en pocos días.
    • 3. Características de Python
      • Libre y gratuito.
      • Fácil de leer.
      • Multiparadigma.
      • Fácil de aprender.
      • Tipo de datos versátiles (alto nivel).
      • Viene con pilas:
    • 4. Fácil de leer
      • Copiar archivo en C:
      • #include <stdio.h>
      • int main(int argc, char **argv) {
      • FILE *in, *out;
      • int c;
      • in = fopen(&quot;input.txt&quot;, &quot;r&quot;);
      • out = fopen(&quot;output.txt&quot;, &quot;w&quot;);
      • while ((c = fgetc(in)) != EOF) {
      • fputc(c, out);
      • }
      • fclose(out);
      • fclose(in);
      • }
    • 5. Fácil de leer
      • Copiar archivo en Python:
      • out = open(&quot;output.txt&quot;, &quot;w&quot;)
      • out.writelines(open(&quot;input.txt&quot;))
      • out.close()
    • 6. Multiplataforma
      • Ademas de funcionar en los “sospechosos de siempre” (Linux, Windows y OSX), corre en JAVA VM (Jython), .Net (IronPython), Celulares (Nokia S-60), iPod, Palm, Reproductores MP3 (iRiver).
    • 7. Tipos de datos
      • Numericos: Int, float, complex, decimal.
      • Strings (Unicode “nativo”): “qwerty”
      • Listas: ['espada','pócima','comida']
      • Tuplas: (23,54,-78)
      • Sets: {'ssr23','ssr15','ssr12','ssr32'}
      • Dict: {'blanco':'blanka','azul':'blua'} {1:(2.4,11.8), 2:(0,13), 4:(71.1,98)}
    • 8. Las pilas (I):
        • Servicios del sistema, fecha y hora, subprocesos, sockets internacionalización y localización, base de datos, threads, formatos zip, bzip2, gzip, tar, expresiones regulares, XML (DOM y SAX), Unicode, SGML, HTML, XHTML, XML-RPC (cliente y servidor), email, clientes HTTP, FTP, SMTP, NNTP, POP3, IMAP4, servidores HTTP, SMTP, herramientas MIME, interfaz con el garbage collector, serializador y deserializador de objetos, debugger, profiler, random, curses, logging, compilador, decompilador, CSV, análisis lexicográfico, interfaz gráfica incorporada, matemática real y compleja, criptografía (MD5 y SHA)
    • 9. Las pilas (II)
        • Bases de datos
        • MySQL, SQLite, PostgresSQL, MS SQL, Informix, DB/2, Sybase
        • Interfaces gráficas
        • Qt, GTK, win32, wxWidgets, Cairo
        • Frameworks Web
        • Django, Turbogears, Zope, Plone, webpy
        • Y un montón más de temas...
        • Biopython: Manejo de secuencias
        • PIL: para trabajar con imágenes
        • PyGame: juegos, presentaciones, gráficos
        • SymPy: matemática simbólica
        • Numpy: calculos de alta performance
        • ...
    • 10.  
    • 11.  
    • 12.  
    • 13. Características deseables de un lenguaje para uso en ciencia.
      • Libre y gratuito.
      • Fácil de leer.
      • Fácil de aprender.
      • Tipo de datos versátiles (alto nivel).
      • Biblioteca completa (incorporada y disponible externamente).
      • Suficientemente rápido
    • 14. Matemática
      • NumPy:
        • Manejo de matrices N-dimensionales.
        • Funciones algebra lineal
        • Transformaciones de Fourier
        • Números aleatorios sofisticados
        • Herramientas para integrar código C++ y Fortran
      • Matplotlib: “framework para crear gráficos científicos similares a las herramientas provistas por Matlab”.
      • Chaco: 2-Dimensional Plotting
      • Interfase: GNUPLOT, R, MATLAB.
    • 15.  
    • 16. Matemática
      • Interfases: GNUPLOT, R, MATLAB: FNUPlot-py, Rpy, PyMAT
    • 17. Bioinformática
    • 18. 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 profesionales
      • Buen lenguaje para prototipos: Es rápido para “codear”.
      • Apto para aplicaciones web: Método estandar en laboratorios para mostrar datos.
    • 19. Biopython
      • Manipular secuencias
      • Enzimas de restricción
      • BLAST (local y online)
      • Acceso a bases de datos online (e.g. NCBI's EUtils)
      • Herramientas CLI (e.g. clustalw, emboss)
      • Clustering (Bio.Cluster)
      • Filogenética (Bio.Nexus)
      • Estructura proteica (Bio.PDB)
      • Soporte BioSQL
      • Genética de población (Bio.PopGen)
    • 20.  
    • 21.  
    • 22.  
    • 23.  
    • 24. Efecto de la reina roja
    • 25. 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
    • 26. Selección tradicional
      • Se determina una propiedad (trait) que se desea modificar (altura, % de aceite del grano, 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 (para licuar otros genes de la fuente del trait)
    • 27. Se busca la fuente del trait
    • 28.  
    • 29. X Planta con trait deseado (0% genes “elite”) Planta “elite” (100% genes “elite”) F1
    • 30. X Planta con trait deseado y 50% de genes “elite” Planta “elite” (100%) F2
    • 31. X Planta con trait deseado y 75% de genes “elite” Planta “elite” (100%) F3
    • 32. X Planta con trait deseado y 87,5% de genes “elite” Planta “elite” (100%) F4
    • 33. Ganancia genética
      • ½ + ¼ + 1/8 + 1/16 + ....
      • En la F7 tenemos 98% de genes “elite”, pero conservando el gen “introducido”.
    • 34. MAS
      • Se determina una propiedad (trait) que se desea modificar.
      • 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
    • 35. Se busca la fuente del trait
    • 36.  
    • 37. X Planta con trait deseado (0% genes “elite”) Planta “elite” (100% genes “elite”) F1
    • 38. X Planta con trait deseado y 50% de genes “elite” Planta “elite” (100%) F2
    • 39. X Planta con trait deseado y 75% de genes “elite” Planta “elite” (100%) F3
    • 40. Ventajas uso de MAS
      • Aceleración de tiempos.
      • Ahorro al no continuar lineas sin el trait.
      • Precisión al usar variable mas reproducible.
    • 41. 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
    • 42.  
    • 43.
      • 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
    • 44. Búsqueda de intrones
    • 45.  
    • 46.  
    • 47. Mitocondria
      • Involucrada en la sintesis de ATP en la célula eucariota
      • Datos interesantes:
      • i) Sus origenes se remontan a un evento de endosimbiosis en la que una célula procarionte fue envaginada por otro procarionte para formar un linaje con dos genemas ( Teoria endosimbiotica )
      • ii) La mitocondria contiene un genoma pequeño y circular que interactua con el genoma nuclear,
      • iii) Tiene gran variacion genetica en su secuencia.
      • Mitochondrial genome structure is of fundamental importance to understanding genetics, evolutionary and biochemical processes that take place into this organelle in crop model species
    • 48. Métodos 1- Aislamiento de ADN puro de tomate 12.0 2.0 1.0 1.6 etiolated seedlings Fraction number 0 20 40 60 80 10 0 27 31 % of maximum activity PFP cyt c enriched mit fraction @ Percoll gradient fract intact mit “ pure” mit DNAse treatment DNA extraction 2- Contaminación de ADN y QC amplificando marcadores conocidos rbcL chl COXII mit 1:10 actin ncl 1:50 1:100 1:400 1:10 1:50 1:10 1:50 1:100 C- 1:200 1:200 C- 1:400 1:100 C- 1:200 1:400
    • 49. Methodological strategy 3- Fragmentecion de ADN y construccion de biblioteca de shot-gun 0.8 1.0 1.6 2.0 3.0 4.0 enz mec cloning and transformation Fast check 4- Secuenciación Nomenclature: SlmiNNZZZXY . This code accounts for: Sl : Solanum lycopersicon (cv Heinz). mi : mitochondrial library NN : library # ZZZ : plate # XY : well in plate
    • 50.  
    • 51. Sequences analysis and annotation pipeline Lecturas son generadas en instrumentos ABI 3101 Asignación de bases por Phred Validación, trimeo y enmascaramiento de vectores con SeqClean Contigs (y singletons) generados por CAP3 Contigs (y singletons) blasteados contra Plant mt, otras mt, y NCBI DB. Provisional map generated by anchoring onto the Nicotiana tabacum mitochondrial genome
    • 52. www.mitochondrialgenome.org
    • 53.  
    • 54.  
    • 55. Mariana Conte Sebastian Bassi Funding Credits Virginia Gonzalez EU-SOL project Partnership and Collaborators Partner groups Alisdair Fernie-Lothar Willmitzer Biosciences Dept, Sao Paulo Uni, Brazil Magdalena Rossi Boyce Thompson Institute, USA Jim Giovannoni Institute of Molecular and Cell Biology of Rosario. Estela Valle Laboratorio de Fisiología y Biologia Celular y Molecular Norberto Iusem Biochemistry and Clinical Immunology Centre, Cordoba University. Ramón Asís
    • 56. Mensaje para el hogar:
      • Python es una plataforma de programación completa para ciencia. No solo es útil para resolver problemas prácticos sino que introduce buenos hábitos de programación.
    • 57. Recursos adicionales
      • PyAr: www.python.org.ar
      • Biopython: www.biopython.org
      • SciPy: www.scipy.org
      • Tutorial en PLoS: tinyurl.com/tutorialplos
      • Libro: tinyurl.com/biopython
      • www.py4bio.com
      • Contacto:
      • [email_address]
      • Twitter: @sbassi

    ×