fbpx
Wikipedia

BioJava

BioJava[1]​ es un proyecto de código abierto dedicado a proveer herramientas Java para el procesamiento de datos biológicos.[2][3]​ BioJava es un conjunto de bibliotecas escritas en el lenguaje de programación Java para manipular secuencias, estructuras de proteínas, conversores de archivos (file parsers), la interoperabilidad CORBA, el DAS, el acceso a AceDB, programación dinámica y rutinas estadísticas simples. BioJava es compatible con una amplia gama de datos, a partir de ADN y secuencias de proteínas a nivel de las estructuras 3D de proteínas. Las bibliotecas BioJava son útiles para la automatización de muchas tareas cotidianas y mundanas de la bioinformática como para analizar un archivo PDB , interactuando con Jmol y muchos más. Esta interfaz de programación de aplicaciones ofrece diversos programas de análisis de archivos, modelos de datos y algoritmos para facilitar el trabajo con los formatos de datos estándar y permite el desarrollo rápido de aplicaciones y análisis. Estas bibliotecas también se han utilizado en el desarrollo de diversas herramientas de análisis extendido, por ejemplo :

  • MUSI : Un sistema integrado para la identificación de la especificidad múltiple de un péptido de gran tamaño o un conjunto de datos de ácidos nucleicos[4]
  • JEnsembl : Un version-aware de Java API para los sistemas de datos Ensembl[5]
  • Perfiles de expresión de grupos de firmas genéticas con el método de amplificación Trinucleotide threading (TnT)[6]
  • La resolución de las características estructurales de las islas genómicas : un enfoque de aprendizaje automático[7]
  • Biblioteca de utilidad para la bioinformática estructural[8]

El proyecto BioJava surgió del trabajo de Thomas Down y Mateo Pocock para crear una API para simplificar 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 con más de 60 desarrolladores. BioJava es uno de una serie de Bio *. Proyectos diseñados para reducir la duplicación de código.[9]​ Los ejemplos de este tipo de proyectos que se enmarcan en Bio * aparte de BioJava son BioPython ,[10]BioPerl ,[11]​BioRuby ,[12]EMBOSS[13]​ etc.

La última versión de BioJava (3.0.5) es una importante actualización de las versiones anteriores. La nueva versión de BioJava contiene varios módulos independientes. El viejo proyecto ha sido trasladado a un proyecto independiente llamado proyecto .

La versión más reciente de BioJava es 4.1.0.

Características

BioJava proporciona módulos de software para muchas de las tareas típicas de la programación de la bioinformática. Estas incluyen:

  • Acceso a los datos de nucleótidos y a la secuencia de péptido de bases de datos locales y remotas.
  • La transformación de formatos de registros de base de datos / archivos.
  • Análisis y manipulación de la estructura de la proteína.
  • La manipulación de secuencias individuales.
  • Busca secuencias similares.
  • Creación y manipulación de alineamientos de secuencias.
  • Interfaz de visualización en Swing y AWT

Requerimientos

Desde la versión 3 de BioJava se requiere JDK 1.6.

Licencia

BioJava se encuentra licenciado con LGPL v2.1

Para licenciar los archivos de BioJava, se sigue el tutorial.

Historia y Publicaciones

En el año 2008, se publicó la nota de solicitud de BioJava. Se migró desde su repositorio CVS original al centro de GitHub en abril de 2013.[14]

En octubre de 2012, se publicó el documento más reciente sobre BioJava. A partir de noviembre de 2012 Google Academic cuenta con más de 130 citas.

Módulos

Durante los últimos 2 años, gran parte de la base de código original se han reescrito. BioJava 3 es una clara desviación de la serie de la versión 1. Ahora se compone de varios módulos independientes construidos usando una herramienta de automatización llamada Apache Maven.[15]​ Estos módulos proporcionan herramientas del estado del arte para la comparación de la estructura de proteínas, por parejas y múltiples alineamientos de secuencias, trabajando con ADN y secuencias de proteínas, análisis de propiedades de aminoácidos, la detección de modificaciones de proteínas y predicción de las desordenadas regiones en las proteínas, así como analizadores de formatos de archivo comunes utilizando un modelo de datos biológicamente significativos. El código original ha pasado a un proyecto separado del proyecto , que todavía está disponible para la compatibilidad hacia atrás.

Las siguientes secciones describen varios de los nuevos módulos y ponen de relieve algunas de las nuevas características que se incluyen en la versión más reciente de BioJava.

Estructuras proteicas: biojava-structure, biojava-alignment Optional module: biojava-structure-gui for the 3D visualisation Optional external library : JmolApplet.jar for the 3D visualisation

Alineamientos: biojava-alignment, biojava-core, biojava-phylo Required external library: forester.jar

Genomas: biojava-genome.

Secuenciación: biojava-core,biojava-sequencing, Required external library: guava-11.0.1.jar

Árbol Filogenético: biojava-core, Required external library: forester.jar

Propiedades Físico-químicas: biojava-aa-prop, biojava-structure and biojava-core

Desorden de Proteínas: biojava-protein-disorder.

Identificación de Proteínas Modificadas: biojava-modfinder, biojava-structure

Llamadas a Web-Services: biojava-core, biojava-ws

Módulo Principal

Este módulo ofrece clases Java para modelar secuencias de aminoácidos o nucleótidos. Las clases se han diseñado teniendo en cuenta que deben ser conocidos por los biólogos, es decir, los nombres deben tener sentido para los biólogos y al mismo tiempo también proporcionan una representación concreta de los pasos para pasar de una secuencia de genes a una secuencia de la proteína para los científicos de la computación y programadores. Un cambio importante entre el proyecto BioJava Legacy y BioJava3 radica en la forma que ha sido diseñado el framework para aprovechar las últimas innovaciones en Java. Una secuencia se define como una interfaz genérica permitiéndole al resto de los módulos crear cualquier utilidad que opera en todas las secuencias. Clases específicas para las secuencias comunes, tales como ADN y proteínas se han definido con el fin de mejorar la usabilidad para los biólogos. El motor de traducción realmente aprovecha este trabajo al permitir que las conversiones entre las secuencias de ADN, ARN y aminoácidos. Este motor puede manejar los detalles tales como la elección de la tabla de codones, la conversión de codones de inicio de metionina, el recorte de los codones de parada, especificando el marco de lectura y la entrega de secuencias ambiguas.

Se ha prestado atención especial en el diseño del almacenamiento de las secuencias a fin de minimizar los requisitos de espacio. Patrones de diseño especiales, como el patrón Proxy que permitió a los desarrolladores crear el framework de manera tal que las secuencias se puedan almacenar en la memoria, la demanda 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 datos de la secuencia hasta que se hace referencia en la solicitud. Este concepto se puede ampliar para manejar grandes bases de datos genómicas, tales 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 3D. En particular, se centra en la comparación de la estructura de proteínas. Los siguientes algoritmos se han aplicado y se incluyen en BioJava.

Algoritmo FATCAT para la alineación del cuerpo flexible y rígido.[17] El algoritmo estándar Combinatoria de Extensión (CE).[17]​ Una nueva versión de la CE que puede detectar permutaciones circulares en las proteínas.[18]​ Estos algoritmos se utilizan para proporcionar al RCSB Protein Data Bank (PDB)[19]​ La herramienta de comparación de proteínas, así como comparaciones sistemáticas de todas las proteínas en el PDB semanalmente.[20]​ Analizadores de formatos de archivos de PDB[21]​ y mmCIF[22]​ permiten la carga de datos de la estructura en un modelo de datos reutilizable. Esta característica es utilizada por el proyecto SIFTS para mapear entre las secuencias de UniProt y estructuras de PDB.[23]​ Información de la RCSB PDB puede ser dinámicamente obtenida y sin la necesidad de descargar manualmente los datos. Para la visualización, se proporciona una interfaz para el visor 3D Jmol (http://www.jmol.org/) . El equipo afirma que se está trabajando para mejorar la interacción con los viewers de RCSB PDB.[24]

A continuación se muestra un esquema del código para inicializar una ventana que mostrará y comparará dos secuencias de proteínas. Por favor, tenga en cuenta que esto es sólo un esbozo del código. Para hacer este trabajo tendrá que importar el paquete correcto en "org.biojava.bio.structure" y también añadir manejar excepciones utilizando un bloque try-catch.

 String name1 = "4hhb.A"; String name2 = "4hhb.B"; AtomCache cache = new AtomCache(); Structure structure1 = null; Structure structure2 = null; StructureAlignment algorithm = StructureAlignmentFactory.getAlgorithm(FatCatRigid.algorithmName); structure1 = cache.getStructure(name1); structure2 = cache.getStructure(name2); Atom[] ca1 = StructureTools.getAtomCAArray(structure1); Atom[] ca2 = StructureTools.getAtomCAArray(structure2); FatCatParameters params = new FatCatParameters(); AFPChain afpChain = algorithm.align(ca1,ca2,params); afpChain.setName1(name1); afpChain.setName2(name2); StructureAlignmentDisplay.display(afpChain, ca1, ca2); 

El código alinea las dos secuencias de proteínas "4hhb.A" y "4hhb.B" basado en el algoritmo rígido FATCAT.

Módulos Genoma y Secuenciación

Este módulo se centra en la creación de objetos de secuencias de genes desde el módulo principal. Esto se realiza mediante el apoyo al análisis de los siguientes formatos de archivo estándar populares generados por las aplicaciones de predicción de genes de código abierto:

  • Archivos GTF generados por GeneMark[25]
  • Archivos GFF2 generados por GeneID[26]
  • Archivos GFF3 generados por Glimmer[27]

A continuación, los objetos de secuencias de genes se escriben como un formato GFF3 y se importan en GMOD.[28]​ Estos formatos de archivo están bien definidos, pero lo que se escribe en el archivo es muy flexible.

En el siguiente código de ejemplo se toma un archivo 454scaffold, que fue utilizado por GeneMark para predecir genes, y devuelve una colección de ChromosomeSequences. Cada secuencia de cromosoma se asigna a una entrada llamada en el archivo FASTA y contendría N secuencias de genes. Las secuencias de genes pueden ser hebra +/- con cambios de marco y múltiples transcripciones.

Pasando la colección de ChromosomeSequences a GeneFeatureHelper.getProteinSequences devolvería todas las secuencias de proteínas. A continuación, puede escribir las secuencias de proteínas a un archivo FASTA.

LinkedHashMap<String, ChromosomeSequence> chromosomeSequenceList = GeneFeatureHelper.loadFastaAddGeneFeaturesFromGeneMarkGTF(new File("454Scaffolds.fna"), new File("genemark_hmm.gtf")); LinkedHashMap<String, ProteinSequence> proteinSequenceList = GeneFeatureHelper.getProteinSequences(chromosomeSequenceList.values()); FastaWriterHelper.writeProteinSequence(new File("genemark_proteins.faa"), proteinSequenceList.values()); 

También puede dar salida a la secuencia del gen en un archivo fasta donde las regiones codificantes estarán en mayúscula y las regiones no codificantes estarán en minúscula.

LinkedHashMap<String, GeneSequence> geneSequenceHashMap = GeneFeatureHelper.getGeneSequences(chromosomeSequenceList.values()); Collection<GeneSequence> geneSequences = geneSequenceHashMap.values(); FastaWriterHelper.writeGeneSequence(new File("genemark_genes.fna"), geneSequences, true); 

Usted puede escribir fácilmente una vista GFF3 de un ChromosomeSequence con el siguiente código.

FileOutputStream fo = new FileOutputStream("genemark.gff3"); GFF3Writer gff3Writer = new GFF3Writer(); gff3Writer.write(fo, chromosomeSequenceList); fo.close(); 

Para la prestación de apoyo de entrada-salida por varias variantes comunes del formato de archivo FASTQ de los secuenciadores de última generación, se proporciona[29]​ un módulo de secuenciación independiente. Se llama el módulo de secuencia y está contenido en el paquete org.biojava3.sequencing.io.fastq. Para las muestras sobre el uso de este módulo por favor haga clic aquí (http://biojava.org/wiki/BioJava:CookBook3:FASTQ).

Se está trabajando para llegar a crear un conjunto completo de clases java para hacer conversiones entre diferentes formatos de archivo donde la lista de aplicaciones de predicción de genes compatibles y buscadores de genomas estarán ampliamente basadas en los requerimientos de los usuarios finales.

Módulo de Alineamiento

Este módulo contiene varias clases y métodos que permiten a los usuarios realizar alineamientos de secuencias por parejas y por secuencias múltiples.

Pairwise alineación de secuencias Para la alineación global óptima, BioJava implementa el algoritmo Needleman-Wunsch[30]​ y para realizar alineamientos locales implementa el algoritmo Smith y Waterman.[31]​ Las salidas de ambos alineamientos locales y globales están disponibles en formatos estándar.

Un ejemplo de cómo usar las bibliotecas se muestra a continuación.

protected void align(String uniProtID_1, String uniProtID_2, PairwiseSequenceAlignerType alignmentType) throws IOException, Exception { ProteinSequence proteinSeq1 = FastaReaderHelper.readFastaProteinSequence((new URL(String.format ("http://www.uniprot.org/uniprot/%s.fasta", uniProtID_1))).openStream()).get(uniProtID_1); ProteinSequence proteinSeq2 = FastaReaderHelper.readFastaProteinSequence((new URL(String.format ("http://www.uniprot.org/uniprot/%s.fasta", uniProtID_2))).openStream()).get(uniProtID_2);  SequencePair<ProteinSequence, AminoAcidCompound> result = Alignments.getPairwiseAlignment(proteinSeq1, proteinSeq2,  alignmentType, new SimpleGapPenalty(), new SimpleSubstitutionMatrix<AminoAcidCompound>()); System.out.println(result.toString()); } 

Un ejemplo de llamada a la función anterior sería algo como esto:

Para un Alineamiento Global

align("Q21691", "Q21495", PairwiseSequenceAlignerType.GLOBAL); 

Para un Alineamiento Local

align("Q21691", "Q21495", PairwiseSequenceAlignerType.LOCAL); 

Además de estos dos algoritmos, existe una implementación del algoritmo de Guan-Uberbacher[32]​ que lleva a cabo una alineación global de secuencias de manera muy eficiente ya que sólo utiliza la memoria lineal.

Para alineamiento de secuencia múltiples, cualquiera de los métodos discutidos anteriormente pueden utilizarse para llevar a cabo progresivamente una alineación de secuencias múltiples.

Módulo ModFinder

 

El módulo ModFinder ofrece nuevos métodos para identificar y clasificar las modificaciones de proteínas en estructuras 3D de proteínas. Se recogieron y curaron más de 400 diferentes tipos de modificaciones de proteínas como la fosforilación, glicosilación, enlaces disulfuro, quelación de metales, etc., basadas en anotaciones en PSI-MOD,[34]​ RESID[35]​ y RCSB PDB.[36]​ El módulo también proporciona una API para la detección de modificaciones de proteínas dentro de las estructuras de las proteínas.

Ejemplo: identificar e imprimir todas las modificaciones precargados de una estructura[37]

Set<ModifiedCompound> identifyAllModfications(Structure struc) { ProteinModificationIdentifier parser = new ProteinModificationIdentifier(); parser.identify(struc); Set<ModifiedCompound> mcs = parser.getIdentifiedModifiedCompound(); return mcs; } 

Ejemplo: identificar sitios de fosforilación en una estructura

List<ResidueNumber> identifyPhosphosites(Structure struc) { List<ResidueNumber> phosphosites = new ArrayList<ResidueNumber>(); ProteinModificationIdentifier parser = new ProteinModificationIdentifier(); parser.identify(struc, ProteinModificationRegistry.getByKeyword("phosphoprotein")); Set<ModifiedCompound> mcs = parser.getIdentifiedModifiedCompound(); for (ModifiedCompound mc : mcs) { Set<StructureGroup> groups = mc.getGroups(true); for (StructureGroup group : groups) {  phosphosites.add(group.getPDBResidueNumber()); } } return phosphosites; } 

Código de demostración para ejecutar los métodos anteriores

import org.biojava.bio.structure.ResidueNumber; import org.biojava.bio.structure.Structure; import org.biojava.bio.structure.io.PDBFileReader; import org.biojava3.protmod.structure.ProteinModificationIdentifier; public static void main(String[] args) { try { PDBFileReader reader = new PDBFileReader(); reader.setAutoFetch(true);  // identify all modifications from PDB:1CAD and print them String pdbId = "1CAD"; Structure struc = reader.getStructureById(pdbId); Set<ModifiedCompound> mcs = identifyAllModfications(struc); for (ModifiedCompound mc : mcs) {  System.out.println(mc.toString()); }  // identify all phosphosites from PDB:3MVJ and print them pdbId = "3MVJ"; struc = reader.getStructureById(pdbId); List<ResidueNumber> psites = identifyPhosphosites(struc); for (ResidueNumber psite : psites) {  System.out.println(psite.toString()); } } catch(Exception e) { e.printStackTrace(); } } 

Hay planes para incluir las modificaciones adicionales a las proteínas mediante la integración de otros recursos como UniProt[38]

Módulo Propiedades de Aminoácidos

Este módulo trata de proporcionar las propiedades físico-químicas precisas de las proteínas. Las propiedades que pueden ser calculadas usando este módulo son los siguientes:

Los pesos moleculares precisos para los aminoácidos comunes marcados isotópicamente se incluyen en este módulo. También existe flexibilidad para definir nuevas moléculas de aminoácidos con sus pesos moleculares utilizando archivos de configuración sencilla XML. Esto puede ser útil donde la masa exacta es de gran importancia, tales como experimentos de espectrometría de masas.

Módulo de Desorden en la Proteína

El objetivo de este módulo es proporcionar a los usuarios maneras de encontrar desorden en las moléculas de proteína. BioJava incluye una implementación de Java del predictor RONN (http://bioinformatics.oxfordjournals.org/content/21/16/3369.full). La versión de BioJava (3.0.5) hace uso de la ayuda de Java para multithreading para mejorar el rendimiento hasta en 3,2 veces,[39]​ en una máquina moderna de cuatro núcleos, en comparación con la implementación del legado C.

Hay dos maneras de utilizar este módulo:

  • El uso de las llamadas a funciones de biblioteca
  • El uso de la línea de comandos

Hacer llamadas a funciones de biblioteca

Los siguientes ejemplos muestran cómo utilizar el módulo y hacer llamadas de función para obtener información acerca de los desórdenes de proteínas. En los dos primeros ejemplos se llama a una función de la biblioteca para calcular la probabilidad de desorden para cada residuo de la secuencia proporcionada.

El tercer y cuarto ejemplo demuestran la facilidad con que se pueden obtener las regiones desordenadas de la proteína.

Ejemplo 1: Calcular la probabilidad de desorden para cada residuo en la secuencia

 FastaSequence fsequence = new FastaSequence("name", "LLRGRHLMNGTMIMRPWNFLNDHHFPKFFPHLIEQQAIWLADWWRKKHC" +  "RPLPTRAPTMDQWDHFALIQKHWTANLWFLTFPFNDKWGWIWFLKDWTPGSADQAQRACTWFFCHGHDTN"); float[] rawProbabilityScores = Jronn.getDisorderScores(fsequence); 

Ejemplo 2: Calcular la probabilidad de desorden para cada residuo en la secuencia para todas las proteínas del archivo de entrada FASTA

 final List<FastaSequence> sequences = SequenceUtil.readFasta(new FileInputStream("src/test/resources/fasta.in")); Map<FastaSequence, float[]> rawProbabilityScores = Jronn.getDisorderScores(sequences); 

Ejemplo 3: Obtener las regiones desordenada de la proteína para una sola secuencia de la proteína

FastaSequence fsequence = new FastaSequence("Prot1", "LLRGRHLMNGTMIMRPWNFLNDHHFPKFFPHLIEQQAIWLADWWRKKHC" +  "RPLPTRAPTMDQWDHFALIQKHWTANLWFLTFPFNDKWGWIWFLKDWTPGSADQAQRACTWFFCHGHDTN" +  "CQIIFEGRNAPERADPMWTGGLNKHIIARGHFFQSNKFHFLERKFCEMAEIERPNFTCRTLDCQKFPWDDP"); Range[] ranges = Jronn.getDisorder(fsequence); 

Ejemplo 4: Calcular las regiones desordenadas para las proteínas de archivo FASTA

 final List<FastaSequence> sequences = SequenceUtil.readFasta(new FileInputStream("src/test/resources/fasta.in")); Map<FastaSequence, Range[]> ranges = Jronn.getDisorder(sequences); 

El uso de la línea de comandos

BioJava módulo biojava3-protein-disorder se puede compilar en un solo archivo JAR ejecutable y ejecutar mediante el comando siguiente.[40]

java -jar <jar_file_name> 

Opciones admitidas por el ejecutable de línea de comandos

JRONN version 3.1b usage 1 August 2011: java -jar JRONN_JAR_NAME -i=inputfile <OPTIONS> Where -i=input file Input file can contain one or more FASTA formatted sequences. All OPTIONS are optional OPTION DETAILED DESCRIPTION: -o full path to the output file, if not specified standard out is used -d the value of disorder, defaults to 0.5 -f output format, V for vertical, where the letters of the sequence and corresponding disorder values are output in two column layout. H for horizontal, where the disorder values are provided under the letters of the sequence. Letters and values separated by tabulation in this case. Defaults to V. -s the file name to write execution statistics to. -n the number of threads to use. Defaults to the number of cores available on the computer. n=1 mean sequential processing. Valid values are 1 < n < (2 x num_of_cores) Default value will give the best performance. 

Ejemplos

Predecir los valores de desorden para las secuencias desde un archivo de entrada /home/input.fasta a una salida estándar de resultados. Utiliza un valor predeterminado de desorden y también utilizar todas las CPU disponibles en el equipo.

java -jar JRONN.JAR -i=/home/input.fasta 

Predecir los valores de desorden para las secuencias desde una archivo de entrada /home/input.fasta los resultados en disposición horizontal a /home/jronn.out, recopilan estadísticas de ejecución al archivo /home/jronn.stat.txt y limitan el número de threads a dos.

java -jar JRONN.JAR -i=/home/input.fasta -o=/home/jronn.out -d=0.6 -n=2 -f=H 

Los argumentos se pueden proporcionar en cualquier orden.

Módulo de acceso a servicio Web

De acuerdo con las tendencias actuales en la bioinformática, herramientas basadas en web están ganando popularidad. El módulo de servicio web permite a los servicios de bioinformática para acceder a través de protocolos REST. Actualmente, dos servicios se implementan:. NCBI Blast a través de la Blast URLAPI (anteriormente conocido como QBlast) y el servicio de HMMER web.[41]

Las comparaciones con otras alternativas

La necesidad de software a medida en el campo de la bioinformática ha sido abordado por varios grupos e individuos. Existen proyectos similares a BioJava, los proyectos de código abierto como BioPerl, BioPython y BioRuby todos proporcionan kits de herramientas con múltiples funcionalidades que hacen que sea más fácil para crear pipelines o análisis personalizados.

Como el nombre sugiere, los proyectos mencionados anteriormente utilizan diferentes lenguajes de programación. Todas estas APIs ofrecen herramientas similares, por lo tanto, ¿Qué criterios se deberían tener en cuenta en la elección?. Para los programadores con experiencia en sólo uno de estos idiomas, la elección es sencilla.

En general, para los programas pequeños (<500 líneas) que serán utilizadas únicamente por un pequeño grupo o de forma individual, es difícil de superar a Perl y a BioPerl. Estas restricciones, probablemente, cubren las necesidades de 90 por ciento de los requisitos de programación .

Para los principiantes, y para escribir programas más grandes en el dominio Bio, especialmente aquellos para ser compartido y apoyado por otros, la claridad y la brevedad de Python lo hacen muy atractivo.

Para aquellos que pudieran estar inclinado hacia una carrera en la bioinformática y que quieren aprender un solo idioma, Java cuenta con el apoyo de programación general más amplia, muy buen apoyo en el dominio Bio con BioJava, y ahora es el idioma de facto del negocio.

Aparte de estos Bio* proyectos hay otro proyecto llamado Strap que utiliza Java y apunta a objetivos similares. La caja de herramientas Strap, similar a BioJava es también un conjunto de herramientas Java para el diseño de programas de bioinformática y scripts. Las similitudes y diferencias entre BioJava y STRAP son los siguientes:

Similitudes

  • Ambos proporcionan colecciones completas de los métodos de secuencias de proteínas.
  • Ambos son utilizados por los programadores de Java para la codificación de algoritmos de Bioinformática.
  • Ambas separan las implementaciones y definiciones mediante el uso de interfaces de Java.
  • Ambos son proyectos de código abierto.
  • Ambos pueden leer y escribir muchos formatos de archivo de secuencia.

Diferencias

  • BioJava es aplicable a secuencias de nucleótidos y de péptidos y se puede aplicar para los genomas enteros. STRAP no le puede hacer frente a las secuencias individuales tan largas como un cromosoma entero. STRAP manipula secuencias de péptidos y estructuras 3D del tamaño de las proteínas individuales. Sin embargo, se puede mantener un alto número de secuencias y estructuras en la memoria. STRAP está diseñado para las secuencias de proteínas, pero puede leer archivos de nucleótidos que codifican, que luego se traducen a secuencias péptido.
  • STRAP es muy rápido ya que la interfaz gráfica de usuario debe ser muy sensible. BioJava se utiliza donde la velocidad es menos crítica.
  • BioJava está bien diseñado en términos de seguridad de tipos, la ontología y el diseño de objetos.
  • BioJava utiliza objetos de secuencias, anotaciones y posiciones de la secuencia. Incluso los aminoácidos o ácidos nucleótidos individuales son referencias a objetos. Para mejorar la velocidad, STRAP evita instancias de objeto frecuentes y la invocación de objetos-métodos no finales.
    • En BioJava las secuencias de péptidos y las secuencias de nucleótidos son listas de símbolos. Los símbolos se pueden recuperar uno después del otro con un iterador o se pueden obtener subsecuencia. Las ventajas son que toda la secuencia no reside necesariamente en la memoria y que los programas son menos susceptibles a los errores de programación. Objetos de símbolos son elementos inmutables de un alfabeto. Sin embargo en STRAP las matrices de bytes simples se utilizan para las secuencias y las matrices de flotantes para las 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 los datos internos. Por lo tanto, los programadores pueden cometer errores de programación, como la manipulación de matrices de bytes directamente en lugar de utilizar los métodos setter. Otra desventaja es que en STRAP no se realizan controles si los caracteres en las secuencias son válidas con respecto a un alfabeto subyacente.
    • En BioJava las posiciones de secuencia se realizan por la clase Location. Los discontinuos objetos de Location se componen de varios objetos contiguos RangeLocation u objetos PointLocation. Sin embargo para la clase StrapProtein, las posiciones de los residuos se indican mediante números enteros entre 0 y countResidues () - 1. Múltiples posiciones están dadas por matrices booleanas. Si el índice determinado es verdadero, será seleccionado.
  • BioJava lanza excepciones cuando los métodos se invocan con parámetros no válidos. STRAP evita el tiempo de creación de objetos Throwable. En lugar de ello, los errores en los métodos se indican mediante los valores de retorno NaN, -1 o nulos. Desde el punto de diseño del programa, sin embargo los objetos Throwable son más bonitas.
  • En BioJava un objeto de secuencia es o bien una secuencia de péptido o una secuencia de nucleótidos. A StrapProtein puede contener ambos al mismo tiempo si una secuencia de nucleótidos de codificación se leyó y se traduce en proteína. Ambos, la secuencia de nucleótidos y la secuencia de péptidos están contenidas en el mismo objeto StrapProtein. La codificación o regiones no codificantes se pueden cambiar y la secuencia del péptido altera en consecuencia.

Proyectos usando BioJava

  • :Software dedicada a la exploración de las conexiones entre los genes, las proteínas, las reacciones y las vías metabólicas.
  • : Un portal de información sobre el genoma del dengue que utiliza BioJava en el middleware y habla con una base de datos BioSQL.
  • Dazzle (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).: Un servidor DAS basado BioJava.
  • BioSense: Plugin para la suite InforSense, una plataforma de software de análisis por IDBS que unifica BioJava.
  • : Código abierto, banco de trabajo para la quimio y la bioinformática con potentes capacidades de edición y visualización de moléculas, secuencias, proteínas, espectros etc.
  • PROMPT: Aplicación de código abierto para la comparación y la cartografía de los conjuntos de proteínas. Utiliza BioJava para el manejo de la mayoría de los formatos de datos de entrada.
  • Cytoscape: Una plataforma de software de bioinformática de código abierto para la visualización de las redes de interacción molecular.
  • BioWeka: Una aplicación de minería de datos biológicos de código abierto.
  • Geneious: Un juego de herramientas de la biología molecular.
  • MassSieve: una aplicación de código abierto para el análisis de masas de datos proteómica spec.
  • : Una herramienta para la alineación de secuencias múltiples y estructura de alineación basada en la secuencia
  • Jstacs: Un marco de Java para el análisis estadístico y clasificación de secuencias biológicas.
  • jLSTM "Long Short Term-memory" para la clasificación de proteínas.
  • LaJolla Alineación estructural de ARN y proteínas utilizando una estructura de índice para una alineación rápida de miles de estructuras. Incluyendo un fácil de usar interfaz de línea de comandos. El código abierto en Sourceforge.
  • GenBeans: Una plataforma de cliente enriquecido de la bioinformática se centraron principalmente en la biología molecular y análisis de la secuencia.
  • Equant: Un servidor de evaluación de la calidad del modelo para indicar la fiabilidad de estructuras de proteínas.

Referencias

  1. Prlić A, Yates A, Bliven SE (October 2012). «BioJava: an open-source framework for bioinformatics in 2012». Bioinformatics 28 (20): 2693-5. PMC 3467744. PMID 22877863. doi:10.1093/bioinformatics/bts494. 
  2. Holland RC, Down TA, Pocock M, Prlić A, Huen D, James K (2008). «BioJava: an open-source framework for bioinformatics.». Bioinformatics 24 (18): 2096-7. PMC 2530884. PMID 18689808. doi:10.1093/bioinformatics/btn397. 
  3. VS Matha and P Kangueane, 2009, Bioinformatics: a concept-based introduction, 2009. p26
  4. Kim T, Tyndel MS, Huang H (March 2012). «MUSI: an integrated system for identifying multiple specificity from very large peptide or nucleic acid data sets». Nucleic Acids Res. 40 (6): e47. PMC 3315295. PMID 22210894. doi:10.1093/nar/gkr1294. 
  5. Paterson T, Law A (November 2012). «JEnsembl: a version-aware Java API to Ensembl data systems». Bioinformatics 28 (21): 2724-31. PMC 3476335. PMID 22945789. doi:10.1093/bioinformatics/bts525. 
  6. Zajac P, Pettersson E, Gry M, Lundeberg J, Ahmadian A (February 2008). «Expression profiling of signature gene sets with trinucleotide threading». Genomics 91 (2): 209-17. PMID 18061398. doi:10.1016/j.ygeno.2007.10.012. 
  7. Vernikos GS, Parkhill J (February 2008). «Resolving the structural features of genomic islands: a machine learning approach». Genome Res. 18 (2): 331-42. PMC 2203631. PMID 18071028. doi:10.1101/gr.7004508. 
  8. Gront D, Kolinski A (February 2008). «Utility library for structural bioinformatics». Bioinformatics 24 (4): 584-5. PMID 18227118. doi:10.1093/bioinformatics/btm627. 
  9. Mangalam H (2002). «The Bio* toolkits--a brief overview.». BRIEFINGS IN BIOINFORMATICS 3 (3): 296-302. PMID 12230038. doi:10.1093/bib/3.3.296. 
  10. Cock PJ, Antao T, Chang JT (June 2009). «Biopython: freely available Python tools for computational molecular biology and bioinformatics». Bioinformatics 25 (11): 1422-3. PMC 2682512. PMID 19304878. doi:10.1093/bioinformatics/btp163. 
  11. Stajich JE, Block D, Boulez K (October 2002). «The Bioperl toolkit: Perl modules for the life sciences». Genome Res. 12 (10): 1611-8. PMC 187536. PMID 12368254. doi:10.1101/gr.361602. 
  12. Goto N, Prins P, Nakao M, Bonnal R, Aerts J, Katayama T (October 2010). «BioRuby: bioinformatics software for the Ruby programming language». Bioinformatics 26 (20): 2617-9. PMC 2951089. PMID 20739307. doi:10.1093/bioinformatics/btq475. 
  13. Rice P, Longden I, Bleasby A (June 2000). «EMBOSS: the European Molecular Biology Open Software Suite». Trends Genet. 16 (6): 276-7. PMID 10827456. doi:10.1016/S0168-9525(00)02024-2. 
  14. «History». Consultado el 30 Jan 2015. 
  15. Maven, Apache. «Maven». Apache. 
  16. Ye Y, Godzik A (October 2003). «Flexible structure alignment by chaining aligned fragment pairs allowing twists». Bioinformatics 19 (Suppl 2): ii246-55. PMID 14534198. doi:10.1093/bioinformatics/btg1086. 
  17. Shindyalov IN, Bourne PE (September 1998). «Protein structure alignment by incremental combinatorial extension (CE) of the optimal path». Protein Eng. 11 (9): 739-47. PMID 9796821. doi:10.1093/protein/11.9.739. 
  18. Bliven S, Prlić A (2012). «Circular permutation in proteins». PLoS Comput. Biol. 8 (3): e1002445. PMC 3320104. PMID 22496628. doi:10.1371/journal.pcbi.1002445. 
  19. Rose PW, Beran B, Bi C (January 2011). «The RCSB Protein Data Bank: redesigned web site and web services». Nucleic Acids Res. 39 (Database issue): D392-401. PMC 3013649. PMID 21036868. doi:10.1093/nar/gkq1021. 
  20. Prlic A, Bliven S, Rose PW (December 2010). «Pre-calculated protein structure alignments at the RCSB PDB website». Bioinformatics 26 (23): 2983-5. PMC 3003546. PMID 20937596. doi:10.1093/bioinformatics/btq572. 
  21. Bernstein FC, Koetzle TF, Williams GJ (May 1977). «The Protein Data Bank: a computer-based archival file for macromolecular structures». J. Mol. Biol. 112 (3): 535-42. PMID 875032. doi:10.1016/s0022-2836(77)80200-3. 
  22. Fitzgerald,P.M.D. et al. (2006) Macromolecular dictionary (mmCIF). In Hall,S.R.
  23. Velankar S, McNeil P, Mittard-Runte V (January 2005). «E-MSD: an integrated data resource for bioinformatics». Nucleic Acids Res. 33 (Database issue): D262-5. PMC 540012. PMID 15608192. doi:10.1093/nar/gki058. 
  24. Moreland JL, Gramada A, Buzko OV, Zhang Q, Bourne PE (2005). «The Molecular Biology Toolkit (MBT): a modular platform for developing molecular visualization applications». BMC Bioinformatics 6: 21. PMC 548701. PMID 15694009. doi:10.1186/1471-2105-6-21. 
  25. Besemer J, Borodovsky M (July 2005). «GeneMark: web software for gene finding in prokaryotes, eukaryotes and viruses». Nucleic Acids Res. 33 (Web Server issue): W451-4. PMC 1160247. PMID 15980510. doi:10.1093/nar/gki487. 
  26. Blanco E, Abril JF (2009). «Computational gene annotation in new genome assemblies using GeneID». Methods Mol. Biol. 537: 243-61. PMID 19378148. doi:10.1007/978-1-59745-251-9_12. 
  27. Kelley DR, Liu B, Delcher AL, Pop M, Salzberg SL (January 2012). «Gene prediction with Glimmer for metagenomic sequences augmented by classification and clustering». Nucleic Acids Res. 40 (1): e9. PMC 3245904. PMID 22102569. doi:10.1093/nar/gkr1067. 
  28. Stein LD, Mungall C, Shu S (October 2002). «The generic genome browser: a building block for a model organism system database». Genome Res. 12 (10): 1599-610. PMC 187535. PMID 12368253. doi:10.1101/gr.403602. 
  29. Cock PJ, Fields CJ, Goto N, Heuer ML, Rice PM (April 2010). «The Sanger FASTQ file format for sequences with quality scores, and the Solexa/Illumina FASTQ variants». Nucleic Acids Res. 38 (6): 1767-71. PMC 2847217. PMID 20015970. doi:10.1093/nar/gkp1137. 
  30. Needleman SB, Wunsch CD (March 1970). «A general method applicable to the search for similarities in the amino acid sequence of two proteins». J. Mol. Biol. 48 (3): 443-53. PMID 5420325. doi:10.1016/0022-2836(70)90057-4. 
  31. Smith TF, Waterman MS (March 1981). «Identification of common molecular subsequences». J. Mol. Biol. 147 (1): 195-7. PMID 7265238. doi:10.1016/0022-2836(81)90087-5. 
  32. Guan X, Uberbacher EC (February 1996). «Alignments of DNA and protein sequences containing frameshift errors». Comput. Appl. Biosci. 12 (1): 31-40. PMID 8670617. doi:10.1093/bioinformatics/12.1.31. 
  33. Chen K, Jung YS, Bonagura CA (February 2002). «Azotobacter vinelandii ferredoxin I: a sequence and structure comparison approach to alteration of [4Fe-4S]2+/+ reduction potential». J. Biol. Chem. 277 (7): 5603-10. PMID 11704670. doi:10.1074/jbc.M108916200. 
  34. Montecchi-Palazzi L, Beavis R, Binz PA (August 2008). «The PSI-MOD community standard for representation of protein modification data». Nat. Biotechnol. 26 (8): 864-6. PMID 18688235. doi:10.1038/nbt0808-864. 
  35. Garavelli JS (June 2004). «The RESID Database of Protein Modifications as a resource and annotation tool». Proteomics 4 (6): 1527-33. PMID 15174122. doi:10.1002/pmic.200300777. 
  36. Berman HM, Westbrook J, Feng Z (January 2000). «The Protein Data Bank». Nucleic Acids Res. 28 (1): 235-42. PMC 102472. PMID 10592235. doi:10.1093/nar/28.1.235. 
  37. CookBook3, BioJava. «ModFinder». 
  38. Farriol-Mathis N, Garavelli JS, Boeckmann B (June 2004). «Annotation of post-translational modifications in the Swiss-Prot knowledge base». Proteomics 4 (6): 1537-50. PMID 15174124. doi:10.1002/pmic.200300764. 
  39. Yang ZR, Thomson R, McNeil P, Esnouf RM (August 2005). «RONN: the bio-basis function neural network technique applied to the detection of natively disordered regions in proteins». Bioinformatics 21 (16): 3369-76. PMID 15947016. doi:10.1093/bioinformatics/bti534. 
  40. CookBook3, BioJava. «Protein Disorder CLI». 
  41. Finn RD, Clements J, Eddy SR (July 2011). «HMMER web server: interactive sequence similarity searching». Nucleic Acids Res. 39 (Web Server issue): W29-37. PMC 3125773. PMID 21593126. doi:10.1093/nar/gkr367. 
  •   Datos: Q1036510

biojava, proyecto, código, abierto, dedicado, proveer, herramientas, java, para, procesamiento, datos, biológicos, conjunto, bibliotecas, escritas, lenguaje, programación, java, para, manipular, secuencias, estructuras, proteínas, conversores, archivos, file, . BioJava 1 es un proyecto de codigo abierto dedicado a proveer herramientas Java para el procesamiento de datos biologicos 2 3 BioJava es un conjunto de bibliotecas escritas en el lenguaje de programacion Java para manipular secuencias estructuras de proteinas conversores de archivos file parsers la interoperabilidad CORBA el DAS el acceso a AceDB programacion dinamica y rutinas estadisticas simples BioJava es compatible con una amplia gama de datos a partir de ADN y secuencias de proteinas a nivel de las estructuras 3D de proteinas Las bibliotecas BioJava son utiles para la automatizacion de muchas tareas cotidianas y mundanas de la bioinformatica como para analizar un archivo PDB interactuando con Jmol y muchos mas Esta interfaz de programacion de aplicaciones ofrece diversos programas de analisis de archivos modelos de datos y algoritmos para facilitar el trabajo con los formatos de datos estandar y permite el desarrollo rapido de aplicaciones y analisis Estas bibliotecas tambien se han utilizado en el desarrollo de diversas herramientas de analisis extendido por ejemplo MUSI Un sistema integrado para la identificacion de la especificidad multiple de un peptido de gran tamano o un conjunto de datos de acidos nucleicos 4 JEnsembl Un version aware de Java API para los sistemas de datos Ensembl 5 Perfiles de expresion de grupos de firmas geneticas con el metodo de amplificacion Trinucleotide threading TnT 6 La resolucion de las caracteristicas estructurales de las islas genomicas un enfoque de aprendizaje automatico 7 Biblioteca de utilidad para la bioinformatica estructural 8 El proyecto BioJava surgio del trabajo de Thomas Down y Mateo Pocock para crear una API para simplificar el desarrollo de herramientas bioinformaticas basadas en Java BioJava es un proyecto de codigo abierto activo que se ha desarrollado durante mas de 12 anos y con mas de 60 desarrolladores BioJava es uno de una serie de Bio Proyectos disenados para reducir la duplicacion de codigo 9 Los ejemplos de este tipo de proyectos que se enmarcan en Bio aparte de BioJava son BioPython 10 BioPerl 11 BioRuby 12 EMBOSS 13 etc La ultima version de BioJava 3 0 5 es una importante actualizacion de las versiones anteriores La nueva version de BioJava contiene varios modulos independientes El viejo proyecto ha sido trasladado a un proyecto independiente llamado proyecto BioJava legacy La version mas reciente de BioJava es 4 1 0 Indice 1 Caracteristicas 1 1 Requerimientos 1 2 Licencia 2 Historia y Publicaciones 3 Modulos 3 1 Modulo Principal 3 2 Modulos de Estructura de Proteinas 3 3 Modulos Genoma y Secuenciacion 3 4 Modulo de Alineamiento 3 5 Modulo ModFinder 3 6 Modulo Propiedades de Aminoacidos 3 7 Modulo de Desorden en la Proteina 3 8 Modulo de acceso a servicio Web 4 Las comparaciones con otras alternativas 5 Proyectos usando BioJava 6 ReferenciasCaracteristicas EditarBioJava proporciona modulos de software para muchas de las tareas tipicas de la programacion de la bioinformatica Estas incluyen Acceso a los datos de nucleotidos y a la secuencia de peptido de bases de datos locales y remotas La transformacion de formatos de registros de base de datos archivos Analisis y manipulacion de la estructura de la proteina La manipulacion de secuencias individuales Busca secuencias similares Creacion y manipulacion de alineamientos de secuencias Interfaz de visualizacion en Swing y AWTRequerimientos Editar Desde la version 3 de BioJava se requiere JDK 1 6 Licencia Editar BioJava se encuentra licenciado con LGPL v2 1Para licenciar los archivos de BioJava se sigue el tutorial Historia y Publicaciones EditarEn el ano 2008 se publico la nota de solicitud de BioJava Se migro desde su repositorio CVS original al centro de GitHub en abril de 2013 14 En octubre de 2012 se publico el documento mas reciente sobre BioJava A partir de noviembre de 2012 Google Academic cuenta con mas de 130 citas Modulos EditarDurante los ultimos 2 anos gran parte de la base de codigo original se han reescrito BioJava 3 es una clara desviacion de la serie de la version 1 Ahora se compone de varios modulos independientes construidos usando una herramienta de automatizacion llamada Apache Maven 15 Estos modulos proporcionan herramientas del estado del arte para la comparacion de la estructura de proteinas por parejas y multiples alineamientos de secuencias trabajando con ADN y secuencias de proteinas analisis de propiedades de aminoacidos la deteccion de modificaciones de proteinas y prediccion de las desordenadas regiones en las proteinas asi como analizadores de formatos de archivo comunes utilizando un modelo de datos biologicamente significativos El codigo original ha pasado a un proyecto separado del proyecto BioJava legacy que todavia esta disponible para la compatibilidad hacia atras Las siguientes secciones describen varios de los nuevos modulos y ponen de relieve algunas de las nuevas caracteristicas que se incluyen en la version mas reciente de BioJava Estructuras proteicas biojava structure biojava alignment Optional module biojava structure gui for the 3D visualisation Optional external library JmolApplet jar for the 3D visualisationAlineamientos biojava alignment biojava core biojava phylo Required external library forester jarGenomas biojava genome Secuenciacion biojava core biojava sequencing Required external library guava 11 0 1 jarArbol Filogenetico biojava core Required external library forester jarPropiedades Fisico quimicas biojava aa prop biojava structure and biojava coreDesorden de Proteinas biojava protein disorder Identificacion de Proteinas Modificadas biojava modfinder biojava structureLlamadas a Web Services biojava core biojava ws Modulo Principal Editar Este modulo ofrece clases Java para modelar secuencias de aminoacidos o nucleotidos Las clases se han disenado teniendo en cuenta que deben ser conocidos por los biologos es decir los nombres deben tener sentido para los biologos y al mismo tiempo tambien proporcionan una representacion concreta de los pasos para pasar de una secuencia de genes a una secuencia de la proteina para los cientificos de la computacion y programadores Un cambio importante entre el proyecto BioJava Legacy y BioJava3 radica en la forma que ha sido disenado el framework para aprovechar las ultimas innovaciones en Java Una secuencia se define como una interfaz generica permitiendole al resto de los modulos crear cualquier utilidad que opera en todas las secuencias Clases especificas para las secuencias comunes tales como ADN y proteinas se han definido con el fin de mejorar la usabilidad para los biologos El motor de traduccion realmente aprovecha este trabajo al permitir que las conversiones entre las secuencias de ADN ARN y aminoacidos Este motor puede manejar los detalles tales como la eleccion de la tabla de codones la conversion de codones de inicio de metionina el recorte de los codones de parada especificando el marco de lectura y la entrega de secuencias ambiguas Se ha prestado atencion especial en el diseno del almacenamiento de las secuencias a fin de minimizar los requisitos de espacio Patrones de diseno especiales como el patron Proxy que permitio a los desarrolladores crear el framework de manera tal que las secuencias se puedan almacenar en la memoria la demanda de un servicio web como UniProt o leer desde un archivo FASTA segun sea necesario Los dos ultimos enfoques ahorran memoria al no cargar datos de la secuencia hasta que se hace referencia en la solicitud Este concepto se puede ampliar para manejar grandes bases de datos genomicas tales como NCBI GenBank o una base de datos propietaria Modulos de Estructura de Proteinas Editar Los modulos de estructura de proteinas proporcionan herramientas para representar y manipular estructuras biomoleculares 3D En particular se centra en la comparacion de la estructura de proteinas Los siguientes algoritmos se han aplicado y se incluyen en BioJava Algoritmo FATCAT para la alineacion del cuerpo flexible y rigido 17 El algoritmo estandar Combinatoria de Extension CE 17 Una nueva version de la CE que puede detectar permutaciones circulares en las proteinas 18 Estos algoritmos se utilizan para proporcionar al RCSB Protein Data Bank PDB 19 La herramienta de comparacion de proteinas asi como comparaciones sistematicas de todas las proteinas en el PDB semanalmente 20 Analizadores de formatos de archivos de PDB 21 y mmCIF 22 permiten la carga de datos de la estructura en un modelo de datos reutilizable Esta caracteristica es utilizada por el proyecto SIFTS para mapear entre las secuencias de UniProt y estructuras de PDB 23 Informacion de la RCSB PDB puede ser dinamicamente obtenida y sin la necesidad de descargar manualmente los datos Para la visualizacion se proporciona una interfaz para el visor 3D Jmol http www jmol org El equipo afirma que se esta trabajando para mejorar la interaccion con los viewers de RCSB PDB 24 A continuacion se muestra un esquema del codigo para inicializar una ventana que mostrara y comparara dos secuencias de proteinas Por favor tenga en cuenta que esto es solo un esbozo del codigo Para hacer este trabajo tendra que importar el paquete correcto en org biojava bio structure y tambien anadir manejar excepciones utilizando un bloque try catch String name1 4hhb A String name2 4hhb B AtomCache cache new AtomCache Structure structure1 null Structure structure2 null StructureAlignment algorithm StructureAlignmentFactory getAlgorithm FatCatRigid algorithmName structure1 cache getStructure name1 structure2 cache getStructure name2 Atom ca1 StructureTools getAtomCAArray structure1 Atom ca2 StructureTools getAtomCAArray structure2 FatCatParameters params new FatCatParameters AFPChain afpChain algorithm align ca1 ca2 params afpChain setName1 name1 afpChain setName2 name2 StructureAlignmentDisplay display afpChain ca1 ca2 El codigo alinea las dos secuencias de proteinas 4hhb A y 4hhb B basado en el algoritmo rigido FATCAT Modulos Genoma y Secuenciacion Editar Este modulo se centra en la creacion de objetos de secuencias de genes desde el modulo principal Esto se realiza mediante el apoyo al analisis de los siguientes formatos de archivo estandar populares generados por las aplicaciones de prediccion de genes de codigo abierto Archivos GTF generados por GeneMark 25 Archivos GFF2 generados por GeneID 26 Archivos GFF3 generados por Glimmer 27 A continuacion los objetos de secuencias de genes se escriben como un formato GFF3 y se importan en GMOD 28 Estos formatos de archivo estan bien definidos pero lo que se escribe en el archivo es muy flexible En el siguiente codigo de ejemplo se toma un archivo 454scaffold que fue utilizado por GeneMark para predecir genes y devuelve una coleccion de ChromosomeSequences Cada secuencia de cromosoma se asigna a una entrada llamada en el archivo FASTA y contendria N secuencias de genes Las secuencias de genes pueden ser hebra con cambios de marco y multiples transcripciones Pasando la coleccion de ChromosomeSequences a GeneFeatureHelper getProteinSequences devolveria todas las secuencias de proteinas A continuacion puede escribir las secuencias de proteinas a un archivo FASTA LinkedHashMap lt String ChromosomeSequence gt chromosomeSequenceList GeneFeatureHelper loadFastaAddGeneFeaturesFromGeneMarkGTF new File 454Scaffolds fna new File genemark hmm gtf LinkedHashMap lt String ProteinSequence gt proteinSequenceList GeneFeatureHelper getProteinSequences chromosomeSequenceList values FastaWriterHelper writeProteinSequence new File genemark proteins faa proteinSequenceList values Tambien puede dar salida a la secuencia del gen en un archivo fasta donde las regiones codificantes estaran en mayuscula y las regiones no codificantes estaran en minuscula LinkedHashMap lt String GeneSequence gt geneSequenceHashMap GeneFeatureHelper getGeneSequences chromosomeSequenceList values Collection lt GeneSequence gt geneSequences geneSequenceHashMap values FastaWriterHelper writeGeneSequence new File genemark genes fna geneSequences true Usted puede escribir facilmente una vista GFF3 de un ChromosomeSequence con el siguiente codigo FileOutputStream fo new FileOutputStream genemark gff3 GFF3Writer gff3Writer new GFF3Writer gff3Writer write fo chromosomeSequenceList fo close Para la prestacion de apoyo de entrada salida por varias variantes comunes del formato de archivo FASTQ de los secuenciadores de ultima generacion se proporciona 29 un modulo de secuenciacion independiente Se llama el modulo de secuencia y esta contenido en el paquete org biojava3 sequencing io fastq Para las muestras sobre el uso de este modulo por favor haga clic aqui http biojava org wiki BioJava CookBook3 FASTQ Se esta trabajando para llegar a crear un conjunto completo de clases java para hacer conversiones entre diferentes formatos de archivo donde la lista de aplicaciones de prediccion de genes compatibles y buscadores de genomas estaran ampliamente basadas en los requerimientos de los usuarios finales Modulo de Alineamiento Editar Este modulo contiene varias clases y metodos que permiten a los usuarios realizar alineamientos de secuencias por parejas y por secuencias multiples Pairwise alineacion de secuencias Para la alineacion global optima BioJava implementa el algoritmo Needleman Wunsch 30 y para realizar alineamientos locales implementa el algoritmo Smith y Waterman 31 Las salidas de ambos alineamientos locales y globales estan disponibles en formatos estandar Un ejemplo de como usar las bibliotecas se muestra a continuacion protected void align String uniProtID 1 String uniProtID 2 PairwiseSequenceAlignerType alignmentType throws IOException Exception ProteinSequence proteinSeq1 FastaReaderHelper readFastaProteinSequence new URL String format http www uniprot org uniprot s fasta uniProtID 1 openStream get uniProtID 1 ProteinSequence proteinSeq2 FastaReaderHelper readFastaProteinSequence new URL String format http www uniprot org uniprot s fasta uniProtID 2 openStream get uniProtID 2 SequencePair lt ProteinSequence AminoAcidCompound gt result Alignments getPairwiseAlignment proteinSeq1 proteinSeq2 alignmentType new SimpleGapPenalty new SimpleSubstitutionMatrix lt AminoAcidCompound gt System out println result toString Un ejemplo de llamada a la funcion anterior seria algo como esto Para un Alineamiento Global align Q21691 Q21495 PairwiseSequenceAlignerType GLOBAL Para un Alineamiento Local align Q21691 Q21495 PairwiseSequenceAlignerType LOCAL Ademas de estos dos algoritmos existe una implementacion del algoritmo de Guan Uberbacher 32 que lleva a cabo una alineacion global de secuencias de manera muy eficiente ya que solo utiliza la memoria lineal Para alineamiento de secuencia multiples cualquiera de los metodos discutidos anteriormente pueden utilizarse para llevar a cabo progresivamente una alineacion de secuencias multiples Modulo ModFinder Editar El modulo ModFinder ofrece nuevos metodos para identificar y clasificar las modificaciones de proteinas en estructuras 3D de proteinas Se recogieron y curaron mas de 400 diferentes tipos de modificaciones de proteinas como la fosforilacion glicosilacion enlaces disulfuro quelacion de metales etc basadas en anotaciones en PSI MOD 34 RESID 35 y RCSB PDB 36 El modulo tambien proporciona una API para la deteccion de modificaciones de proteinas dentro de las estructuras de las proteinas Ejemplo identificar e imprimir todas las modificaciones precargados de una estructura 37 Set lt ModifiedCompound gt identifyAllModfications Structure struc ProteinModificationIdentifier parser new ProteinModificationIdentifier parser identify struc Set lt ModifiedCompound gt mcs parser getIdentifiedModifiedCompound return mcs Ejemplo identificar sitios de fosforilacion en una estructura List lt ResidueNumber gt identifyPhosphosites Structure struc List lt ResidueNumber gt phosphosites new ArrayList lt ResidueNumber gt ProteinModificationIdentifier parser new ProteinModificationIdentifier parser identify struc ProteinModificationRegistry getByKeyword phosphoprotein Set lt ModifiedCompound gt mcs parser getIdentifiedModifiedCompound for ModifiedCompound mc mcs Set lt StructureGroup gt groups mc getGroups true for StructureGroup group groups phosphosites add group getPDBResidueNumber return phosphosites Codigo de demostracion para ejecutar los metodos anteriores import org biojava bio structure ResidueNumber import org biojava bio structure Structure import org biojava bio structure io PDBFileReader import org biojava3 protmod structure ProteinModificationIdentifier public static void main String args try PDBFileReader reader new PDBFileReader reader setAutoFetch true identify all modifications from PDB 1CAD and print them String pdbId 1CAD Structure struc reader getStructureById pdbId Set lt ModifiedCompound gt mcs identifyAllModfications struc for ModifiedCompound mc mcs System out println mc toString identify all phosphosites from PDB 3MVJ and print them pdbId 3MVJ struc reader getStructureById pdbId List lt ResidueNumber gt psites identifyPhosphosites struc for ResidueNumber psite psites System out println psite toString catch Exception e e printStackTrace Hay planes para incluir las modificaciones adicionales a las proteinas mediante la integracion de otros recursos como UniProt 38 Modulo Propiedades de Aminoacidos Editar Este modulo trata de proporcionar las propiedades fisico quimicas precisas de las proteinas Las propiedades que pueden ser calculadas usando este modulo son los siguientes Masa molecular Coeficiente de extincion Indice de Inestabilidad Indice alifaticos Gran media de hidropatia Punto isoelectrico Composicion de aminoacidosLos pesos moleculares precisos para los aminoacidos comunes marcados isotopicamente se incluyen en este modulo Tambien existe flexibilidad para definir nuevas moleculas de aminoacidos con sus pesos moleculares utilizando archivos de configuracion sencilla XML Esto puede ser util donde la masa exacta es de gran importancia tales como experimentos de espectrometria de masas Modulo de Desorden en la Proteina Editar El objetivo de este modulo es proporcionar a los usuarios maneras de encontrar desorden en las moleculas de proteina BioJava incluye una implementacion de Java del predictor RONN http bioinformatics oxfordjournals org content 21 16 3369 full La version de BioJava 3 0 5 hace uso de la ayuda de Java para multithreading para mejorar el rendimiento hasta en 3 2 veces 39 en una maquina moderna de cuatro nucleos en comparacion con la implementacion del legado C Hay dos maneras de utilizar este modulo El uso de las llamadas a funciones de biblioteca El uso de la linea de comandosHacer llamadas a funciones de bibliotecaLos siguientes ejemplos muestran como utilizar el modulo y hacer llamadas de funcion para obtener informacion acerca de los desordenes de proteinas En los dos primeros ejemplos se llama a una funcion de la biblioteca para calcular la probabilidad de desorden para cada residuo de la secuencia proporcionada El tercer y cuarto ejemplo demuestran la facilidad con que se pueden obtener las regiones desordenadas de la proteina Ejemplo 1 Calcular la probabilidad de desorden para cada residuo en la secuencia FastaSequence fsequence new FastaSequence name LLRGRHLMNGTMIMRPWNFLNDHHFPKFFPHLIEQQAIWLADWWRKKHC RPLPTRAPTMDQWDHFALIQKHWTANLWFLTFPFNDKWGWIWFLKDWTPGSADQAQRACTWFFCHGHDTN float rawProbabilityScores Jronn getDisorderScores fsequence Ejemplo 2 Calcular la probabilidad de desorden para cada residuo en la secuencia para todas las proteinas del archivo de entrada FASTA final List lt FastaSequence gt sequences SequenceUtil readFasta new FileInputStream src test resources fasta in Map lt FastaSequence float gt rawProbabilityScores Jronn getDisorderScores sequences Ejemplo 3 Obtener las regiones desordenada de la proteina para una sola secuencia de la proteina FastaSequence fsequence new FastaSequence Prot1 LLRGRHLMNGTMIMRPWNFLNDHHFPKFFPHLIEQQAIWLADWWRKKHC RPLPTRAPTMDQWDHFALIQKHWTANLWFLTFPFNDKWGWIWFLKDWTPGSADQAQRACTWFFCHGHDTN CQIIFEGRNAPERADPMWTGGLNKHIIARGHFFQSNKFHFLERKFCEMAEIERPNFTCRTLDCQKFPWDDP Range ranges Jronn getDisorder fsequence Ejemplo 4 Calcular las regiones desordenadas para las proteinas de archivo FASTA final List lt FastaSequence gt sequences SequenceUtil readFasta new FileInputStream src test resources fasta in Map lt FastaSequence Range gt ranges Jronn getDisorder sequences El uso de la linea de comandosBioJava modulo biojava3 protein disorder se puede compilar en un solo archivo JAR ejecutable y ejecutar mediante el comando siguiente 40 java jar lt jar file name gt Opciones admitidas por el ejecutable de linea de comandos JRONN version 3 1b usage 1 August 2011 java jar JRONN JAR NAME i inputfile lt OPTIONS gt Where i input file Input file can contain one or more FASTA formatted sequences All OPTIONS are optional OPTION DETAILED DESCRIPTION o full path to the output file if not specified standard out is used d the value of disorder defaults to 0 5 f output format V for vertical where the letters of the sequence and corresponding disorder values are output in two column layout H for horizontal where the disorder values are provided under the letters of the sequence Letters and values separated by tabulation in this case Defaults to V s the file name to write execution statistics to n the number of threads to use Defaults to the number of cores available on the computer n 1 mean sequential processing Valid values are 1 lt n lt 2 x num of cores Default value will give the best performance EjemplosPredecir los valores de desorden para las secuencias desde un archivo de entrada home input fasta a una salida estandar de resultados Utiliza un valor predeterminado de desorden y tambien utilizar todas las CPU disponibles en el equipo java jar JRONN JAR i home input fasta Predecir los valores de desorden para las secuencias desde una archivo de entrada home input fasta los resultados en disposicion horizontal a home jronn out recopilan estadisticas de ejecucion al archivo home jronn stat txt y limitan el numero de threads a dos java jar JRONN JAR i home input fasta o home jronn out d 0 6 n 2 f H Los argumentos se pueden proporcionar en cualquier orden Modulo de acceso a servicio Web Editar De acuerdo con las tendencias actuales en la bioinformatica herramientas basadas en web estan ganando popularidad El modulo de servicio web permite a los servicios de bioinformatica para acceder a traves de protocolos REST Actualmente dos servicios se implementan NCBI Blast a traves de la Blast URLAPI anteriormente conocido como QBlast y el servicio de HMMER web 41 Las comparaciones con otras alternativas EditarLa necesidad de software a medida en el campo de la bioinformatica ha sido abordado por varios grupos e individuos Existen proyectos similares a BioJava los proyectos de codigo abierto como BioPerl BioPython y BioRuby todos proporcionan kits de herramientas con multiples funcionalidades que hacen que sea mas facil para crear pipelines o analisis personalizados Como el nombre sugiere los proyectos mencionados anteriormente utilizan diferentes lenguajes de programacion Todas estas APIs ofrecen herramientas similares por lo tanto Que criterios se deberian tener en cuenta en la eleccion Para los programadores con experiencia en solo uno de estos idiomas la eleccion es sencilla En general para los programas pequenos lt 500 lineas que seran utilizadas unicamente por un pequeno grupo o de forma individual es dificil de superar a Perl y a BioPerl Estas restricciones probablemente cubren las necesidades de 90 por ciento de los requisitos de programacion Para los principiantes y para escribir programas mas grandes en el dominio Bio especialmente aquellos para ser compartido y apoyado por otros la claridad y la brevedad de Python lo hacen muy atractivo Para aquellos que pudieran estar inclinado hacia una carrera en la bioinformatica y que quieren aprender un solo idioma Java cuenta con el apoyo de programacion general mas amplia muy buen apoyo en el dominio Bio con BioJava y ahora es el idioma de facto del negocio Aparte de estos Bio proyectos hay otro proyecto llamado Strap que utiliza Java y apunta a objetivos similares La caja de herramientas Strap similar a BioJava es tambien un conjunto de herramientas Java para el diseno de programas de bioinformatica y scripts Las similitudes y diferencias entre BioJava y STRAP son los siguientes Similitudes Ambos proporcionan colecciones completas de los metodos de secuencias de proteinas Ambos son utilizados por los programadores de Java para la codificacion de algoritmos de Bioinformatica Ambas separan las implementaciones y definiciones mediante el uso de interfaces de Java Ambos son proyectos de codigo abierto Ambos pueden leer y escribir muchos formatos de archivo de secuencia Diferencias BioJava es aplicable a secuencias de nucleotidos y de peptidos y se puede aplicar para los genomas enteros STRAP no le puede hacer frente a las secuencias individuales tan largas como un cromosoma entero STRAP manipula secuencias de peptidos y estructuras 3D del tamano de las proteinas individuales Sin embargo se puede mantener un alto numero de secuencias y estructuras en la memoria STRAP esta disenado para las secuencias de proteinas pero puede leer archivos de nucleotidos que codifican que luego se traducen a secuencias peptido STRAP es muy rapido ya que la interfaz grafica de usuario debe ser muy sensible BioJava se utiliza donde la velocidad es menos critica BioJava esta bien disenado en terminos de seguridad de tipos la ontologia y el diseno de objetos BioJava utiliza objetos de secuencias anotaciones y posiciones de la secuencia Incluso los aminoacidos o acidos nucleotidos individuales son referencias a objetos Para mejorar la velocidad STRAP evita instancias de objeto frecuentes y la invocacion de objetos metodos no finales En BioJava las secuencias de peptidos y las secuencias de nucleotidos son listas de simbolos Los simbolos se pueden recuperar uno despues del otro con un iterador o se pueden obtener subsecuencia Las ventajas son que toda la secuencia no reside necesariamente en la memoria y que los programas son menos susceptibles a los errores de programacion Objetos de simbolos son elementos inmutables de un alfabeto Sin embargo en STRAP las matrices de bytes simples se utilizan para las secuencias y las matrices de flotantes para las coordenadas Ademas de la velocidad el bajo consumo de memoria es una ventaja importante de los tipos de datos basicos Las clases en STRAP exponen los datos internos Por lo tanto los programadores pueden cometer errores de programacion como la manipulacion de matrices de bytes directamente en lugar de utilizar los metodos setter Otra desventaja es que en STRAP no se realizan controles si los caracteres en las secuencias son validas con respecto a un alfabeto subyacente En BioJava las posiciones de secuencia se realizan por la clase Location Los discontinuos objetos de Location se componen de varios objetos contiguos RangeLocation u objetos PointLocation Sin embargo para la clase StrapProtein las posiciones de los residuos se indican mediante numeros enteros entre 0 y countResidues 1 Multiples posiciones estan dadas por matrices booleanas Si el indice determinado es verdadero sera seleccionado BioJava lanza excepciones cuando los metodos se invocan con parametros no validos STRAP evita el tiempo de creacion de objetos Throwable En lugar de ello los errores en los metodos se indican mediante los valores de retorno NaN 1 o nulos Desde el punto de diseno del programa sin embargo los objetos Throwable son mas bonitas En BioJava un objeto de secuencia es o bien una secuencia de peptido o una secuencia de nucleotidos A StrapProtein puede contener ambos al mismo tiempo si una secuencia de nucleotidos de codificacion se leyo y se traduce en proteina Ambos la secuencia de nucleotidos y la secuencia de peptidos estan contenidas en el mismo objeto StrapProtein La codificacion o regiones no codificantes se pueden cambiar y la secuencia del peptido altera en consecuencia Proyectos usando BioJava EditarMetabolic Pathway Builder Software dedicada a la exploracion de las conexiones entre los genes las proteinas las reacciones y las vias metabolicas DengueInfo Un portal de informacion sobre el genoma del dengue que utiliza BioJava en el middleware y habla con una base de datos BioSQL Dazzle enlace roto disponible en Internet Archive vease el historial la primera version y la ultima Un servidor DAS basado BioJava BioSense Plugin para la suite InforSense una plataforma de software de analisis por IDBS que unifica BioJava Bioclipse Codigo abierto banco de trabajo para la quimio y la bioinformatica con potentes capacidades de edicion y visualizacion de moleculas secuencias proteinas espectros etc PROMPT Aplicacion de codigo abierto para la comparacion y la cartografia de los conjuntos de proteinas Utiliza BioJava para el manejo de la mayoria de los formatos de datos de entrada Cytoscape Una plataforma de software de bioinformatica de codigo abierto para la visualizacion de las redes de interaccion molecular BioWeka Una aplicacion de mineria de datos biologicos de codigo abierto Geneious Un juego de herramientas de la biologia molecular MassSieve una aplicacion de codigo abierto para el analisis de masas de datos proteomica spec Strap Una herramienta para la alineacion de secuencias multiples y estructura de alineacion basada en la secuencia Jstacs Un marco de Java para el analisis estadistico y clasificacion de secuencias biologicas jLSTM Long Short Term memory para la clasificacion de proteinas LaJolla Alineacion estructural de ARN y proteinas utilizando una estructura de indice para una alineacion rapida de miles de estructuras Incluyendo un facil de usar interfaz de linea de comandos El codigo abierto en Sourceforge GenBeans Una plataforma de cliente enriquecido de la bioinformatica se centraron principalmente en la biologia molecular y analisis de la secuencia Equant Un servidor de evaluacion de la calidad del modelo para indicar la fiabilidad de estructuras de proteinas Referencias Editar Prlic A Yates A Bliven SE October 2012 BioJava an open source framework for bioinformatics in 2012 Bioinformatics 28 20 2693 5 PMC 3467744 PMID 22877863 doi 10 1093 bioinformatics bts494 Holland RC Down TA Pocock M Prlic A Huen D James K 2008 BioJava an open source framework for bioinformatics Bioinformatics 24 18 2096 7 PMC 2530884 PMID 18689808 doi 10 1093 bioinformatics btn397 VS Matha and P Kangueane 2009 Bioinformatics a concept based introduction 2009 p26 Kim T Tyndel MS Huang H March 2012 MUSI an integrated system for identifying multiple specificity from very large peptide or nucleic acid data sets Nucleic Acids Res 40 6 e47 PMC 3315295 PMID 22210894 doi 10 1093 nar gkr1294 Paterson T Law A November 2012 JEnsembl a version aware Java API to Ensembl data systems Bioinformatics 28 21 2724 31 PMC 3476335 PMID 22945789 doi 10 1093 bioinformatics bts525 Zajac P Pettersson E Gry M Lundeberg J Ahmadian A February 2008 Expression profiling of signature gene sets with trinucleotide threading Genomics 91 2 209 17 PMID 18061398 doi 10 1016 j ygeno 2007 10 012 Vernikos GS Parkhill J February 2008 Resolving the structural features of genomic islands a machine learning approach Genome Res 18 2 331 42 PMC 2203631 PMID 18071028 doi 10 1101 gr 7004508 Gront D Kolinski A February 2008 Utility library for structural bioinformatics Bioinformatics 24 4 584 5 PMID 18227118 doi 10 1093 bioinformatics btm627 Mangalam H 2002 The Bio toolkits a brief overview BRIEFINGS IN BIOINFORMATICS 3 3 296 302 PMID 12230038 doi 10 1093 bib 3 3 296 Cock PJ Antao T Chang JT June 2009 Biopython freely available Python tools for computational molecular biology and bioinformatics Bioinformatics 25 11 1422 3 PMC 2682512 PMID 19304878 doi 10 1093 bioinformatics btp163 Stajich JE Block D Boulez K October 2002 The Bioperl toolkit Perl modules for the life sciences Genome Res 12 10 1611 8 PMC 187536 PMID 12368254 doi 10 1101 gr 361602 Goto N Prins P Nakao M Bonnal R Aerts J Katayama T October 2010 BioRuby bioinformatics software for the Ruby programming language Bioinformatics 26 20 2617 9 PMC 2951089 PMID 20739307 doi 10 1093 bioinformatics btq475 Rice P Longden I Bleasby A June 2000 EMBOSS the European Molecular Biology Open Software Suite Trends Genet 16 6 276 7 PMID 10827456 doi 10 1016 S0168 9525 00 02024 2 History Consultado el 30 Jan 2015 Maven Apache Maven Apache Ye Y Godzik A October 2003 Flexible structure alignment by chaining aligned fragment pairs allowing twists Bioinformatics 19 Suppl 2 ii246 55 PMID 14534198 doi 10 1093 bioinformatics btg1086 Shindyalov IN Bourne PE September 1998 Protein structure alignment by incremental combinatorial extension CE of the optimal path Protein Eng 11 9 739 47 PMID 9796821 doi 10 1093 protein 11 9 739 Bliven S Prlic A 2012 Circular permutation in proteins PLoS Comput Biol 8 3 e1002445 PMC 3320104 PMID 22496628 doi 10 1371 journal pcbi 1002445 Rose PW Beran B Bi C January 2011 The RCSB Protein Data Bank redesigned web site and web services Nucleic Acids Res 39 Database issue D392 401 PMC 3013649 PMID 21036868 doi 10 1093 nar gkq1021 Prlic A Bliven S Rose PW December 2010 Pre calculated protein structure alignments at the RCSB PDB website Bioinformatics 26 23 2983 5 PMC 3003546 PMID 20937596 doi 10 1093 bioinformatics btq572 Bernstein FC Koetzle TF Williams GJ May 1977 The Protein Data Bank a computer based archival file for macromolecular structures J Mol Biol 112 3 535 42 PMID 875032 doi 10 1016 s0022 2836 77 80200 3 Fitzgerald P M D et al 2006 Macromolecular dictionary mmCIF In Hall S R Velankar S McNeil P Mittard Runte V January 2005 E MSD an integrated data resource for bioinformatics Nucleic Acids Res 33 Database issue D262 5 PMC 540012 PMID 15608192 doi 10 1093 nar gki058 Moreland JL Gramada A Buzko OV Zhang Q Bourne PE 2005 The Molecular Biology Toolkit MBT a modular platform for developing molecular visualization applications BMC Bioinformatics 6 21 PMC 548701 PMID 15694009 doi 10 1186 1471 2105 6 21 Besemer J Borodovsky M July 2005 GeneMark web software for gene finding in prokaryotes eukaryotes and viruses Nucleic Acids Res 33 Web Server issue W451 4 PMC 1160247 PMID 15980510 doi 10 1093 nar gki487 Blanco E Abril JF 2009 Computational gene annotation in new genome assemblies using GeneID Methods Mol Biol 537 243 61 PMID 19378148 doi 10 1007 978 1 59745 251 9 12 Kelley DR Liu B Delcher AL Pop M Salzberg SL January 2012 Gene prediction with Glimmer for metagenomic sequences augmented by classification and clustering Nucleic Acids Res 40 1 e9 PMC 3245904 PMID 22102569 doi 10 1093 nar gkr1067 Stein LD Mungall C Shu S October 2002 The generic genome browser a building block for a model organism system database Genome Res 12 10 1599 610 PMC 187535 PMID 12368253 doi 10 1101 gr 403602 Cock PJ Fields CJ Goto N Heuer ML Rice PM April 2010 The Sanger FASTQ file format for sequences with quality scores and the Solexa Illumina FASTQ variants Nucleic Acids Res 38 6 1767 71 PMC 2847217 PMID 20015970 doi 10 1093 nar gkp1137 Needleman SB Wunsch CD March 1970 A general method applicable to the search for similarities in the amino acid sequence of two proteins J Mol Biol 48 3 443 53 PMID 5420325 doi 10 1016 0022 2836 70 90057 4 Smith TF Waterman MS March 1981 Identification of common molecular subsequences J Mol Biol 147 1 195 7 PMID 7265238 doi 10 1016 0022 2836 81 90087 5 Guan X Uberbacher EC February 1996 Alignments of DNA and protein sequences containing frameshift errors Comput Appl Biosci 12 1 31 40 PMID 8670617 doi 10 1093 bioinformatics 12 1 31 Chen K Jung YS Bonagura CA February 2002 Azotobacter vinelandii ferredoxin I a sequence and structure comparison approach to alteration of 4Fe 4S 2 reduction potential J Biol Chem 277 7 5603 10 PMID 11704670 doi 10 1074 jbc M108916200 Montecchi Palazzi L Beavis R Binz PA August 2008 The PSI MOD community standard for representation of protein modification data Nat Biotechnol 26 8 864 6 PMID 18688235 doi 10 1038 nbt0808 864 Garavelli JS June 2004 The RESID Database of Protein Modifications as a resource and annotation tool Proteomics 4 6 1527 33 PMID 15174122 doi 10 1002 pmic 200300777 Berman HM Westbrook J Feng Z January 2000 The Protein Data Bank Nucleic Acids Res 28 1 235 42 PMC 102472 PMID 10592235 doi 10 1093 nar 28 1 235 CookBook3 BioJava ModFinder Farriol Mathis N Garavelli JS Boeckmann B June 2004 Annotation of post translational modifications in the Swiss Prot knowledge base Proteomics 4 6 1537 50 PMID 15174124 doi 10 1002 pmic 200300764 Yang ZR Thomson R McNeil P Esnouf RM August 2005 RONN the bio basis function neural network technique applied to the detection of natively disordered regions in proteins Bioinformatics 21 16 3369 76 PMID 15947016 doi 10 1093 bioinformatics bti534 CookBook3 BioJava Protein Disorder CLI Finn RD Clements J Eddy SR July 2011 HMMER web server interactive sequence similarity searching Nucleic Acids Res 39 Web Server issue W29 37 PMC 3125773 PMID 21593126 doi 10 1093 nar gkr367 Datos Q1036510Obtenido de https es wikipedia org w index php title BioJava amp oldid 126551301, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos