Licencia GNU-GPL
? GNU General Public License (GPL)?
? Free Software (donde free is free as in freedom, not free as in beer)?
(Free Software Foundation: http://www.fsf.org)?
garantiza la libre difusión actual y futura del software que protege
Ejemplos de software Open Source
? Apache (servidor de páginas web)?
? Perl, R, Python, PHP, Tcl/Tk y otros lenguajes de programación
? MySQL, PostgreSQL (Sistemas Gestores de Bases de datos relacionales)?
? Linux (sistema operativo)?
Bioinformática y Open Source
Bioinformatics.org
Bioinformatics.Org es una organización internacional que promueve la libertad y la transpariencia en el campo de la bioinformática. Esto es llevado a cabo proporcionando recursos gratuitos y de codigo fuente abierto para la investigación, el desarrollo y la educación, de modo que tales recursos puedan ser desarrollados más todavía.
(tomado de http://bioinformatics.org)?
Conceptos horizontales en Bioinformática
? Open Source (licencia GNU)?
? Lenguajes de programación (Perl, R, Java…)?
? Algoritmos (BLAST, Fasta,…)?
? Linux
? Bases de datos relacionales (SQL, XML)?
? Arquitectura cliente-servidor (web-services)?
? Clusters de PCs
Perl
? lenguaje originalmente desarrollado para manipular cadenas de caracteres
? fundamentos muy sencillos de aprender
? buena rapidez de ejecución
? comúnmente utilizado mediante scripts
? portable a diferentes tipos de ordenadores
? muy apropiado para crear páginas web dinámicas, mediante scripts CGI
Perl
#!/usr/bin/perl
# extract_seq parses FASTA files and extracts sequences > 250 bp
# usage: extract_seq.pl [FASTA file] [output fasta file]
$file = $ARGV[0];
$output = $ARGV[1];
if($file =~ /^$/) {
print extract_seq.pl [FASTA file] [database without wildcards]n";
}
open(IN, $file) || die "Could not open $file.n";
if($output =~ /^$/) {
$output = $file . ".out";
}
open(OUT, ">$output") || die "Could not create $output.n";
$num_short_seq = 0;
$num_ambig_seq = 0;
$num_both = 0;
while($temp = < IN>) {
if($temp =~ /^>(.*)b.*$/) {
$newname = $1;
$num_seq += 1;
$name = $newname;
$new_seq = 1; #indicates start of new seq.
&reset_seq;
(…)?
Otros lenguajes de programación
? C/C++ (lenguaje básico de programación)?
? Java (lenguaje de programación orientados a objetos)?
? R (lenguaje de programación para estadística)?
? Python (lenguaje de programación
muy sencillo)?
? JavaScript (programación para páginas web dinámicas)?
Los proyectos Bio*
? módulos o extensiones de ciertos lenguajes de programación, con funciones específicas para trabajos de bioinformática
? BioPerl
? BioJava
? BioPython
Conceptos horizontales en Bioinformática
? Open Source (licencia GNU)?
? Lenguajes de programación (Perl, R, Java…)?
? Algoritmos (BLAST, Fasta,…)?
? Linux
? Bases de datos relacionales (SQL, XML)?
? Arquitectura cliente-servidor (web-services)?
? Clusters de PCs
Concepto de algoritmo
? conjunto de operaciones que se utilizan para resolver un problema específico. En este conjunto de instrucciones se indica la secuencia de operaciones que se deben realizar para, a partir de los datos de entrada, obtener el resultado buscado.
Quiero un programa que lea la secuencia de DNA del fichero que yo le proporcione y busque si existe en dicha secuencia un sitio de corte para el enzima de restricción EcoRI
? Ejemplo: Problema
Un algoritmo famoso: BLAST
? Basic Local Alignment Search Tool
? Algoritmo muy complejo:
– busca secuencias parecidas, no iguales
– da una puntuación al parecido de las secuencias de la base de datos con la secuencia problema
– las similitudes suman puntos
– las disimilaridades (mismatches) y la introducción de huecos (gaps) restan puntos
– emplea un proceso heurístico en la búsqueda de secuencias similares, lo que le hace ser muy rápido, pero no exhaustivo
Un algoritmo famoso: BLAST
Query:
MQRSFMGPSVDGIMDTACDEEFMGQRSGYPDEEFMGPSVDGIMDTA
MQRS
FMGP
SVDG
IMDT
ACDE
EFMG
QRSG
YPDE
EFMG
(…)?
Un algoritmo famoso: BLAST
>gb|0155862 Mouse embryonic (…)?
MSGYPDMGGIMDTAIMDEEFMGPSMQRSGMGGIEFMMGGID(…)?
Query:
MQRSFMGPSVDGIMDTACDEEFMGQRSGYPDEEFMGPSVDGIMDTA
MQRS
MQRS
alineamiento (score, E-value)?
Conceptos horizontales en Bioinformática
? Open Source (licencia GNU)?
? Lenguajes de programación (Perl, R, Java…)?
? Algoritmos (BLAST, Fasta,…)?
? Linux
? Bases de datos relacionales (SQL, XML)?
? Arquitectura cliente-servidor (web-services)?
? Clusters de PCs
Linux
? sistema operativo GNU
? basado en el sistema operativo Unix
? iniciado y liberado gratuitamente en Internet en 1991 por Linus Torvalds (Helsinki, Finlandia, 1970), quien organiza además su desarrollo
? íntimamente ligado al desarrollo de Internet
Ventajas de Linux
? total control sobre el sistema
? muy flexible, estable y potente
? especialmente idóneo para Internet
? sistema multiusuario y multitarea
? alto nivel de seguridad
? Open Source (acceso al código fuente)?
? gratuito
Aspecto de Linux
Aspecto de Linux
Aspecto de Linux
Aspecto de Linux
Aspecto de Linux
Aspecto de Linux
Aspecto de Linux
Aspecto de Linux
Distribuciones comerciales de Linux
Expansión de Linux
Ventajas de trabajar con Linux
>C01001A07Rv Contig_singleton Veg1_cDNA_library Similar_to:>ref|NP_187733.1| arginine-tRNA-protein transferase [Arabidopsis thaliana]
CTCGTGCCGTCTTCTTGACCGGGGATGGAGAAGATCCGGCTCTTTCCTGTACAAACCTGATATGGAAAGAACATGCTGTCCATCTTATACTATCCGGCTGAGGGCAAGTGATTTTGCCCCTTCTAAAGAGCAACGTCGAGTTTCAAGACGAATGCAAAGGTTTTTGGATGGCACAGTGGATGTGGAAAAAAAATCAGTTGAGTTAATAAAGGATCCAAGTACTTCTAACTGCAACAAAGTTTCAAGTTCAGTGGAAAACAATTCCTTGTCTCATAACAATGAAGAGAACAATAAGGAAGAAGAAATTTTGCAGTTTTTATCAGGGCAAATTGACAATGCTGTGCAGTTGTGCATTGTGAGCGGGCAATTTCTTTCTGGTATCCAACTTCCCAAAGCGTCTGTCAAAAAAGTGTCACAGGCAAAAAGAAAACTGCTAGTTGAAGGAATGGAAAACCTTTTATACACCAGCAACATTGCATTCCAATTAGCAGCCACTTTAAATCGGGCACAGTTGGCT
>C01001A08Rv Contig_1928 Veg1_cDNA_library Similar_to:>gb|AAO63776.1| unknown [Populus tremuloides]
GAGAACTAGTCTCGAGTTTTTTTTTTTTTTTTTTTTCTATTTGAAACAAAATTATTAAGAATATCTAAAACTAGTTCATCATACTTTTTTATGCCCGTGGTACAATGACAAGTAAAAAAATAGTTGAGTTTACAACATTTTCTAATTGGTAATGTGGGCTGGCTAAAACATGACCGAACCAAAACATCAAGCCCAGCTATATTTACTTGCTACAACTATGATCTTGAATCTTGAATCTCATGGTATGATCTTCATCTCTCTCAATTTGCCGACCCACATTCTAATACTCTTCATGGTATCAACAAACCCAAAGAACCCAAATTCTCTGCTCTTGTTCATGCTACTGACATGCTGAAACTCAAAATGCAAGACGAGTTTCATTGCCTCAAAACAAGTTATCTCCTCCAATTTGGTCTTATACAGCCCATGTTTCTCAACTATCTCATCCCATATTTCTCCTTTCTCTC
>C01001A09Rv Contig_211 Veg1_cDNA_library Similar_to:>ref|NP_084741.1| hypothetical protein [Oenothera elata subsp. hookeri]
CTCGTGCCGAATTCGGCACGAGGGAGAGAGAGAGGGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGACCTCGTGCCGAATTCGGCACGAGGGAAAAAGTTCTCTATTGATTCAAATGCTGTACCTATGGGATAAGGATAGAGAAAGAGGAAAAAACCGAAGATTTCACATAGTACTTTTGATCGAAAAATCAATCCGATCTATTTCGTACCCTTCGCTCAACGAGAAAATGGATCAGATTCTATAGGATCAACCCTATGGGACTTAAGGAATGATGGAAGGGAAT
>C01001A10Rv Contig_212 Veg1_cDNA_library Similar_to:No hits found
TTTCTATGCTAGCTGCCAGTTTTATTTTCTTTCTTGGGTTATCCTTACCAAAGTCTGTGAAAACTTTAAATGAACAGATTGAGATTATTTCAGTAGCTATTTGAATTTTCTGTTAATTGACCAACTTTATTACTGTTATTATTTTTGTTTTCACTTTTTCGAAATAGTCATACCAGAGTTCGTAGGTATTAATTTCTTCACCTTTAATAGTAAAGGGAATTAGTAGCAATTGGACATTTCATAAAATGCAGAACATTGGCCTGTCTATTTTTTTCTCGAGTGGGTTTCTAGTTATGATATTTGTTGCTAGTGCAATTTGTGTGTGGAAATCTGTTGTGCTTTTAGAGTGTGTGTTTGTTTGCATGTGTTTTTGTATGAATTTTGCAGTCAGGGACTCTGTGACTGCTGCACATCCAGAGTAGCAAATGCTGAAAATTTCATGCTTCTGAGTTGGGTTTTGTTTTCTTCACACTTACCTCTTTTTGTTTTTTCCCCTCTCTCCCCTCTCTCTAAATCATAAATGAAAATTAGCACTGTTCTTACACATTGTG
>C01001A11Rv Contig_singleton Veg1_cDNA_library Similar_to:>gb|AAF64167.1|AF240462_1 ribosomal protein 2 precursor [Spinacia oleracea]
AATGACTTCATTATCATCATCATCATCTCTAATACTGTCTCAACAAAATCTCATTTTTTCAAAAACCCACTTCACATTTCAATCAAGACAACCAATTCTTCAAATCAGATTTCCAAAACTCTCATATTCTTTGCACAATCTCAAGACAGCAAGCACCGAAGAATCCACTACGAGACTCTTTGCAGTAGCTGAAGAAACTACATCATCATCATCATCATCGGTTGACACGTCTTCAGAGTTTGCTAGGAGGGTCTATATTGGTAACATTCCTAGAAATATTGATAATGATGAACTTACAAAGATTGTTCAAGAACACGGCGCCGTCGAGAAAGCTGAGGTTATTTATGATAAGTACACTGGAAGGAGTCGCCGATTTGCCTTTGTTATGATGAAAACTGTTGAGGATGCAAATGCAGTGATTGAGAAACTGAACGGCACTGAAATTGGTGGACGTGAGATCAAAGTAAACATCACAGAGAAACCTTTGGTGCAAGTTGATTTGTCC
>C01001A12Rv Contig_213 Veg1_cDNA_library Similar_to:>ref|NP_191175.1| hypothetical protein [Arabidopsis thaliana]
AAAAATGCTGTCGTCTTGGCACCGGAATTCACATTTCCGTGCAAGTGGTTCTCTTCGTTTTAGTCCTTTCGTCACTTTCAGTCCTGGCCGTTCAATTTCAAGGCCCATCCGAGCTTGTCGACCGTCCGATCAAGATTTCGCTTCTTCTAAGGGGCTGAATTGGGCAAAACCACTGTTGAAAATCGCCGCCGATAATTTTCTCCCGCTAGCTCTTATCGGTGGAGTAGCATTTGGATTTGCAAACCCCAGTCTAGGCTGTCTTGCCGATAAATATCAGTTATCAAAATTTAGCACATTTGCAATATTTATTGTCTCAGGTTTGACATTGCGTAGTGGAGAAATCGGTGCCGCTGCAGAAGCATGGCCTGTGGGAATTTTTGGGCTAGTATGACCCTGAATCTTATGTGCCAATGGGCGTTTTGTAGGTTCATTCTCTGCAGACGTATTTTTTGTGGATTCATTTCCAATTTCTTTTTCTCCCACATACTGTTTTTTGGGTTTGAATTTTTGGTTGGTTATGCAAACTGATTCTCATTCTGTCATAC
(…)?
Ventajas de trabajar con Linux
Combinaciones complejas de comandos
– permiten ejecutar fácilmente órdenes muy elaboradas
– las órdenes pueden almacenarse como ficheros de texto ejecutables para su posterior uso (shell scripts, bash scripts)?
Conceptos horizontales en Bioinformática
? Open Source (licencia GNU)?
? Lenguajes de programación (Perl, R, Java…)?
? Algoritmos (BLAST, Fasta,…)?
? Linux
? Bases de datos relacionales (SQL, XML)?
? Arquitectura cliente-servidor (web-services)?
? Clusters de PCs
Bases de datos no relacionales
cloneID sequence insert size library library type species variety tissue vector protocol
1111 atcgag… 1500 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1112 accgag… 1800 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1113 aaagag… 500 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1114 atccag… 2500 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1115 atcccg… 1300 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1116 ataaag… 1400 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1117 atttag… 200 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1118 aaaaag… 1500 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1119 atcgag… 500 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1120 atcggg… 3500 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1121 atcagc… 1000 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1122 aagtcg… 1100 bp R1 cDNA C.clementina clemenules root pBluescript Stratagenes
1123 ctagaa… 700 bp O1 cDNA C.clementina clemenules ovary pBluescript Stratagenes
1124 agctag… 500 bp O1 cDNA C.clementina clemenules ovary pBluescript Stratagenes
1125 ctagat… 400 bp O1 cDNA C.clementina clemenules ovary pBluescript Stratagenes
1126 agtcat… 2500 bp O1 cDNA C.clementina clemenules ovary pBluescript Stratagenes
1127 gggcta… 1500 bp O1 cDNA C.clementina clemenules ovary pBluescript Stratagenes
1128 aaccgg… 2000 bp O1 cDNA C.clementina clemenules ovary pBluescript Stratagenes
(…)?
? basadas en ficheros de texto
? datos organizados en filas y columnas
Bases de datos relacionales
cloneID sequence insert size library
1111 atcgag… 1500 bp R1
1112 accgag… 1800 bp R1
1113 aaagag… 500 bp R1
1114 atccag… 2500 bp R1
1115 atcccg… 1300 bp R1
1116 ataaag… 1400 bp R1
1117 atttag… 200 bp R1
1118 aaaaag… 1500 bp R1
1119 atcgag… 500 bp R1
1120 atcggg… 3500 bp R1
1121 atcagc… 1000 bp R1
1122 aagtcg… 1100 bp R1
1123 ctagaa… 700 bp O1
(…)?
libraryID library type species variety tissue vector protocol
R1 cDNA C.clementina clemenules root pBluescript Stratagenes
O1 cDNA C.clementina clemenules ovary pBluescript Stratagenes
? datos organizados en diferentes tablas relacionadas entre si
Sistemas Gestores de Bases de Datos
Código para crear y poblar la base de datos actual de CFGP (362 secuencias):
– 6.655 líneas de código
– 12.072 palabras
– 341.098 caracteres
? RDBMS (por Relational DataBase Management Systems)?
SQL (Structured Query Language)?
CREATE DATABASE cfgp;
CREATE TABLE clone (
_owner varchar(50) default NULL,
_timestamp timestamp(14) default NULL,
clone_id varchar(9) not null,
library varchar(20) default NULL,
insertsizebp smallint(6) default NULL,
plasmidpurificationdate date default NULL,
plasmidpurificationprotocol varchar(40) default NULL,
storinggroup char(3) default NULL,
comments tinytext,
PRIMARY KEY (clone_id)?
);
INSERT INTO clone VALUES (
'jforment@ibmcp.upv.es',
'20020215152125','C03001A02','OF1','0','2001-10-14',
'alkaline lysis (standard)','C03','
);
SELECT library FROM clone WHERE clone_id = C03001A02
? lenguaje de creación, modificación y consulta a bases de datos relacionales
XML (Extensible Markup Language)?
? lenguaje de especificación de una estructura de datos
Conceptos horizontales en Bioinformática
? Open Source (licencia GNU)?
? Lenguajes de programación (Perl, R, Java…)?
? Algoritmos (BLAST, Fasta,…)?
? Linux
? Bases de datos relacionales (SQL, XML)?
? Arquitectura cliente-servidor (web-services)?
? Clusters de PCs
Arquitectura cliente-servidor
? Instalación centralizada de programas, bases de datos y páginas web en ordenadores potentes (servidores)?
? Acceso a los mismos desde ordenadores con una configuración mínima (clientes) a traves de redes
? Ventajas:
-mayor facilidad en el mantenimiento de los programas y servicios (servidor)?
-menor responsabilidad para el usuario (cliente)?
Conceptos horizontales en Bioinformática
? Open Source (licencia GNU)?
? Lenguajes de programación (Perl, R, Java…)?
? Algoritmos (BLAST, Fasta,…)?
? Linux
? Bases de datos relacionales (SQL, XML)?
? Arquitectura cliente-servidor (web-services)?
? Clusters de PCs
HPC (High Performance Computing)?
? superordenadores:
-extremadamente caros
-tecnología propietaria
-difícilmente escalables o actualizables
Ejemplos de clusters
? Google:
-20.000 nodos
-basados en RedHat Linux
-2.000 búsquedas por segundo
? Rodaje de la película Shrek:
-1.000 nodos con RedHat Linux
? Empresas de automoción y aeronáutica:
-BMW
-Audi
-Fiat
-Boeing
Ejemplos de clusters
? cluster del IBMCP:
-6 nodos (doble procesador Pentium III, 1 GHz, 1.5 Gb RAM)?
-basados en SuSE 8.2 Linux
-configurado con openMosix (distribución automática de la carga de los procesos)?
Conceptos horizontales en Bioinformática
? Open Source (licencia GNU)?
? Lenguajes de programación (Perl, R, Java…)?
? Algoritmos (BLAST, Fasta,…)?
? Linux
? Bases de datos relacionales (SQL, XML)?
? Arquitectura cliente-servidor (web-services)?
? Clusters de PCs
Página anterior | Volver al principio del trabajo | Página siguiente |