January 28, 2016

Introducción

Introducción

Introducción

Bioinformática

  • Área de investigación interdisciplinaria entre las ciencias computacionales y las ciencias biológicas
    • Computación
      • para almacenar, recuperar, manipular y distribuir información biológica relacionada con macromoléculas (i.e. DNA, RNA, proteínas, etc.)
      • tareas repetitivas
      • tareas matemáticamente complejas
      • indispensable para minería de datos en genomas, obtención de datos y generación de conocimiento

Introducción

Introducción

Introducción

Bioinformática es Interdisciplinaria

Bioinformática

  • Difiere de la biología computacional
    • Bioinformática se limita al análisis secuencial, estructural y funcional de genes y genomas y sus correspondientes productos y también se conoce como biología molecular computacional
    • Biología computacional incluye otras áreas (no necesariamente relacionadas con macromoléculas biológicas)
      • Modelado matemático de ecosistemas
      • Dinámica de poblaciones
      • Teoría de juegos para estudios de comportamiento

Bioinformática

  • Existen otras deficiniones de bioinformática
    • Algunos autores la ven como el desarrollo de aplicaciones computacionales para todo tipo de datos biológicos
  • Lo que sí podemos decir es que la bioinformática es un área que evoluciona rápidamente

Bioinformática

  • La meta en bioinformática es
    • Entender mejor a la célula viva
    • Entender cómo funciona la célula a nivel molecular
    • Generar conocimiento para proveer una perspectiva global de la célula
    • Entender mejor las funciones de la célula al analizar datos secuenciales
      • Flujo de información genética <– "dogma central" de la biología
      • DNA transcrito a RNA y traducido a proteínas
      • Funciones celular realizadas por proteínas
      • Capacidades de proteíans limitadas por sus secuencias

Bioinformática

  • Dos campos principales en la bioinformática
    • Desarrollo de herramientas computacionales y bases de datos
    • Aplicación de herramientas y bases de datos para generar conocimiento biológico o entender mejor los sistemas vivientes
    • Estos subcampos se complementan

Aplicaciones

Aplicaciones

Aplicaciones

Aplicaciones

Aplicaciones

Definiciones

Algoritmo

  • Un conjunto de operaciones auto-contenidas, paso a paso, que serán ejecutados.
  • Todavía no son específicas para una computadora
  • Son más descriptivas
  • Sí llevan la lógica de lo que ejecutará la computadora pero no está en un lenguaje de programación específico

Algoritmo

Diagrama de Flujo

  • Diagrama que representa un flujo o conjunto de relaciones de un sistema

Programa

  • Conjunto específico y ordenado de operaciones para que las ejecute una computadora.

Lenguaje de Programación

  • Un lenguaje formal hecho para comunicar instrucciones a una máquina, en particular a una computadora.
  • Tienen una sintaxis ("syntax")
    • Las reglas para escribir los comandos
  • Diversos tipos de lenguajes
    • Scripts
    • Orientados a objetos
    • Procedurales
    • Funcionales

Lenguaje de Programación

Lenguaje de Programación

Lenguaje de Programación

Variables

  • Ubicación de almacenamiento que asociamos a un nombre simbólico
  • Nos referimos a la variable por su nombre
  • El valor de la variable puede cambiar durante la ejecución del programa
  • Diferentes tipos de variables
    • String - cadenas
    • Integer - enteros
    • Double - reales
    • more…

Variables

Variables

Tipos

Tipos

Programador

Programador

Programador

Programador

Formatos de Datos

Formatos de Datos

  • Los datos se pueden leer y escribir en diferentes formatos
    • Decimal
      • El formato que normalmente utilizamos
    • Binario
      • Sistema de numeración con base 2
      • Solo utilizamos 2 cifras: cero y uno (0 y 1)
      • El utilizado en las computadoras, por los 2 niveles de voltaje que usan

Formatos de Datos

  • Los datos se pueden leer y escribir en diferentes formatos (continúa…)
    • Hexadecimal o Hex
      • Sistema de numeración con base 16
      • Utiliza los símbolos \(S={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}\)
      • Vinculado a computación porque las computadoras usan el byte (8 bits) como unidad básica de memoria
      • 1 byte representa 2^8 posibles valores
      • \(2^8 = 2^4 \times 2^4 = 16 \times 16 = 1 \times 16^2 + 0 \times 16^1 + 0 \times 16^0 = 100_{16}\)
      • 2 dígitos hexadecimales corresponden a un byte
      • 3E0A16 = 3×163 + E×162 + 0×161 + A×160 = 3×4096 + 14×256 + 0×16 + 10×1 = 15882

Binario

Binario

Binario

Decimal a Binario

Hexadecimal

Hexadecimal

Hexadecimal a Binario

Binario - Hexadecimal - Decimal

Plataformas en Informática

Principales Plataformas

  • En general, el hardware epre-diseñado para ejecutar un software
    • Tiene sus características y restricciones
  • Diferentes niveles de abstracción
    • Arquitectura de hardware
      • Macintosh
      • Intel
      • RISC
    • Sistema operativo
      • Linux
      • Microsoft
      • MacOS

Principales Plataformas

  • Diferentes niveles de abstracción (continúa…)
    • Software
      • Java
      • Qt
    • Librerías en tiempo de ejecución

Principales Plataformas

Principales Plataformas

Computadora

Computadora

Sistema Operativo

  • Software para administrar el hardware y recursos de software que proveen los servicios para los programas computacionales

Sistema Operativo

Sistema Operativo

Sistema Operativo

Sistema Operativo

Base de Datos

  • Colección organizada de datos
    • Esquema, tablas, consultas, reportes, vistas…
  • Organización de datos tal que modelan aspectos de larealidad
    • Procesos que requieren información

Base de Datos

  • Sistemas Manejadores de Bases de Datos (DBMS)
    • Sistema que interactúa con el usuario y la base dedatos
    • Permite definir, crear, consultar, actualizar y administrar las bases de datos
    • PostgreSQL, MYSQL, Oracle, Sybase, Microsoft SQL Server

Base de Datos

Base de Datos

Base de Datos

Base de Datos

Procesos

Proceso

  • Un proceso es una instancia de un programa computacional que se está ejecutando
  • En unix podemos ver los procesos que se están ejecutando
    • ps aux
    • top
  • Un programa puede estar asociado a varios procesos
    • Cada vez que ejecutamos un programa se lanza una nueva instancia o proceso

Proceso

  • Proceso interactivo (en línea)
    • El proceso permanece en contacto con el programa que lo lanzó
  • Proceso batch
    • El proceso batch no permanece en contacto con el programa que lo lanzó
    • Si el proceso batch fue lanzado por una terminal, no regresa el control a la misma
    • El proceso batch deja resultados en algún archivo en la computadora, modifica registros de base de datos, etc.

Proceso