[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/wiki3\/2020\/11\/30\/biojava-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/wiki3\/2020\/11\/30\/biojava-wikipedia\/","headline":"BioJava – Wikipedia","name":"BioJava – Wikipedia","description":"BioJava Urspr\u00fcngliche Autor (en) Andreas Prli\u0107 Entwickler Amr ALHOSSAR, Andreas Prlic, Dmytro Guzenko, Hannes Brandst\u00e4tter-M\u00fcller, Thomas Down, Michael L. Heuer,","datePublished":"2020-11-30","dateModified":"2020-11-30","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/wiki3\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/wiki3\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/a\/a7\/BioJava-logo-full.png\/220px-BioJava-logo-full.png","url":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/a\/a7\/BioJava-logo-full.png\/220px-BioJava-logo-full.png","height":"45","width":"220"},"url":"https:\/\/wiki.edu.vn\/wiki3\/2020\/11\/30\/biojava-wikipedia\/","wordCount":12304,"articleBody":"BioJavaUrspr\u00fcngliche Autor (en)Andreas Prli\u0107EntwicklerAmr ALHOSSAR, Andreas Prlic, Dmytro Guzenko, Hannes Brandst\u00e4tter-M\u00fcller, Thomas Down, Michael L. Heuer, Peter Troshin, Jian Jiong Gao, Aleix Lafita, Peter Rose, Spencer BlivenErstver\u00f6ffentlichung2002;; Vor 18 Jahren ((2002)Stabile Version5.2.1 \/ 5. Februar 2019;; Vor 21 Monaten ((05.02.2019)RepositoryGithub.com\/ biojavaGeschrieben inJavaPlattformWebbrowser mit Java SEVerf\u00fcgbar inEnglischArtBioinformatikLizenzGeringere GPL 2.1WebseiteBiojava.org BioJava ist ein Open-Source-Softwareprojekt, das Java-Tools zur Verarbeitung biologischer Daten bereitstellt.[1][2][3] BioJava ist eine Reihe von Bibliotheksfunktionen, die in der Programmiersprache Java geschrieben wurden, um Sequenzen, Proteinstrukturen, Dateiparser, CORBA-Interoperabilit\u00e4t (Common Object Request Broker Architecture), DAS (Distributed Annotation System), Zugriff auf AceDB, dynamische Programmierung und einfache Statistik zu bearbeiten Routinen. BioJava unterst\u00fctzt eine Vielzahl von Daten, angefangen von DNA- und Proteinsequenzen bis hin zu 3D-Proteinstrukturen. Die BioJava-Bibliotheken sind n\u00fctzlich, um viele t\u00e4gliche und allt\u00e4gliche Bioinformatik-Aufgaben zu automatisieren, z. B. das Parsen einer PDB-Datei (Protein Data Bank), die Interaktion mit Jmol und vieles mehr.[4] Diese Anwendungsprogrammierschnittstelle (API) bietet verschiedene Dateiparser, Datenmodelle und Algorithmen, um die Arbeit mit den Standarddatenformaten zu erleichtern und eine schnelle Anwendungsentwicklung und -analyse zu erm\u00f6glichen.Weitere Projekte von BioJava sind rcsb-sequenceviewer, biojava-http, biojava-spark und rcsb-Viewer.Table of Contents Eigenschaften[edit]Geschichte und Ver\u00f6ffentlichungen[edit]Module[edit]Kern Modul[edit]Proteinstrukturmodule[edit]Genom- und Sequenzierungsmodule[edit]Ausrichtungsmodul[edit]ModFinder-Modul[edit]Modul f\u00fcr Aminos\u00e4ureeigenschaften[edit]Proteinst\u00f6rungsmodul[edit]Webdienst-Zugriffsmodul[edit]Vergleiche mit anderen Alternativen[edit]Projekte mit BioJava[edit]Siehe auch[edit]Verweise[edit]Externe Links[edit]Eigenschaften[edit]BioJava bietet Softwaremodule f\u00fcr viele der typischen Aufgaben der Bioinformatik-Programmierung. Diese beinhalten:Zugriff auf Nukleotid- und Peptidsequenzdaten aus lokalen und entfernten DatenbankenTransformieren von Formaten von Datenbank- \/ Dateidatens\u00e4tzenAnalyse und Manipulation der ProteinstrukturEinzelne Sequenzen bearbeitenSuche nach \u00e4hnlichen SequenzenErstellen und Bearbeiten von SequenzausrichtungenGeschichte und Ver\u00f6ffentlichungen[edit]Das BioJava-Projekt entstand aus der Arbeit von Thomas Down und Matthew Pocock zur Erstellung einer API zur Vereinfachung der Entwicklung von Java-basierten Bioinformatik-Tools. BioJava ist ein aktives Open Source-Projekt, das \u00fcber mehr als 12 Jahre und von mehr als 60 Entwicklern entwickelt wurde. BioJava ist eines von mehreren Bio * -Projekten zur Reduzierung von Codeduplizierungen.[5] Beispiele f\u00fcr solche Projekte, die neben BioJava unter Bio * fallen, sind BioPython,[6]BioPerl,[7]BioRuby,[8] PR\u00c4GEN[9] etc.Im Oktober 2012 wurde das erste Papier zu BioJava ver\u00f6ffentlicht.[10] In diesem Dokument wurden die Module, Funktionen und der Zweck von BioJava detailliert beschrieben.Seit November 2018 z\u00e4hlt Google Scholar mehr als 130 Zitate.[11] Das neueste Papier zu BioJava wurde im Februar 2017 verfasst.[12] In diesem Artikel wurde ein neues Tool namens BioJava-ModFinder beschrieben. Dieses Tool kann zur Identifizierung und anschlie\u00dfenden Zuordnung von Proteinmodifikationen zu 3D in der Proteindatenbank (PBD) verwendet werden. Das Paket wurde auch in die RCSB PDB-Webanwendung integriert und f\u00fcgte dem Sequenzdiagramm und der Strukturanzeige Anmerkungen zur Proteinmodifikation hinzu. Mit BioJava-ModFinder wurden mehr als 30.000 Strukturen mit Proteinmodifikationen identifiziert, die auf der RCSB PDB-Website zu finden sind.Im Jahr 2008 wurde der erste Application Note von BioJava ver\u00f6ffentlicht.[2] Es wurde im April 2013 von seinem urspr\u00fcnglichen CVS-Repository auf den Git-Hub migriert.[13] Das Projekt wurde in ein separates Repository, BioJava-Legacy, verschoben und wird weiterhin f\u00fcr kleinere \u00c4nderungen und Fehlerbehebungen beibehalten.[14]Version 3 wurde im Dezember 2010 ver\u00f6ffentlicht. Es war ein wichtiges Update der vorherigen Versionen. Ziel dieser Version war es, BioJava so umzuschreiben, dass es in kleine, wiederverwendbare Komponenten modularisiert werden kann. Dadurch konnten Entwickler leichter Beitr\u00e4ge leisten und Abh\u00e4ngigkeiten reduzieren. Der neue Ansatz in BioJava 3 wurde den Apache Commons nachempfunden.Version 4 wurde im Januar 2015 ver\u00f6ffentlicht. Diese Version brachte viele neue Funktionen und Verbesserungen f\u00fcr die Pakete Biojava-Core, Biojava-Struktur, Biojava-Struktur-GUI, Biojava-Phylo und andere. BioJava 4.2.0 war die erste Version, die mit Maven von Maven Central verf\u00fcgbar war.Version 5 wurde im M\u00e4rz 2018 ver\u00f6ffentlicht. Dies ist ein wichtiger Meilenstein f\u00fcr das Projekt. BioJava 5.0.0 ist die erste Version, die auf Java 8 basiert und die Verwendung von Lambda-Funktionen und Streaming-API-Aufrufen einf\u00fchrt. Es gab auch wesentliche \u00c4nderungen am Biojava-Strukturmodul. Au\u00dferdem wurden die vorherigen Datenmodelle f\u00fcr makromolekulare Strukturen angepasst, um das mmCIF-Datenmodell genauer darzustellen. Dies war die erste Ver\u00f6ffentlichung seit \u00fcber zwei Jahren. Einige der anderen Verbesserungen umfassen Optimierungen im Biojava-Strukturmodul zur Verbesserung der Symmetrieerkennung und zus\u00e4tzliche Unterst\u00fctzung f\u00fcr MMTF-Formate. Weitere allgemeine Verbesserungen sind Javadoc-Updates, Abh\u00e4ngigkeitsversionen und alle Tests sind jetzt Junit4. Die Ver\u00f6ffentlichung enth\u00e4lt 1.170 Commits von 19 Mitwirkenden.Module[edit]In den Jahren 2014 bis 2015 wurden gro\u00dfe Teile der urspr\u00fcnglichen Codebasis neu geschrieben. BioJava 3 ist eine deutliche Abkehr von der Version 1. Es besteht jetzt aus mehreren unabh\u00e4ngigen Modulen, die mit einem Automatisierungstool namens Apache Maven erstellt wurden.[15] Diese Module bieten modernste Tools f\u00fcr den Vergleich der Proteinstruktur, die paarweise und mehrfache Sequenzausrichtung, die Arbeit mit DNA- und Proteinsequenzen, die Analyse der Aminos\u00e4ureeigenschaften, den Nachweis von Proteinmodifikationen, die Vorhersage ungeordneter Regionen in Proteinen und Parser f\u00fcr gemeinsame Dateien Formate unter Verwendung eines biologisch aussagekr\u00e4ftigen Datenmodells. Der urspr\u00fcngliche Code wurde in ein separates BioJava-Legacy-Projekt verschoben, das aus Gr\u00fcnden der Abw\u00e4rtskompatibilit\u00e4t weiterhin verf\u00fcgbar ist.[16]BioJava 5 f\u00fchrte zwei Funktionen in neue Module ein: Biojava-Ausrichtung und Biojava-Struktur.In den folgenden Abschnitten werden einige der neuen Module beschrieben und einige der neuen Funktionen hervorgehoben, die in der neuesten Version von BioJava enthalten sind. Kern Modul[edit]Dieses Modul bietet Java-Klassen zur Modellierung von Aminos\u00e4ure- oder Nukleotidsequenzen. Die Klassen wurden so konzipiert, dass die Namen den Biologen bekannt und sinnvoll sind und auch eine konkrete Darstellung der Schritte beim \u00dcbergang von einer Gensequenz zu einer Proteinsequenz f\u00fcr Informatiker und Programmierer bieten.Eine wesentliche \u00c4nderung zwischen dem alten BioJava-Projekt und BioJava3 besteht in der Art und Weise, wie das Framework entwickelt wurde, um die damals neuen Innovationen in Java zu nutzen. Eine Sequenz ist als generische Schnittstelle definiert, \u00fcber die der Rest der Module jedes Dienstprogramm erstellen kann, das f\u00fcr alle Sequenzen ausgef\u00fchrt wird. Spezifische Klassen f\u00fcr g\u00e4ngige Sequenzen wie DNA und Proteine \u200b\u200bwurden definiert, um die Verwendbarkeit f\u00fcr Biologen zu verbessern. Die Translation Engine nutzt diese Arbeit wirklich, indem sie Konvertierungen zwischen DNA-, RNA- und Aminos\u00e4uresequenzen erm\u00f6glicht. Diese Engine kann Details wie das Ausw\u00e4hlen der Codontabelle, das Konvertieren von Startcodons in Methionin, das Trimmen von Stoppcodons, das Spezifizieren des Leserasters und das \u00dcbergeben mehrdeutiger Sequenzen verarbeiten.Besonderes Augenmerk wurde auf die Gestaltung der Speicherung von Sequenzen gelegt, um den Platzbedarf zu minimieren. Spezielle Entwurfsmuster wie das Proxy-Muster erm\u00f6glichten es den Entwicklern, das Framework so zu erstellen, dass Sequenzen im Speicher gespeichert, bei Bedarf von einem Webdienst wie UniProt abgerufen oder bei Bedarf aus einer FASTA-Datei gelesen werden k\u00f6nnen. Die beiden letztgenannten Ans\u00e4tze sparen Speicher, indem Sequenzdaten erst geladen werden, wenn in der Anwendung darauf verwiesen wird. Dieses Konzept kann erweitert werden, um sehr gro\u00dfe genomische Datens\u00e4tze wie NCBI GenBank oder eine propriet\u00e4re Datenbank zu verarbeiten.Proteinstrukturmodule[edit] Dieses Fenster zeigt zwei gegeneinander ausgerichtete Proteine \u200b\u200bmit den IDs “4hhb.A” und “4hhb.B”. Der Code ist auf der linken Seite angegeben. Dies wird mithilfe von BioJava-Bibliotheken erstellt, die wiederum den Jmol-Viewer verwenden.[4] Der FATCAT[17] Hier wird ein starrer Algorithmus verwendet, um die Ausrichtung durchzuf\u00fchren.Die Proteinstrukturmodule bieten Werkzeuge zur Darstellung und Manipulation von biomolekularen 3D-Strukturen. Sie konzentrieren sich auf den Vergleich der Proteinstruktur.Die folgenden Algorithmen wurden implementiert und in BioJava enthalten.FATCAT-Algorithmus zur flexiblen und starren K\u00f6rperausrichtung.[17]Der Standardalgorithmus f\u00fcr die kombinatorische Erweiterung (CE).[18]Eine neue Version von CE, die zirkul\u00e4re Permutationen in Proteinen nachweisen kann.[19]Diese Algorithmen werden verwendet, um die RCSB-Proteindatenbank (PDB) bereitzustellen.[20] Proteinvergleichstool sowie w\u00f6chentliche systematische Vergleiche aller Proteine \u200b\u200bim PDB.[21]Parser f\u00fcr PDB[22] und mmCIF[23] Dateiformate erm\u00f6glichen das Laden von Strukturdaten in ein wiederverwendbares Datenmodell. Diese Funktion wird vom SIFTS-Projekt verwendet, um zwischen UniProt-Sequenzen und PDB-Strukturen abzubilden.[24] Informationen vom RCSB-PDB k\u00f6nnen dynamisch abgerufen werden, ohne dass Daten manuell heruntergeladen werden m\u00fcssen. Zur Visualisierung wird eine Schnittstelle zum 3D-Viewer Jmol bereitgestellt.[4]Genom- und Sequenzierungsmodule[edit]Dieses Modul konzentriert sich auf die Erstellung von Gensequenzobjekten aus dem Kernmodul. Dies wird erreicht, indem das Parsen der folgenden g\u00e4ngigen Standarddateiformate unterst\u00fctzt wird, die von Open Source-Anwendungen zur Genvorhersage generiert werden:Von GeneMark generierte GTF-Dateien[25]Von GeneID generierte GFF2-Dateien[26]Von Glimmer generierte GFF3-Dateien[27]Anschlie\u00dfend werden die Gensequenzobjekte als GFF3-Format ausgeschrieben und in GMOD importiert.[28]Diese Dateiformate sind gut definiert, aber was in die Datei geschrieben wird, ist sehr flexibel.Zur Unterst\u00fctzung der Eingabe \/ Ausgabe f\u00fcr mehrere g\u00e4ngige Varianten des FASTQ-Dateiformats der Sequenzer der n\u00e4chsten Generation[29] Ein separates Sequenzierungsmodul wird bereitgestellt. Beispiele zur Verwendung dieses Moduls finden Sie hier Verkn\u00fcpfung.Ausrichtungsmodul[edit]Dieses Modul enth\u00e4lt mehrere Klassen und Methoden, mit denen Benutzer die Ausrichtung paarweise und mit mehreren Sequenzen durchf\u00fchren k\u00f6nnen. Sequenzen k\u00f6nnen sowohl einzeln als auch mit mehreren Threads ausgerichtet werden. BioJava setzt den Needleman-Wunsch um[30] Algorithmus f\u00fcr optimale globale Ausrichtungen und der von Smith und Waterman[31] Algorithmus f\u00fcr lokale Ausrichtungen. Die Ausgaben f\u00fcr lokale und globale Ausrichtungen sind in Standardformaten verf\u00fcgbar. Zus\u00e4tzlich zu diesen beiden Algorithmen gibt es eine Implementierung des Guan-Uberbacher-Algorithmus[32] Dies f\u00fchrt die globale Sequenzausrichtung sehr effizient durch, da nur ein linearer Speicher verwendet wird.Zum Mehrfachsequenzausrichtungkann jedes der oben diskutierten Verfahren verwendet werden, um schrittweise eine Mehrfachsequenzausrichtung durchzuf\u00fchren.ModFinder-Modul[edit] Eine Beispielanwendung mit dem ModFinder-Modul und dem Proteinstrukturmodul. Proteinmodifikationen werden auf die Sequenz und Struktur von Ferredoxin I (PDB ID 1GAO) abgebildet.[33] In der Proteinsequenz sind zwei m\u00f6gliche Eisen-Schwefel-Cluster dargestellt (3Fe-4S (F3S): orangefarbene Dreiecke \/ Linien; 4Fe-4S (SF4): violette Diamanten \/ Linien). Der 4Fe-4S-Cluster wird im Jmol-Strukturfenster \u00fcber der Sequenzanzeige angezeigtDas ModFinder-Modul bietet neue Methoden zur Identifizierung und Klassifizierung von Proteinmodifikationen in Protein-3D-Strukturen. \u00dcber 400 verschiedene Arten von Proteinmodifikationen wie Phosphorylierung, Glykosylierung, Metallchelatbildung mit Disulfidbindungen usw. wurden gesammelt und basierend auf Anmerkungen in PSI-MOD kuratiert.[34] RESID[35] und RCSB PDB.[36] Das Modul bietet auch eine API zum Nachweis von pr\u00e4-, co- und posttranslationalen Proteinmodifikationen innerhalb von Proteinstrukturen. Dieses Modul kann auch die Phosphorylierung identifizieren und alle vorinstallierten Modifikationen aus einer Struktur drucken.Modul f\u00fcr Aminos\u00e4ureeigenschaften[edit]Dieses Modul versucht, genaue physikalisch-chemische Eigenschaften von Proteinen bereitzustellen. Mit diesem Modul k\u00f6nnen folgende Eigenschaften berechnet werden:Die genauen Molekulargewichte f\u00fcr \u00fcbliche isotopenmarkierte Aminos\u00e4uren sind in diesem Modul enthalten. Es besteht auch die Flexibilit\u00e4t, neue Aminos\u00e4uremolek\u00fcle mit ihren Molekulargewichten unter Verwendung einfacher XML-Konfigurationsdateien zu definieren. Dies kann n\u00fctzlich sein, wenn die genaue Masse von gro\u00dfer Bedeutung ist, beispielsweise bei Massenspektrometrie-Experimenten.Proteinst\u00f6rungsmodul[edit]Das Ziel dieses Moduls ist es, Benutzern M\u00f6glichkeiten zu bieten, St\u00f6rungen in Proteinmolek\u00fclen zu finden. BioJava enth\u00e4lt eine Java-Implementierung des RONN Anzeichen. Das BioJava 3.0.5 nutzt die Unterst\u00fctzung von Java f\u00fcr Multithreading, um die Leistung um das bis zu 3,2-fache zu verbessern.[37] auf einer modernen Quad-Core-Maschine im Vergleich zur alten C-Implementierung.Es gibt zwei M\u00f6glichkeiten, dieses Modul zu verwenden:Funktionsaufrufe der Bibliothek verwendenBefehlszeile verwendenEinige Funktionen dieses Moduls umfassen:Berechnung der Wahrscheinlichkeit einer St\u00f6rung f\u00fcr jeden Rest in einer SequenzBerechnung der Wahrscheinlichkeit einer St\u00f6rung f\u00fcr jeden Rest in der Sequenz f\u00fcr alle Proteine \u200b\u200baus einer FASTA-EingabedateiHolen Sie sich die ungeordneten Regionen des Proteins f\u00fcr eine einzelne Proteinsequenz oder f\u00fcr alle Proteine \u200b\u200baus einer FASTA-EingabedateiWebdienst-Zugriffsmodul[edit]Nach den aktuellen Trends in der Bioinformatik werden webbasierte Tools immer beliebter. \u00dcber das Webdienstmodul kann \u00fcber REST-Protokolle auf Bioinformatikdienste zugegriffen werden. Derzeit sind zwei Dienste implementiert: NCBI Blast \u00fcber die Blast-URLAPI (fr\u00fcher als QBlast bekannt) und den HMMER-Webdienst.[38]Vergleiche mit anderen Alternativen[edit]Der Bedarf an kundenspezifischer Software im Bereich der Bioinformatik wurde von mehreren Gruppen und Einzelpersonen angesprochen. \u00c4hnlich wie bei BioJava bieten Open-Source-Softwareprojekte wie BioPerl, BioPython und BioRuby Toolkits mit mehreren Funktionen, mit denen sich benutzerdefinierte Pipelines oder Analysen einfacher erstellen lassen.Wie die Namen vermuten lassen, verwenden die oben genannten Projekte unterschiedliche Programmiersprachen. Alle diese APIs bieten \u00e4hnliche Tools. Nach welchen Kriterien sollte man seine Wahl treffen? F\u00fcr Programmierer, die nur Erfahrung mit einer dieser Sprachen haben, ist die Auswahl unkompliziert. F\u00fcr einen vielseitigen Bioinformatiker, der alle diese Sprachen beherrscht und die beste Sprache f\u00fcr einen Job ausw\u00e4hlen m\u00f6chte, kann die Auswahl jedoch anhand der folgenden Richtlinien getroffen werden, die durch eine Software\u00fcberpr\u00fcfung der Bio * -Tool-Kits gegeben wurden.[5]Im Allgemeinen ist es f\u00fcr kleine Programme ("},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki3\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki3\/2020\/11\/30\/biojava-wikipedia\/#breadcrumbitem","name":"BioJava – Wikipedia"}}]}]