BioJava es un proyecto de software de código abierto dedicado a proporcionar herramientas Java para procesar datos biológicos . [1] [2] [3] BioJava es un conjunto de funciones de biblioteca escritas en el lenguaje de programación Java para manipular secuencias, estructuras de proteínas, analizadores de archivos, interoperabilidad de Common Object Request Broker Architecture (CORBA), Distributed Annotation System (DAS), acceso a AceDB , programación dinámica y rutinas estadísticas simples. BioJava admite una variedad de datos, desde secuencias de ADN y proteínas hasta el nivel de estructuras de proteínas 3D. Las bibliotecas BioJava son útiles para automatizar muchas tareas bioinformáticas diarias y mundanas , como analizar un archivo Protein Data Bank (PDB), interactuar con Jmol y mucho más. [4] Esta interfaz de programación de aplicaciones (API) proporciona varios analizadores de archivos, modelos de datos y algoritmos para facilitar el trabajo con los formatos de datos estándar y permite el desarrollo y análisis rápido de aplicaciones.
Los proyectos adicionales de BioJava incluyen rcsb-sequenceviewer, biojava-http, biojava-spark y rcsb-viewers.
Características
BioJava ofrece módulos de software para muchas de las tareas típicas de la programación bioinformática, entre las que se incluyen:
El proyecto BioJava surgió del trabajo de Thomas Down y Matthew Pocock para crear una API que simplifique el desarrollo de herramientas bioinformáticas basadas en Java. BioJava es un proyecto de código abierto activo que se ha desarrollado durante más de 12 años y por más de 60 desarrolladores. BioJava es uno de los numerosos proyectos Bio* diseñados para reducir la duplicación de código. [5] Ejemplos de proyectos de este tipo que se incluyen en Bio* además de BioJava son BioPython , [6] BioPerl , [7] BioRuby , [8] EMBOSS [9], etc.
En octubre de 2012, se publicó el primer artículo sobre BioJava. [10] Este artículo detallaba los módulos, las funcionalidades y el propósito de BioJava.
A partir de noviembre de 2018, Google Scholar contabiliza más de 130 citas. [11]
El artículo más reciente sobre BioJava se escribió en febrero de 2017. [12] Este artículo detallaba una nueva herramienta llamada BioJava-ModFinder. Esta herramienta se puede utilizar para la identificación y el posterior mapeo de modificaciones de proteínas en 3D en el Protein Data Bank ( PBD ). El paquete también se integró con la aplicación web RCSB PDB y agregó anotaciones de modificación de proteínas al diagrama de secuencia y la visualización de la estructura. Se identificaron más de 30 000 estructuras con modificaciones de proteínas mediante BioJava-ModFinder y se pueden encontrar en el sitio web RCSB PDB.
En el año 2008, se publicó la primera nota de aplicación de BioJava. [2] Se migró desde su repositorio CVS original a GitHub en abril de 2013. [13] El proyecto se ha trasladado a un repositorio separado, BioJava-legacy, y aún se mantiene para cambios menores y correcciones de errores. [14]
La versión 3 se lanzó en diciembre de 2010. Fue una actualización importante de las versiones anteriores. El objetivo de esta versión era reescribir BioJava para que pudiera modularizarse en componentes pequeños y reutilizables. Esto permitió a los desarrolladores contribuir con mayor facilidad y redujo las dependencias. El nuevo enfoque que se vio en BioJava 3 se basó en Apache Commons .
La versión 4 se lanzó en enero de 2015. Esta versión trajo consigo muchas nuevas características y mejoras a los paquetes biojava-core, biojava-structure, biojava-structure-gui, biojava-phylo y otros. BioJava 4.2.0 fue la primera versión que estuvo disponible usando Maven desde Maven Central.
La versión 5 se lanzó en marzo de 2018, lo que representa un hito importante para el proyecto. BioJava 5.0.0 es la primera versión basada en Java 8, que introduce el uso de funciones lambda y llamadas API de transmisión. También hubo cambios importantes en el módulo biojava-structure. Además, los modelos de datos anteriores para estructuras macromoleculares se adaptaron para representar de manera más precisa el modelo de datos mmCIF . Esta fue la primera versión en más de dos años. Algunas de las otras mejoras incluyen optimizaciones en el módulo biojava-structure para mejorar la detección de simetría y soporte adicional para formatos MMTF. Otras mejoras generales incluyen actualizaciones de Javadoc, versiones de dependencia y todas las pruebas ahora son Junit4. La versión contiene 1170 confirmaciones de 19 colaboradores.
Módulos
Durante 2014-2015, se reescribieron grandes partes del código base original. BioJava 3 es un claro cambio con respecto a la serie de versiones 1. Ahora consta de varios módulos independientes creados utilizando una herramienta de automatización llamada Apache Maven . [15] Estos módulos proporcionan herramientas de última generación para la comparación de la estructura de proteínas, alineaciones de secuencias múltiples y por pares, trabajo con secuencias de ADN y proteínas, análisis de propiedades de aminoácidos, detección de modificaciones de proteínas, predicción de regiones desordenadas en proteínas y analizadores para formatos de archivo comunes utilizando un modelo de datos biológicamente significativo. El código original se ha trasladado a un proyecto heredado de BioJava independiente, que todavía está disponible para compatibilidad con versiones anteriores. [16]
BioJava 5 introdujo nuevas características en dos módulos, biojava-alignment y biojava-structure.
Las siguientes secciones describirán varios de los nuevos módulos y destacarán algunas de las nuevas características que se incluyen en la última versión de BioJava.
Módulo central
Este módulo proporciona clases Java para modelar secuencias de aminoácidos o nucleótidos . Las clases se diseñaron de modo que los nombres resulten familiares y tengan sentido para los biólogos y también proporcionen una representación concreta de los pasos necesarios para pasar de una secuencia genética a una secuencia proteica para los informáticos y los programadores.
Un cambio importante entre el proyecto BioJava heredado y BioJava3 radica en la forma en que se ha diseñado el marco para explotar las innovaciones de Java que surgieron en ese momento. Una secuencia se define como una interfaz genérica que permite que el resto de los módulos creen cualquier utilidad que funcione en todas las secuencias. Se han definido clases específicas para secuencias comunes, como ADN y proteínas, con el fin de mejorar la usabilidad para los biólogos. El motor de traducción realmente aprovecha este trabajo al permitir conversiones entre secuencias de ADN, ARN y aminoácidos. Este motor puede manejar detalles como la elección de la tabla de codones, la conversión de codones de inicio a metionina, el recorte de codones de parada, la especificación del marco de lectura y el manejo de secuencias ambiguas.
Se ha prestado especial atención al diseño del almacenamiento de secuencias para minimizar las necesidades de espacio. Patrones de diseño especiales como el patrón Proxy permitieron a los desarrolladores crear el marco de manera que las secuencias se puedan almacenar en la memoria, obtener a pedido de un servicio web como UniProt o leer desde un archivo FASTA según sea necesario. Los dos últimos enfoques ahorran memoria al no cargar los datos de secuencia hasta que se hace referencia a ellos en la aplicación. Este concepto se puede ampliar para manejar conjuntos de datos genómicos muy grandes, como NCBI GenBank o una base de datos propietaria.
Módulos de estructura de proteínas
Los módulos de estructura de proteínas proporcionan herramientas para representar y manipular estructuras biomoleculares en 3D. Se centran en la comparación de estructuras de proteínas.
Los siguientes algoritmos se han implementado e incluido en BioJava.
Algoritmo FATCAT para alineación de cuerpos flexibles y rígidos. [17]
El algoritmo de extensión combinatoria (CE) estándar. [18]
Una nueva versión de CE que puede detectar permutaciones circulares en proteínas. [19]
Estos algoritmos se utilizan para proporcionar la herramienta de comparación de proteínas del banco de datos de proteínas (PDB) [20] del RCSB , así como comparaciones sistemáticas de todas las proteínas del PDB semanalmente. [21]
Los analizadores sintácticos para los formatos de archivo PDB [22] y mmCIF [23] permiten cargar datos de estructura en un modelo de datos reutilizable. El proyecto SIFTS utiliza esta función para realizar mapeos entre secuencias UniProt y estructuras PDB. [24] La información del PDB RCSB se puede obtener de forma dinámica sin necesidad de descargar los datos manualmente. Para la visualización, se proporciona una interfaz con el visor 3D Jmol. [4]
Módulos de Genoma y Secuenciación
Este módulo se centra en la creación de objetos de secuencias genéticas a partir del módulo principal. Esto se logra mediante el análisis de los siguientes formatos de archivo estándar populares generados por aplicaciones de predicción genética de código abierto:
Archivos GTF generados por GeneMark [25]
Archivos GFF2 generados por GeneID [26]
Archivos GFF3 generados por Glimmer [27]
Luego, los objetos de secuencia genética se escriben en formato GFF3 y se importan a GMOD. [28]
Estos formatos de archivo están bien definidos, pero lo que se escribe en el archivo es muy flexible.
Para proporcionar compatibilidad de entrada y salida para varias variantes comunes del formato de archivo FASTQ de los secuenciadores de próxima generación, [29] se proporciona un módulo de secuenciación independiente. Para obtener ejemplos sobre cómo utilizar este módulo, visite este enlace.
Módulo de alineación
Este módulo contiene varias clases y métodos que permiten a los usuarios realizar alineaciones de secuencias múltiples y por pares. Las secuencias se pueden alinear tanto en modo monohilo como multihilo. BioJava implementa el algoritmo Needleman-Wunsch [30] para alineaciones globales óptimas y el algoritmo Smith y Waterman [31] para alineaciones locales. Los resultados de las alineaciones locales y globales están disponibles en formatos estándar. Además de estos dos algoritmos, existe una implementación del algoritmo Guan-Uberbacher [32] que realiza alineaciones de secuencias globales de manera muy eficiente, ya que solo utiliza memoria lineal.
Para la alineación de secuencias múltiples , se puede utilizar cualquiera de los métodos analizados anteriormente para realizar progresivamente una alineación de secuencias múltiples.
Módulo ModFinder
El módulo ModFinder proporciona nuevos métodos para identificar y clasificar modificaciones de proteínas en estructuras 3D de proteínas. Se recopilaron y seleccionaron más de 400 tipos diferentes de modificaciones de proteínas, como fosforilación , glicosilación , enlaces disulfuro, quelación de metales , etc., según las anotaciones en PSI-MOD, [34] RESID [35] y RCSB PDB. [36] El módulo también proporciona una API para detectar modificaciones de proteínas pre, co y postraduccionales dentro de las estructuras de proteínas. Este módulo también puede identificar la fosforilación e imprimir todas las modificaciones precargadas de una estructura.
Módulo de propiedades de los aminoácidos
Este módulo intenta proporcionar propiedades fisicoquímicas precisas de las proteínas. Las propiedades que se pueden calcular con este módulo son las siguientes:
En este módulo se incluyen los pesos moleculares precisos de los aminoácidos marcados isotópicamente más comunes. También existe la flexibilidad de definir nuevas moléculas de aminoácidos con sus pesos moleculares mediante archivos de configuración XML simples . Esto puede resultar útil cuando la masa precisa es de gran importancia, como en los experimentos de espectrometría de masas .
Módulo de trastornos de las proteínas
El objetivo de este módulo es proporcionar a los usuarios formas de encontrar trastornos en las moléculas de proteínas. BioJava incluye una implementación en Java del predictor RONN. BioJava 3.0.5 hace uso del soporte de Java para subprocesamiento múltiple para mejorar el rendimiento hasta 3,2 veces, [37] en una máquina moderna de cuatro núcleos, en comparación con la implementación C heredada.
Hay dos formas de utilizar este módulo:
Uso de llamadas a funciones de biblioteca
Usando la línea de comandos
Algunas características de este módulo incluyen:
Calcular la probabilidad de desorden para cada residuo de una secuencia
Cálculo de la probabilidad de desorden para cada residuo en la secuencia para todas las proteínas a partir de un archivo de entrada FASTA
Obtenga las regiones desordenadas de la proteína para una sola secuencia de proteína o para todas las proteínas de un archivo de entrada FASTA
Módulo de acceso a servicios web
De acuerdo con las tendencias actuales en bioinformática, las herramientas basadas en la web están ganando popularidad. El módulo de servicio web permite acceder a los servicios de bioinformática mediante protocolos REST . Actualmente, se implementan dos servicios: NCBI Blast a través de Blast URLAPI (anteriormente conocido como QBlast) y el servicio web HMMER. [38]
Como sugieren los nombres, los proyectos mencionados anteriormente utilizan diferentes lenguajes de programación. Todas estas API ofrecen herramientas similares, así que ¿en qué criterios se debe basar la elección? Para los programadores que tienen experiencia en solo uno de estos lenguajes, la elección es sencilla. Sin embargo, para un bioinformático con experiencia que conoce todos estos lenguajes y quiere elegir el mejor lenguaje para un trabajo, la elección se puede hacer en función de las siguientes pautas proporcionadas por una revisión de software realizada en los kits de herramientas Bio*. [5]
En general, para programas pequeños (<500 líneas) que serán utilizados únicamente por un individuo o un grupo pequeño, es difícil superar a Perl y BioPerl . Estas limitaciones probablemente cubran las necesidades del 90 por ciento de la programación bioinformática personal.
Para principiantes y para escribir programas más grandes en el dominio biológico, especialmente aquellos que serán compartidos y respaldados por otros, la claridad y brevedad de Python lo hacen muy atractivo.
Para aquellos que se estén inclinando por una carrera en bioinformática y quieran aprender un solo lenguaje, Java tiene el soporte de programación general más amplio, muy buen soporte en el dominio biológico con BioJava, y ahora es el lenguaje de facto de los negocios (el nuevo COBOL, para bien o para mal).
Además de estos proyectos Bio*, existe otro proyecto llamado STRAP que utiliza Java y tiene objetivos similares. La caja de herramientas STRAP, similar a BioJava, también es un conjunto de herramientas Java para el diseño de programas y scripts de bioinformática. Las similitudes y diferencias entre BioJava y STRAP son las siguientes:
Similitudes
Ambos proporcionan colecciones completas de métodos para secuencias de proteínas.
Ambos son utilizados por programadores Java para codificar algoritmos bioinformáticos.
Implementaciones y definiciones separadas mediante el uso de interfaces Java.
Ambos son proyectos de código abierto.
Ambos pueden leer y escribir muchos formatos de archivos de secuencia.
Diferencias
BioJava es aplicable a secuencias de nucleótidos y péptidos y puede aplicarse a genomas enteros. STRAP no puede manejar secuencias individuales tan largas como un cromosoma entero. En cambio, STRAP manipula secuencias de péptidos y estructuras 3D del tamaño de proteínas individuales. Sin embargo, puede almacenar una gran cantidad de secuencias y estructuras en la memoria. STRAP está diseñado para secuencias de proteínas, pero puede leer archivos de nucleótidos codificantes, que luego se traducen a secuencias de péptidos.
STRAP es muy rápido, ya que la interfaz gráfica de usuario debe ser muy ágil. BioJava se utiliza cuando la velocidad es menos crítica.
BioJava está bien diseñado en términos de seguridad de tipos, ontología y diseño de objetos. BioJava utiliza objetos para secuencias, anotaciones y posiciones de secuencias. Incluso los aminoácidos o nucleótidos individuales son referencias de objetos. Para mejorar la velocidad, STRAP evita las instanciaciones frecuentes de objetos y la invocación de métodos de objetos no finales.
En BioJava, las secuencias de péptidos y de nucleótidos son listas de símbolos. Los símbolos se pueden recuperar uno tras otro con un iterador o se pueden obtener subsecuencias. Las ventajas son que la secuencia completa no reside necesariamente en la memoria y que los programas son menos susceptibles a errores de programación. Los objetos de símbolo son elementos inmutables de un alfabeto. Sin embargo, en STRAP se utilizan matrices de bytes simples para secuencias y matrices de coma flotante para coordenadas. Además de la velocidad, el bajo consumo de memoria es una ventaja importante de los tipos de datos básicos. Las clases en Strap exponen datos internos. Por lo tanto, los programadores pueden cometer errores de programación como manipular matrices de bytes directamente en lugar de utilizar los métodos de establecimiento. Otra desventaja es que en STRAP no se realizan comprobaciones de si los caracteres de las secuencias son válidos con respecto a un alfabeto subyacente.
En BioJava, las posiciones de secuencia se obtienen mediante la clase Location . Los objetos Location no contiguos se componen de varios objetos RangeLocation o PointLocation contiguos . Sin embargo, para la clase StrapProtein , las posiciones de residuo único se indican mediante números enteros entre 0 y countResidues()-1 . Las posiciones múltiples se dan mediante matrices booleanas. True en un índice determinado significa seleccionado, mientras que false significa no seleccionado.
BioJava lanza excepciones cuando se invocan métodos con parámetros no válidos. STRAP evita la creación de objetos Throwable, que requiere mucho tiempo. En cambio, los errores en los métodos se indican mediante los valores de retorno NaN, -1 o null. Sin embargo, desde el punto de vista del diseño del programa, los objetos Throwable son más agradables.
En BioJava, un objeto Sequence es una secuencia de péptidos o una secuencia de nucleótidos. Un StrapProtein puede contener ambas al mismo tiempo si se leyó una secuencia de nucleótidos codificante y se tradujo en proteína. Tanto la secuencia de nucleótidos como la secuencia de péptidos están contenidas en el mismo objeto StrapProtein. Las regiones codificantes o no codificantes se pueden cambiar y la secuencia de péptidos se modifica en consecuencia.
Proyectos que utilizan BioJava
Los siguientes proyectos utilizan BioJava.
Metabolic Pathway Builder: paquete de software dedicado a la exploración de conexiones entre genes, proteínas, reacciones y vías metabólicas.
DengueInfo Archivado el 8 de diciembre de 2006 en Wayback Machine : un portal de información sobre el genoma del dengue que utiliza BioJava en el middleware y se comunica con una base de datos biosql.
Dazzle: un servidor DAS basado en BioJava.
BioSense : un complemento para InforSense Suite, una plataforma de software de análisis de IDBS que unifica BioJava.
Bioclipse : un banco de trabajo gratuito y de código abierto para quimio y bioinformática con potentes capacidades de edición y visualización de moléculas, secuencias, proteínas, espectros, etc.
PROMPT: Un marco y una aplicación gratuitos y de código abierto para la comparación y el mapeo de conjuntos de proteínas. Utiliza BioJava para manejar la mayoría de los formatos de datos de entrada.
Cytoscape : una plataforma de software bioinformático de código abierto para visualizar redes de interacción molecular.
BioWeka: una aplicación de minería de datos biológicos de código abierto.
Geneious: un conjunto de herramientas de biología molecular.
MassSieve: una aplicación de código abierto para analizar datos proteómicos de espectrometría de masas.
STRAP: Una herramienta para la alineación de secuencias múltiples y la alineación de estructuras basada en secuencias.
Jstacs: Un marco Java para el análisis estadístico y la clasificación de secuencias biológicas
jLSTM: "Memoria a corto y largo plazo" para la clasificación de proteínas
LaJolla: una herramienta de alineación estructural de código abierto para ARN y proteínas que utiliza una estructura de índice para la alineación rápida de miles de estructuras; incluye una interfaz de línea de comandos fácil de usar.
GenBeans: Una rica plataforma de cliente para bioinformática centrada principalmente en la biología molecular y el análisis de secuencias.
JEnsembl: una API Java que reconoce versiones para sistemas de datos Ensembl. [39]
MUSI: Un sistema integrado para identificar especificidad múltiple a partir de conjuntos de datos de péptidos o ácidos nucleicos muy grandes. [40]
Bioshell: una biblioteca de utilidad para la bioinformática estructural [41]
^ Prlić A, Yates A, Bliven SE, et al. (octubre de 2012). "BioJava: un marco de código abierto para la bioinformática en 2012". Bioinformática . 28 (20): 2693–5. doi :10.1093/bioinformatics/bts494. PMC 3467744 . PMID 22877863.
^ ab Holland RC, Down TA, Pocock M, Prlić A, Huen D, James K, et al. (2008). "BioJava: un marco de código abierto para la bioinformática". Bioinformática . 24 (18): 2096–7. doi :10.1093/bioinformatics/btn397. PMC 2530884 . PMID 18689808.
^ VS Matha y P Kangueane, 2009, Bioinformática: una introducción basada en conceptos , 2009. p26
^ abc Hanson, RM (2010) Jmol un cambio de paradigma en la visualización cristalográfica.
^ ab Mangalam H (2002). "Los kits de herramientas Bio*: una breve descripción general". Briefings in Bioinformatics . 3 (3): 296–302. doi : 10.1093/bib/3.3.296 . PMID 12230038.
^ Cock PJ, Antao T, Chang JT, et al. (junio de 2009). "Biopython: herramientas Python de libre acceso para la biología molecular computacional y la bioinformática". Bioinformática . 25 (11): 1422–3. doi :10.1093/bioinformatics/btp163. PMC 2682512 . PMID 19304878.
^ Stajich JE, Block D, Boulez K, et al. (octubre de 2002). "El kit de herramientas Bioperl: módulos Perl para las ciencias de la vida". Genome Res . 12 (10): 1611–8. doi :10.1101/gr.361602. PMC 187536 . PMID 12368254.
^ Goto N, Prins P, Nakao M, Bonnal R, Aerts J, Katayama T (octubre de 2010). "BioRuby: software bioinformático para el lenguaje de programación Ruby". Bioinformática . 26 (20): 2617–9. doi :10.1093/bioinformatics/btq475. PMC 2951089 . PMID 20739307.
^ Rice P, Longden I, Bleasby A (junio de 2000). "EMBOSS: la suite de software abierto europea para biología molecular". Trends Genet . 16 (6): 276–7. doi :10.1016/S0168-9525(00)02024-2. PMID 10827456.
^ Prlić A, Yates A, Bliven SE, et al. (octubre de 2012). "BioJava: un marco de código abierto para la bioinformática en 2012". Bioinformática . 28 (20): 2693–5. doi :10.1093/bioinformatics/bts494. PMC 3467744 . PMID 22877863.
^ "Google Scholar". scholar.google.com . Consultado el 22 de noviembre de 2018 .
^ Gao, Jianjiong; Prlić, Andreas; Bi, Chunxiao; Bluhm, Wolfgang F.; Dimitropoulos, Dimitris; Xu, Dong; Bourne, Philip E.; Rose, Peter W. (17 de febrero de 2017). "BioJava-ModFinder: identificación de modificaciones de proteínas en estructuras 3D del Protein Data Bank". Bioinformática . 33 (13): 2047–2049. doi :10.1093/bioinformatics/btx101. ISSN 1367-4803. PMC 5870676 . PMID 28334105.
^ "Historia" . Consultado el 30 de enero de 2015 .
^ BioJava-legacy Archivado el 9 de enero de 2013 en Wayback Machine.
^ Maven, Apache. "Maven". Apache.
^ Proyecto heredado de BioJava Archivado el 9 de enero de 2013 en Wayback Machine
^ ab Ye Y, Godzik A (octubre de 2003). "Alineación de estructuras flexibles mediante el encadenamiento de pares de fragmentos alineados que permiten giros". Bioinformática . 19 (Supl 2): ii246–55. doi : 10.1093/bioinformatics/btg1086 . PMID 14534198.
^ Shindyalov IN, Bourne PE (septiembre de 1998). "Alineación de la estructura de proteínas mediante extensión combinatoria incremental (CE) de la ruta óptima". Protein Eng . 11 (9): 739–47. doi : 10.1093/protein/11.9.739 . PMID 9796821.
^ Bliven S, Prlić A (2012). "Permutación circular en proteínas". PLOS Comput. Biol . 8 (3): e1002445. Bibcode :2012PLSCB...8E2445B. doi : 10.1371/journal.pcbi.1002445 . PMC 3320104 . PMID 22496628.
^ Rose PW, Beran B, Bi C, et al. (enero de 2011). "Banco de datos de proteínas del RCSB: sitio web y servicios web rediseñados". Nucleic Acids Res . 39 (número de la base de datos): D392–401. doi :10.1093/nar/gkq1021. PMC 3013649. PMID 21036868 .
^ Prlić A, Bliven S, Rose PW, et al. (diciembre de 2010). "Alineaciones de estructuras proteicas precalculadas en el sitio web de RCSB PDB". Bioinformática . 26 (23): 2983–5. doi :10.1093/bioinformatics/btq572. PMC 3003546 . PMID 20937596.
^ Bernstein FC, Koetzle TF, Williams GJ, et al. (mayo de 1977). "The Protein Data Bank: un archivo informático para estructuras macromoleculares". J. Mol. Biol . 112 (3): 535–42. doi :10.1016/s0022-2836(77)80200-3. PMID 875032.
^ Fitzgerald, PMD et al. (2006) Diccionario macromolecular (mmCIF). En Hall, SR
^ Velankar S, McNeil P, Mittard-Runte V, et al. (enero de 2005). "E-MSD: un recurso de datos integrado para la bioinformática". Nucleic Acids Res . 33 (número de la base de datos): D262–5. doi :10.1093/nar/gki058. PMC 540012 . PMID 15608192.
^ Besemer J, Borodovsky M (julio de 2005). "GeneMark: software web para la búsqueda de genes en procariotas, eucariotas y virus". Nucleic Acids Res . 33 (edición del servidor web): W451–4. doi :10.1093/nar/gki487. PMC 1160247 . PMID 15980510.
^ Blanco E, Abril JF (2009). "Anotación computacional de genes en nuevos ensamblajes genómicos utilizando GeneID". Bioinformática para análisis de secuencias de ADN . Métodos en biología molecular. Vol. 537. págs. 243–61. doi :10.1007/978-1-59745-251-9_12. ISBN978-1-58829-910-9. Número de identificación personal 19378148.
^ Kelley DR, Liu B, Delcher AL, Pop M, Salzberg SL (enero de 2012). "Predicción de genes con Glimmer para secuencias metagenómicas aumentadas por clasificación y agrupamiento". Nucleic Acids Res . 40 (1): e9. doi :10.1093/nar/gkr1067. PMC 3245904 . PMID 22102569.
^ Stein LD, Mungall C, Shu S, et al. (octubre de 2002). "El navegador genérico del genoma: un elemento básico para una base de datos del sistema de organismos modelo". Genome Res . 12 (10): 1599–610. doi :10.1101/gr.403602. PMC 187535 . PMID 12368253.
^ Cock PJ, Fields CJ, Goto N, Heuer ML, Rice PM (abril de 2010). "El formato de archivo Sanger FASTQ para secuencias con puntuaciones de calidad y las variantes Solexa/Illumina FASTQ". Nucleic Acids Res . 38 (6): 1767–71. doi :10.1093/nar/gkp1137. PMC 2847217 . PMID 20015970.
^ Needleman SB, Wunsch CD (marzo de 1970). "Un método general aplicable a la búsqueda de similitudes en la secuencia de aminoácidos de dos proteínas". J. Mol. Biol . 48 (3): 443–53. doi :10.1016/0022-2836(70)90057-4. PMID 5420325.
^ Smith TF, Waterman MS (marzo de 1981). "Identificación de subsecuencias moleculares comunes". J. Mol. Biol . 147 (1): 195–7. CiteSeerX 10.1.1.63.2897 . doi :10.1016/0022-2836(81)90087-5. PMID 7265238.
^ Guan X, Uberbacher EC (febrero de 1996). "Alineamientos de secuencias de ADN y proteínas que contienen errores de desplazamiento del marco de lectura". Comput. Appl. Biosci . 12 (1): 31–40. doi : 10.1093/bioinformatics/12.1.31 . PMID 8670617.
^ Chen K, Jung YS, Bonagura CA, et al. (febrero de 2002). "Azotobacter vinelandii ferredoxina I: un enfoque de comparación de secuencia y estructura para la alteración del potencial de reducción de [4Fe-4S]2+/+". J. Biol. Chem . 277 (7): 5603–10. doi : 10.1074/jbc.M108916200 . PMID 11704670.
^ Montecchi-Palazzi L, Beavis R, Binz PA, et al. (agosto de 2008). "El estándar de la comunidad PSI-MOD para la representación de datos de modificación de proteínas". Nat. Biotechnol . 26 (8): 864–6. doi :10.1038/nbt0808-864. PMID 18688235. S2CID 205270043.
^ Garavelli JS (junio de 2004). "La base de datos RESID de modificaciones de proteínas como recurso y herramienta de anotación". Proteómica . 4 (6): 1527–33. doi : 10.1002/pmic.200300777 . PMID 15174122. S2CID 25712150.
^ Berman HM, Westbrook J, Feng Z, et al. (enero de 2000). "El banco de datos de proteínas". Nucleic Acids Res . 28 (1): 235–42. doi :10.1093/nar/28.1.235. PMC 102472 . PMID 10592235.
^ Yang ZR, Thomson R, McNeil P, Esnouf RM (agosto de 2005). "RONN: la técnica de red neuronal funcional de base biológica aplicada a la detección de regiones desordenadas de forma nativa en proteínas". Bioinformática . 21 (16): 3369–76. doi : 10.1093/bioinformatics/bti534 . PMID 15947016.
^ Finn RD, Clements J, Eddy SR (julio de 2011). "Servidor web HMMER: búsqueda interactiva de similitud de secuencias". Nucleic Acids Res . 39 (número del servidor web): W29–37. doi :10.1093/nar/gkr367. PMC 3125773 . PMID 21593126.
^ Paterson T, Law A (noviembre de 2012). "JEnsembl: una API Java con reconocimiento de versiones para sistemas de datos Ensembl". Bioinformática . 28 (21): 2724–31. doi :10.1093/bioinformatics/bts525. PMC 3476335 . PMID 22945789.
^ Kim T, Tyndel MS, Huang H, et al. (marzo de 2012). "MUSI: un sistema integrado para identificar especificidad múltiple a partir de conjuntos de datos de péptidos o ácidos nucleicos muy grandes". Nucleic Acids Res . 40 (6): e47. doi :10.1093/nar/gkr1294. PMC 3315295 . PMID 22210894.
^ Gront D, Kolinski A (febrero de 2008). "Biblioteca de utilidad para bioinformática estructural". Bioinformática . 24 (4): 584–5. doi : 10.1093/bioinformatics/btm627 . PMID 18227118.