Mostrando entradas con la etiqueta Bioinformatica. Mostrar todas las entradas
Mostrando entradas con la etiqueta Bioinformatica. Mostrar todas las entradas

lunes, 24 de junio de 2013

Python para BioInformatica introducción al comando Seq (parte 1)


Las secuencias son simplemente cadenas de texto como por ejemplo “GGTCGGTGGTCG”, que representan algún tipo de información de índole biológico. Se debe distinguir algunas características de  las cadenas y las secuencias en Biopython, tienen diferentes métodos. Aun que el objeto Seq admite algunos de los métodos de una cadena simple.
Una diferencia sumamente importante es que un objeto Seq tiene, es que  depende de un alfabeto (Alphabet), el cual describe exactamente muchas de las características que posee la secuencia en estudio, esta es su gran ventaja de uso ya que  así nos permite limitar la información  que contiene el objeto Seq. En esta introducción notaremos algunas similitudes  de una secuencia y una cadena simple en python.
>>> cadena = "AGAGAGACTGCTCG"
>>> from Bio.Seq import Seq
>>> secuencia = Seq ("AGAGAGACTGCTCG")
>>> ### al aplicar el comando type notamos la diferencia
>>> print(type(cadena))
<class 'str'>
>>> print(type(secuencia))
<class 'Bio.Seq.Seq'>
>>> ### podemos conocer la magnitud de cada una
>>> print(len(secuencia))
14
>>> print(len(cadena))
14
>>> ### tambien los elementos  q la componen
>>> secuencia[6]
'A'
>>> cadena[6]
'A'
>>> ### se puede extrer un segmento de cada una como si  fuera una cadena normal
>>> cadena2 = cadena[1:3]
>>> secuencia2 = secuencia[1:3]
>>> #### hacer operaciones basicas  como un string
>>> total = secuencia + secuencia2
>>> print (total)
AGAGAGACTGCTCGGA
>>> TOTAL = cadena + cadena2
>>> print(TOTAL)
AGAGAGACTGCTCGGA
>>> ### podemos invertir una cadena
>>> cadena_invertidad = cadena[::-1]
>>> cadena_invertidad
'GCTCGTCAGAGAGA'
>>> #### de la  misma forma se puede invertir una secuencia
>>> secuencia_invertida = secuencia[::-1]
>>> secuencia_invertida
Seq('GCTCGTCAGAGAGA', Alphabet())
>>> #### empleando count
>>> ######### aplicado a una cadena
>>> cadena
'AGAGAGACTGCTCG'
>>> cadena.count("A")
4
>>> #### esto qiere decir que en nuestra cadena aparece 4 veces A
>>> ######### lo mismo se puede hacer  auna secuencia
>>> secuencia.count("A")
4
Este sencillo ejemplo nos hace  ver que muchos de nuestros comandos usados a diario  cuando programamos en python son aplicados  en una secuencia. Para demostrarlo crearemos un pequeño programa donde trataremos con el objeto secuencia y como una cadena normal y notaremos que el resultado es el mismo.


from Bio.Seq import Seq
import matplotlib.pyplot as plt
from matplotlib import font_manager as fm

secuencia = Seq ("ACGCTGCTCGATCGCTGATGCTCGCCGATCGCTCGATGCTGCTGCTGCTAGA")
a = secuencia.count("A")
g = secuencia.count("G")
c = secuencia.count("C")
t = secuencia.count("T")
D = len(secuencia)
dato = [a,g,c,t]
pa = a/D *100
pg = g/D *100
pc = c/D * 100
pt = t/D * 100
fraccion = [pa, pg, pc, pt]
nombres = 'A', 'G', 'C', 'T'
fig = plt.figure(1,figsize= (5,5))
ax = fig.add_axes([0.1,0.1,0.8,0.8])
plt.title('Composicion de la Secuencia')
p, texto, dtexto = ax.pie(fraccion, labels = nombres, autopct = '%1.1f%%')
propiedades = fm.FontProperties()
propiedades.set_size('x-large')
plt.setp(dtexto, fontproperties= propiedades)
plt.setp (texto, fontproperties = propiedades)

plt.show()
La gráfica generada  es:
 Ahora trataremos nuestra secuencia como si fuera una cadena simple  en python
from Bio.Seq import Seq
import matplotlib.pyplot as plt
from matplotlib import font_manager as fm

cadena = "ACGCTGCTCGATCGCTGATGCTCGCCGATCGCTCGATGCTGCTGCTGCTAGA"
a = cadena.count("A")
g = cadena.count("G")
c = cadena.count("C")
t = cadena.count("T")

D = len(cadena)
dato = [a,g,c,t]

pa = a/D *100
pg = g/D *100
pc = c/D * 100
pt = t/D * 100

fraccion = [pa, pg, pc, pt]
nombres = 'A', 'G', 'C', 'T'
fig = plt.figure(1,figsize= (5,5))
ax = fig.add_axes([0.1,0.1,0.8,0.8])
plt.title('Composicion de la Secuencia como cadena')
p, texto, dtexto = ax.pie(fraccion, labels = nombres, autopct = '%1.1f%%')
propiedades = fm.FontProperties()
propiedades.set_size('x-large')
plt.setp(dtexto, fontproperties= propiedades)
plt.setp (texto, fontproperties = propiedades)

plt.show()
la gráfica como cadena es:

viernes, 21 de junio de 2013

Python para Bioinformatica introducción al Alphabet (Alfabeto)

En python podemos manejar listas, y tuplas y algunas de estas contienen variables del tipo string por lo que  es necesario conocer un poco acerca de  este pido de  datos antes de  aventurarnos en  el manejo de python 3.x para  bioinformatica.
En la bioinformatica es común usar un gran conjunto de letras que representan diversos tipos de información, ejemplo el ADN está compuesto por 4 letras (A,D,G,C),  aminoácidos, y otro tipo de información son representados simbólicamente.

>> ##importando el modulo Bio.Alphabet
>>> import Bio.Alphabet
>>> ##casos mas usuales y comun mente empleados
>>> casos_comunes =Bio.Alphabet.ThreeLetterProtein.letters
>>> print (casos_comunes)
['Ala', 'Asx', 'Cys', 'Asp', 'Glu', 'Phe', 'Gly', 'His', 'Ile', 'Lys', 'Leu', 'Met', 'Asn', 'Pro', 'Gln', 'Arg', 'Ser', 'Thr', 'Sec', 'Val', 'Trp', 'Xaa', 'Tyr', 'Glx']
>>> ### estos datos y modulos tambien interaccionan con funciones endemicas de python
>>> print(type(casos_comunes))
<class 'list'>
>>> print(len(casos_comunes))
24
Los alfabetos definidos por la IUPAC se encuentran en el modulo

>>> from Bio.Alphabet import IUPAC
>>> iupac = IUPAC.IUPACProtein.letters
>>> print(iupac)
ACDEFGHIKLMNPQRSTVWY
En ocaciones se trabaja con grupos de aminoacidos que no se encuentran frecuentemente en proteínas para eso, se emplea un diccionario extendido para estos casos definido por la IUPAC, la forma de acceder a el es la siguiente.
>>> from Bio.Alphabet import IUPAC
>>> iupacext = IUPAC.ExtendedIUPACProtein.letters
>>> print(iupacext)
ACDEFGHIKLMNPQRSTVWYBXZJUO

Otro tipo de Alphabet (alfabeto) extendido, que contempla algunas propiedades fisicoquimicas comunes de los elementos que la conforman. La forma de acceder a este modulo es de la siguiente manera.



>>> from Bio.Alphabet import IUPAC
>>> iupacDNA = IUPAC.ExtendedIUPACDNA.letters
>>> print(iupacDNA)
GATCBDSW
Existe otro tipo de módulos de alfabetos que contemplan "posiciones de Ambiguedad" donde mas de un nucleotido puede estar presente, el código en python es el siguiente.

>>> al = IUPAC.unambiguous_dna.letters
>>> print(al)
GATC

Estos son los comandos basicos del manejo de los alfabetos en python, mas adelante exploraremos las propiedades de los mismos,  asi como su utilidad con el comando Seq.

domingo, 31 de marzo de 2013

Instalando BioPython1.6.1 en Python 3

Cada análisis de bioinformatica se lleva a cabo bajo diferentes condiciones y parámetros lo que lo hace único. Aun así  hay algunas tareas en estos análisis que son constantes y comunes entre cada análisis, esta situación no hace ver que hay una necesidad de un paquete informático para resolución de problemas del tipo  biológico. Biopython  es  una de las respuestas a la necesidad de un paquete informático para la resolución de estos problemas.

Al instalar Biopython nos agrega múltiples módulos que nos facilitaran las tareas de análisis bioinformatica. (Algunos de estos módulos los explicaremos después ya que en este momento solo  veremos la forma de instalarlo)
Para poder instalarlo en nuestro caso nos descargaremos biopython-1.61.win32-py3.3-beta.exe


Ahora procedemos a probar si  contamos ya con  Biopython instalado, para esto lo importamos de de python 3.3 de la siguiente manera

Ya tenemos instalada la version 1.61 de Biopython y estamos listo para empezar a jugar con ella.

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
                                                                                    

lunes, 3 de septiembre de 2012

BioInformatica en Matlab

La bioinformática, según una de sus definiciones más sencillas, es la aplicación de tecnología de computadores a la gestión y análisis de datos biológicos. Los términos bioinformática, biología computacional y, en ocasiones, biocomputación, utilizados en muchas situaciones como sinónimos, hacen referencia a campos de estudios interdisciplinares muy vinculados que requieren el uso o el desarrollo de diferentes técnicas estudiadas universitariamente en la Ingeniería Informática como ciencia aplicada de la disciplina informática. Entre estas pueden destacarse las siguientes: aplicada, estadística, ciencias de la computación, inteligencia artificial, química y bioquímica con las que el Ingeniero Informático soluciona problemas al analizar datos, o simular sistemas o mecanismos, todos ellos de índole biológica, y usualmente (pero no de forma exclusiva) en el nivel molecular. El núcleo principal de estas técnicas se encuentra en la utilización de recursos computacionales para solucionar o investigar problemas sobre escalas de tal magnitud que sobrepasan el discernimiento humano. La investigación en biología computacional se solapa a menudo con la biología de sistemas.
MATLAB es el nombre abreviado de “MATrix LABoratory”. MATLAB es un entorno de computación y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados cálculos matemáticosy la visualización gráfica de los mismos.
MATLAB integra análisis numérico, cálculo matricial, proceso de señal y visualización gráfica en 2D y 3D en un entorno completo donde los problemas y sus soluciones son expresados del mismo modo en que se escribirían normalmente, sin necesidad de hacer uso de la programación tradicional.
MATLAB tiene también un lenguaje de programación propio, que permite crear aplicaciones basadas en el robusto código de MATLAB.
MATLAB dispone también en la actualidad de un amplio abanico de programas de apoyo especializados, denominadosToolboxes, que extienden significativamente el número de funciones incorporadas en el programa principal. Estos Toolboxes cubren en la actualidad prácticamente casi todas las áreas principales en el mundo de la ingeniería y la simulación.
La Bioinformatics toolbox ofrece a los biólogos moleculares y a otros investigadores científicos un entorno abierto y extensible, en el cual pueden explorar ideas, hacer prototipos de nuevos algoritmos, y construir aplicaciones en investigación de drogas, ingeniería genética, y otros proyectos genómicos y proteomicos.
La toolbox provee acceso a formatos de datos genómicos y proteomicos, técnicas de análisis y visualizaciones especializadas para secuencias genómicas y proteomicas y análisis de microarrays.
La mayoría de las funciones están implementadas en el lenguaje abierto de MATLAB, permitiéndote personalizar los algoritmos o desarrollar tus propios algoritmos. Con este último Toolbox The MathWorks está entregando el poder y versatilidad de su ambiente informático técnico integrado directamente a la biotecnología y las industrias farmacéuticas.

Como resultado, los bioinformáticos pueden usar el toolbox para enfocar los esfuerzos en el centro de su trabajo – la investigación y análisis – sin los riesgos asociados con usar programas o software dispares.
Entre sus numerosos rasgos y capacidades, el Bioinformatics Toolbox proporciona el acceso a archivos del genoma en formatos normales, los bancos de datos basados en la web como GenBank y PIR, y las fuentes de los datos en línea.
El toolbox también ofrece las rutinas especializadas para visualizar los datos de Microarrays (micro-arreglos o biochips), incluyendo las cajas de gráfico, los gráficos I-R y los mapas espaciales de calor.
” Los bioinformáticos han tenido que invertir mucho tiempo en matemática de programación y algoritmos de estadística en un horario corto, tradicionalmente,” dijo Kristen Amuzzini, gerente del área de biotecnologia, farmacéutica e industria médica de, The MathWorks. Y continua : “La combinación de los productos de MATLAB de hoy y el nuevo Bioinformatics Toolbox entrega las herramientas que ellos necesitan para analizar gran cantidad de datos y como resultado da elementos que identifican los puntos donde potencialmente se necesita desarrollar un remedio rápida y eficazmente.”

Archivos y expresiones en formato comprensibles en genética, genómica proteomica.
Acceso a bases de datos de Internet
Herramientas de análisis de secuencias
Conversión, adaptación y estadísticas de secuencias del genoma y proteínas.
Herramientas de análisis de árboles filogenéticos
Gráficas de puntos, gráficas de grupos, gráficas de sectores y otras representaciones gráficas de datos genómicos y proteómicos.
Funciones para alineamiento por pares y alineamientos múltiples de secuencias
Capacidad para analizar y visualizar datos de microarrays
Soporte para preprocesamiento y análisis de espectrometría de masas.
Funcionalidad de ontología de los genes