{"id":15079,"date":"2006-03-08T00:39:00","date_gmt":"2006-03-08T00:39:00","guid":{"rendered":"http:\/\/weblogs.madrimasd.org\/\/bioinformatica\/archive\/2006\/03\/08\/15079.aspx"},"modified":"2006-03-08T00:39:00","modified_gmt":"2006-03-08T00:39:00","slug":"bases-de-datos-no-redundantes","status":"publish","type":"post","link":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/2006\/03\/08\/15079","title":{"rendered":"Bases de datos no redundantes"},"content":{"rendered":"<p>Una de mis funciones actualmente es la de gestionar la descarga y mantenimiento de las bases de datos biol\u00f3gicas del grupo de investigaci\u00f3n en el que trabajo. Hace un par de semanas, uno de mis compa\u00f1eros de trabajo me cont\u00f3 la necesidad que ten\u00edan de usar una base de datos no redundante especial, distinta de las publicadas actualmente. En ese momento pens\u00e9 que pod\u00eda ser interesante escribir un art\u00edculo al respecto, dado que es un tema muy pr\u00e1ctico, relacionado con nuestro trabajo diario.<\/p>\n<p>Todos los que trabajamos en bioinform\u00e1tica sabemos en mayor o menor medida que para realizar una b\u00fasqueda por similitud de una secuencia dada en nuestro ordenador necesitamos dos cosas: la base de datos de secuencias sobre la que vamos a buscar y el programa de b\u00fasqueda que usamos (<a href=\"http:\/\/www.ebi.ac.uk\/blastall\/\">NCBI Blast<\/a>, <a href=\"http:\/\/blast.wustl.edu\/\">WU Blast<\/a>, <a href=\"http:\/\/fasta.bioch.virginia.edu\/fasta\/\">FASTA<\/a>, <a href=\"http:\/\/ori.nibb.ac.jp\/SIT\/SSEARCH.html\">SSearch<\/a>, etc&#8230;). Hasta ah\u00ed, todo normal, pero, \u00bfqu\u00e9 ocurre cuando necesitamos encontrar secuencias no tan similares? Por ejemplo, si una secuencia tiene muchas secueciencias similares en UniProt y necesitamos realizar un \u00e1rbol filogen\u00e9tico, nos interesa encontrar hom\u00f3logos remotos a costa de descartar varios hom\u00f3logos cercanos. <!--more-->En estos casos, lo m\u00e1s com\u00fan es recurrir a una base de datos no redundante ya existente, como <a href=\"http:\/\/www.pir.uniprot.org\/database\/DBDescription.shtml#uniref\">las UniRef<\/a> (proporcionadas por la gente de UniProt) o <a href=\"http:\/\/www.embl-ebi.ac.uk\/%7Eholm\/nrdb90\/\">nrdb90 del EBI<\/a> (de Lisa Holm y Chris Sander). Pero, \u00bfqu\u00e9 ocurre cuando necesitamos algo que se salga de estas bases de datos \u00abprecocinadas\u00bb? En ese caso tenemos que generarla nosotros mismos con los programas existentes y con nuestro propio ordenador.<\/p>\n<p> Una base de datos no redundante de secuencias es aquella que no contiene informaci\u00f3n redundante a un cierto nivel de similitud <b>S<\/b>. O lo que es lo mismo, la similitud de cualquier par de secuencias de la base de datos no supera el nivel <b>S<\/b>. El problema general de las bases de datos no redundantes es muy dif\u00edcil de tratar, porque hay que realizar una comparaci\u00f3n de todos con todos, y luego agrupar la prote\u00ednas m\u00e1s parecidas entre s\u00ed usando alg\u00fan algoritmo de <i>clustering<\/i>, para quedarse luego con los representantes. Todo este procedimiento necesita mucha memoria y tiempo de computaci\u00f3n, porque en el peor de los casos es un problema <a href=\"http:\/\/es.wikipedia.org\/wiki\/NP-completo\">NP-Completo<\/a> (\u00a1hasta el <a href=\"http:\/\/for.mat.bham.ac.uk\/R.W.Kaye\/minesw\/ordmsw.htm\">juego del buscaminas es NP-Completo<\/a>!).<\/p>\n<p>Por tanto, no hay una soluci\u00f3n \u00fanica al problema, porque cada algoritmo de <i>clustering<\/i> generar\u00e1 su propia soluci\u00f3n, igualmente v\u00e1lida, construyendo a su manera sus agrupaciones y eligiendo a su manera el representante de las mismas. Para las bases de datos no redundantes al 100% hay simplificaciones obvias, <br \/>y por ello a lo largo de la historia de la bioinform\u00e1tica ha habido muchos programas dedicados a este caso concreto.<\/p>\n<p>Para el caso general, el programa m\u00e1s usado hoy en d\u00eda es <a href=\"http:\/\/bioinformatics.ljcrf.edu\/cd-hi\/\">CD-HIT<\/a>, que adem\u00e1s es usado para generar UniRef. Lo tuve que usar hace un par de semanas para estimar si era factible construir cada semana una base de datos no redundante al 90% de UniProt, porque las UniRef se generan a partir de <a href=\"http:\/\/www.pir.uniprot.org\/database\/DBDescription.shtml#uniparc\">UniParc<\/a>: <a href=\"http:\/\/www.pir.uniprot.org\/\">UniProt<\/a>, <a href=\"http:\/\/www.insdc.org\/\">EMBL\/GenBank\/DDBJ<\/a> traducido a prote\u00ednas, <a href=\"http:\/\/www.ensembl.org\/index.html\">EnsEMBL<\/a>, <a href=\"http:\/\/www.ebi.ac.uk\/IPI\/IPIhelp.html\">IPI<\/a>, las secuencias de las cadenas en las estructuras de <a href=\"http:\/\/www.rcsb.org\/pdb\/\">PDB<\/a>, <a href=\"http:\/\/www.ncbi.nlm.nih.gov\/RefSeq\/\">RefSeq<\/a>, bases de datos de organismos como <a href=\"http:\/\/flybase.bio.indiana.edu\/\">FlyBase<\/a> o <a href=\"http:\/\/www.wormbase.org\/\">WormBase<\/a>, y secuencias de prote\u00ednas de las oficinas de patentes europea, americana y japonesa. En mi caso me encontr\u00e9 con que, para una base de datos de 1GB en formato FASTA (UniProt no redundante al 100% hace un par de semanas), un Athlon 64 a 3.2GHz ten\u00eda que dedicar 6 horas de c\u00e1lculo y 1.5GB de memoria RAM.<\/p>\n<p>Mi conclusi\u00f3n inicial fue que, al ritmo que est\u00e1n creciendo actualmente las bases de datos, la generaci\u00f3n de una base de datos no redundante \u00a1puede llegar a ser imposible! La realidad es que este programa dispone de un modo incremental, que permite generar de una manera r\u00e1pida una base de datos no redundante a partir de la versi\u00f3n anterior de la misma (\u00a1aunque necesito tiempo para probarlo!). Adem\u00e1s, para los m\u00e1s exigentes (como yo), existe un <i>script<\/i> en Perl que permite distribuir el trabajo de la generaci\u00f3n de la base de datos entre varios ordenadores, pero por las pruebas que he hecho no funciona del todo bien la idea. Ya sea este software u otro cualquiera, un truco general que he encontrado en varios lugares consiste en que si, por ejemplo, necesitas una no-redundante al 60%, es mejor hacerlo por pasos en lugar de directamente, por ejemplo de la de entrada a una al 100%, \u00e9sta a una al 90% y por \u00faltimo \u00e9sta \u00faltima a una 60%. De esta manera se tarda menos y cada fase sucesiva necesita menos memoria (al ser menor la entrada).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una de mis funciones actualmente es la de gestionar la descarga y mantenimiento de las bases de datos biol\u00f3gicas del grupo de investigaci\u00f3n en el que trabajo. Hace un par de semanas, uno de mis compa\u00f1eros de trabajo me cont\u00f3 la necesidad que ten\u00edan de usar una base de datos no redundante especial, distinta de las publicadas actualmente. En ese momento pens\u00e9 que pod\u00eda ser interesante escribir un art\u00edculo al respecto, dado que es un tema muy pr\u00e1ctico, relacionado con nuestro trabajo diario. Todos los que trabajamos en bioinform\u00e1tica sabemos en mayor o menor medida que para realizar una b\u00fasqueda\u2026<\/p>\n","protected":false},"author":25,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[187],"tags":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":4}},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/posts\/15079"}],"collection":[{"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/comments?post=15079"}],"version-history":[{"count":0,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/posts\/15079\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/media?parent=15079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/categories?post=15079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/tags?post=15079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}