martes, 28 de agosto de 2012

Novel algorithms for protein sequence analysis

Novel algorithms for protein sequence analysis
Kai Ye
2008


Se diseñan dos métodos, basados en entropía y aprendizaje de máquina para identificar sitios específicos en una familia de proteinas.  La información de entropía se usa para identificar los residuos que se conservan entre las subfamilas, pero que divergen en otras.



Tesis completa en pdf

miércoles, 30 de mayo de 2012

Spatial data mining and geographic knowledge discovery—An introduction

Minería de datos espaciales y Descubrimiento de conocimiento geográfico
Gustavo Adolfo Romero, Patricia Gómez Santamaría


Dado el actual apogeo de los sensores remotos y sistemas de posicionamiento global, GPS, la minería de datos ha encontrado una nueva área de aplicación donde los objetivos principales son la caracterización de perfiles poblacionales y la identificación de las posibles trayectorias futuras de los usuarios de dispositivos móviles, es decir, se identifican el movimiento de los objetos almacenando una secuencia de coordenadas espaciales asociadas a un instante en el tiempo y posteriomente al aplicarse técnicas de minería de datos es posible establecer patrones de comportamiento y estimar las posibles posiciones futuras de los objetos de estudio en forma de categorías donde la clasificación de las trayectorias puede ser desde la perspectiva global.


La minería de datos espaciales se constituye como una herramienta que provee la base teórica y metodológica para identificación de patrones sobre los datos, los cuales se convierten en una herramienta fundamental en el análisis de los datos y la realización de proyecciones para el soporte de decisiones, así, las características principales de los datos espaciales que realizan tareas comunes de soporte de minería de datos que permiten la predicción a partir de las clasificación y categorización.  Los retos de la minería de datos se enfocan en el análisis de patrones complejos, procesamiento eficiente, y buscando algoritmos que den respuesta en tiempos cada vez más cortos y optimizando la visualización de los resultados. 



Es un hecho que en la actualidad, gracias a los avances tecnológicos en diferentes ramas, es posible colectar y almacenar mucha más cantidad  de datos que confluyen de diversas fuentes y que muchas veces se desconoce la calidad de dicha información y/o de las metodologías usadas para la obtención de los datos, así como la resolución temporal.  Adicionalmente, la investigación cada vez requiere de mayor precisión y detalle lo que hace, particularmente en un entorno geográfico, aumentar la resolución de la adquisición de datos.  Esto genera que las empresas de diferentes sectores se encuentren con un repositorio de datos que no están analizando debidamente o extrayendo el gran potencial de información y que les pueda dar lineamientos con un mejor entendimiento del comportamiento de las variables de interés, que finalmente les servirá como indicadores para la toma de decisiones adecuadas o realizar una buena planificación y manejo de cualquier actividad o entorno.

El principal problema en las entidades y empresas podría estar en el desconocimiento y en la falta de interés en el desarrollo de estrategias que apunten a realizar minería de datos y al descubrimiento de conocimiento geográfico, debido a que en algunas a pesar de tener sus sistemas de información andando como el de personal, el financiero, el de compras, apenas se está interiorizando el concepto de sistemas de información geográfica con sus manejos y aplicaciones, con sus métodos de análisis espaciales tradicionales, incluso es común la adquisición de modelos realizados para unas condiciones totalmente distintas a las que las entidades requieren, como el caso de la adquisición de la CVC del MIKE, un modelo univariado con el cual se puede modelar las inundaciones por desbordamiento de un río tipo con características de valle aluvial, y que sólo tiene en cuenta perfiles topobatimétricos, cuando en realidad el río cauca en su recientes pasos con los fenómenos de inundación ha afectado muchas áreas por la infiltración limitada del suelo y  por aumentos de los niveles freáticos.

Otra limitación en la aplicación activa de la minería de datos y del descubrimiento de conocimiento es el gran trabajo que se debe realizar, el cual incluye la selección y arreglo de los datos como la homologación, estructuración, limpieza, analizarlos estadísticamente, filtrarlos, transformarlos, todo con los conceptos o conocimientos a priori o de los expertos en cada área, la aplicación de análisis con algoritmos computacionales es quizás el eslabón perdido dentro de las organizaciones y que no necesariamente es del manejo de los expertos y por lo tanto es la gran barrera a romper, lo cual incluye el trabajo en equipo de los diferentes enfoques para su visualización, interpretación y evaluación de resultados. 

Actualmente existen una variedad de algoritmos implementados en software que permiten realizar clasificaciones automáticas de las imágenes satelitales, que necesitan necesariamente del conocimiento del experto para ser refinadas, ayudándole a este a mejorar su trabajo y hacerlo más fácil, eficiente y de mejor calidad, mediante este procedimiento se realiza un entrenamiento de la máquina y esta puede mejorar las clasificaciones; también se puede realizar la clasificación supervisada mediante el ingreso de datos geoposicionados conocidos de algunas cobertura vegetales, a partir de los cuales se identifica ese tipo de cobertura en toda la imagen. Convirtiendo está en una herramienta potente que genera información de cobertura, y posiblemente después se convertirá en conocimiento, puesto que en estas coberturas existen unos patrones de manejo que influyen en la erosión, salinidad y posibles fuentes de contaminación.
Existen varios enfoques y estrategias para realizar minería de datos las cuales aplican algoritmos basados por ejemplo en las reglas de asociación espacial, las cuales describen la implicación de características espaciales del objetivo de análisis con respecto a las características de otros objetos, siendo éstos, únicos o de agrupación espacial. En las bases de datos espaciales las reglas de asociación son de la forma  Xà Y, consecuente, son conjuntos de predicados, los cuales generalmente incluyen relaciones topológicas, de orientación espacial y de distancia. Las reglas de asociación hacen referencia a objetos que se encuentran en la misma localización espacial y significativamente cerca, lo cual puede generar una correlación con patrones de localización espacial como por ejemplo alta evapotranspiración, en áreas con cultivo de caña -> salinidad; o ganadería en altas pendientes -> erosión.

La minería de datos, el descubrimiento de conocimiento, la aplicación de algoritmos adecuados y la geovisualización cobra una alta importancia para integrar información que hasta ahora no ha sido posible implementar en los tradicionales SIG, los cuales hasta ahora sólo despliegan vistas en 2D.  Tal es caso de la información de agua subterránea y el cálculo adecuado de los volúmenes y su comportamiento en el tiempo tanto en cantidad como en calidad y en integrar esta información con los perfiles de suelos y los perfiles estratigráficos de los pozos de extracción de agua para modelar el comportamiento de un complejo de humedales y ríos que interactúan con el agua subterránea y que por consiguiente con las altas y constantes precipitaciones afecta finalmente áreas con cultivos y genera peligros potenciales para la población aledaña.

martes, 29 de mayo de 2012

Discovering Knowledge from High-Dimensional Geographic Data: Integrating Visual and Computational Approaches

Ensayo por: Constanza Banguero Sánchez y Franklin Arles Bedoya Beltrá

La minería de datos y el KDD se han desarrollado ampliamente en áreas de negocios, bioinformática y minería de textos, pero se encuentra en una etapa reciente en la aplicación de la información geográfica debido a la complejidad y la variedad de las relaciones entre los datos y la espacialidad de los mismos, con lo cual se plantea un cambio en los métodos de minería de datos convencionales.  Se presentan dificultades al momento de dimensionar el tamaño de las características del espacio debido a la gran cantidad de variables a considerar, sus interrelaciones, dificultando el análisis de las misma por métodos analíticos y visuales tradicionales porque se pueden ocultar patrones y tendencias relevantes para el análisis. 

Además, se plantea la construcción de una hipótesis que agrupa las herramientas para determinar los patrones definidos por las características del espacio.
  Al construir el método de análisis este debe ser capaz de diferenciar entre los datos relevante y los irrelevantes para no tener patrones resultado engañosos o inútiles.  La elección de atributos con un enfoque manual es inútil debido a la cantidad y la complejidad de los datos y a la dificultad para encontrar los patrones inesperados; la minería de datos y el KDD tienen como fortaleza encontrar dichos patrones inesperados.  Se deben desarrollar herramientas para encontrar la información oculta en los datos con los que se cuenta. Se deben integrar los enfoques visual y computacional para descubrir patrones de datos geográficos complejos.


 

Problemas

Patrones espaciales multivariados

Los métodos de minería de datos presentan dificultades para procesar la gran cantidad de características geográficas relacionadas con el análisis espacial.

La eficiencia y la escalabilidad

La alta dimensionalida y /o la gran cantidad de datos sin una escala definida se convierten en un dificultad en cuanto a la eficiencia en función del tiempo para la generación de los resultados.
La comprensión y la interacción

Es muy importante la comprensión de los patrones resultantes del sistema KDD, ya que una mala interpretación y orientación de los resultados conlleva a alejarse del modelo aplicado.

Preguntas de investigación

La integración y la coordinación de los diferentes métodos en un entorno unificado: Para alcanzar la eficiencia y la eficacia en la exploración de grandes conjuntos de datos complejos se requiere conformar un marco de trabajo que permita integrar lo mejor de la capacidad de los humanos y de las máquinas, proveer soportes al ser humano facilitando la interactividad con el proceso del descubrimiento del conocimiento.
La exposición y la comprensión del comportamiento de las herramientas integradas:  Se plantean las preguntas relacionadas con la selección de las herramientas requeridas para plantear el problema, la presentación y visualización de la hipótesis y valorar la validez de los modelos.

El desarrollo de
métodos efectivos de selección de características sin supervisión
:  Normalmente los métodos supervisados son los más usados para la selección de características pero recientemente se está trabajando con métodos de clasificación de datos no supervisados que permiten crear subselecciones óptimas que producen selección de atributos pobres o buenos.

La integración de
la información espacial y no espacial
:  Debido a la dificultad de los métodos de minería de datos para procesar información espacial se cuestiona acerca de la manera de incluir la información espacial en la no espacial manejada por los métodos de minería de datos.

La detección de
patrones multivalentes de las diversas formas
:  Se plantean preguntas relacionadas con la metodología aplicada para la selección de los patrones en los que no se debe imponer un modelo a priori, buscar un modelo eficiente y que los resultados sean de fácil comprensión.

El desarrollo de
técnicas interactivas de
GeovisualizaciónSe plantea la manera de presentar los resultados obtenidos de una manera integral y de fácil comprensión, que facilite la interpretación, la visualización y el análisis de los resultados obtenidos.
Gestión de datos y el conocimiento:  Se busca que los modelos persistan en el tiempo de tal manera que la representación de los datos de acceso sea eficiente y eficaz, los mecanismos de almacenamiento y la representación. 

Descargue articulo completo aqui.

lunes, 28 de mayo de 2012

Spatial data mining and geographic knowledge discovery—An introduction

 Minería de datos espaciales y Descubrimiento de conocimiento geográfico 
Autores de reseña: Gustavo Adolfo Romero and Patricia Gómez Santamaría.


Dado el actual apogeo de los sensores remotos y sistemas de posicionamiento global, GPS, la minería de datos ha encontrado una nueva área de aplicación donde los objetivos principales son la caracterización de perfiles poblacionales y la identificación de las posibles trayectorias futuras de los usuarios de dispositivos móviles, es decir, se identifican el movimiento de los objetos almacenando una secuencia de coordenadas espaciales asociadas a un instante en el tiempo y posteriomente al aplicarse técnicas de minería de datos es posible establecer patrones de comportamiento y estimar las posibles posiciones futuras de los objetos de estudio en forma de categorías donde la clasificación de las trayectorias puede ser desde la perspectiva global.

La minería de datos espaciales se constituye como una herramienta que provee la base teórica y metodológica para identificación de patrones sobre los datos, los cuales se convierten en una herramienta fundamental en el análisis de los datos y la realización de proyecciones para el soporte de decisiones, así, las características principales de los datos espaciales que realizan tareas comunes de soporte de minería de datos que permiten la predicción a partir de las clasificación y categorización. Los retos de la minería de datos se enfocan en el análisis de patrones complejos, procesamiento eficiente, y buscando algoritmos que den respuesta en tiempos cada vez más cortos y optimizando la visualización de los resultados.


Es un hecho que en la actualidad, gracias a los avances tecnológicos en diferentes ramas, es posible colectar y almacenar mucha más cantidad de datos que confluyen de diversas fuentes y que muchas veces se desconoce la calidad de dicha información y/o de las metodologías usadas para la obtención de los datos, así como la resolución temporal. Adicionalmente, la investigación cada vez requiere de mayor precisión y detalle lo que hace, particularmente en un entorno geográfico, aumentar la resolución de la adquisición de datos. Esto genera que las empresas de diferentes sectores se encuentren con un repositorio de datos que no están analizando debidamente o extrayendo el gran potencial de información y que les pueda dar lineamientos con un mejor entendimiento del comportamiento de las variables de interés, que finalmente les servirá como indicadores para la toma de decisiones adecuadas o realizar una buena planificación y manejo de cualquier actividad o entorno.

El principal problema en las entidades y empresas podría estar en el desconocimiento y en la falta de interés en el desarrollo de estrategias que apunten a realizar minería de datos y al descubrimiento de conocimiento geográfico, debido a que en algunas a pesar de tener sus sistemas de información andando como el de personal, el financiero, el de compras, apenas se está interiorizando el concepto de sistemas de información geográfica con sus manejos y aplicaciones, con sus métodos de análisis espaciales tradicionales, incluso es común la adquisición de modelos realizados para unas condiciones totalmente distintas a las que las entidades requieren, como el caso de la adquisición de la CVC del MIKE, un modelo univariado con el cual se puede modelar las inundaciones por desbordamiento de un río tipo con características de valle aluvial, y que sólo tiene en cuenta perfiles topobatimétricos, cuando en realidad el río cauca en su recientes pasos con los fenómenos de inundación ha afectado muchas áreas por la infiltración limitada del suelo y por aumentos de los niveles freáticos.

Otra limitación en la aplicación activa de la minería de datos y del descubrimiento de conocimiento es el gran trabajo que se debe realizar, el cual incluye la selección y arreglo de los datos como la homologación, estructuración, limpieza, analizarlos estadísticamente, filtrarlos, transformarlos, todo con los conceptos o conocimientos a priori o de los expertos en cada área, la aplicación de análisis con algoritmos computacionales es quizás el eslabón perdido dentro de las organizaciones y que no necesariamente es del manejo de los expertos y por lo tanto es la gran barrera a romper, lo cual incluye el trabajo en equipo de los diferentes enfoques para su visualización, interpretación y evaluación de resultados.

Actualmente existen una variedad de algoritmos implementados en software que permiten realizar clasificaciones automáticas de las imágenes satelitales, que necesitan necesariamente del conocimiento del experto para ser refinadas, ayudándole a este a mejorar su trabajo y hacerlo más fácil, eficiente y de mejor calidad, mediante este procedimiento se realiza un entrenamiento de la máquina y esta puede mejorar las clasificaciones; también se puede realizar la clasificación supervisada mediante el ingreso de datos geoposicionados conocidos de algunas cobertura vegetales, a partir de los cuales se identifica ese tipo de cobertura en toda la imagen. Convirtiendo está en una herramienta potente que genera información de cobertura, y posiblemente después se convertirá en conocimiento, puesto que en estas coberturas existen unos patrones de manejo que influyen en la erosión, salinidad y posibles fuentes de contaminación.

Existen varios enfoques y estrategias para realizar minería de datos las cuales aplican algoritmos basados por ejemplo en las reglas de asociación espacial, las cuales describen la implicación de características espaciales del objetivo de análisis con respecto a las características de otros objetos, siendo éstos, únicos o de agrupación espacial. En las bases de datos espaciales las reglas de asociación son de la forma X->Y, consecuente, son conjuntos de predicados, los cuales generalmente incluyen relaciones topológicas, de orientación espacial y de distancia. Las reglas de asociación hacen referencia a objetos que se encuentran en la misma localización espacial y significativamente cerca, lo cual puede generar una correlación con patrones de localización espacial como por ejemplo alta evapotranspiración, en áreas con cultivo de caña --> salinidad; o ganadería en altas pendientes de erosión.

La minería de datos, el descubrimiento de conocimiento, la aplicación de algoritmos adecuados y la geovisualización cobra una alta importancia para integrar información que hasta ahora no ha sido posible implementar en los tradicionales SIG, los cuales hasta ahora sólo despliegan vistas en 2D. Tal es caso de la información de agua subterránea y el cálculo adecuado de los volúmenes y su comportamiento en el tiempo tanto en cantidad como en calidad y en integrar esta información con los perfiles de suelos y los perfiles estratigráficos de los pozos de extracción de agua para modelar el comportamiento de un complejo de humedales y ríos que interactúan con el agua subterránea y que por consiguiente con las altas y constantes precipitaciones afecta finalmente áreas con cultivos y genera peligros potenciales para la población aledaña.

miércoles, 23 de mayo de 2012

Variable de clase y variable de instancia

Main.java
public class Main {

    int a;

    public static int b = 0;

    Main(int a){

        this.a = a;

        b++;

    }

    public static void main(String[] args) {

        for(int i=0; i<5; i++){

            Main k = new Main(1);

            System.out.println(k.a); // Variable de instancia

            System.out.println("b= "+k.b); // Variable de clase.

        }

    }

}

domingo, 20 de mayo de 2012

Excepción con throws y throw

 Excepciones chequeadas

Ejemplo 1


MyException.java

public class MyException extends Exception {

    public MyException(String msg){

       super(msg);

    }

}

Prueba.java

public class MyTest {

    static int  divide(int first,int second) throws MyException{

        if(second==0) {

            throw new MyException("No se define division por cero");

        }

        return first/second;

   }

    public static void main(String[] args){

         try {

                    System.out.println(divide(4,0));

        } catch (MyException exc) {

                    exc.printStackTrace();

        }

     }

}

Ejemplo 2


A.java


 public class A {


    String a;
 

    B [] listaB;
 

    int c = 0;

    A(String n, int max) {
 

        a = n;
 

        listaB = new Empleado [max];
 

    }

    void generarB(String a, int d ) throws {
 

       if (c < listaB.length ) {
 

            listaB[c++] = new B(a, d);

       else throw new ExceptionArray(a);

       }

    }

 }

ExceptionArray.java

public class ExceptionArray extends Exception {

     ExceptionArray(String a) {

        super("No es posible añadir el elemento " + a);

    }

    . . .

}

// Otra forma de manejar el error se da en el llamado al método.

Main.java

public class Main {

  public static void main(String[] args) {

     A myObj = new A("Hola",3);
 

       try {
 

             myObj.generarB("Primer dato", 500);
 

       } catch (ExceptionArray e) {
 

             System.out.println(e.toString());
 

             System.exit(1);
 

       }
 

   }


}

Ejemplo3



 Main.java

public class Main {

  public static int metodoA (int n) {


     if (n < 0)
 
        throw new IllegalArgumentException(n + " debe ser positivo");
 
     if (n >= 60)
 
         throw new IllegalArgumentException(n + " debe ser menor a 60");
 
     return 0;
 
  }

  public static void main(String[] args) {

        System.out.println(metodoA(90));

  }

}

 Excepciones en tiempo de ejecución

Ejemplo 4

A.java

public class A{
 
   public static void main(String args[]){ 
 
   String str = "prueba"; 
 
   int suma = 0;

        for(int i = 0; i <= str.length(); i++){ 
 
              try{ 
 
                   suma += Integer.parseInt(str.charAt(i) + ""); 
 
              }catch(IndexOutOfBoundsException e){ 
 
                     System.out.print("Desbordo limite de cadena  "); 
 
              }catch(NumberFormatException e1){ 
 
                     System.out.print("No es de tipo entero "); 
 
              }finally{ 
 
                     System.out.println("i= " + i); 
 
              } 
 
 } 
 
 System.out.println("Suma: " + suma); 
 
 } //main 
 
} //class

Polimorfismo con Interface

Animal.java

public abstract class Animal {

    protected String foto;
    protected String comida;
    protected String localizacion;
    protected String tamano;

    public Animal(String foto, String comida, String localizacion, String tamano) {
        this.foto = foto;
        this.comida = comida;
        this.localizacion = localizacion;
        this.tamano = tamano;
    }

    public abstract void comer();

    public abstract void dormir();

    public abstract void comunicar();

}

Canino.java

public abstract class Canino extends Animal{

   public Canino(String foto, String comida, String localizacion, String tamano) {
        super(foto, comida, localizacion, tamano);
    }

   public void comer(){
       System.out.println("Como carne");
   }

}

Mascota.java

public interface Mascota {

    public void jugar();
    public void vacunar();

}

Perro.java

public class Perro extends Canino implements Mascota{

    public Perro(String foto, String comida, String localizacion, String tamano) {
        super(foto, comida, localizacion, tamano);
    }

     public void dormir(){
         System.out.println("Duermo en perrera");
     }

    public void comunicar(){
        System.out.println("Ladro");
    }

    public void jugar(){
        System.out.println("Juega en el jardin");
    }

    public void vacunar(){}
   
}

Gato.java

public class Gato extends Canino implements Mascota{

    public Gato(String foto, String comida, String localizacion, String tamano) {
        super(foto, comida, localizacion, tamano);
    }

     public void dormir(){
         System.out.println("Duermo en el tejado");
     }

    public void comunicar(){
        System.out.println("Maullo");
    }

    public void jugar(){
        System.out.println("Juega en el sofa");
    }

    public void vacunar(){
        System.out.println("Rabia");
    }

}

Main.java

public class Main {

  public static void main(String[] args) {

      Mascota [] miMascota = new Mascota[2];

      miMascota[0] = new Perro("/images/perro.jpg", "Nutrecan", "Mi casa", "Grande");
      miMascota[1] = new Gato("/images/gato.jpg", "Nutrecat", "Mi casa", "Pequeno");

      miMascota[1].jugar();
      miMascota[1].vacunar();

      ((Gato)miMascota[1]).comer();
      ((Gato)miMascota[1]).comunicar();
      ((Gato)miMascota[1]).dormir();

    }
}

Dibujemos el diagrama de clases

Polimorfismo con herencia

CASTING IMPLICITO

 Instrumento.java

public class Instrumento {

    public void interpreta() {
        System.out.println("Interpreta el instrumento");
    }

    public String queEs() {
        return "Instrumento";
    }

    public void afinar() {}

}

Guitarra.java

public class Guitarra extends Instrumento {

    public void interpreta() {
        System.out.println("Interpreta la guitarra");
    }
   
    public String queEs() {
         return "Guitarra";
    }
}

Piano.java

public class Piano extends Instrumento {

    public void interpreta() {
       System.out.println("Interpreta el piano");
    }

     public String queEs() {
        return "Piano";
     }
}

Saxofon.java

public class Saxofon extends Instrumento {

    public void interpreta() {
        System.out.println("Interpreta el saxofon");
    }
   
    public String queEs() {
         return "Saxofon";
    }
}

Guzla.java

public class Guzla extends Guitarra {
   
   public void interpreta() {
         System.out.println("Interpreta la guzla");
   }
  
   public void afinar() {
         System.out.println("Afino Guzla");
   }
 }

Ukelele.java

public class Ukelele extends Guitarra {

    public void interpreta() {
         System.out.println("Interpreta el Ukelele");
    }
   
    public String queEs() {
            return "Ukelele";
    }
}

Musica.java

public class Musica {

    // El casting es inherente porque todos los metodos se encuentran
    // declarados en la superclase.
    void afinar(Instrumento i) {
        i.interpreta();
    }

   void afinarTodo(Instrumento[] e) {

       for(int i = 0; i < e.length; i++)
          afinar(e[i]);
    }
}

Main.java

public class Main {

  public static void main(String[] args) {

     Musica miMusica = new Musica();

    Instrumento[] orquesta = new Instrumento[5];
    orquesta[0] = new Guitarra();
    orquesta[0] = new Piano();
    orquesta[0] = new Saxofon();
    orquesta[0] = new Guzla();
    orquesta[0] = new Ukelele();

    miMusica.afinarTodo(orquesta);

  }
}

Dibujemos el diagrama de clases

sábado, 19 de mayo de 2012

Polimorfismo con clase abstracta



Diagrama de clase: https://docs.google.com/open?id=0B70n-hF_J9PubFpqODJZTzlKQnM




CON CASTING EXPLICITO

Figura.java


public abstract class Figura {

   protected String nombre;
   protected int color;
   protected int grosorBorde;

   public Figura(String nombre, int color, int grosorBorde) {
      this.nombre = nombre;
      this.color = color;
      this.grosorBorde = grosorBorde;
   }

    public abstract void dibujar();
}

Figura2D.java

public abstract class Figura2D extends Figura{

    public Figura2D(String nombre, int color, int grosorBorde) {
        super(nombre, color, grosorBorde);
    }

    public abstract int calculoArea();
    public abstract int calculoPerimetro();

}

Cuadrado.java

public class Cuadrado extends Figura2D{

    private int lado;

    public Cuadrado(String nombre, int color, int grosorBorde, int lado) {
        super(nombre, color, grosorBorde);
        this.lado = lado;
    }

    public int getLado() {
        return lado;
    }

    public void cambiarTamano(int escala){
        lado *= escala;
    }

    public int calculoArea() {
        return (int)(Math.pow(lado, 2.0));
    }

    public int calculoPerimetro(){
        return lado*4;
    }

    public void dibujar(){
        System.out.println("Dibujo Cuadrado");
    }

}

Triangulo.java

public class Triangulo extends Figura2D{

    private int base;
    private int altura;

    public Triangulo(String nombre, int color, int grosorBorde, int base, int altura) {
        super(nombre, color, grosorBorde);
        this.base = base;
        this.altura = altura;
    }

     public void cambiarTamano(int escala){
        base *= escala;
        altura *= escala;
    }

    public int calculoArea() {
        return (int)(base*altura/2);
    }

    public int calculoPerimetro(){
        return base*3; //Supongo es equilatero
    }

    public void dibujar(){
        System.out.println("Dibujo Triangulo");
    }

}

Circulo.java

public class Circulo extends Figura2D{

    private int radio;

    public Circulo(String nombre, int color, int grosorBorde, int radio) {
        super(nombre, color, grosorBorde);
        this.radio = radio;
    }

    public void cambiarTamano(int escala){
        radio *= escala;
    }

    public int calculoArea() {
        return (int)(Math.PI * Math.pow(radio,2.0));
    }

    public int calculoPerimetro(){
        return (int)(2 * Math.PI * radio); //Supongo es equilatero
    }
   
     public void dibujar(){
        System.out.println("Dibujo Circulo");
    }

}


Figura3D.java

public abstract class Figura3D extends Figura{

    public Figura3D(String nombre, int color, int grosorBorde) {
        super(nombre, color, grosorBorde);
    }
   
    public abstract int calcularVolumen();

}


Esfera.java

public class Esfera extends Figura3D{
   
    public int radio;

    public Esfera(String nombre, int color, int grosorBorde, int radio) {
        super(nombre, color, grosorBorde);
        this.radio = radio;
    }

    public int calcularVolumen(){
        return (int)(4/3 * Math.PI * Math.pow(radio, 2));
    }
   
    public void dibujar(){
        System.out.println("Dibujo Esfera");
    }
}


Cubo.java

public class Cubo extends Figura3D{

    private Cuadrado cuad;

    public Cubo(String nombre, int color, int grosorBorde, Cuadrado cuad) {
        super(nombre, color, grosorBorde);
        this.cuad = cuad;
    }

    public Cuadrado getCuad() {
        return cuad;
    }

    public int calcularVolumen(){
        return (int)(Math.pow(cuad.getLado(), 2));
    }

    public void dibujar(){
        System.out.println("Dibujo Cubo");
    }

}

Piramide.java

public class Piramide extends Figura3D{

    private Triangulo tri;
    public int altura;

    public Piramide(String nombre, int color, int grosorBorde, Triangulo tri, int altura) {
        super(nombre, color, grosorBorde);
        this.tri = tri;
        this.altura = altura;
    }
  
    public int calcularVolumen(){
        return (int)(tri.calculoArea()*altura);
    }

    public void dibujar(){
        System.out.println("Dibujo Piramide");
    }
}


Main.java

public class Main {

    public static void main(String[] args) {

        Figura [] miVector = new Figura[2];

        miVector[0] = new Cuadrado("a",1,2,3);
        miVector[1] = new Cubo("b",4,5, new Cuadrado("c",6,7,8));

        /* Aqui no hay problema porque  dibujar() esta implementada
        en todas las clases concretas */
        miVector[0].dibujar();

        /* Este llamado permite ver la parte generica de miVector[0],
        es decir, no puedo acceder a calculoArea() aunque esta implementada
        en Cuadrado*/
        System.out.println("Area = " + miVector[0]);

        /*La solución es hacer casting */
        System.out.println("Area = " + ((Cuadrado)miVector[0]).calculoArea());
        System.out.println("Volumen = " + ((Cubo)miVector[1]).calcularVolumen());
    }

Cómo calcularías el área de la base de una piramide que se almacene en la posición 2 del arreglo miVector?

viernes, 11 de mayo de 2012

Feature selection

La selección de características es una etapa del proceso KDD (Knowlegde Discovery Database) que trata con los poblemas de reducción de dimensionalidad, a nivel de atributos  y registros.  La alta dimensionalidad  de los datos inciden en el espacio de almacenamiento y el tiempo requerido para realizar el aprendizaje y clasificación.  La selección de caracteristicas reduce la dimensionalidad de atributos, pero también permite la  selección de atributos de acuerdo al objeto del análisis. La aplicación de la selección de carcaterísticas será fundamental en la eficiencia de la aplicación de los métodos de análisis.  Esta presentación presenta un breve recorrido por los principales algoritmos invoucrados en la selección de características.


Predicción de genes eucariotas

La arquitectura genética para generar vida sigue un método de lectura de datos en series ordenadas de genes, almacenados en cromosomas. La secuencialidad y el orden de los genes ofrece un código genético que permite la deducción de información  a cerca de la cantidad, el orden y las diversas clases de células para distintas funciones en los organísmos. El conjunto de varios tipos de genes de una especie se denomina genoma. Los genes funcionales, o genes estructurales, son los que codifican las proteínas. Los pseudogenes son genes que han sufrido procesos de mutación u otros fenómenos de reorganización y han dejado de ser funcionales, pero persisten en los genomas de los organismos. Los genes reguladores son aquellos genes encargados de controlar la velocidad de síntesis de los productos de uno o de varios genes o rutas biosintéticas. Los genes selectores controlan el desarrollo de los compartimentos (unidades definidas por la acción de genes maestros que ejecutan decisiones que conducen a varios clones de células hacia una línea de desarrollo).

La expresión de código genético es un proceso universal característico de todos los seres vivos, pero hay que distinguir entre organismos procariotas y eucariotas. El genoma bacteriano, o procariota, es muy pequeño y debe reducir la información al mínimo posible, en casi todos los casos cada cromosoma contiene una sola copia de cualquier gen particular, y, con excepción de las secuencias reguladoras y señaladoras, prácticamente se expresa todo el ADN. El genoma de organísmos superiores, o eucariotas, es es tan amplio que solo pequeños procentajes de regiones son codificantes (exones), siendo rodeados por grandes regiones no codificantes (intrones). Un concepto clave en la genómica funcional es la expresión del genoma para producir el ARN mensajero (mARN) y las consiguientes proteínas. La metodología para obtener las instrucciones genéticas se pueden generalizar en dos pasos: transcripción y traducción. La transcripción que consiste en la síntesis de ARN (Ácido RiboNucleico) a partir del ADN; mientras que la traducción es el paso de la información transportada por el ARN mensajero a proteína.

La anotación genómica incluyen caracterizaciones a nivel estructural, donde se hace la búsqueda de genes y sitios de interés biológico, y a nivel funcional, en el que se intenta asociar una función biológica a los objetos encontrados. La principal tarea en la anotación del genoma es la predicción de los genes, donde se detectan regiones codificantes que permiten deducir su estructura, las proteínas producidas y las señales que dan las indicaciones y guían la traducción. Así pues, la predicción de un gen supone un largo proceso mediante el cual se ha de conocer; su longitud y estructura, su organización, el producto o molécula generado a partir del gen, la función que desempeña el producto resultante y las consecuencias que se derivan de la modificación estructural de ese gen por cambios en su contenido [15, 24, 25]. Sin embargo, a pesar de la existencia de grandes cantidades de nucleótidos en el ADN y de los avances en la anotación de dichas secuencias, aún se desconocen muchos de los procesos de transcripción, con relación al análisis de la regulación transcripcional como de genes.





Los genomas contienen grandes cantidades de datos que sólo se pueden analizar eficaz y eficientemente a la luz de aproximaciones computacionales.  Los métodos computacionales, que ya han mostrado su utilidad en áreas como la búsqueda de genes o la predicción de la función y la estructura de las proteínas, van a ser decisivos e imprescindibles para afrontar los nuevos retos de la Biología Molecular [22]. La predicción de genes se puede realizar principalmente a través de tres métodos: los métodos ab initio que tratan de identificar dentro de la secuencia las distintas partes del gen; los métodos por homologías que intentan de encontrar secuencias parecidas del gen en distintas bases de datos; y los métodos integrados que combinan predicciones, ya sea las obtenidas con los métodos ab initio y de homologías (métodos híbridos) o las que combinan resultados de diferentes programas de predicción. Varios programas ab initio se han desarrollado desde los inicios de la predicción de genes, algunos de ellos son Genezilla [18], Genscan [4], Grail [32], Glimmer [7, 26], GlimmerM [28],  HMMGenie [14], GeneID [8], Morgan [27] y UnVeil [17]. Entre las herramientas básicas para detectar homologías están las de alineamiento de secuencias, desde los algoritmos de Smith-Waterman [29] hasta los enfoques heurísticos como FASTA [21], BLAST [2], Procruster [gelfrand1996] y la identificación de ESTs[10].

    Los predictores automáticos de genes generalmente ofrecen predicciones correctas de nucleótidos que pertenecen a una región codificante hasta de un 90%, pero tan sólo un rango de predicciones correctas de exones entre 70-75%. En predicciones de estructuras completas de genes, menos del 50% de los genes predichos corresponden a los reales. Muchos estudios comparativos llevan a la conclusión que algunos predictores son recomendables para predecir exones aislados; pero no para analizar secuencias completamente ensambladas, y viceversa. En general, todos estos estudios concuerdan en la necesidad de enriquecer la predicción con el apoyo de programas de predicción basados en homología o incluso combinar los resultados obtenidos de los programas y algoritmos  de predicción de genes para lograr obtener una predicción más acertada que la que puedan obtener los programas predictores de forma individual [1, 20, 23]. Con la mezcla de diferentes modelos se pretende dar una predicción estructuralmente más completa. Varias técnicas se han usado en el problema de predicción de genes, la mayoría son técnicas de aprendizaje de máquina que tratan de identificar patrones correspondientes a los diferentes componentes del gen. Estas técnicas van desde el reconocimiento de patrones con matrices de pesos [35],  secuencias consenso [9] y descomposición de dependencia máxima [5]; hasta técnicas más complejas como los modelos ocultos de Markov [3, 12, 13, 30], las redes neuronales [32, 33], árboles de decisión [27] y transformadas de Fourier discreta [11], entre otras. Una revisión más extensa de estas técnicas se encuentra en los trabajos de Mathé [19], Claviere [6], Stormo [31] y Zhang[34].


Referencias

[1] A LLEN , J., P ERTEA , M., AND S ALZBERG , S. Computational gene prediction using multiple sources of evidence. Genome Res. 14 (2004), 142–148.
[2] A LTSCHUL , S., G ISH , W., M ILLER , W., M YERS , E., AND L IPMAN , D. Basic local alignment search tool. J. Mol. Biol. 215 (1990), 403–410.
[3] BALDI P, C HAUVIN Y, H. T. M. M. Hidden markov models of biological primary sequence information. Proc. Natl. Acad. Sci. USA 91 (1994), 1059-1063.
[4] B URGE , C., AND K ARLIN , S. Prediction of complete gene structures inhuman genomic dna. J. Mol. Biol. 268 (1997), 78–94.
[5] B URGE , C. & K ARLIN , S. Prediction of complete gene structures in human genomic dna. J. Mol. Biol. 268 (1997), 78–94.
[6] C LAVERIE , J. Computational methods for the identification of genes in vertebrate genomic sequences. Human Mol. Genet. 6 (1997), 1735–1744.
[7] D ELCHER , A.L. D. H ARMON , D. K. S. W. O. . S. S. Improved microbial gene identification with glimmer. Nucleic Acids Research 27 (1999), 4636–4641.
[8] G UIGO R, K NUDSEN S, D. N. S. T. Prediction of gene structure. J. Mol. Biol. (1992), 141–157.
[9] I.B., R., AND M ILANESI , L. Analysis of donor splice signals in different organisms. J. Mol. Evol. 45 (1997), 50–59. [10] K AN , Z., R. E. G. W., AND S TATES , D. Gene structure prediction and alternative splicing analysis using genomically aligned ests. Genome Res. 11 (2001), 889–900.
[11] KOTLAR , D., AND L AVNER , Y. Gene prediction by spectral rotation measure: a new method for identifying protein-coding regions. Genome research 13, 8 (Aug. 2003), 1930–7.
[12] K ROGH A, B ROWN M, M. I. S. K. H. D. Hidden markov models in computational biology: applications to protein modeling. J. Mol. Biol. 235 (1994), 1501–1531.
[13] K ROGH A, L ARSSON B, V. H. G. S. E. Predicting transmembrane protein topology with a hidden markov model: application to complete genomes. J. Mol. Biol. 305 (2001), 567–580.
[14] K ULP, D., H AUSSLER , D., R EESE , M., AND E ECKMAN , F. A generalized hidden markov model for the recognition of human genes in dna. In Proceedings of the Fourth International Conference on Intelligent Systems for Molecular Biology (1996), AAAI Press, pp. 134–142.
[15] L., S. Genome annotation: from sequence to biology. Nature Rev Genetic 2 (2001), 493–503.
[16] M S G ELFAND , A. A. M., AND P EVZNER , P. A. Gene recognition via spliced sequence alignment. Proc Natl Acad Sci 93(17) (1996), 9061–9066.
[17] M AJOROS , W. Unveil: An hmm-based genefinder for eukaryotic dna. Tech. rep., The Institute for Genomic Research, 1999.
[18] M AJOROS , W., P ERTEA , M., AND S ALZBERG , S. Tigrscan and glimmerhmm: two open-source ab initio eukaryotic gene finders. Bioinformatics 20 (2004), 2878–2879.
[19] M ATH E , C., S AGOT, M., S CHIEX , T., AND ROUZ E , P. Current methods of gene prediction, their strengths and weaknesses. Nucleic Acids Research. 30 (2002), 4103–4117.
[20] PAVLOVIC , V., G ARG , A., AND K ASIF, S. A bayesian framework for combining gene predictions. Bioinformatics 18 (2002), 19–27.
[21] P EARSON , W., AND L IPMAN , D. Improved tools for biological sequence comparison. Proc. Natl Acad. Sci. 85 (1988), 2444–2448.
[22] R., F. From sequence to biology: the impact on bioinformatics. Bioinformatics 18 (2002), 505–506.
[23] ROGIC , S., O UELLETTE , B., AND M ACKWORTH , A. Improving gene recognition accuracy by combining predictions from two gene-finding programs. Bioinformatics 18 (2002), 1034–1045.
[24] ROUZE P, PAVY N, R. S. Genome annotation: which tools do we have for it? Current Opin Plant Biological 2 (1999), 90–95.
[25] RUST AG, M ONGIN E, B. E. Genome annotation techniques: new approaches and challenges. Drug Discov Today 7 (2002), S70–76.
[26] S ALZBERG , S., D. A. K. S. . W. O. Microbial gene identification using interpolated markov models. Nucleic Acids Res. 26 (1998), 544–548.
[27] S ALZBERG , S., D ELCHER , A., FASMAN , K., AND H ENDERSON , J. A decision tree system for finding genes in dna. Journal of Computational Biology 5 (1998), 667–680.
[28] S ALZBERG , S., P ERTEA , M., D ELCHER , A., G ARDNER , M., AND TETTELIN , H. Interpolated markov models for eukaryotic gene finding. Genomic 59 (1999), 24—31.
[29] S MITH , T. F., AND WATERMAN , M. S. Identification of common molecular subsequences. Journal of Molecular Biology 147 (1981), 195–197.
[30] SR., E. Hidden markov models. Curr. Opin. Struct. Biol. 6 (1996), 361–365.
[31] S TORMO , G. Gene-finding approaches for eukaryotes. Genome Res. 10 (2000), 394–397.
[32] U BERACHER , E., AND M URAL , R. Locating protein-coding regions in human dna sequences by a multiple sensor-neural network approach. Proc. Natl Acad. Sci. 88 (1991), 11261–11265.
[33] Y ING X U , M URAL RJ, E. J. S. M. U. E. Grail: a multi-agent neural network system for gene identification. IEEE 84 (1996), 10.
[34] Z HANG , M. 2002. Computational Prediction of Eukaryotic Protein-Coding Genes. Nature GeneticsComputational Prediction of Eukaryotic Protein Coding Genes. Nature Genetics 3 (2002), 698–709.
[35] Z HANG , M., AND M ARR , T. A weight array method for splicing signal analysis. Comput. Appl. Biosci. (1993), 499–509.

jueves, 10 de mayo de 2012

Protein Folding

Description:
The protein folding problem was first recognized by Hsien Wu (1931) and Mirsky & Pauling (1936), approximately three-quarters of a century ago. The problem ‑ arguably the most significant unsolved problem in chemical biology ‑ is inherently grounded in protein thermodynamics, and thermodynamics is surely our most powerful discipline for understanding biological systems. So why does fundamental understanding of protein folding remain an unresolved question?


In work at the NIH, Anfinsen showed that a protein's three-dimensional structure is a spontaneous consequence of its amino acid sequence in water at physiological temperature and pressure. Remarkably, under dilute solution conditions, a purified protein adopts its native fold without either the addition of energy or assistance from auxiliary cellular components (chaperones notwithstanding). The fold of the protein links the one‑dimensional, linear world of DNA to the three-dimensional world of biological function; accordingly, protein folding is a cornerstone of life on earth. Yet, in essence, this self-assembly process lies within the province of biophysics, not cell biology.


The classic folding paradigm, established by Anfinsen and others, has been interpreted to mean that under folding conditions, the native fold is selected from an astronomical number of conceivable alternatives by the constellation of favorable interactions between and among its amino acid sidechains. This plausible idea is entirely consistent with the characteristic close-packing seen in protein crystal structures, where it is apparent that residues distant in sequence are juxtaposed in space, presumably providing both structural stability and topological specificity. Contrary to this view, I will discuss evidence from both experiment and simulations that the overall fold is established prior to eventual sidechain close-packing. Consequently, formation of the folded, hydrogen-bonded framework and its further stabilization via sidechain locking are separable folding events, an enormously simplifying realization.


The NIH Director's Wednesday Afternoon Lecture Series includes weekly scientific talks by some of the top researchers in the biomedical sciences worldwide.
Author: Dr. George Rose
Runtime: 01:19:36
Permanent link: http://videocast.nih.gov/launch.asp?16130

Comentario


La predicción de la estructura secundaria de la proteína es el puente entre la secuencia y la determinación de su estructura tridimensional, la cual está implícita en la secuencia de aminoácidos enlazados por propiedades fisico-qímicas, también conocida como estructura primaria. Computacionalmente, una proteína se representa como una secuencia de símbolos de un alfabeto λ de 20 aminoácidos. Los aminoácidos de una secuencia se conocen como residuos.
λ = {A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y }

La forma de plegamiento resultante de la proteíına, en gran parte, es consecuencia de la secuencia de aminoácidos. El hecho de que las proteínas se plieguen solas de una manera tan fidedigna y eficiente es una paradoja aún no resuelta, formulada por primera vez por Levinthal: la búsqueda sistemática de la conformación nativa puede tomar millones de años, pero el tiempo real de plegamiento de una proteína oscila entre el microsegundo y el minuto. Existen algunas explicaciones de cómo sucede, pero aún no se tiene la verdad absoluta. Por lo pronto, el modelo computacional del plegamiento asume que la secuencia de residuos se pliega inicialmente conformando núcleos, para después compactarse hasta alcanzar estructura intermedia (estructura secundaria) que evolucionará hacia la terciaria. La estructura secundaria consiste involucra la organización espacial de la secuencia de aminoácidos en tres tipos de estructuras: hélices, hojas y giros. La predicción de estas estructuras es una tarea computacionalmente muy costosa.

miércoles, 9 de mayo de 2012

Geospatial revolution







Comentario
Como sistemas abiertos, las estrucutral políticas y sus poblaciones están sometido a continuas estimulaciones que obligan a una transformación permanente.  Para entender las consecuencias que se derivan de estos cambios se deben entender las dinámicas espaciales involucradas.    Los sistemas de información geográfica (SIG) permiten el análisis de locaciones a diferentes escalas, la gestión de diferentes fuentes de datos con tipos de datos complejos y la visualización gráfica de las dinámicas mediante la elaboración de mapas temáticos.  


Este interesante video muestra la importancia en el siglo 21 de los SIG en la gestión de diversas situaciones poblacionales que van más allá de las fronteras.   La ampliación de este tema se puede encontrar en los videos: 


lunes, 7 de mayo de 2012

Análisis espacial con sistemas de información geográfica: sus cinco conceptos fundamentales

Comentario


Muchas situaciones del mundo real pueden presentar problemas que requieran representación ó modelos manipulables para su solución.   Evidentemente, la realidad suele ser compleja y los problemas reales habitualmente dependen de multitud de parámetros o variables, al mismo tiempo que suelen estar interrelacionados con otros procesos.  El diseño de un modelo lleva aparejada la simplificación de muchos aspectos del problema real. Un modelo puede ser una ley, una ecuación o una idea estructurada.   Desde esta perspectiva, la modelación cobra gran importancia para los investigadores porque a través de ellos se puede analizar, determinar y representar la dinámica o movimiento que tiene un elemento, un mecanismo o un proceso. 


Un modelo no siempre se puede ver como una representación idealizada y simplificada de la realidad.  Por ejemplo, la caracterización de un fenómeno natural geo-espacial persigue tanto la estimación y predicción de procesos, como de los parámetros que los gobiernan.  Los datos espaciales refieren a entidades o fenómenos que tienen una posición absoluta sobre un sistema de coordenadas, una posición relativa frente a otros elementos del paisaje (topología), una figura geométrica que las representan (punto, línea, polígono) y atributos que lo describen (características del elemento o fenómeno).  Los procesos espaciales son complejos y generalmente caracterizados mediante un gran número de observaciones en el espacio; integradas por complicadas dinámicas.  




  


Los métodos convencionales están quedando cortos en cuatificar las incertidumbre en los parámetros; ya que el universo del discurso de los modelos espaciales y geográficos (espacio-temporales) es muy grande.  Aunque los  métodos para la modelación espacial han cobrado importancia en la mayoría de las áreas que involucran datos espaciales y geográfico; la aplicación de modelos estadísticos espaciales basados en covarianza puede llegar a ser inapropiada o computacionalmente ineficiente; debido principalmente con los efectos de heterogeneidad y dependencia espacial inherentes en los datos.  En el artículo, se encuentra un breve puntode vista de la aplicabilidad de los sistemas de información geográfica como instrumento: organizativo en la modelación estática de problemas espaciales y; de configuración espacial y simulación digital en la modelación dinámica.

Para más información en haga click en los siguientes enlaces:

Gustavo D. Buzai

Yois S. Pascuas Rengifo (2009).  
Universidad Distrital Francisco José de Caldas, Bogotá, Colombia. yoispascuas@hotmail.com