miércoles, 31 de octubre de 2012

Animacion de Graficos en Matlab

Les  dejo el código usado en el  videotutorial anterior sobre animación de graficos 2D.
posteriormente  publicare el siguiente videotutorial.


%Animacion de Graficos en Matlab....
clear all
clc
x=[-10:1:10];
k=-1;
y=k*x.^2-2;

h=plot(x,y,'-o');
grid on
axis([-10,10,-100,100]);
while k<1
    for i=1:length(x)
     k=k +.1;%mov de incremento
     y=k*x.^2-2; %Funsion Original
    
     set(h,'XData',x,'YData',y);
     drawnow % grafiq en el mismo punto
             % comando mas avanzado que hold on/ off
    
    Image = getframe;
     P = frame2im(Image);
     number = num2str(i);
     extension = '.bmp';
     filename = [number,extension];
     imwrite(P,eval('filename'), 'bmp');
    end
    
end





lunes, 29 de octubre de 2012

Gui de Matlab para identificación Bacteriana

su interfaz gráfica de usuario es para identifcación bacteriana desarrollada por MATLAB. La interfaz gráfica de usuario se basa en la comparación de algunos resultados opcionales bioquímicos con matriz de probabilidad y puede distinguir 288 unidades bacterianas taxonómicas operacionales (Otus). De red neuronal probabilística (PNN) estructura se utiliza para obtener el resultado más probable de la identificación de bacterias. Y cuando un rango apropiado de la distancia que se elija, la bacteria desconocida y sus aliados Otus en el fenotipo bioquímico dentro de ese rango, pueden ser ilustrado en el espacio tridimensional clásico por escalamiento multidimensional (MDS)






















DESCARGAR



lunes, 22 de octubre de 2012

Bioinformatica en Matlab -- Comando getgenbank


Muchas veces al hablar un poco de BioInformática con muchos  estudiantes de posgrado en ciencias químicas, la mayoría  al momento de la platica  gira la cabeza como intentado evadir la conversación, o mostrar su falta de conocimiento o poco interés sobre el tema. Aclaro no me siento ser un experto sobre Matlab y mucho menos sobre BioInformática.
Ala primera pregunta que me dirijo cuando me empiezo a sumergir en el tema es ¿Dónde encuentro Datos e información?, la segunda ¿Necesito saber Programar? Son  dos preguntas principales que siempre  nos invaden en el momento que nos interesamos en este  fascinante mundo.
Hoy responderemos la primera interrogante ¿Dónde encontramos Datos e Información?
Casi el toda la información sobre el tema esta en ingles, muchas veces esto es una limitante muy importante, al hablar de bases de datos tengo hacer referencia al National Center for Biotechnology Information (NCBI). Para mas información pueden visitar http://www.ncbi.nlm.nih.gov/genbank/

Ahora analizaremos un comando importante en Matlab que nos sirve para poder descargar los valores que necesitamos para practicar o procesar.

La sintaxis del comando es la siguiente
        Data = getgenbank('AccessionNumber', 'PropertyName',PropertyValue...)
        getgenbank(..., 'ToFile', ToFileValue)
        getgenbank(..., 'FileFormat', FileFormatValue)
        getgenbank(..., 'SequenceOnly', SequenceOnlyValue)

AccessionNumber: identificador único para cada secuencia.
ToFile:  identificador de ubicación.
FileFormat: Especifica el formato del archivo.
SecuenceOnly: nos da la capacidad de controlar una o mas veces la secuencia. False o True

Ahora usare en comando getgenbank para descargar la secuencia del cromosoma 19  encargado  de codificar el receptor de insulina.


S=getgenbank('M10051');
 %lo guardamos en la variable S

Procederemos a mostrar los Dato que contiene nuestra variable  S

>> S

S = 

                LocusName: 'HUMINSR'
      LocusSequenceLength: '4723'
     LocusNumberofStrands: ''
            LocusTopology: 'linear'
        LocusMoleculeType: 'mRNA'
     LocusGenBankDivision: 'PRI'
    LocusModificationDate: '06-JAN-1995'
               Definition: [1x42 char]
                Accession: 'M10051'
                  Version: 'M10051.1'
                       GI: '186439'
                  Project: []
                   DBLink: []
                 Keywords: 'insulin receptor; tyrosine kinase.'
                  Segment: []
                   Source: 'Homo sapiens (human)'
           SourceOrganism: [4x65 char]
                Reference: {[1x1 struct]}
                  Comment: [14x67 char]
                 Features: [51x74 char]
                      CDS: [1x1 struct]
                 Sequence: [1x4723 char]
                SearchURL: [1x67 char]
              RetrieveURL: [1x101 char]

Como ven el uso del comando getgenbank es muy útil y fácil de usar.
para que cada uno practique le dejo los siguientes códigos.
Espero sus comentarios

NC_000117   Chlamydia
NC_002179   Chlamydophila pneumoniae
                                                                                    

sábado, 13 de octubre de 2012

Programas para la Voyage 200 parte 3

Este programa permite calcular la presión de burbuja de una mezcla, que obedece a la ley de Raoult, de una mezcla ideal, (para mejor entendimiento). Es para voyage 200, la ecuación que utiliza para hacer los cálculos es la ecuación de Antoine en logaritmo natural, deben de checar que las constantes que introduzcan correspondan a la ecuación en logaritmo natural, es igual que en los programas anteriores, con la limitante de que sólo trabaja con las constantes para la ecuación en logaritmo natural. 
Para ejecutar este programa desde la Voyage 200 les dejo las siguientes capturas:

Solo tecleas en la Voyage en la página principal lo siguiente: bublp() y das enter




Después de eso te saldrá esta pantalla:




Introduces los datos necesarios y te dará el resultado.




Link de Descarga

sábado, 6 de octubre de 2012

input Avanzado en Matlab parte 2 - Validacion de Datos

Es una buena practica de programacion la Validacion  de nuestros datos a introducir, Matlab cuenta con múltiples comandos para validar datos, algunos de ellos son los siguientes: isempty, isinteger, isnan, isnumeric. Creo que no es necesario mostrar cada uno de ellos ya que con el simple nombre del comando u función nos damos a la idea de cual es el funciona miento.

%Validacion de Datos  de entrada en Matlab
%ejemplo practico.
clear all
clc
while true %iniciamos bucle infinito
    num = input('Introdusca un numero entre 1 y 10:  ');
    if isempty(num)
        fprintf('No soportado' \n');
    elseif ~isnumeric(num)
        fprintf('%s No es un numero \n',num);
    elseif num ~= round(num)
        fprintf('No es un No Entero \n');
    elseif num&lt;1 || num&gt;10
        fprintf('%f No esta en el intervalo 1 a 10\n',num);
    else
        fprintf('introdujo un No, correcto Gracias!! %f\n',num);
        break; % condición Valida salimos del bucle infinito
    end
end

miércoles, 3 de octubre de 2012

input Avanzado en Matlab parte 1 - Valores por Defecto

Una buena practica de programación es la incorporación de valores por defecto ( Default values ), esto nos permite que la aplicación sea mas entendible para el usuario, aun que muchas veces eso no ve reflejado en una mejora o simplicidad del código a escribir.
La característica principal de un valor por defecto  es que siempre nos basemos en el Dato más común que nuestros usuarios mostraran o usaran.
 Acontinuacion un ejemplo Sencillo.
clear all
clc
reply = input('Es mayor de Edad? Y/N [Y]: ', 's');
if isempty(reply)
    reply = 'Y';  % por default yes [Y]
end


reply = upper(reply); % Transformamos a mayusculas

if reply(1) == 'Y'  % verificamos 
    fprintf('Es Mayor de Edad Felicidades .\n');
else
    fprintf('No es Mayor de edad le Falta Crecer.\n');
end

Una gran ventaja de considerar que la repuesta puede ser introducida mediante mayusculas o minusculas la cubrimos con el comando upper.

posteriormente publicaremos la forma de validar datos en un input.