Matlab aplicado a la bioinformática

Por Germán González

MATLAB es el nombre abreviado de “MATrix LABoratory”, 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. La aplicación 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.

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.

Bioinformatics toolbox

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 ideashacer prototipos de nuevos algoritmos, y construir aplicaciones en investigación de drogasingenierí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 algoritmosdesarrollar 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 (microarreglos o biochips), incluyendo las cajas de gráfico, los gráficos I-R y los mapas espaciales de calor.

“Los bioinformáticos tradicionalmente han tenido que invertir mucho tiempo en programar algoritmos matemáticos y estadísticos,” 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

 

Formatos de archivo y acceso a bases de datos

Puedes acceder a muchos formatos estándar para datos biológicos, bases de datos de Internet, y otros recursos online desde la bioinformatics toolbox. Por ejemplo, puedes:

  • Leer secuencias de datos desde formatos de archivos estándar, incluyendo FASTA, PDB y SCF
  • Leer datos de un Microarray, de formatos de archivo como Affymetrix DAT, EXP, CEL, CHP y CDF; formato de resultados de ImaGene; archivos Agilent; y archivos GenePix GPR y GAL.
  • Interfaz con las principales bases de datos de la web, como GenBank, EMBL, NCBI, BLAST y PDB.
  • Importar datos directamente del sitio web de NCBI, usando un solo comando.

 

Análisis de secuencias

La toolbox de bioinformática provee funciones para el secuenciamiento y visualización de secuencias genómicas
y proteomicas.

 

Alineamiento de secuencias

La toolbox de bioinformática ofrece un detallado conjunto de
métodos de análisis para secuenciamiento de pares, perfiles de secuencias, y alineamiento múltiple de secuencias.

Esto incluye:

  • Implementaciones en MATLAB de algoritmos estándar para alineamientos locales y globales de secuencias, tal como los algoritmos Needleman-WunschSmith-Waterman y modelos ocultos de Markov.
  • Alineamiento progresivo de múltiples secuencias.
  • Representaciones gráficas de las matrices resultantes del alineamiento.
  • Matrices estándar de puntajes, como las familias de matrices PAM y BLOSUM.

 

Utilidades de secuencias y estadísticas

Puedes manipular y analizar tus secuencias para ganar un conocimiento profundo de tus datos.

Las rutinas de la toolbox de bioinformática te permiten:

  • Convertir secuencias de ADN o ARN a secuencias de aminoácidos usando el código genético.
  • Realizar análisis estadísticos sobre las secuencias y buscar patrones específicos dentro de la secuencia.

 

Visualización de la secuencia

La toolbox de bioinformática contiene herramientas para
visualizar secuencias y alineamientos. Puedes ver mapas lineales o circulares de secuencias anotadas con características GenBank.
Visores interactivos te permiten ver, modificar y explorar pares y alineamientos múltiples de secuencias.

 

Análisis de árboles filogenéticos

La bioinformatics toolbox te permite crear y editar árboles filogenéticos. Puedes calcular distancias entre nucleótidosalineados y no alineados o secuencias de aminoácidos usando un amplio rango de métricas similares, como Jukes-Cantor, p-distance, alignment-score, o un método definido por el usuario. Los árboles filogenéticos son construidos usando lazos jerárquicos con una variedad de técnicas, incluyendo junta de vecinos, ligaduras simples y completas, y UPGMA.

 

Análisis de características de las proteínas

La toolbox de bioinformática provee varios métodos de análisis de proteínas, así como rutinas para calcular propiedades de secuencias peptidícas, como composición atómica, punto isoeléctrico, y peso molecular. Puedes determinar la composición de aminoácidos
de una secuencia de proteínas, cortando la proteína con
una enzima. Una GUI te permite ver las propiedades a lo largo de tu secuencia.

 

Análisis y visualización de datos de microarrays

El análisis y visualización de datos de Microarrays te
permiten analizar y comprender los datos sin refinar de los microarrays.

 

Normalización de Microarrays

La Bioinformatics toolbox provee varios métodos para normalizar los datos de los microarrays, incluyendo lowess, media global, desviación media absoluta (MAD), y normalización. Estos métodos pueden ser aplicados sobre todo el Microarray o sobre regiones especificas o bloques. Las funciones de filtrado y de imputación te permitenlimpiar datos sin refinar antes de correr las rutinas de análisis y visualización.

 

Análisis de datos y visualización

La Bioinformatics toolbox te permite realizar ajustes de fondo y calcular los valores de la expresión génica de microarrays Affymetrix usando el robusto promedio multiarray (RMA).

Podés realizar normalización de grupos sin variación de rangos (jerarquías) en intensidades de prueba para archivos CEL múltiples (de Affymetrix) o valores de expresión génica de dos condiciones experimentales diferentes.

Rutinas especializadas para visualizar datos de microarrays incluyendo gráficas volcán, cajas de gráfico, los gráficos I-R y los mapas espaciales de calor.

 

Ontología de genes

La Bioinformatics toolbox provee funcionalidades para acceder a la base de datos de ontología génica dentro de MATLAB, analizando archivos de Ontología genética, obtén subconjuntos de la ontología, tales como ancestros,
descendientes y parientes.

 

Análisis de datos de Espectrometría de Masas

Un conjunto de funciones es provisto para analizar los datos que surgen de la espectrometría de masas. Un conjunto de funciones es provista para analizar esta información. Las herramientas
están diseñadas para el preprocesamiento, clasificación, e identificación de marcadores de datos
SELDI y MALDI

Las funciones de preprocesamiento incluyen corrección de líneas de fondo, alisado, alineamiento, remuestreo. Una GUI te permite ver múltiples espectros simultáneamente.

 

Conocimientos estadísticos y visualización

La Bioinformatics toolbox provee funciones que se ensamblan sobre las herramientas de la Statistics toolbox. Esta incluye strong>SVM (support vector machine) y clasificador de vecinos Knearest; funciones para establecer experimentos de validación cruzada y para medir la performance de diferentes métodos de clasificación; y herramientas para seleccionar características exigentes. La vista gráfica y las herramientas de manipulación te permiten visualizar mapas de interaccióngráficos de jerarquíacaminos.

 

Ejemplos

En esta sección veremos algunas aplicaciones de la Bioinformatics toolbox en la obtención de estadísticas sobre secuenciasy en la creación de árboles filogenéticos.

 

Estadística de secuencias con MATLAB

Esta demostración muestra como obtener algunas estadísticas acerca del ADN contenido en el genoma mitocondrial humano. Las mitocondrias son generalmente el principal centro de producción de energía en las eucariotas. “The Genome repository” en el NCBI contiene más información interesante acerca del genoma mitocondrial humano. Su web: http://www.ncbi.nlm.nih.gov/

La secuencia consensuada del genoma mitocondrial humano tiene el numero de acceso NC_001807. La entrada completa del GenBank es un poco larga, y este ejemplo solo utiliza la secuencia de nucleótidos, así que puedes usar la función getgenbankcon la bandera ‘SequenceOnly’ para leer solo la información de la secuencia en el área de trabajo de MATLAB.

mitochondria = getgenbank(‘NC_001807′,’SequenceOnly’,true);

Si no posees una conexión directa a Internet, puedes cargar los datos de un archivo-MAT usando el comando

%load mitochondria % <== Descomenta esto si no tienes conexión a Internet

El comando whos de MATLAB provee información acerca del tamaño de la secuencia

whos mitochondria

Name Size Bytes Class

mitochondria 1×16571 33142 char array

Grand total is 16571 elements using 33142 bytes

Puedes utilizar algunas de las funciones estadísticas de secuencias en la toolbox de bioinformática para ver varias propiedades de esta secuencia. Puedes mirar la composición de los nucleótidos con la función ntdensity.

ntdensity(mitochondria)

densityGraph

Composición del genoma mitocondrial

Esto muestra que el genoma es rico en A-T. Puedes obtener información más especifica con la función basecount.

basecount(mitochondria)

ans =

A: 5113

C: 5192

G: 2180

T: 4086

Estas están en la hebra 5’-3’. Puedes ver el complemento inverso usando la función seqrcomplement.

basecount(seqrcomplement(mitochondria))

ans =

A: 4086

C: 2180

G: 5192

T: 5113

Como era de esperar el conteo de bases en el complemento inverso es
complementario al conteo en la hebra 5’-3’.

Puedes usar la opción gráfica de basecount, para
mostrar una gráfica de torta con la distribución de las
bases.

figure

basecount(mitochondria,’chart’,’pie’)

Ahora observa los dímeros (moléculas consistentes en dos moléculas simples idénticas) y muestra la información en una gráfico de barras usando dimercount.

dimercount(mitochondria,’chart’,’bar’)

ans =

AA: 1594

AC: 1495

AG: 801

AT: 1223

CA: 1536

CC: 1779

CG: 439

CT: 1438

GA: 615

GC: 716

GG: 427

GT: 421

TA: 1368

TC: 1202

TG: 512

TT: 1004

Puedes ver los codones usando codoncount. La función dimercount simplemente cuenta todos los nucleótidos
adyacentes; sin embargo codoncount cuenta los codones en un
marco de lectura particular. Sin opciones, la función muestra
la cuenta de codones en el primer marco de lectura.

codoncount(mitochondria)

AAA – 172 AAC – 157 AAG – 67 AAT – 123

ACA – 153 ACC – 163 ACG – 42 ACT – 130

AGA – 58 AGC – 90 AGG – 50 AGT – 43

ATA – 132 ATC – 103 ATG – 57 ATT – 96

CAA – 166 CAC – 167 CAG – 68 CAT – 135

CCA – 146 CCC – 215 CCG – 50 CCT – 182

CGA – 33 CGC – 60 CGG – 18 CGT – 20

CTA – 187 CTC – 126 CTG – 52 CTT – 98

GAA – 68 GAC – 62 GAG – 47 GAT – 39

GCA – 67 GCC – 87 GCG – 23 GCT – 61

GGA – 53 GGC – 61 GGG – 23 GGT – 25

GTA – 61 GTC – 49 GTG – 26 GTT – 36

TAA – 136 TAC – 127 TAG – 82 TAT – 107

TCA – 143 TCC – 126 TCG – 37 TCT – 103

TGA – 64 TGC – 35 TGG – 27 TGT – 25

TTA – 115 TTC – 113 TTG – 37 TTT – 99

Usando un bucle puedes también ver todos los otros marcos de lectura:

for frame = 1:3

figure

subplot(2,1,1); codoncount(mitochondria,’frame’,frame,’figure’,true);

title(sprintf(>’Codons for frame %d’,frame));

subplot(2,1,2); codoncount(mitochondria,’reverse’,true,’frame’,frame,’figure’,true);

title(sprintf(‘Codons for reverse frame %d’,frame));

end

Explorando el conjunto de datos de un Microarray

Este procedimiento usa datos de un estudio acerca de la expresión génica en cerebros de ratones como ejemplo. Estos datos fueron tomados de: http://www.pharmacology.ucla.edu/smithlab/genome_multiplex/

1. Leer los datos desde un archivo a una estructura de MATLAB. Por ejemplo, en la ventana de comandos escriba:

pd
= gprread(‘mouse_a1pd.gpr’)

MATLAB muestra información sobre la estructura:

pd =

Header: [1×1 struct]

Data: [9504×38 double]

Blocks: [9504×1 double]

Columns: [9504×1 double]

Rows: [9504×1 double]

Names: {9504×1 cell}

IDs: {9504×1 cell}

ColumnNames: {38×1 cell}

Indices: [132×72 double]

Shape: [1×1 struct]

2. Acceda a los campos de la estructura usando StructureName.FieldName. Por ejemplo, puede acceder al campoColumnNames de la estructura pd escribiendo:

pd.ColumnNames

ans =

‘X’

‘Y’

‘Dia.’

‘F635 Median’

‘F635 Mean’

‘F635 SD’

‘B635 Median’

‘B635 Mean’

‘B635 SD’

‘% > B635+1SD’

‘% > B635+2SD’

‘F635 % Sat.’

‘F532 Median’

‘F532 Mean’

‘F532 SD’

‘B532 Median’

‘B532 Mean’

‘B532 SD’

‘% > B532+1SD’

‘% > B532+2SD’

‘F532 % Sat.’

‘Ratio of Medians’

‘Ratio of Means’

‘Median of Ratios’

‘Mean of Ratios’

‘Ratios SD’

‘Rgn Ratio’

‘Rgn R†’

‘F Pixels’

‘B Pixels’

‘Sum of Medians’

‘Sum of Means’

‘Log Ratio’

‘F635 Median – B635’

‘F532 Median – B532’

‘F635 Mean – B635’

‘F532 Mean – B532’

‘Flags’

3. Acceda al nombre de los genes. Por ejemplo para listar los primeros 20 genes, escriba:

pd.Names(1:20)

ans =

‘AA467053’

‘AA388323’

‘AA387625’

‘AA474342’

‘Myo1b’

‘AA473123’

‘AA387579’

‘AA387314’

‘AA467571’

‘Spop’

‘AA547022’

‘AI508784’

‘AA413555’

‘AA414733’

‘Snta1’

‘AI414419’

‘W14393’

‘W10596’

Imágenes espaciales de los datos de microarrays

La función maimage puede tomar datos de un Microarray y crear una imagen en pseudocolor de los datos ordenados en el mismo orden que las celdas en el arreglo. En otras palabras, maimage realiza una gráfica espacial del Microarray.

wt =

Header: [1×1 struct]

Data: [9504×38 double]

Blocks: [9504×1 double]

Columns: [9504×1 double]

Rows: [9504×1 double]

Names: {9504×1 cell}

IDs: {9504×1 cell}

ColumnNames: {38×1 cell}

Indices: [132×72 double]

Shape: [1×1 struct]

Usa la función maimage para mostrar imagenes en pseudocolor del primer plano y del fondo. Puedes usar la función subplotpara poner todas las gráficas en una sola figura.

figure

subplot(2,2,1);

maimage(wt,’F635 Median’)

subplot(2,2,2);

maimage(wt,’F532 Median’)

subplot(2,2,3);

maimage(wt,’B635 Median’)

subplot(2,2,4);

maimage(wt,’B532 Median’)

Análisis filogenético

Es un proceso que usamos para determinar la relación evolutiva entre organismos. Estos resultados pueden dibujarse en un diagrama jerárquico llamado filograma (árbol filogenético)

 

Ejemplo: construcción de un arbol filogenético

  • Usamos datos de secuencias mitocondriales (D-loop), creamos un árbol filogenético para una familia de primates.
  • A partir de secuencias de ADN mitocondriales (mtDNA) para la familia HOMINIDAE.

 

Búsqueda de datos filogenéticos en el NCBI: Procedimiento

  • Usa el navegador de la ayuda de MATLAB para buscar datos en la Web. En la ventana de comandos de MATLAB tipea: web(‘http://www.ncbi.nlm.nih.gov’)
  • Busca el sitio web NCBI para más información
  • Selecciona el link taxonomy para la familia HOMINIDAE

 

 

Creación de un arbol filogenético para cinco especies

  • Crear una estructura MATLAB con información acerca de las secuencias.
  • Se emplean códigos de acceso para las secuencias mitocondriales D-loop aisladas de especies homínidas diferentes.

 

data = {‘German_Neanderthal’ ‘AF011222’;

‘Russian_Neanderthal’ ‘AF254446’;

‘European_Human’ ‘X90314’ ;

‘Mountain_Gorilla_Rwanda’ ‘AF089820’;

‘Chimp_Troglodytes’ ‘AF176766’;};

  • Obtener secuencias de datos de la base de datos GenBank y copiarlas en MATLAB

for ind = 1:5

seqs(ind).Header = data{ind,1};

seqs(ind).Sequence = getgenbank(data{ind,2}, ‘sequenceonly’, true);

end

  • Se calculan las distancias de parejas discretas y se crea un objeto phytree

distances = seqpdist(seqs,’Method’,’Jukes-Cantor’,’Alphabet’,’DNA’);

tree = seqlinkage(distances,’UPGMA’,seqs)

  • MATLAB dibuja un árbol filogenético

h = plot(tree,’orient’,’bottom’);

ylabel(‘Evolutionary distance’)

set(h.terminalNodeLabels,’Rotation’,-45)

 

Creación de un arbol filogenético para doce especies

  • Se adicionan más secuencias a la estructura MATLAB

data2 = {‘Puti_Orangutan’ ‘AF451972’;

‘Jari_Orangutan’ ‘AF451964’;

‘Western_Lowland_Gorilla’ ‘AY079510’;

‘Eastern_Lowland_Gorilla’ ‘AF050738’;

‘Chimp_Schweinfurthii’ ‘AF176722’;

‘Chimp_Vellerosus’ ‘AF315498’;

‘Chimp_Verus’ ‘AF176731’;

};

  • Obtener las secuencias adicionales de datos adicionales de la base de datos GenBank.

for ind = 1:7

seqs(ind+5).Header = data2{ind,1};

seqs(ind+5).Sequence = getgenbank(data2{ind,2},

‘sequenceonly’, true);

end

  • Se calculan las distancias pares iguales y el apareamiento jerárquico

distances = seqpdist(seqs,’Method’,’Jukes-Cantor’,’Alpha’,’DNA’);

tree = seqlinkage(distances,’UPGMA’,seqs);

  • MATLAB dibuja un árbol filogenético

h = plot(tree,’orient’,’bottom’);

ylabel(‘Evolutionary distance’)

set(h.terminalNodeLabels,’Rotation’,-45)

 

Bibliografía

Bioinformatics Toolbox For Use with MATLAB, User Guide, V. 21.1, The MathWorks Inc. 2005.

MATLAB 7.1, Release 14 Service Pack 3, The MathWorks Inc. 2005.

Bioinformatics Toolbox 2.1.1. The MathWorks Inc. , Septiembre 2005,

Bioinformatics Toolbox 2.3 The MathWorks Inc.

Toolbox de bioinformática: entorno de software integrado para el genoma y análisis proteómico – Jairo Pertuz Camp

 

Comentarios