Information

Gibt es Tools zum automatischen Parsen von Glykannamen in Baumstrukturen?

Gibt es Tools zum automatischen Parsen von Glykannamen in Baumstrukturen?


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Mein Kollege und ich arbeiten an einem Projekt mit Daten, die in einer Glykan-Mikroarray-Anlage produziert wurden. Die Array-Daten, die zu uns zurückkamen, waren eine Liste von Glykannamen (im komprimierten IUPAC-Format). Wir möchten die Liste der 610 Namen in die grafische Darstellung des Glykans parsen.

Zur Verdeutlichung wollte ich eine Liste von Glykanen nehmen, die in der kondensierten Nomenklatur der IUPAC geschrieben ist, und für jedes Glykan ein Bild zurückgeben. Hier wäre jedes Bild die "Graph"-Darstellung (Knoten + Kanten). Idealerweise möchte ich ein Python-Skript schreiben können, um dies zu erledigen, damit wir dies nicht von Hand tun müssen.

Ist das möglich? Wenn ja, welche Tools stehen dafür zur Verfügung?

Dankeschön!


Bearbeiten: C#-Funktionen, die in unserem System verwendet werden, zur Vereinfachung leicht gepaart

Verwenden von Microsoft.VisualBasic; Verwenden des Systems; Verwenden von System.Collections; mit System.Collections.Generic; Verwenden von System.Data; Verwenden von System.Diagnostics; Verwenden von System.Web; Verwenden von System.Net; Verwenden von System.IO; Verwenden von System.Text.RegularExpressions; öffentliche Klasse KEGGAller { öffentliches Objekt ReturnKEGGgif(string GlycanMonoCode, System.Web.HttpServerUtility HTTPUtilityHolder) { string CallURL = "http://www.genome.jp/dbget-bin/www_bfind_sub?dbkey=glycan&keywords="; Zeichenfolge GlycanURL = HTTPUtilityHolder.HtmlEncode(GlycanMonoCode); WebClient wc = neuer WebClient(); System.Drawing.Image GlycanGif = default(System.Drawing.Image); CallURL += GlycanURL + "&mode=bfind&max_hit=1"; StreamReader-Reader = neuer StreamReader (wc.OpenRead (CallURL)); Zeichenfolge Gcode = FetchGcode (reader.ReadToEnd()); if (Gcode == "Fehlgeschlagen") { return 0; } else { System.Net.HttpWebRequest Request = default(System.Net.HttpWebRequest); System.Net.HttpWebResponse-Antwort = default(System.Net.HttpWebResponse); Request = System.Net.WebRequest.Create("http://www.genome.jp/dbget-bin/www_bget?gl:" + Gcode + ".gif">Biomodels.Net ist eine großartige Ressource, um damit anzufangen und sich vertraut zu machen Machen Sie sich mit dem Feld vertraut und bekommen Sie Ideen, wie Sie Ihren Qualifikationsbedarf angehen können.Wir haben es bei Drogenscreenings verwendet.

Genauer gesagt für Glykane werden Sie sich KEGG ansehen. Dann nutzen Sie KEGG draw für Ihre visuelle Anwendung. Wenn Sie sie eigentlich nur parsen möchten, finden Sie hier die Tabelle zu den verwendeten Monosacchariden (an den meisten Stellen).

Hier ist ein besserer Link direkt zum Download, falls Sie ihn nicht gefunden haben. Das Skript, das wir geschrieben haben, war ziemlich einfach, hier ist die grundlegende Logik.

Beginnen Sie mit dem Monosaccharid-Code.

Rufen Sie eine einzelne Rückgabe von DBGET an GenomeNet auf und ziehen Sie von KEGG Glycan. Zum Beispiel: (GlcNAc)6 (Man)3 (Asn)1 würde heißen:

http://www.genome.jp/dbget-bin/www_bfind_sub?dbkey=glycan&keywords=%28GlcNAc%296+%28Man%293+%28Asn%291&mode=bfind&max_hit=1

Woherhttp://www.genome.jp/dbget-bin/www_bfind_sub?dbkey=glycan&keywords=und&mode=bfind&max_hit=1werden konstant sein und der mittlere Teil wird Ihre Suche sein.

Sie müssen Ihr Monosaccharid in die Standard-URL-ASCII-Referenz ändern und jedes Monosaccharid mit einem "+" verketten. Daher(GlcNAc)6 (Mann)3 (Asn)1wird%28GlcNAc%296+%28Man%293+%28Asn%291.

Dadurch erhalten Sie einen Treffer mit dem Link zu Ihrem genauen Treffer, falls vorhanden. Auf der zurückgegebenen Seite befindet sich ein Link im Formathttp://www.genome.jp/dbget-bin/www_bget?gl:G#####, wobei G##### Ihre Glykanzahl ist (in unserem Beispiel G00021).

Sobald Sie die Glykanzahl haben, können Sie loslegen. Alle Strukturbilder finden Sie unter:http://www.genome.jp/Fig/glycan/G#####.gif">


Ich weiß nicht, ob dies für Glykane funktioniert, aber dieses Tool konvertiert den IUPAC-Namen in das SMILES-Format. SMILES ist eine textbasierte Strukturnotation, die in eine grafische Struktur umgewandelt werden kann.

Sie können diese auch überprüfen:

http://www.openmolecules.org/name2structure

http://www.iupac.org/home/publications/e-resources/inchi.html

Ich bin mir immer noch nicht sicher, was Sie wirklich fragen. Es wäre einfach, wenn Sie ein Dummy-Beispiel geben.


Die CFG verwenden in den bereitgestellten Excel-Dateien keine einheitliche Nomenklatur für ihre Glykanstrukturen. Es ist menschenlesbar, aber nicht maschinenlesbar. Sie müssen also zuerst ihre Liste kuratieren. Ich habe Bash-Skripte, die dies tun.

Wir konvertieren Glykan-Array-Strukturen in CFG-Symbole http://glycam.org/Pre-builtLibraries.jsp Sie möchten auf die cfglibs klicken und ihnen vielleicht ein paar Sekunden Zeit zum Laden geben.

Wenn Sie immer noch daran interessiert sind, senden Sie eine E-Mail an [email protected] und erklären Sie, was Sie möchten, und geben Sie meinen Namen "Oliver" an.


Dieses Modul ist in Biopython 1.54 und höher enthalten. Wenn Sie daran interessiert sind, neuere Ergänzungen dieses Codes vor der nächsten offiziellen Version zu testen, finden Sie unter SourceCode Anweisungen zum Abrufen einer Kopie des Entwicklungszweigs.

Zum Zeichnen von Bäumen (optional) benötigen Sie außerdem diese Pakete:

Die I/O- und Baum-Manipulationsfunktionalität funktioniert auch ohne sie werden bei Bedarf importiert, wenn die Funktionen draw() , draw_graphviz() und to_networkx() aufgerufen werden.

Das Phylo-Modul wurde auch erfolgreich auf Jython 2.5.1 getestet, abzüglich der Graphviz- und NetworkX-basierten Funktionen. Das Parsen von phyloXML-Dateien ist jedoch merklich langsamer, da Jython eine andere Version der zugrunde liegenden XML-Parsing-Bibliothek verwendet.


MOTIVE : DATENBANKEN VERWENDEN UND EIGENE ERSTELLEN

MOTIF-DATENBANKEN SUCHEN

HINTERGRUNDINFORMATION: Proteine ​​mit verwandten Funktionen zeigen möglicherweise keine insgesamt hohe Homologie, können jedoch Sequenzen von Aminosäureresten enthalten, die hoch konserviert sind. Hintergrundinformationen dazu finden Sie unter PROSITE bei ExPASy. Hinweis Ich empfehle Ihnen, Ihre Proteinsequenz mit mindestens zwei verschiedenen Suchmaschinen zu überprüfen. Alternativ können Sie eine Meta-Site wie MOTIF (GenomeNet, Institute for Chemical Research, Kyoto University, Japan) verwenden, um gleichzeitig die Suche nach Prosite, Blocks, ProDom, Prints und Pfam durchzuführen

Mehrere großartige Sites, darunter die ersten vier, die Meta-Sites sind:

Motivscan &ndash (MyHits, SIB, Schweiz) umfasst Prosite-, Pfam- und HAMAP-Profile.
InterPro 5 - beinhaltet PROSITE, HAMAP (hochwertige automatisierte und manuelle Annotation von Proteinen), Pfam (Proteinfamilien), PRINTS, ProDom, SMART (ein einfaches modulares Architekturforschungstool), TIGRFAMs, PIRSF (Proteininformationsquelle), SUPERFAMILY, CATH-Gene3D (Class, Architecture, Topology, Homologous Superfamily) und PANTHER (Protein ANalysis THrough Evolutionary Relationships) Klassifikationssysteme. (Referenz: Jones, P. et al. 2014, Bioinformatik 10: 1093) . Dieser Service ist auch hier verfügbar.

MOTIV (GenomeNet, Japan) - Ich empfehle dies für die Proteinanalyse, ich habe Phagengenome gegen die DNA-Motivdatenbank ohne Erfolg ausprobiert. Bietet 6 Motivdatenbanken und die Möglichkeit, eigene zu verwenden.
CDD oder CD-Suche (konservierte Domänendatenbanken) - (NCBI) beinhaltet CDD, Smart,Pfam, PRK, TIGRFAM, COG und KOG und wird aufgerufen, wenn man BLASTP verwendet.

Batch-Web-CD-Suchwerkzeug - Das Batch-CD-Suchwerkzeug ermöglicht die Berechnung und den Download von konservierten Domänenannotationen für große Mengen von Proteinabfragen. Geben Sie bis zu 100.000 Proteinabfragesequenzen als Liste von Sequenzidentifikatoren und/oder Rohsequenzdaten ein und laden Sie dann die Ausgabe in einer Vielzahl von Formaten herunter (einschließlich tabulatorgetrennter Textdateien) oder zeigen Sie die Suchergebnisse grafisch anAuf der Jobzusammenfassungsseite Batch-CD-Suche , eine Schaltfläche "Ergebnisse durchsuchen" über der Beispieldatentabelle ermöglicht es Ihnen, die Ergebnisse grafisch anzuzeigen. Die Schaltfläche öffnet ein separates Browserfenster, das die Domänen-Footprints, Alignment-Details und konservierten Features jeder einzelnen Abfragesequenz anzeigt. (Referenz: Marchler-Bauer A et al. 2011. Nucleic Acids Res.39: (D)225-229.)

CDvist - Cumfassend Domain VisAktualisierung Tool - CDvist ist ein sequenzbasiertes Suchwerkzeug für Proteindomänen. Es kombiniert mehrere gängige Algorithmen, um die bestmögliche Domänenabdeckung für Multidomänen-Proteine ​​bereitzustellen, die Geschwindigkeit, Genauigkeit und Charge Abfragen mit neuartigen Visualisierungsfunktionen. (Referenz: O. Adebali et al. Bioinformatics (2015) 31(9):1475-7).

Pfam- (EMBL-EBI) für Batch-Pfam-Suchen gehen Sie hier oder hier. (Referenz: Punta M et al. 2012. Nucl. Acids Res. 40(Datenbankproblem): D290&ndashD301 ). Man kann es auch über die EBI-Site hier aufrufen, die Abfragen von Pfam, TIGRFAM, Gene3D, Superfamily, PIRSF und TreeFam ermöglicht.

ScanProsite &ndash (ExPASy) (Referenz: Sigrist CJ et al. Nucleic Acids Res. 2013 41 (Datenbankproblem): D344-7).

ProDom (Pôle Rhône-Alpin de BioInformatique, Frankreich) - ist ein umfassender Satz von Proteindomänenfamilien, der automatisch aus der UniProt-Wissensdatenbank generiert wird
SMART Simple Modular Architecture Research Tool (EMBL, Universität Heidelberg) - Sucht Sequenz nach den auf der Homepage aufgelisteten Domains/Sequenzen. Versuchen Sie, die Standardeinstellungen auszuwählen/abzuwählen.

Stapel-SMART-Scan - finden Sie hier. Bitte beachten Sie, dass die Software ein Polyprotein erzeugt, das sie analysiert. Dies kann zu einigen Schwierigkeiten bei der Korrelation der Motive der einzelnen Proteine ​​führen. Der gleiche Vorbehalt gilt für die Batch-CD-Suche.

iProClass (Proteininformationsquelle, Georgetown University Medical Center, USA) - ist eine integrierte Ressource, die umfassende Familienbeziehungen und strukturelle/funktionelle Eigenschaften von Proteinen bereitstellt. (Referenz: Wu CH et al. Comput. Biol. Chem. (2004) 28: 87 und 96).

PSIPRED Protein Sequence Analysis Workbench – beinhaltet PSIPRED v3.3 (Predict Secondary Structure) DISOPRED3 & DISOPRED2 (Disorder Prediction) pGenTHREADER (Profile Based Fold Recognition) MEMSAT3 & MEMSAT-SVM (Membrane Helix Prediction) BioSerf v2.0 (Automated Homology Modeling) DomPred (Protein Domain Prediction) FFPred 3 (Eukaryotic Function Prediction) GenTHREADER (Rapid Fold Recognition) MEMPACK (SVM Prediction of TM Topology and Helix Packing) pDomTHREADER (Fold Domain Recognition) und DomSerf v2.0 (Automated Domain Modeling by Homology). (Referenz: Buchan DWA et al. 2013. Nucl. Acids Res. 41 (W1): W340-W348).

P2RP (Prediktiert Prokaryotisch Rregulierend Proteine) - einschließlich Transkriptionsfaktoren (TFs) und Zweikomponentensystemen (TCSs) basierend auf der Analyse von DNA- oder Proteinsequenzen. (Referenz: Barakat M., 2013. BMC Genomics 14: 269)

MEROPS - ermöglicht das Screening von Proteinsequenzen gegen eine umfangreiche Datenbank charakterisierter Peptidasen (Referenz: Rawlings, N.D. et al. (2018) Nukleinsäuren Res. 46: D624-D632 ).

Für spezifische Proteinmodifikationen oder Standorterkennung konsultieren Sie die folgenden Websites:

Orthologe Gene/Proteine:

COG-Analyse - CGlanz von Örthologe gGruppen - Die COG-Proteindatenbank wurde erstellt, indem vorhergesagte und bekannte Proteine ​​in allen vollständig sequenzierten mikrobiellen Genomen verglichen wurden, um Sätze von Orthologen abzuleiten. Jedes COG besteht aus einer Gruppe von Proteinen, von denen festgestellt wurde, dass sie in mindestens drei Abstammungslinien ortholog sind und wahrscheinlich einer alten konservierten Domäne (CloVR) entspricht. Zu den Websites, die diese Analyse anbieten, gehören:

WebMGA (Referenz: S. Wu et al. 2011. BMC Genomics 12:444), RAST (Referenz: Aziz RK et al. 2008. BMC Genomics 9:75) und BASys (Bartikel EINAnmerkung SSystemreferenz: Van Domselaar GH et al. 2005. Nukleinsäuren Res. 33(Webserverproblem):W455-459.) und JGI IMG (ichintegriert mmikrobiell gEnome Referenz: Markowitz VM et al. 2014. Nukl. Säuren Res. 42: D560-D567. )

Andere Seiten:

EggNOG - Eine Datenbank orthologer Gruppen und funktionaler Anmerkungen, die abgeleitet werden nonsupervised Örthologe gGruppen (NOGs) aus vollständigen Genomen und wendet dann eine umfassende Charakterisierungs- und Analysepipeline auf die resultierenden Genfamilien an. (Referenz: Powell S et al. 2014.
Nukleinsäuren Res. 42 (D1): D231-D239

OrthoMCL - ist ein weiterer Algorithmus zum Gruppieren von Proteinen in Ortholog-Gruppen basierend auf ihrer Sequenzähnlichkeit. Der Prozess dauert normalerweise zwischen 6 und 72 Stunden. (Referenz: Fischer S et al. 2011. Curr Protoc Bioinformatics Kapitel 6: Einheit 6.12.1-19).

KAAS (KEI EINautomatisch EINAnmerkung Server) bietet eine funktionale Annotation von Genen durch BLAST- oder GHOST-Vergleiche mit der manuell kuratierten KEGG GENES-Datenbank. Das Ergebnis enthält KO-Zuordnungen (KEGG Orthology) und automatisch generierte KEGG-Pfade. (Referenz: Moriya Y et al. 2007. Nucleic Acids Res. 35(Webserverproblem):W182-185).

InParanoid - Diese Datenbank bietet eine Benutzeroberfläche für Orthologe, die vom InParanoid-Algorithmus abgeleitet werden. Da es nun internationale Bemühungen gibt, vollständige Proteome zu kuratieren und zu standardisieren, haben wir uns dazu bewegt, diese Ressourcen zu nutzen, anstatt die Proteome selbst zu sammeln und zu kuratieren. (Referenz: E.L.L. Sonnhammer & Amp G. & Oumlstlund. 2015. Nucl. Acids Res. 43 (D1): D234-D239).

DNA-Bindung - Motive:

GYM - das neueste Programm zur Analyse von Helix-Turn-Helix-Motiven in Proteinen. Hinweis die nächste Seite stammt aus dem Jahr 1990. (Referenz: Narasimhan, G. et al. 2002. J. Computational Biol. 9:707-720)
Helix-Turn-Helix-Motivvorhersage - (Institut de Biologie et Chemie des Proteines, Lyon, Frankreich)

iDNA-Prot - identifiziert DNA-bindende Proteine ​​über das &ldquogrey-Modell&rdquo und durch die Übernahme der Random-Forest-Operation-Engine. Die Gesamterfolgsrate von iDNA-Prot betrug 83,96 %. Man kann bis zu 50 Proteine ​​einreichen. (Referenz: Lin W-Z et al. 2011. PLoS One 6: e24756). Auch hier erhältlich.

DP-Bind: ein Webserver zur sequenzbasierten Vorhersage von DNA-bindenden Resten in DNA-bindenden Proteinen. Wählen Sie: PSSM-basierte Kodierung, die am genauesten, aber auch am langsamsten ist. (Referenz: S. Hwang et al. 2007. Bioinformatik 23(5):634-636).

DNAbinder - verwendet zwei Ansätze, um DNA-bindende Proteine ​​vorherzusagen (a) die Aminosäurezusammensetzung, die mehrere Sequenzen im Fasta-Format ermöglicht, und (b) PSSM (positionsspezifische Bewertungsmatrix), die nur ein einzelnes Protein gleichzeitig screenen kann. Wählen Sie "Alternativer Datensatz", wenn die Eingabesequenz ein Protein voller Länge ist, da die Vorhersage mit SVM-Modulen erfolgt, die unter Verwendung von Proteinsequenzen voller Länge entwickelt wurden (Referenz: M. Kumar et al. 2007. BMC Bioinformatics 8: 463).

DRNApred - Server bietet eine sequenzbasierte Vorhersage von DNA- und RNA-bindenden Resten. (Referenz: Yan J, & Kurgan LA, 2017. Nucleic Acids Res. 45(10):e84).

DisoRDPbind - sagt die RNA-, DNA- und Protein-bindenden Reste voraus, die sich in den intrinsisch ungeordneten Regionen befinden. DisoRDPbind wird mit einem laufzeiteffizienten mehrschichtigen Design implementiert, das Informationen nutzt, die aus den physiochemischen Eigenschaften von Aminosäuren, der Sequenzkomplexität, der mutmaßlichen Sekundärstruktur und -fehlordnung sowie dem Sequenz-Alignment extrahiert wurden. (Referenz: Peng Z, &. Kurgan LA, 2015. Nucleic Acids Res. 43(18): e121).

Wenn Sie die dreidimensionale Struktur Ihres Proteins kennen, dann ist der 3D-Fußabdruck, DISPLAR (Referenz: Tjong G & Zhou H-X. 2007. Nucl. Acid Res.35: 1465-1477), iDBPs (Referenz: Nimrod G. et al. 2009. J. Mol. Biol. 387: 1040-1053), DNABIND (Referenz: Szlagyi A &. Skolnick J. 2006. J. Mol. Biol. 358: 922-933) und DNABINDPROT (Referenz: Ozbek P et al. 2010. Nucl. Acids Res. 38: W417-423) könnte für Sie nützlich sein..

2ZIP – wird verwendet, um Leucin-Zipper-Motive zu finden (Referenz: Bornberg-Bauer, E. et al. (1998) Nucleic Acids Res. 26:2740-2746).

FeatureP - ist ein Webserver, der eine Auswahl solcher Prädiktoren startet und ihre Ausgaben für differenzielle Vorhersagen durchsucht, d. h. Merkmale, von denen vorhergesagt wird, dass sie als Folge der Unterschiede zwischen den Eingabesequenzen modifiziert werden. (Referenz: Blicher T et al. (2010) Curr Opin Struct Biol. 20: 335-41). Kann verwendet werden, um mehrere Proteine ​​zu screenen.

Zweikomponenten- und andere regulatorische Proteine:

P2RP (Prediktiert Prokaryotisch Rregulierend Proteine) – Benutzer können Aminosäure- oder genomische DNA-Sequenzen eingeben, und vorhergesagte Proteine ​​darin werden auf den Besitz von DNA-bindenden Domänen und/oder Zweikomponenten-Systemdomänen gescannt. Auf diese Weise identifizierte RPs werden in Familien kategorisiert und eindeutig kommentiert. (Referenz: Barakat M, et al. 2013. BMC Genomics 14:269).

P2CS (Prokaryotisch 2-CKomponente Systems) ist eine umfassende Ressource für die Analyse von prokaryotischen Zweikomponentensystemen (TCS). TCS bestehen aus einer Rezeptor-Histidin-Kinase (HK) und einem Partner-Response-Regulator (RR) und kontrollieren wichtige prokaryontische Verhaltensweisen. Es kann mit BLASTP gesucht werden. (Referenz: P. Ortet et al. 2015. Nucl. Acids Res. 43 (D1): D536-D541).

ECFfinder - Extrazytoplasmatische Funktion (ECF) Sigmafaktoren - die größte Gruppe alternativer Sigmafaktoren - stellen den dritten grundlegenden Mechanismus der bakteriellen Signalübertragung dar, mit durchschnittlich etwa sechs solcher Regulatoren pro Bakteriengenom. Zusammen mit ihren verwandten Anti-Sigma-Faktoren stellen sie ein hochmodulares Design dar, das in erster Linie die transmembrane Signaltransduktion erleichtert. (Referenz: Staron A et al. (2009) Mol Microbiol 74(3): 557-581).

BepiPred - dieser Server sagt die Position linearer B-Zell-Epitope mit einer Kombination aus einem Hidden-Markov-Modell und einer Neigungsskalenmethode voraus. (Referenz: Pontoppidan Larsen, J. E. et al. 2006. Immunome Research 2:2).

ABCpred - dieser Server sagt B-Zell-Epitope in einer Antigensequenz unter Verwendung eines künstlichen neuronalen Netzwerks voraus. (Referenz: Saha, S & Raghava G.P.S. 2006. Proteine 65:40-48).

Antikörper-Epitop-Vorhersage (Immunepitop-Datenbank und Analyseressource) - Methoden umfassen Chou & Fasman Beta-Turn Prediction, Emini Surface Accessibility Prediction, Karplus & Schulz Flexibility Prediction, Kolaskar & Tongaonkar Antigenicity, Parker Hydrophilicity Prediction and Bepipred Linear Epitope Prediction

Der BCPREDS-Server ermöglicht es Benutzern, die Methode zur Vorhersage von B-Zell-Epitopen unter mehreren entwickelten Vorhersagemethoden auszuwählen: AAP-Methode, BCPred und FBCPred. Benutzer stellen eine Antigensequenz bereit und können optional die gewünschte Epitoplänge und Spezifitätsschwelle angeben. Die Ergebnisse werden in mehreren benutzerfreundlichen Formaten zurückgegeben. (Referenz: EL-Manzalawy, Y. et al. 2008. J Mol Recognit 21: 243-255).

EpiSearch: Mapping of Conformational Epitopes (Referenz: Negi, S.S. & Braun, W. 2009. Bioinform. Biol. Insights 3: 71-81).

KEP - Cinformativ EPitop Prediction Server - Der Algorithmus sagt neben der Vorhersage von Konformationsepitopen auch antigene Determinanten und sequentielle Epitope voraus. Die Epitope werden anhand von 3D-Strukturdaten von Proteinantigenen vorhergesagt, die grafisch visualisiert werden können. Der Algorithmus verwendet einen strukturbasierten Bioinformatik-Ansatz und die Lösungsmittelzugänglichkeit von Aminosäuren auf explizite Weise.Es wurde festgestellt, dass die Genauigkeit des Algorithmus 75 % beträgt, wenn die Röntgenkristallstruktur von Ag&ndashAb-Komplexen, die in der PDB verfügbar sind, ausgewertet wurde. (Referenz: Kulkarni-Kale, U. et al. 2005. Nucl. Acids Res. 33: W168&ndashW171)

IEDB (ichmun EPitop Dan einerBund Analyseressource). Umfasst T-Zell-Epitop-Vorhersage (Scannen einer Antigensequenz auf Aminosäuremuster, die auf Folgendes hinweisen: MHC-I-Bindung, MHC-II-Bindung, MHC-I-Prozessierung (Proteasom, TAP), MHC-I-Immunogenität) B-Zell-Epitop-Vorhersage, Vorhersage linearer B-Zell-Epitope mit: Antigensequenzeigenschaften, Vorhersage diskontinuierlicher B-Zell-Epitope unter Verwendung der Antigenstruktur über: Lösungsmittelzugänglichkeit (Discotope), Protrusion (ElliPro). (Referenz: Vita, R. et al. 2015. Nucl. Acids Res. 43 (D1): D405-D412).

Expitope - ist der erste Webserver zur Bewertung des Epitop-Sharings bei der Entwicklung neuer potenzieller Lead-Ziele. Es ermöglicht den Benutzern, alle bekannten Proteine ​​zu finden, die ihr interessierendes Peptid enthalten. Der Webserver gibt nicht nur genaue Übereinstimmungen zurück, sondern auch ungefähre Übereinstimmungen, wodurch eine Reihe von Nichtübereinstimmungen nach Wahl des Benutzers ermöglicht wird. Für die identifizierten Kandidatenproteine ​​werden die Expressionswerte in verschiedenen gesunden Geweben, die alle lebenswichtigen menschlichen Organe repräsentieren, aus RNA-Sequenzierungsdaten (RNA-Seq) sowie aus einigen Krebsgeweben als Kontrolle extrahiert. (Referenz: Haase K et al. 2015. Bioinformatik 31: 1854-1856).

EpiToolKit – bietet eine Sammlung von Methoden aus der computergestützten Immunologie für die Entwicklung neuartiger epitopbasierter Impfstoffe, einschließlich HLA-Liganden- oder potenzieller T-Zell-Epitop-Vorhersage, ein Epitop-Auswahl-Framework für das Impfstoffdesign und eine Methode zum Design optimaler Impfstoffe mit Perlenketten . Darüber hinaus bietet EpiToolKit mehrere andere Tools, die von der HLA-Typisierung basierend auf NGS-Daten bis hin zur Vorhersage polymorpher Peptide reichen. (Referenz: Schubert B et al. 2015. Bioinformatik 31: 2211-2213).

MetaPocket 2.0 ist ein Metaserver zur Identifizierung von Ligandenbindungsstellen auf der Proteinoberfläche! metaPocket ist eine Konsensus-Methode, bei der die vorhergesagten Bindungsstellen aus acht Methoden: LIGSITEcs, PASS, Q-SiteFinder, SURFNET, Fpocket, GHECOM, ConCavity und POCASA miteinander kombiniert werden, um die Vorhersage-Erfolgsrate zu verbessern. (Referenz: Bingding Huang (2009) Omics, 13(4): 325-330)

Posttranslationale Modifikation - ProteomeScout ist eine Datenbank von Proteinen und posttranslationalen Modifikationen. Es gibt zwei Hauptdatentypen in ProteomeScout: 1) Proteine: Visualisieren Sie Proteine ​​oder kommentieren Sie Ihre eigenen Proteine ​​und 2) Experimente: Sie können ein neues Experiment laden oder ein vorhandenes Experiment durchsuchen und analysieren. Erfordert eine Registrierung (Referenz: M.K. Matlock et al. 2015. Nucl. Acids Res. 43 (D1): D521-D530).

Glykosylierung:

NetOGlyc (Zentrum für biologische Sequenzanalyse, Technische Universität Dänemark) - produziert neuronale Netzwerkvorhersagen von GalNAc-O-Glycosylierungsstellen des Mucintyps in Säugetierproteinen. SignalP wird automatisch auf allen Sequenzen ausgeführt. Wenn kein Signalpeptid erkannt wird, wird eine Warnung angezeigt. In Transmembranproteinen können nur extrazelluläre Domänen mit Mucin-Typ-GalNAc O-glykosyliert werden.
NetNGlyk (Zentrum für biologische Sequenzanalyse, Technische Universität Dänemark) - sagt N-Glycosylierungsstellen in menschlichen Proteinen vorher, indem künstliche neuronale Netze verwendet werden, die den Sequenzkontext von Asn-Xaa-Ser/Thr-Sequenzen untersuchen.
YinOYang (Zentrum für biologische Sequenzanalyse, Technische Universität Dänemark) - produziert neuronale Netzwerkvorhersagen für O-ß-GlcNAc-Anheftungsstellen in eukaryontischen Proteinsequenzen. Dieser Server kann auch NetPhos verwenden, um mögliche phosphorylierte Sites zu markieren und somit "Yin-Yang"-Sites zu identifizieren.

Fettacylierung:

LipoP 1.0 (Zentrum für biologische Sequenzanalyse der Technischen Universität Dänemark) – ermöglicht die Vorhersage, wo Signalpeptidasen I & II-Spaltungsstellen von Gram-negativen Bakterien ein Protein spalten.

NMT - Der MYR-Prädiktor (IMP [Forschungsinstitut für Molekulare Pathologie] Gruppe Bioinformatik, Österreich) - sagt N-terminale N-Myristoylierung voraus. Im Allgemeinen benötigt das Enzym NMT ein N-terminales Glycin (führende Methionine werden vor der Myristoylierung abgespalten). Durch proteolytische Prozessierung von Proproteinen können jedoch auch interne Glycine N-terminal werden.
Myristoylator (ExPASy, Schweiz) - sagt die N-terminale Myristoylierung von Proteinen durch neuronale Netzwerke voraus. Nur N-terminale Glycine werden myristoyliert (führende Methionine werden vor der Myristoylierung gespalten).

Nukleotidbindungsstellen:

nSITEpred – wurde für die sequenzbasierte Vorhersage von Bindungsresten für ATP, ADP, AMP, GDP und GTP entwickelt (Referenz: K. Chen 2012. Bioinformatics 28: 331-341)

P2RP (Prediktiert Prokaryotisch Rregulierend Proteine) – Benutzer können Aminosäure- oder genomische DNA-Sequenzen eingeben, und vorhergesagte Proteine ​​darin werden auf den Besitz von DNA-bindenden Domänen und/oder Zweikomponenten-Systemdomänen gescannt. Auf diese Weise identifizierte RPs werden in Familien kategorisiert und eindeutig kommentiert. (Referenz: Barakat M, et al. 2013. BMC Genomics 14:269).

Phosphorylierung:

GEOGRAPHISCHES POSITIONIERUNGS SYSTEM (ggruppenbasiert PPhosphorylierung SEntkernungsmethode) - Vorhersage umfasst 71 Proteinkinase (PK)-Familien/PK-Gruppen (Referenz: Y. Xue et al. 2005. Nucl. Acids Res. 33: W184-W187).

NetPhos (Zentrum für biologische Sequenzanalyse, Technische Universität Dänemark) - sagt Ser-, Thr- und Tyr-Phosphorylierungsstellen in eukaryontischen Proteinen voraus.

PhosphoSitePlus (PSP) ist eine Online-Ressource für die Systembiologie, die umfassende Informationen und Werkzeuge für die Untersuchung posttranslationaler Proteinmodifikationen (PTMs) einschließlich Phosphorylierung, Ubiquitinierung, Acetylierung und Methylierung bereitstellt. (Referenz: Hornbeck PV, et al. 2015 Nucleic Acids Res. 43: D512-520).

14-3-3-Pred: Ein Webserver zur Vorhersage von 14-3-3-bindenden Phosphositen in menschlichen Proteinen (Referenz: Madeira F et al. 2015. Bioinformatics 31: 2276-2283).

Scansite sucht nach Motiven innerhalb von Proteinen, die wahrscheinlich durch spezifische Proteinkinasen phosphoryliert werden oder an Domänen wie SH2-Domänen, 14-3-3-Domänen oder PDZ-Domänen binden. Mutmaßliche Proteinphosphorylierungsstellen können weiter untersucht werden, indem die evolutionäre Konservierung der Stellensequenz oder die subzelluläre Kolokalisation von Protein und Kinase bewertet wird.

Quokka - ist ein umfassendes Werkzeug zur schnellen und genauen Vorhersage von kinasefamilienspezifischen Phosphorylierungsstellen im menschlichen Proteom (Referenz: Li F et al. (Bioinformatics 34(24): 4223&ndash4231).

Sumoylierung:

SUMOgo - Vorhersage von Sumoylierungsstellen (Small Ubiquitin-like Modifier (SUMO)-Bindung (als SUMOylation bezeichnet)) auf Lysinen durch Motiv-Screening-Modelle und die Auswirkungen verschiedener posttranslationaler Modifikationen (Referenz: Chang C-C et al. 2018. Wissenschaftliche Berichte 8: 15512).

Sulfinator (ExPASy, Schweiz) sagt Tyrosinsulfatierungsstellen in Proteinsequenzen voraus.

Impfstoffentwicklung, Effektormoleküle:


JaiswalV et al. 2013. BMC Bioinformatik14: 211

und pathogenen Bakterien. Dabei werden Effektorproteine ​​aus dem bakteriellen Cytosol in das extrazelluläre Medium oder direkt in die eukaryontische Wirtszelle transportiert. Das Effective Portal bietet vorberechnete Vorhersagen zu bakteriellen Effektoren in allen öffentlich zugänglichen pathogenen und symbiontischen Genomen sowie die Möglichkeit für den Benutzer, Effektoren in eigenen Proteinsequenzdaten vorherzusagen.

ENTDECKE DEINE EIGENEN MOTIVE:

Nachdem Sie ähnliche Sequenzen entdeckt haben, aber die Motivsuchwerkzeuge Ihre Proteingruppe nicht erkannt haben, können Sie mit den folgenden Werkzeugen eine Liste potenzieller Motive erstellen.

Die MEME-Suite- Motivbasierte Sequenzanalysetools (National Biomedical Computation Resource, USA). Hinweis Erstellen Sie nach einer BLASTP-Suche ein FASTA-formatiertes Dokument mit drei oder vier der homologen Proteine ​​(Trainingssatz) und senden Sie es an MEME (mmehrere Em für motif ELizenz) oder GLAM2 (gappliziert Local Alzündungen von motifs). Im Fall von MEME gebe ich normalerweise 5 als "Maximale Anzahl von zu findenden Motiven" an. Sie erhalten eine Nachricht per E-Mail mit dem Titel "MEME Submission Information (Job App.)," bestätigt, dass das NBCR Ihre Anfrage erhalten hat und bearbeitet. Wenn Sie auf den Hyperlink " klicken, können Sie Ihre Arbeitsergebnisse einsehen unter: http://meme. " Sie werden sehen:

Die "MAST-Ausgabe als HTML" liefert die Motive, eine Motiv-Alignment-Grafik und die Ausrichtung der Motive mit den einzelnen Sequenzen im Trainingsset. Die "MEME-Ausgabe als HTML" enthält eine detaillierte Analyse der einzelnen Motive sowie deren Sequenzlogos.

An der Spitze des Lebens befindet sich ein Button mit der Aufschrift "Suche Sequenzdatenbanken nach den besten kombinierten Übereinstimmungen mit diesen Motiven mit MAST." Dies führt Sie zum MAST (Motif Alignment and Search Tool)-Einreichungsformular. Klicken Sie auf die nicht redundante Proteindatenbank des NCBI. Sie erhalten eine E-Mail mit dem Titel " MAST Submission Information (Job App . )."

Seien Sie sehr vorsichtig, bevor Sie den zweiten Datensatz drucken, der >20 Seiten umfassen kann (Referenz: Bailey, T.L. et al. 2009. Nucl. Acids Res. 37 (Problem mit dem Webserver): W202-W208). Die Meme Suite finden Sie auch hier.

WebLogo - eine großartige grafische Methode zur Darstellung und Visualisierung von Konsensussequenzdaten, entwickelt von Tom Schneider und Mike Stephens. Für Nukleotid-Logos siehe RNA-Struktur-Logo (Technische Universität Dänemark)

Seq2Logo ist ein Sequenzlogo-Generator. Sequenzlogos sind eine grafische Darstellung des in einem Multiple Sequence Alignment (MSA) gespeicherten Informationsinhalts und bieten eine kompakte und sehr intuitive Darstellung der positionsspezifischen Aminosäurezusammensetzung von Bindungsmotiven, aktiven Stellen usw. in biologischen Sequenzen. (Referenz : Thomsen, MC, &. Nielsen, M. 2012. Nucleic Acids Res. 40(Webserverproblem):W281-287).

Skylign ist ein Tool zum Erstellen von Logos, die sowohl Sequenzausrichtungen als auch Hidden-Markov-Profilmodelle darstellen. Senden Sie das Formular, um (i) interaktive Logos zur Aufnahme in Webseiten oder (ii) statische Logos zur Verwendung in Dokumenten zu erstellen. Skylign akzeptiert Sequenz-Alignments in jedem von HMMER akzeptierten Format (einschließlich Stockholm und Aligned Fasta-Format). (Referenz: Wheeler TJ, et al. 2014. BMC Bioinformatics. 15: 7.). Die HMMER-formatierten Profil-HMM-Dateien können aus einer *.aln-ClustalW-Datei generiert werden, indem Sie Ihr ClustalW-Alignment (&-Titel) in HMMBUILD (Pôle Bioinformatique Lyonnais, Frankreich) einfügen und die Ausgabe (als *.hmm-Datei gespeichert) bei Skylign verwenden .

Two Sample Logo - erkennt und zeigt statistisch signifikante Unterschiede in positionsspezifischen Symbolzusammensetzungen zwischen zwei Sätzen von mehreren Sequenzausrichtungen an. In einem typischen Szenario teilen sich zwei Gruppen von ausgerichteten Sequenzen ein gemeinsames Motiv, unterscheiden sich jedoch in ihrer funktionalen Annotation. Auch als Java-Tool verfügbar. ( Referenz : 22: 1536-1537).

HMMER-Website - bietet Zugriff auf die Suchalgorithmen für Proteinhomologie, die in der HMMER-Softwaresuite zu finden sind. Seit dem ersten Release der Website im Jahr 2011 wurde das Suchrepertoire um den iterativen Suchalgorithmus jackhmmer erweitert. (Referenz: R. D. Finn et al. 2015. Nucl. Acids Res. 43 (W1): W30-W38).

PSSMSearch - ist eine Webanwendung zur Entdeckung neuer Proteinmotive (SLiMs, mORFs, miniMotifs) und PTM-Sites. PSSMSearch analysiert Proteome auf Regionen mit signifikanter Ähnlichkeit zu einem Spezifitätsdeterminantenmodell, das aus einem Satz ausgerichteter funktioneller Peptide aufgebaut ist. Abfragepeptide können von den Benutzern bereitgestellt oder aus der ELM-Datenbank abgerufen werden. Es stehen mehrere Bewertungsmethoden zur Verfügung, um eine positionsspezifische Bewertungsmatrix (PSSM) zu erstellen, die das Spezifitätsdeterminantenmodell beschreibt, und Benutzer können das Modell modifizieren, um Vorkenntnisse über Spezifitätsdeterminanten durch eine interaktive PSSM-Heatmap hinzuzufügen. (Referenz: Krystkowiak I et al. 2018. Nucleic Acids Res 46(W1): W235&ndashW241).

NUKLEINSÄURE-MOTIFE : (Siehe auch hier)

Rfam (Welcome Trust Sanger Institute, England) – ermöglicht die Analyse von 2 kb DNA auf 36 strukturelle oder funktionelle RNAs, wie 5S rRNA, tRNA, tmRNA, katalytische Introns der Gruppe I & II, Hammerhead-Ribozyme, Signalerkennungspartikel.

P2RP (Predicted Prokaryotic Regulatory Proteins) – einschließlich Transkriptionsfaktoren (TFs) und Zweikomponentensystemen (TCSs) basierend auf der Analyse von DNA- oder Proteinsequenzen. (Referenz: Barakat M., 2013. BMC Genomics 14: 269)


4.3 Ergebnisse

4.3.1 Funktionen

Die ggtree unterstützt die Anzeige von Phylogramm und Kladogramm (Abbildung 4.1) und kann einen Baum mit verschiedenen Layouts visualisieren, einschließlich rechteckiger, schräger, kreisförmiger, fächerförmiger, unverwurzelter, zeitskaliger und zweidimensionaler Bäume.

Die ggtree ermöglicht die direkte Verwendung von Baumkovariaten, die im Baumobjekt gespeichert sind, in der Baumvisualisierung und -annotation. Diese Kovariaten können Metadaten der im Baum verwendeten Arten/Sequenzen, statistische Analysen oder evolutionäre Schlussfolgerungen des Baums sein (z.B. Divergenzzeit abgeleitet von TIER oder Ahnensequenzen abgeleitet von HyPhy, usw.). Diese numerischen oder kategorialen Daten können verwendet werden, um Zweige oder Knoten des Baums einzufärben, im Baum mit Originalwerten anzuzeigen oder auf verschiedene Symbole abzubilden. In ggtreekönnen Benutzer Layer hinzufügen, um die ausgewählten Kladen hervorzuheben und Kladen zu beschriften oder den Baum mit Symbolen in verschiedenen Formen und Farben zu versehen. usw. (weitere Details in Abschnitt 3.3.3).

Im Vergleich zu anderen phylogenetischen Baumvisualisierungspaketen, ggtree zeichnet sich durch das visuelle Erkunden der Baumstruktur und der zugehörigen Daten aus. So kann beispielsweise eine komplexe Baumfigur mit mehreren Annotation-Layern ohne schrittweise Neuerzeugung in ein neues Baumobjekt übertragen werden. Für eine solche Operation wurde ein Operator %<% erstellt, um eine Baumfigur mit einem neuen Baumobjekt zu aktualisieren. Die Zweiglänge kann mit einer anderen numerischen Variablen neu skaliert werden (wie in Abbildung 3.4 gezeigt, die die Baumzweige mit . neu skaliert) Dn Wert). Phylogenetische Bäume können durch Zusammenklappen, Skalieren und Rotieren der Klade visuell manipuliert werden. Kreis- und Fächer-Layout-Baum können um einen bestimmten Winkel gedreht werden. Baumstrukturen können von einem Layout in ein anderes umgewandelt werden.

Die Funktion groupClade ordnet die Zweige und Knoten unter verschiedenen Kladen verschiedenen Gruppen zu. In ähnlicher Weise weist die groupOTU-Funktion Zweige und Knoten verschiedenen Gruppen zu, basierend auf benutzerdefinierten Gruppen von operationellen taxonomischen Einheiten (OTUs), die sich nicht unbedingt innerhalb einer Klade befinden, aber monophyletisch (Klade), polyphyletisch oder paraphyletisch sein können. Ein phylogenetischer Baum kann mit Anmerkungen versehen werden, indem verschiedene Linientypen, -größen, -farben oder -formen den Zweigen oder Knoten zugeordnet werden, die verschiedenen Gruppen zugewiesen wurden.

Treeio Paket parst verschiedene Anmerkungsdaten aus verschiedenen Softwareausgaben in S4 phylogenetische Datenobjekte. Die ggtree verwendet diese S4-Objekte hauptsächlich, um den Baum anzuzeigen und zu kommentieren. Es gibt auch andere R-Pakete, die S3- / S4-Klassen definiert haben, um phylogenetische Bäume mit ihren spezifischen zugehörigen Daten zu speichern, einschließlich phylo4 und phylo4d, die in definiert sind phylobase Paket, obkdata definiert in OutbreakTools Paket und phyloseq definiert in phyloseq Paket. Alle diese Baumobjekte werden auch unterstützt in ggtree und ihre spezifischen Anmerkungsdaten können verwendet werden, um den Baum mit Anmerkungen zu versehen ggtree. Eine solche Kompatibilität von ggtree erleichtert die Integration von Daten und Analyseergebnissen.

4.3.2 Layouts des phylogenetischen Baumes

Das Anzeigen der Phylogenetik mit ggtree ist ziemlich einfach, übergeben Sie einfach das Baumobjekt an ggtree Funktion. Wir haben verschiedene Arten von Layouts für die Baumdarstellung entwickelt (Abbildung 4.1), darunter rechteckige (standardmäßig), schräge, kreisförmige, fächerförmige, unverwurzelte (gleiche Winkel- und Tageslichtmethoden), zeitskalierte und zweidimensionale Layouts.

Hier sind Beispiele für die Visualisierung eines Baums mit verschiedenen Layouts:

Abbildung 4.1: Baum-Layouts. Phylogramm: rechteckiger Grundriss (A), schräger Grundriss (B), runder Grundriss (C) und Fächergrundriss (D). Unbewurzelt: Gleichwinkelmethode (E) und Tageslichtmethode (F). Cladogramm: rechteckiges Layout (G), kreisförmiges Layout (H) und nicht verwurzeltes Layout (I). Schräg- und Fächerlayouts für Kladogramme werden ebenfalls unterstützt.

Phylogramm. Layouts von rechteckig, geneigt, kreisförmig und Fan werden unterstützt, um Phylogramme zu visualisieren (standardmäßig mit skalierter Astlänge), wie in Abbildung 4.1A, B, C und D gezeigt.

Nicht gerootetes Layout. Unrooted (auch „radial“ genannt) Layout wird von Gleichwinkel- und Tageslichtalgorithmen unterstützt. Equal-Winkel-Methode wurde von Christopher Meacham in . vorgeschlagen PLOTREE, die eingearbeitet wurde PHYLIP (Retief 2000). Diese Methode beginnt bei der Wurzel des Baums und weist jedem Teilbaum Winkelbögen proportional zur Anzahl der darin enthaltenen Spitzen zu. Es iteriert von der Wurzel bis zu den Spitzen und unterteilt den einem Teilbaum zugeordneten Winkel in Winkel für seine abhängigen Teilbäume. Diese Methode ist schnell und wurde in vielen Softwarepaketen implementiert. Wie in Abbildung 4.1E gezeigt, hat die Methode mit gleichem Winkel den Nachteil, dass Spitzen dazu neigen, sich zu gruppieren und viele Räume ungenutzt zu lassen. Die Tageslichtmethode beginnt mit einem anfänglichen Baum, der mit gleichem Winkel aufgebaut ist, und verbessert ihn iterativ, indem er sukzessive zu jedem inneren Knoten geht und Unterbäume schwingt, so dass die Bögen des „Tageslichts“ gleich sind (Abbildung 4.1F). Diese Methode wurde erstmals in PAUP* (Wilgenbusch und Swofford 2003).

Kladogramm. Um ein Cladogramm ohne Skalierung der Zweiglänge zu visualisieren und nur die Baumstruktur anzuzeigen, wird branch.length auf „none“ gesetzt und funktioniert für alle Arten von Layouts (Abbildung 4.1G, H und I).

Zeitskaliertes Layout. Bei einem zeitskalierten Baum muss das letzte Probenahmedatum über den Parameter mrsd angegeben werden und ggtree skaliert den Baum durch Abtastzeit (Spitze) und Divergenz (interner Knoten) und standardmäßig wird eine Zeitskalenachse unter dem Baum angezeigt.

Abbildung 4.2: Zeitskaliertes Layout. Die x-Achse ist die Zeitskala (in Jahreseinheiten). Die Divergenzzeit wurde abgeleitet von TIER mit dem Modell der molekularen Uhr.

Zweidimensionales Baumlayout. Ein zweidimensionaler Baum ist eine Projektion des phylogenetischen Baumes in einem Raum, der durch den zugehörigen Phänotyp (numerisches oder kategoriales Merkmal, auf der ja-Achse) und Astskala (z.B., evolutionäre Distanz, divergente Zeit, auf der x-Achse). Der Phänotyp kann ein Maß für bestimmte biologische Eigenschaften der Taxa und hypothetischen Vorfahren im Baum sein. Dies ist ein neues Layout, das wir in vorgeschlagen haben ggtree, die nützlich ist, um die Virus-Phänotypen oder andere Verhaltensweisen zu verfolgen (ja-Achse), die sich mit der Virusevolution ändert (x-Achse). Tatsächlich wurde die Analyse von Phänotypen oder Genotypen im Laufe der Evolution häufig für Studien zur Influenzavirus-Evolution verwendet (Neher et al. 2016), obwohl solche Analysediagramme nicht baumartig sind. d.h., keine Verbindung zwischen Datenpunkten, im Gegensatz zu unserem zweidimensionalen Baum-Layout, das Datenpunkte mit den entsprechenden Baumzweigen verbindet. Daher wird dieses neue Layout, das wir bereitgestellt haben, eine solche Datenanalyse für große Sequenzdatensätze von Influenzaviren einfacher und skalierbarer machen.

In diesem Beispiel haben wir den vorherigen zeitskalierten Baum der H3-Influenzaviren von Mensch und Schwein verwendet (Abbildung 4.2 Daten veröffentlicht in (Liang et al. 2014) ) und skalierten die ja-Achse basierend auf dem vorhergesagten n-verknüpfte Glykosylierungsstellen (NLG) für jedes der Taxon- und Vorfahrensequenzen von Hämagglutinin-Proteinen. Die NLG-Standorte wurden mithilfe von . vorhergesagt NetNGlyk 1.0 Server 8 . Um die . zu skalieren ja-axis wird der Parameter yscale in der Funktion ggtree() auf eine numerische oder kategoriale Variable gesetzt. Wenn yscale wie in diesem Beispiel eine kategoriale Variable ist, sollten Benutzer über die yscale_mapping-Variablen angeben, wie die Kategorien auf numerische Werte abgebildet werden sollen.

Abbildung 4.3: Zweidimensionales Baumlayout. Der Stamm und andere Äste sind rot (für Schweine) und blau (für Menschen) hervorgehoben. Die x-axis wird auf die Zweiglänge (in Jahreseinheiten) des zeitskalierten Baums skaliert. Die ja-axis wird auf die Knotenattributvariable skaliert, in diesem Fall die Anzahl der vorhergesagten n-gebundene Glykosylierungsstelle (NLG) auf dem Hämagglutinin-Protein. Farbige Kreise kennzeichnen die verschiedenen Arten von Baumknoten. Beachten Sie, dass Knoten die gleichen zugewiesenen x- (zeitlich) und ja- (NLG) Koordinaten werden in dieser Darstellung überlagert und erscheinen als ein Knoten, der basierend auf den Farben aller Knoten an diesem Punkt schattiert ist.

Wie in Abbildung 4.3 gezeigt, ist ein zweidimensionaler Baum gut geeignet, die Änderung des Phänotyps über die Evolution im phylogenetischen Baum zu visualisieren. In diesem Beispiel wird gezeigt, dass das H3-Gen des humanen Influenza-A-Virus ein hohes Niveau von n-verbundene Glykosylierungsstellen (n = 8 bis 9) in den letzten zwei Jahrzehnten und fiel signifikant auf 5 oder 6 in einer separaten Viruslinie, die auf Schweinepopulationen übertragen und dort etabliert wurde. Es wurde in der Tat die Hypothese aufgestellt, dass das humane Influenzavirus mit einem hohen Glykosylierungsgrad des viralen Hämagglutininproteins eine bessere Abschirmwirkung zum Schutz der antigenen Stellen vor einer Exposition gegenüber der Herdenimmunität bietet und somit einen selektiven Vorteil in menschlichen Populationen hat, die ein hohes Maß an Herdenimmunität aufrechterhalten gegen die zirkulierenden humanen Influenza-Virusstämme. Für die Viruslinie, die neu über die Speziesbarriere gesprungen ist und auf die Schweinepopulation übertragen wurde, bedeutet die abschirmende Wirkung des hochgradigen Oberflächenglycans umgekehrt einen selektiven Nachteil, da die Rezeptorbindungsdomäne ebenfalls abgeschirmt sein kann, was die virale Fitness der Linie stark beeinflusst die sich neu an eine neue Wirtsart angepasst haben.

4.3.3 Anmerkungsebenen

Die ggtree ist für allgemeinere Zwecke oder spezielle Arten der Baumvisualisierung und -anmerkung konzipiert. Es unterstützt die Grammatik von Grafiken, die in implementiert sind ggplot2 und Benutzer können einen Baum frei visualisieren/annotieren, indem sie mehrere Anmerkungsebenen kombinieren.

Abbildung 4.4: Kommentieren des Baums mithilfe der Grammatik von Grafiken. Der NHX-Baum wurde mit Grammatik der grafischen Syntax annotiert, indem verschiedene Ebenen mit dem +-Operator kombiniert wurden. Arteninformationen wurden in der Mitte der Zweige beschriftet, Duplikationsereignisse wurden für den letzten gemeinsamen Vorfahren angezeigt und der Bootstrap-Wert der Clade wurde in der Nähe davon angezeigt.

Hier als Beispiel haben wir den Baum mit mehreren Layern visualisiert, um in NHX-Tags gespeicherte Annotationen anzuzeigen, einschließlich eines Layers von geom_tiplab zum Anzeigen von Spitzenbezeichnungen (in diesem Fall der Genname), ein Layer mit geom_label zum Anzeigen von Arteninformationen (S-Tag). hellgrün eingefärbt, eine Schicht mit Duplizierungsereignisinformationen (D-Tag) eingefärbt mit Stahlblau und eine weitere Schicht mit geom_text um den Bootstrap-Wert anzuzeigen (B-Tag).

Ebenen definiert in ggplot2 kann angewendet werden auf ggtree direkt wie in Abbildung 4.4 der Verwendung gezeigt geom_label und geom_text. Aber ggplot2 bietet keine Grafikebenen, die speziell für phylogenetische Baumannotationen entwickelt wurden. So sind beispielsweise Ebenen für Spitzenbeschriftungen, Legende für Baumastskalen, Hervorhebung oder Beschriftungsklade alle nicht verfügbar. Um die Baumannotation flexibler zu gestalten, wurden eine Reihe von Ebenen in implementiert ggtree (Tabelle 4.1), wodurch verschiedene Arten der Annotation zu verschiedenen Teilen/Komponenten eines phylogenetischen Baums ermöglicht werden.

Tabelle 4.1: In ggtree definierte Geom-Layer.
Schicht Beschreibung
geom_balance hebt die zwei direkten Nachkommen-Kladen eines internen Knotens hervor
geom_cladelabel eine Klade mit Balken und Textbeschriftung kommentieren
geom_hilight Markieren Sie eine Klade mit einem Rechteck
geom_label2 modifizierte Version von geom_label, mit unterstützten Untereinstellungen
geom_nodepoint beschrifte interne Knoten mit symbolischen Punkten
geom_point2 modifizierte Version von geom_point, mit unterstützten Untereinstellungen
geom_range Balkenschicht, um die Unsicherheit der evolutionären Inferenz darzustellen
geom_rootpoint Wurzelknoten mit symbolischem Punkt annotieren
geom_segment2 modifizierte Version von geom_segment, mit unterstützten Untereinstellungen
geom_strip kommentieren Sie zugehörige Taxa mit Balken und (optional) Textbeschriftung
geom_taxalink assoziieren Sie zwei verwandte Taxa, indem Sie sie mit einer Kurve verknüpfen
geom_text2 modifizierte Version von geom_text, mit unterstützten Untereinstellungen
geom_tiplab Schicht von Spitzenetiketten
geom_tiplab2 Schicht von Tipp-Etiketten für kreisförmiges Layout
geom_tippoint externe Knoten mit symbolischen Punkten annotieren
geom_baum Baumstrukturebene, mit Unterstützung mehrerer Layouts
geom_treescale Legende der Baumastskala

4.3.4 Baummanipulation

Die ggtree unterstützt viele Möglichkeiten, den Baum visuell zu manipulieren, einschließlich der Anzeige ausgewählter Klade, um einen großen Baum zu erkunden (Abbildung 4.5), Taxa-Clustering (Abbildung 4.8), rotierende Klade oder Baum (Abbildung 4.9B und 4.11), Verkleinern oder Zusammenklappen von Kladen (Abbildung 4.6A .). und 4.7), usw.. Details zur Baummanipulationsfunktionen sind in Tabelle 4.2 zusammengefasst.

Tabelle 4.2: Baummanipulationsfunktionen.
Funktion Beschreibung
Zusammenbruch eine Auswahl-Klade zuklappen
expandieren kollabierte Klade erweitern
umdrehen Austauschposition von 2 Kladen, die sich einen Elternknoten teilen
GruppeClade Gruppen gruppieren
GruppeOTU Gruppierung von OTUs durch Rückverfolgung bis zum letzten gemeinsamen Vorfahren
identifizieren interaktive Baummanipulation
drehen Drehen einer ausgewählten Klade um 180 Grad
rotieren_baum Kreisförmiger Layoutbaum um einen bestimmten Winkel drehen
scaleClade Vergrößern oder verkleinern Auswahl von Klade
open_tree Konvertieren eines Baums in ein Fächer-Layout durch einen bestimmten offenen Winkel

Eine Klade ist eine monophyletische Gruppe, die einen einzelnen Vorfahren und alle seine Nachkommen enthält. Wir können einen bestimmten ausgewählten Clade über die viewClade-Funktion visualisieren, wie in Abbildung 4.5B gezeigt. Eine weitere ähnliche Funktion ist gzoom, die den Baum mit der ausgewählten Klade nebeneinander darstellt. Diese beiden Funktionen wurden entwickelt, um große Bäume zu erkunden.

Abbildung 4.5: Anzeigen einer ausgewählten Baumgruppe. Ein Beispielbaum, der verwendet wird, um zu demonstrieren, wie ggtree unterstützen das visuelle Erkunden oder Manipulieren des phylogenetischen Stammbaums (A). Die ggtree unterstützt die Visualisierung der ausgewählten Klade (B). Eine Clade kann durch Angabe einer Knotennummer ausgewählt oder durch den letzten gemeinsamen Vorfahren ausgewählter Spitzen bestimmt werden.

Es ist eine gängige Praxis, Kladen zu beschneiden oder zu kollabieren, damit bestimmte Aspekte eines Baumes hervorgehoben werden können. Die ggtree unterstützt das Kollabieren ausgewählter Kladen unter Verwendung der Kollapsfunktion, wie in Abbildung 4.6A gezeigt.

Abbildung 4.6: Ausgewählte Kladen kollabieren und kollabierte Kladen erweitern. Clades können zum Zusammenklappen (A) ausgewählt werden und die zusammengeklappten Clades können bei Bedarf wieder erweitert werden (B) als ggtree gespeichert alle Informationen über Artenbeziehungen. Grüne und rote Symbole wurden auf dem Baum angezeigt, um die zusammengebrochenen Kladen anzuzeigen.

Hier wurden zwei Kladen zusammengeklappt und durch grüne Kreise und rote Quadrate symbolische Punkte gekennzeichnet. Das Zusammenklappen ist eine gängige Strategie, um Kladen zusammenzuklappen, die zu groß sind, um sie vollständig anzuzeigen, oder die nicht das primäre Interesse der Studie sind. In ggtree, können wir erweitern (d.h., uncollapse) die kollabierten Äste mit der Expand-Funktion zurück, um Details der Artenbeziehungen zu zeigen, wie in Abbildung 4.6B gezeigt.

Die ggtree bietet eine weitere Option zum Verkleinern (oder Komprimieren) dieser Kladen über die scaleClade-Funktion. Auf diese Weise behalten wir die Topologie und die Zweiglängen komprimierter Kladen bei. Dies trägt dazu bei, Platz zu sparen, um die Kategorien hervorzuheben, die für die Studie von primärem Interesse sind.

Abbildung 4.7: Ausgewählte Klade skalieren. Clades können vergrößert (wenn Maßstab > 1 ) zum Hervorheben oder verkleinern, um Platz zu sparen.

Wenn Benutzer wichtige Kladen hervorheben möchten, können sie die scaleClade-Funktion mit einem Skalierungsparameter größer als 1 verwenden. Dann wird die ausgewählte Klade vergrößert. Benutzer können auch groupClade verwenden, um Kladen auszuwählen und sie mit verschiedenen Farben zu färben, wie in Abbildung 4.7 gezeigt.

Obwohl groupClade mit Klade (monophyletisch) gut funktioniert, befinden sich verwandte Taxa nicht unbedingt innerhalb einer Klade, sie können polyphyletisch oder paraphyletisch sein. Die ggtree implementierte groupOTU, um mit polyphyletic und paraphyletic zu arbeiten. Es akzeptiert einen Vektor von OTUs (Taxa-Name) oder eine Liste von OTUs und verfolgt von OTUs bis zu ihrem jüngsten gemeinsamen Vorfahren (MRCA) zurück und gruppiert sie, wie in Abbildung 4.8 gezeigt.

Abbildung 4.8: Gruppieren von OTUs. OTU-Clustering basierend auf ihren Beziehungen. Ausgewählte OTUs und ihre Vorfahren bis hin zum MRCA werden geclustert.

Um das Erkunden der Baumstruktur zu erleichtern, ggtree unterstützt das Drehen der ausgewählten Klade um 180 Grad mithilfe der Drehfunktion (Abbildung 4.9B). Die Position der unmittelbaren Nachkommen-Kladen des internen Knotens kann über die Flip-Funktion ausgetauscht werden (Abbildung 4.9C).

Abbildung 4.9: Erkunden der Baumstruktur. Eine Klade (gekennzeichnet durch einen dunkelgrünen Kreis) in einem Baum (A) kann um 180° gedreht werden (B) und die Positionen ihrer unmittelbar nachkommenden Kladen (blau und rot gefärbt) können ausgetauscht werden (C).

Die meisten Baummanipulationsfunktionen funktionieren auf Kladen, während ggtree stellt auch Funktionen zur Verfügung, um einen Baum zu manipulieren, einschließlich open_tree, um einen Baum in einem rechteckigen oder kreisförmigen Layout in ein Fächer-Layout umzuwandeln, und Rotate_tree-Funktion, um einen Baum um einen bestimmten Winkel sowohl in kreisförmigen als auch in Fächer-Layouts zu drehen, wie in Abbildung 4.10 und 4.11 gezeigt.

Abbildung 4.10: Umwandlung eines Baums in ein Fächer-Layout. Ein Baum kann durch open_tree mit spezifischen . in ein Fächer-Layout umgewandelt werden Winkel Parameter.

Abbildung 4.11: Rotierender Baum. Ein Kreis-/Lüfter-Layout-Baum kann nach jedem spezifischen gedreht werden Winkel.

4.3.5 Baumannotation unter Verwendung von Daten aus evolutionärer Analysesoftware

Kapitel 2 hat eingeführt mit treeio Pakete zum Parsen verschiedener Baumformate und häufig verwendeter Softwareausgaben, um stammesgeschichtliche Daten zu erhalten. Diese importierten Daten als S4-Objekte können direkt mit . visualisiert werden ggtree. Abbildung 4.4 zeigt einen Baum, der mit den in der NHX-Datei gespeicherten Informationen (Artenklassifizierung, Duplikationsereignis und Bootstrap-Wert) annotiert ist. PHYLODOGIE und RevBayes NHX-Dateien ausgeben, die von geparst werden können treeio und visualisiert von ggtree mit Annotation unter Verwendung ihrer Inferenzdaten.

Darüber hinaus sind die evolutionären Daten aus der Inferenz von TIER, MrBayes und RevBayes, Dn/DS Werte abgeleitet von CodeML, Ahnensequenzen abgeleitet von HyPhy, CodeML oder BaseML und Short-Read-Platzierung von EPA und Platzhalter kann verwendet werden, um den Baum direkt mit Anmerkungen zu versehen.

Abbildung 4.12: Kommentieren TIER Baum mit Länge_95%_HPD und posterior. Die glaubwürdigen Intervalle der Astlänge (95% HPD) wurden als rote horizontale Balken angezeigt und die posterior-Werte der Klade wurden in der Mitte der Äste angezeigt.

In Abbildung 4.12 wurde der Baum mit posterior > 0,9 visualisiert und annotiert und zeigte eine Längenunsicherheit (95% Highest Posterior Density (HPD)-Intervall).

Ahnensequenzen abgeleitet von HyPhy kann geparst werden mit treeio, während die Ersetzungen entlang jedes Baumzweigs automatisch berechnet und im phylogenetischen Baumobjekt gespeichert wurden (d.h., S4-Objekt). Die ggtree kann diese Informationen im Objekt verwenden, um den Baum mit Anmerkungen zu versehen, wie in Abbildung 4.13 gezeigt.

Abbildung 4.13: Annotierender Baum mit Aminosäuresubstitution, bestimmt durch Vorfahrensequenzen, abgeleitet von HYPHY. Aminosäuresubstitutionen wurden in der Mitte der Zweige angezeigt.

PAML'S BaseML und CodeML kann auch verwendet werden, um Ahnensequenzen abzuleiten, während CodeML Selektionsdruck ableiten kann. Nach dem Parsen dieser Informationen mit treeio, ggtree kann diese Informationen in dieselbe Baumstruktur integrieren und für die Annotation verwenden, wie in Abbildung 4.14 dargestellt.

Abbildung 4.14: Annotation von Baum mit Animosäuresubstitution und Dn/DS abgeleitet von CodeML. Zweige wurden neu skaliert und eingefärbt von Dn/DS Werte und Aminosäuresubstitutionen wurden in der Mitte der Zweige angezeigt.

Weitere Einzelheiten und Beispiele für die Kommentierung des Baums mit evolutionären Daten, die von verschiedenen Softwarepaketen abgeleitet wurden, finden Sie in den Online-Vignetten 9 .

4.3.6 Baumannotation basierend auf Baumklassen, die in anderen R-Paketen definiert sind

Die ggtree spielt eine einzigartige Rolle im R-Ökosystem, um die phylogenetische Analyse zu erleichtern. Es dient als generisches Werkzeug für die Baumvisualisierung und Annotation mit verschiedenen zugehörigen Daten aus verschiedenen Quellen. Die meisten der in der R-Community definierten phylogenetischen Baumklassen werden unterstützt, einschließlich obkData , phyloseq , phylo , multiPhylo , phylo4 und phylo4d . So dass ggtree können problemlos in ihre Analysen/Pakete integriert werden. Zum Beispiel, phyloseq Benutzer finden ggtree nützlich für die Visualisierung von Mikrobiomdaten und für weitere Anmerkungen, da ggtree unterstützt ein hohes Maß an Annotation mit Grammatik von Grafiken und einige seiner Funktionen sind in nicht verfügbar phyloseq. Hier Beispiele für die Verwendung ggtree zum Annotieren von obkData- und phyloseq-Baumobjekten werden demonstriert. Dort finden Sie Beispieldaten in Vignetten von OutbreakTools (Jombart et al. 2014) und phyloseq (McMurdie und Holmes 2013) Pakete.

Die okbData sind so definiert, dass sie inzidenzbasierte Ausbruchsdaten speichern, einschließlich Metadaten der Probenahme und Informationen infizierter Personen wie Alter und Auftreten von Symptomen. Die ggtree unterstützt das Parsen dieser Informationen, die verwendet wurden, um den Baum mit Anmerkungen zu versehen, wie in Abbildung 4.15 gezeigt.

Abbildung 4.15: Visualisieren eines obkData-Baumobjekts. x-Achse wurde nach der Zeitachse des Ausbruchs skaliert und die Spitzen wurden nach dem Standort verschiedener Personen gefärbt.

Die phyloseq-Klasse, die in der phyloseq Das Paket wurde zum Speichern von Mikrobiomdaten entwickelt, einschließlich phylogenetischer Baum, zugehöriger Probendaten und Taxonomiezuordnung. Es kann Daten aus gängigen Pipelines importieren, wie z QIIME (Kuczynski et al. 2011) , Mutter (Schloss et al. 2009) , DADA2 (Callahan et al. 2016) und PyroTagger (Kunin und Hugenholtz 2010) , usw.. Die ggtree unterstützt die Visualisierung des phylogenetischen Baums, der im phyloseq-Objekt gespeichert ist, und verwandte Daten können verwendet werden, um den Baum mit Anmerkungen zu versehen, wie in Abbildung 4.16 gezeigt.

Abbildung 4.16: Visualisieren von Phyloseq-Baumobjekten. Die Tipps wurden von Phylum eingefärbt und die entsprechende Häufigkeit über verschiedene Proben wurde als Joyplots visualisiert und nach der Baumstruktur sortiert.

4.3.7 Erweiterte Annotation zum phylogenetischen Baum

Die ggtree unterstützt die Grammatik von Grafiken, die in implementiert wurden ggplot2 Paket und bietet mehrere Ebenen und Funktionen, um die phylogenetische Visualisierung und Annotation zu erleichtern. Diese Schichten und Funktionen sind nicht für bestimmte Aufgaben ausgelegt, sondern sind Bausteine, die frei miteinander kombiniert werden können, um komplexe Baumfiguren zu erstellen. In früheren Sitzungen wurden einige wichtige Funktionen von . eingeführt ggtree. In dieser Sitzung wurden drei Beispiele vorgestellt, um die Verwendung verschiedener ggtree funktioniert zusammen, um eine komplexe Baumfigur mit Anmerkungen durch verknüpfte Daten und Inferenzergebnisse aus verschiedenen Analyseprogrammen zu konstruieren.

4.3.7.1 Beispiel 1: Kuratierte Geninformationen als Heatmap darstellen

In diesem Beispiel wird das Annotieren eines Baums mit verschiedenen Datenquellen (z.B., Standort, Probenahmejahr, kuratierte Genotypinformationen, usw.).

Der Baum wurde in einem kreisförmigen Layout visualisiert und mit den Informationen zum Standort der Stammprobenentnahme versehen. Ein geom_tippoint-Layer fügte den Baumspitzen kreisförmige symbolische Punkte hinzu und färbte sie nach ihrer Position. Zwei geom_tiplab2 wurden hinzugefügt, um Taxonnamen und Stichprobenjahre anzuzeigen.

Die kuratierten Geninformationen wurden weiter geladen und als Heatmap mithilfe der Gheatmap-Funktion mit angepassten Farben dargestellt. Die letzte Abbildung wurde in Abbildung 4.17 gezeigt.

Abbildung 4.17: Beispiel für das Annotieren eines Baums mit diversen zugehörigen Daten. Kreissymbole sind nach dem Ort der Probenahme der Dehnung gefärbt. Taxanamen und Probenahmejahre sind auf die Spitzen ausgerichtet. Kuratierte Geninformationen wurden als Heatmap visualisiert (in den äußeren Kreisen farbig umrandet).

4.3.7.2 Beispiel 2: Komplexe Baumannotationen

Die ggtree ermöglicht die Integration, den Vergleich und die Visualisierung verschiedener Beweise, die von unterschiedlicher Software abgeleitet werden, auf derselben Baumtopologie. Daten aus externen Dateien können zur Analyse und Visualisierung weiter integriert werden. Dieses Beispiel führt komplexe Baumannotationen mit evolutionären Daten ein, die von unterschiedlicher Software (TIER und CodeML in diesem Beispiel) und andere zugehörige Daten (z.B., Genotyptabelle).

Zuerst, TIER und CodeML Ausgaben wurden geparst, und die beiden Bäume mit den zugehörigen Daten wurden zu einem zusammengeführt. Nach dem Zusammenführen werden alle von diesen Softwarepaketen abgeleiteten statistischen Daten, einschließlich Divergenzzeit und Dn/DS wird in das merged_tree-Objekt eingebunden. Der Baum wurde zuerst im Zeitmaßstab visualisiert und seine Äste wurden mit Dn/DS, und kommentierte den Baum mit Posterior-Clade-Wahrscheinlichkeiten.

Die Baumäste wurden weiter mit Aminosäuresubstitutionen annotiert, die aus Taxonsequenzen und den aus importierten Vorfahrensequenzen berechnet wurden CodeML.

An den Baumspitzen wurden symbolische Punkte mit unterschiedlichen Farben angebracht, um die Wirtsarten der Influenzavirusproben zu unterscheiden (blau für den Menschen und rot für das Schwein).

Schließlich wurde eine Genotyptabelle (aus einer externen Datei importiert) als Heatmap geplottet und gemäß der Baumstruktur wie in Abbildung 4.18 gezeigt am Baum ausgerichtet.

Abbildung 4.18: Beispiel für das Annotieren eines Baums mit evolutionären Beweisen, die von unterschiedlicher Software abgeleitet wurden. Die x-Achse ist die Zeitskala (in Jahreseinheiten), abgeleitet von TIER. Die Äste sind durch ihre gefärbten Dn/DS Werte (wie in der linken Skala oben) abgeleitet von CodeML, und die internen Knotenlabels zeigen die Posterior-Wahrscheinlichkeiten, abgeleitet von TIER. Spitzenetiketten (Taxonnamen) und Kreise sind nach Arten gefärbt (Mensch in Blau und Schwein in Rot).Der Genotyp, der rechts als farbige Kästchen dargestellt ist, setzt sich aus den Abstammungslinien (entweder HuH3N2, Pdm/09 oder TRIG, eingefärbt wie in der rechten Legende oben) der acht Genomsegmente des Virus zusammen. Alle fehlenden Segmentsequenzen werden als leere Kästchen angezeigt.

4.3.7.3 Beispiel 3: Integrieren ggtree in Analysepipeline/Workflow

Im ersten Beispiel wurde eine Baumfigur mit externen Daten annotiert, während im zweiten Beispiel komplexere Annotationen mit evolutionären Daten eingeführt wurden, die von unterschiedlicher Software und anderen zugehörigen Daten abgeleitet wurden. Dieses Beispiel demonstriert die Integration ggtree zu einer Analysepipeline, die von der Nukleotidsequenz ausgeht, einen Baum aufbauend, mit R Paket zu abgeleiteten Ahnensequenzen und -zuständen und dann mit ggtree diese Schlussfolgerungen zu integrieren, um Ergebnisse zu visualisieren und zu interpretieren, um evolutionäre Muster zu identifizieren.

In diesem Beispiel sammelten wir 1498 H3-Sequenzen (Beschränkung des Hosts auf Avian, um die Sequenznummer für Demonstrationszwecke zu reduzieren) mit Kriterien einer Mindestlänge von 1000 bp (Zugriffsdatum: 2016/02/20). H3-Sequenzen wurden ausgerichtet durch MUSKEL (Edgar 2004) und der Baum wurde erstellt mit RAxML (Stamatakis 2014) mit GTRGAMMA Modell. Ahnensequenzen wurden geschätzt von phangorn (Schliep 2011) .

Die pml-Funktion berechnete die Wahrscheinlichkeit des Baums bei gegebener Sequenzausrichtung und optim.pml-Funktion optimierte verschiedene Parameter unter dem GTR-Modell. Die Funktion phyPML , implementiert in treeio, gesammelte Vorfahrensequenzen, abgeleitet von optim.pml, und bestimmte Aminosäuresubstitution durch Vergleich der Elternsequenz mit der Kindersequenz.

Wirtsinformationen wurden aus dem Taxanamen extrahiert und die Vorfahrenwirte wurden anhand der in . definierten Ass-Funktion geschätzt Affe Paket (Paradis, Claude und Strimmer 2004) mit maximaler Wahrscheinlichkeit. Dann mit ggtree wurde verwendet, um Kreise zu visualisieren, die durch die Host-Informationen eingefärbt wurden.

Abbildung 4.19: Beispiel für die Integration ggtree in der Analysepipeline. Ein phylogenetischer Baum der H3-Influenzaviren, der von RAxML. Ahnensequenzen wurden abgeleitet von phangorn und angestammte Wirtsinformationen geschätzt von Affe. Die ggtree ermöglicht die Integration von Informationen zur Visualisierung und weiteren Analyse. Der Baum wurde wie in der Legende oben rechts durch symbolische Kreise mit Host-Informationen gekennzeichnet.

Die ggtree lässt sich wie in diesem Beispiel demonstriert in eine Analysepipeline integrieren und ermöglicht die Kombination unterschiedlicher Datenquellen zu einem Baumobjekt. Wie in diesem Beispiel dargestellt, wurden Hostinformationen und Vorfahrensequenzen im Baumobjekt gespeichert. Danach ggtree ermöglicht weitere Vergleiche und Analysen. Benutzer können beispielsweise eine Aminosäuresubstitution mit einem Wirtssprung in Verbindung bringen, wie in Abbildung 4.20 gezeigt. Einige Standorte (um Position 400) sind über verschiedene Arten hinweg konservativ und einige Standorte (um Position 20) sind häufig mutiert, insbesondere für den Wirtssprung zur Stockente (Abbildung 4.20A). Interessanterweise neigen Mutationen, die gleichzeitig mit der Übertragung vom Huhn auf die Ente auftreten, dazu, sich im globalen HA-Kopf zu sammeln, während die über den zytoplasmatischen Schwanz des HA verteilten Mutationen häufig zu einer Übertragung von Stockenten führen, insbesondere bei Krickente auf Stockente und Ente auf Stockentengetriebe (Abbildung 4.20B). Diese Ergebnisse könnten die weiteren experimentellen Untersuchungen dieser Marker leiten, beispielsweise durch reverse genetische Studien.

Abbildung 4.20: Präferenzen bei der Aminosäuresubstitution. Verschiedene Orte haben unterschiedliche Mutationsfrequenzen. Mutationen, die zum Wirtssprung führen, haben unterschiedliche Präferenzen an Mutationsstellen.

4.3.8 Leistungsvergleich mit anderen baumbezogenen Paketen

Die Visualisierung und Annotation von Stammbäumen ist dank vieler verschiedener Pakete möglich. Besonders in Affe (Paradis, Claude und Strimmer 2004) und Phytools (Revell 2012) , die viele Funktionen zur Baummanipulation und Visualisierung im Basisplotsystem bieten. Die ggtree Paket bringt verschiedene Möglichkeiten der phylogenetischen Visualisierung und Annotation in die ggplot2 Plotsystem mit hoher Individualisierbarkeit durch den objektorientierten Ansatz der Grafik- und Datenkommunikation möglich. OutbreakTools (Jombart et al. 2014) und phyloseq (McMurdie und Holmes 2013) implementierten auch Baumansichtsfunktionen mit ggplot2 zur Darstellung von Daten aus Epidemiologie bzw. Mikrobiom. Einen umfassenden Vergleich der verschiedenen in diesen Paketen verfügbaren Funktionen finden Sie in Tabelle ??. Hier präsentiere ich die Benchmark-Performance dieser Pakete. Ein zufälliger Baum mit 1000 Blättern wurde für die grundlegende Baumvisualisierung verwendet, wie in Abbildung 4.21 gezeigt. Grundsätzlich ggtree und phyloseq sind zwei der robustesten und schnellsten Pakete zum Anzeigen phylogenetischer Bäume.

Abbildung 4.21: Laufzeitvergleich für einfache Baumvisualisierung. Visualisierung der Baumtopologie mit/ohne Taxanamen.

OutbreakTooks und phyloseq eigene Klassen definiert, um Baumobjekte und spezifische Daten aus der Epidemiologie bzw. dem Mikrobiom zu speichern. OutbreakTools funktioniert nur mit obkData-Objekten, während phyloseq funktioniert mit phylo- und phyloseq-Objekten. Wie OutbreakTools Phylo-Objekt kann nicht angezeigt werden, es wurde nicht in den Laufzeitvergleich der Anzeige phylogenetischer Bäume einbezogen. Obwohl phyloseq kann Phylo-Objekte anzeigen, es fehlt die Möglichkeit, einen phylogenetischen Baum mit Benutzerdaten zu kommentieren. Um die Leistung der phylogenetischen Baumannotation zu vergleichen, habe ich hier verwendet Affe und ggtree um die in . vorgestellten Beispiele zu reproduzieren OutbreakTools und phyloseq Vignetten. Bemerkenswert sind S4-Klassen, einschließlich obkData und Phylose, die in definiert sind OutbreakTools und phyloseq werden auch unterstützt von ggtree und Benutzer können den Operator + verwenden, um verwandte Annotation-Layer hinzuzufügen. Wie in Abbildung 4.22 gezeigt, Affe ist das schnellste Paket für Baumannotationen und ggtree übertreffen phyloseq und OutbreakTools.

Abbildung 4.22: Laufzeitvergleich für Baumanmerkungen. Beispiel für eine Baumannotation von . reproduzieren OutbreakTools und phyloseq mit Affe und ggtree.

Um die Visualisierung von phylogenetischen Bäumen mit unterschiedlicher Anzahl von Blättern weiter zu vergleichen, habe ich hier zufällige Bäume mit Blättern im Bereich von 10 bis 1000 in Schritten von 10 verwendet. Wie in Abbildung 4.23 dargestellt, Affe und Phytools sind schneller, wenn die Bäume klein sind, während ggtree und phyloseq Leistung besser mit großen Baum.

Abbildung 4.23: Laufzeit des Betrachtens des Baumes mit unterschiedlicher Anzahl von Blättern. Die langsamste Zeit, um einen phylogenetischen Baum mit 1000 Blättern anzuzeigen, beträgt nur 1 Sekunde. Alle diese Tools sind für den normalen Gebrauch schnell genug.

Der Benchmark wurde auf einem iMac 3.2G Intel Core i5 mit 16 GB Speicher unter OS X EI Capitan durchgeführt. Der Quellcode zur Reproduktion von Benchmark-Ergebnissen ist in Abbildung dargestellt ??, ??, ?? und ??. In den Geschwindigkeitstests von ggtree und andere Pakete mit kleiner bis mittlerer Größe, Affe und Phytools sind schneller als ggtree und phyloseq. Während für große Bäume, ggtree und phyloseq ist schneller als Affe und Phytools. Für einen einfachen Baum ohne Anmerkung: phyloseq ist schneller als ggtree, während beim Kommentieren eines Baums mit mehreren Ebenen, ggtree ist effizienter als beides OutbreakTools und phyloseq. Zusätzlich, ggtree ist ein allgemeines Werkzeug, das für die Baumannotation entwickelt wurde, während OutbreakTools und phyloseq werden für bestimmte Domänen implementiert, denen viele Funktionen für allgemeine Zwecke der Baumannotation fehlen. ggtree bieten auch eine intuitive und leicht zu erlernende grafische Grammatik, die ein hohes Maß an Anpassungen ermöglicht, die in anderen Paketen nicht verfügbar sind. Im Allgemeinen ist die Leistung von ggtree ist stabiler mit unterschiedlichen Baumgrößen und unterschiedlichen Anmerkungsebenen. Die ggtree läuft bei den meisten Baumvisualisierungs- und Annotationsproblemen schnell und zeichnet sich besonders bei der Visualisierung großer Baumstrukturen und komplexer Baumannotationen aus.


Ergebnisse

Brückenschlag zu anderen Bereichen

Die Annahme von Standards ist ein notwendiger, aber kein ausreichender Schritt zur Automatisierung der Analyse von Glykanen. Ein kritisches Merkmal/eine kritische Komponente in der Glykobioinformatik ist die Verfügbarkeit von standardisierten Ansätzen, um entfernte Datenbanken zu verbinden. Der Bericht der NAS (National Academy of Sciences) „Transforming Glycoscience: A Roadmap for the Future“ [3] veranschaulicht die Hürden und Probleme, mit denen die Forschungsgemeinschaft aufgrund der unzusammenhängenden und unvollständigen Natur vorhandener Datenbanken konfrontiert ist. Es wurden mehrere Initiativen gestartet, um die in den beschriebenen Datenbanken verfügbaren Informationsinhalte zu überbrücken.

Verknüpfung von Chemie und Biologie mit Datenkuratierung

GlycoSuiteDB [38, 39] enthält Glykanstrukturen, die von Glykoproteinen verschiedener biologischer Quellen abgeleitet sind, die in der Literatur beschrieben wurden, sowie freie Oligosaccharide, die aus biologisch wichtigen Flüssigkeiten (z. B. Milch, Speichel, Urin) isoliert wurden. Die kuratierte Datenbank bietet Kontextinformationen für an Proteine ​​gebundene Glykanstrukturen und stellt die häufig verlorene Verbindung zwischen einer Glykanstruktur und dem angehängten funktionellen Protein wieder her, wie in der UniProtKB-Ressource mit Querverweis auf GlycoSuiteDB angegeben. Diese Datenbank bildet die Grundlage der zentralen Glykan-Strukturdatenbank in UniCarbKB, die Informationen aus anderen Strukturdatenbanken wie EUROCarbDB, UniCarb-DB und GlycoBase einbinden soll. Die inhaltlichen und manuellen Kurationsprinzipien von GlycoSuiteDB bilden die Grundlage der zentralen Glycan-Strukturdatenbank von UniCarbKB, um die Qualität der in der Wissensdatenbank gespeicherten Informationen aufrechtzuerhalten. Die Links zu UniProtKB helfen dabei, Schlüsselinformationen zwischen glykosylierten Sites und spezifischen Strukturen zu verbinden.

Verknüpfung von Glykobioinformatik und Bioinformatik mithilfe von Webdiensten

Die Entwicklung eines Webservice-Protokolls ermöglicht die Suche in mehreren Datenbanken. Solche Technologien haben im Bereich der Biowissenschaften als offene Architektur, die die Interoperabilität über heterogene Plattformen hinweg erleichtert, viel Aufmerksamkeit erlangt. Ein laufendes Programm im Glykomikbereich ist die Aktivität der Arbeitsgruppe für Glykomik-Datenbankstandards (WGGDS), die ursprünglich durch ein CFG-Überbrückungsstipendium unterstützt wurde. Ein Arbeitsentwurf der Protokolle kann unter http://glycomics.ccrc.uga.edu/GlycomicsWiki/Informatics:Cross-Database_Search/Protocol_%28WGGDS%29 abgerufen werden. Das WGGDS ermöglichte es Entwicklern der CFG, EUROCarbDB/UniCarb-DB, GlycomeDB, GLYCOSCIENCES.de und RINGS, den Anfang einer Kommunikationsschnittstelle zu machen, die den Zugriff auf die Daten mehrerer autonomer Glykomikdatenbanken mit Schwerpunkt auf Strukturdatensammlungen ermöglicht .

Einige der Autoren haben eine komplette Suite von Repräsentational State Transfer (REST)-basierten Tools entwickelt, wobei neue und verbesserte Anwendungen erstellt werden. Jeder Dienst bietet Zugriff auf eine (Unter-)Struktursuche, die Fernabfragen nach vollständiger oder teilweiser Struktur unterstützt und einen Unterstruktur-/Epitop-Abgleich ermöglicht. Dies kann nur mit einer universellen Akzeptanz von Strukturcodierungsformaten und dem Zugang zu genauen und vollständigen Glykanübersetzern erreicht werden. Dabei entspricht das Sequenzattribut des XML-basierten Nachrichtenprotokolls dem GlydeII-Format (siehe oben), das zur Durchführung von Datenbanksuchen problemlos in GlycoCT- und/oder KCF-Formate konvertiert werden kann. Darüber hinaus haben einzelne Datenbanken diesen Service erweitert, um eine Suche auf Basis von Molekülmassen, experimentellen Nachweisen, z.B. Massenspektrometrie und Monosaccharidzusammensetzung. Um dieses Ziel zu erreichen, war es für die Glycobioinformatics-Community unerlässlich, sich auf Codierungsformate zu einigen und die Robustheit der Frameworks sicherzustellen.

Da Austauschschnittstelle (REST) ​​und Protokoll unabhängig vom Datenbank-Backend sind, lassen sich die WGGDS-Richtlinien einfach einbinden und um andere Datenbanken erweitern. Webdienste ermöglichen Forschern den Zugriff auf Daten und bieten Programmierern einen Rahmen zum Erstellen von Anwendungen, ohne die erforderlichen Datenbanken installieren und warten zu müssen.

Brücken zwischen Glykobioinformatik und Bioinformatik mit RDF

Semantic Web-Ansätze basieren auf gängigen Formaten, die die Integration und Aggregation von Daten aus mehreren Ressourcen ermöglichen, was möglicherweise ein Mittel zur Lösung von Datenkompatibilitätsproblemen im Glykomikbereich bietet. Das Semantic Web ist ein wachsender Bereich aktiver Forschung und Wachstum im Bereich der Biowissenschaften, der die Fähigkeit besitzt, bioinformatische Analysen durch Nutzung der riesigen Datenbestände, die in webzugänglichen Ressourcen (z. B. Bio2RDF [40]) angesammelt wurden, zu verbessern. Eine Reihe von Datenbanken, auf die häufig zugegriffen wird, wie beispielsweise UniProtKB, hat das Resource Description Framework (RDF) [41] als Format zur Unterstützung der Datenintegration und komplexerer Abfragen übernommen.

Mehrere Datenbankprojekte in Japan waren an der Einführung von RDF wie PDBj [42] oder JCGGDB [43] als Teil des Integrated Database Project http://lifesciencedb.jp beteiligt, das sich auf die Datenintegration heterogener Datensätze konzentriert, um Benutzern ein umfassende Datenressource, auf die von einem einzigen Endpunkt aus zugegriffen werden kann. Um RDF-Lösungen effizient zu implementieren, müssen sich die bestehenden Datenbankanbieter auf einen Standard zur Darstellung von Glykanstruktur- und Annotationsinformationen einigen. Zu diesem Zweck haben die Entwickler der großen Glykomdatenbanken wie BCSDB [17], GlycomeDB, JCGGDB, GLYCOSCIENCES.de und UniCarbKB während des BioHackathon 2012 http://2012.biohackathon.org einen Standardentwurf und eine prototypische Implementierung der RDF-Generierung entworfen.

GlycoRDF ist ein zukunftsorientiertes Gemeinschaftsprojekt, das den Bedarf an ausgeklügelten Daten-Mashups adressiert, die komplexe Forschungsfragen beantworten. Es ermöglicht auch die Integration von Informationen über verschiedene -omics hinweg, ein Potenzial, das durch die Einführung von Semantic Web-Technologien in anderen Bereichen, einschließlich Proteomik und Genomik, demonstriert wird. Die innovative Lösung von GlycoRDF erfordert das Sammeln von Wissen aus mehreren Ressourcen. Hier konzentrierten sich die ersten Aktivitäten auf die Bereitstellung normalisierter RDF-Dokumente, die aus der Fülle von Informationen der Partner stammen, die strukturelle und experimentelle Datensammlungen umfassen. Die an diesem Projekt beteiligten Entwickler haben 2013 die erste Version von GlycoRDF veröffentlicht [48].


Schlussfolgerungen

Wir haben gezeigt, dass mit ChemicalTagger strukturierte wissenschaftliche Daten aus unstrukturierter wissenschaftlicher Literatur extrahiert werden können. Wir haben auch gezeigt, dass wir mit Hilfe von Text-Mining- und Natural-Language-Processing-Tools sowohl chemische Einheiten als auch die Beziehungen zwischen diesen Einheiten extrahieren und die resultierenden Daten in einem maschinenverarbeitbaren Format zur Verfügung stellen können. Wir haben gezeigt, dass diese Grafiken für die Erstellung von hochinformativen Visualisierungen nützlich sind. Während die maschinelle Extraktion gute Ergebnisse liefern kann, bleibt sie dennoch ein Akt der „Informationsarchäologie“ und als solcher zwangsläufig unvollkommen. Wir fordern daher dringend auf, dass sich die wissenschaftliche Gemeinschaft zu einem Ethos bewegt, bei dem wissenschaftliche Daten in semantischer Form veröffentlicht werden und sowohl Autoren als auch Herausgeber sich verpflichtet fühlen, diese Informationen offen zugänglich zu machen. Sollte dies in erheblichem Umfang geschehen, würde dies zu einer Revolution führen, bei der jedes Jahr Millionen chemischer Synthesen automatisch maschinell analysiert werden können, was wiederum zu erheblichen Verbesserungen unserer wissenschaftlichen Fähigkeiten führen könnte. Chancen, die sich aus der großflächigen Verfügbarkeit semantischer Daten ergeben, umfassen:

Formale semantische Verifizierung veröffentlichter Informationen, die zu hochwertigeren Informationen von Autoren, für Gutachter und für die technische Verarbeitung führen.

Bessere Verständlichkeit durch Leser (einschließlich Maschinen).

Automatische Analyse von Reaktionsbedingungen und Ergebnissen.

Größere formale Darstellung chemischer Reaktionen.

Wir hoffen jedoch, dass die hier demonstrierten Extraktionswerkzeuge nur eine begrenzte Lebensdauer haben, bevor sie durch semantisches Authoring ersetzt werden.

Auswirkungen auf das Urheberrecht

Es ist wichtig zu beachten, dass diese Extraktionstools auf das Urheberrecht der Daten beschränkt sind. Patente und Open Access (CC-BY) Papiere erlauben explizit die Datenextraktion. Abschlussarbeiten können vom Urheberrecht oder ausdrücklichen Rechten innerhalb der Abschlussarbeit abhängen. Die meisten Chemieverlage sind nicht durchgängig Open Access und wir haben uns über mehrere Jahre mit ihnen beschäftigt, um eine einfache Antwort zu finden. Die Autoren haben dieses Problem bei beiden spezifischen Verlagen (z.B. Elsevier, die Tetrahedron herausgeben) und der STM Publisher's Association. Elsevier hat dies an seine Abteilung „Universal Access“ verwiesen und kann derzeit nicht sagen, ob dies zulässig ist oder nicht. Mit STM-Verlagen wurde vereinbart, dass bibliografische Daten Open (CC-BY oder CC0) sind. Derzeit besteht keine Einigung darüber, welche Daten extrahiert werden können.


Hintergrund

Taxonomien und Ontologien organisieren komplexes Wissen über Konzepte und deren Beziehungen. Die Biologie war eines der ersten Gebiete, in dem diese Konzepte verwendet wurden. Taxonomien sind vereinfachte Schemata, die bei der hierarchischen Klassifizierung von Konzepten oder Objekten helfen [1]. Sie sind normalerweise auf eine bestimmte Domäne und auf einen einzigen Beziehungstyp beschränkt, der einen Knoten mit einem anderen verbindet. Ontologien teilen die hierarchische Struktur von Taxonomien. Im Gegensatz zu Taxonomien haben sie jedoch oft mehrere Beziehungstypen und sind eigentlich darauf ausgelegt, eine formale Benennung der Typen, Eigenschaften und Wechselbeziehungen von Entitäten oder Konzepten in einer bestimmten Disziplin, Domäne oder Studienrichtung zu ermöglichen [2, 3]. Darüber hinaus bieten Ontologien ein System zum Erstellen von Beziehungen zwischen Konzepten über verschiedene Domänen hinweg. Sowohl Taxonomien als auch Ontologien können verwendet werden, um Wissenschaftlern zu helfen, ihr Verständnis der natürlichen Welt zu erklären, zu organisieren oder zu verbessern. Darüber hinaus können Taxonomien und Ontologien als standardisiertes Vokabular dienen, um Schlussfolgerungs- und Argumentationsfunktionen bereitzustellen. Tatsächlich werden Taxonomien und Ontologien in vielen wissenschaftlichen Bereichen, einschließlich der Biologie (der Linnean Taxonomie) [4], Geologie (das BGS Rock-Klassifikationsschema) [5], subatomare Physik (der achtfache Weg) [6], Astronomie (das stellare Klassifizierungssystem) [7, 8] und Pharmakologie (das ATC-Arzneimittelklassifizierungssystem) [9]. Eine der am weitesten verbreiteten Ontologien ist die Gene Ontology (GO) [10], die dazu dient, Gene und ihre Produkte hinsichtlich ihrer molekularen Funktionen, zellulären Lage und biologischen Prozesse zu annotieren. Ausgehend von einem spezifischen Enzym wie der humanen zytosolischen Phospholipase (PLA2G4A) und seiner GO-Annotation könnte man auf die zelluläre Position seines Substrats PC[14:0/22:1(13Z)] (HMDB07887) schließen. Da PLA2G4A mit dem GO-Begriff „phospholipid catabolic process“ annotiert ist, könnte außerdem gefolgert werden, dass PC[14:0/22:1(13Z)] ein Produkt dieses biologischen Prozesses ist.

Während Chemiker sehr erfolgreich eine standardisierte Nomenklatur (IUPAC) und standardisierte Methoden zum Zeichnen oder Austauschen chemischer Strukturen entwickelt haben [11, 12], fehlt der Chemie noch eine standardisierte, umfassende und klar definierte chemische Taxonomie oder chemische Ontologie, um robust chemische Strukturen charakterisieren, klassifizieren und kommentieren. Folglich haben Chemiker verschiedener chemischer Spezialisierungen oft versucht, domänenspezifische Ontologien zu erstellen. So klassifizieren Medizinalchemiker Chemikalien eher nach ihrer pharmazeutischen Wirkung (antihypertensiv, antibakteriell) [9], während Biochemiker Chemikalien eher nach ihrem biosynthetischen Ursprung (Leukotriene, Nukleinsäuren, Terpenoide) klassifizieren [13]. Leider gibt es für diese verschiedenen Klassifikationsschemata, von denen die meisten auf eine sehr kleine Anzahl von domänenspezifischen Molekülen beschränkt sind, keine einfache Eins-zu-Eins-Kartierung. Daher ist im letzten Jahrzehnt das Interesse an der Entwicklung einer universelleren chemischen Taxonomie und chemischen Ontologie gewachsen.

Bis heute waren die meisten Versuche, chemische Verbindungen zu klassifizieren und zu beschreiben, strukturbasiert. Dies liegt vor allem daran, dass die Bioaktivität einer Verbindung von ihrer Struktur beeinflusst wird [14]. Darüber hinaus kann die Struktur einer Verbindung leicht in verschiedenen Formaten dargestellt werden. Einige Beispiele für strukturbasierte chemische Klassifikationen oder ontologische Schemata sind die ChEBI-Ontologie [15], der Medical Subject Heading (MeSH) Thesaurus [16] und das LIPID MAPS Klassifikationsschema [13]. Diese Datenbanken und Ontologien/Thesauri sind ausgezeichnet und wurden unter anderem in verschiedenen Studien verwendet, einschließlich chemischer Anreicherungsanalyse [17] und wissensbasierter metabolischer Modellrekonstruktion [18]. Sie werden jedoch alle manuell erstellt, was den Klassifikations-/Annotationsprozess etwas mühsam, fehleranfällig und inkonsistent macht (Abb. 1). Darüber hinaus erfordern sie erhebliche menschliche Expertenzeit, sodass diese Klassifikationssysteme nur einen winzigen Bruchteil des bekannten chemischen Raums abdecken. So werden beispielsweise in der PubChem-Datenbank [19] nur 0,12% der >91.000.000 Verbindungen (Stand Juni 2016) tatsächlich über den MeSH-Thesaurus klassifiziert.

ein Valclavam ist in den Datenbanken PubChem (CID 126919) und ChEBI (CHEBI:9920) annotiert. B In PubChem wird es fälschlicherweise der Klasse der Beta-Lactame zugeordnet, bei denen es sich um Schwefelverbindungen handelt. Obwohl letztere entweder anorganisch oder organisch sein können, ist es darüber hinaus falsch, eine einzelne Verbindung sowohl als organisch als auch als anorganisch zu bezeichnen. Die Transitivität des ist ein Beziehung nicht erfüllt ist, was die Klassenschlussfolgerung erschwert. In ChEBI wird dieselbe Verbindung korrekt als Peptid klassifiziert. Die Annotation ist jedoch wie in PubChem unvollständig. Klassenzuordnungen unter anderem zu „Clavams“ und „Azetidinen“ fehlen

Es gibt noch einige andere, ältere oder weniger bekannte chemische Klassifikationsschemata, Ontologien oder Taxonomien, die erwähnenswert sind. Das Chemical Fragmentation Coding System [20] ist vielleicht das älteste Taxonomie- oder chemische Klassifikationsschema. Es wurde 1963 vom Derwent World Patent Index (DWPI) entwickelt, um die manuelle Klassifizierung von in Patenten gemeldeten chemischen Verbindungen zu erleichtern. Das System besteht aus 2200 numerischen Codes, die einem Satz vordefinierter, chemisch signifikanter Strukturfragmente entsprechen. Das System wird immer noch von Derwent-Indexern verwendet, die diesen Codes manuell patentierte Chemikalien zuweisen. Das System gilt jedoch als veraltet und komplex. Ebenso erfordert die Verwendung der chemischen Fragmentierungscodes Übung und umfassende Anleitung eines Experten. Eine automatisiertere Alternative zum Derwent-Index wurde in den 1970er Jahren entwickelt, der sogenannte HOSE-Code (Hierarchical Organization of Spherical Environments) [21]. Dieses hierarchische Unterstruktursystem ermöglicht die automatische Charakterisierung von Atomen und vollständigen Ringen in Bezug auf ihre sphärische Umgebung. Es verwendet einen einfach zu implementierenden Algorithmus, der in der NMR-Vorhersage chemischer Verschiebungen weit verbreitet ist. Das HOSE-System bietet jedoch weder eine benannte chemische Kategoriezuordnung noch eine Ontologie oder eine definierte chemische Taxonomie. In jüngerer Zeit wurde das System Chemical Ontology (CO) [22] beschrieben. CO wurde analog zum Gene Ontology (GO)-System entwickelt und war eine der ersten quelloffenen, automatisierten funktionellen Gruppenontologien, die formalisiert wurden. CO-funktionelle Gruppen können mit Checkmol [23], einem frei verfügbaren Programm, automatisch einer gegebenen Struktur zugeordnet werden. Die Zuordnung der Funktionsgruppen durch CO ist genau und konsistent und wurde auf mehrere kleine Datensätze angewendet. Das CO-System beschränkt sich jedoch auf nur

200 chemische Gruppen und deckt damit nur einen sehr begrenzten Teil des chemischen Raums ab. Darüber hinaus ist Checkmol sehr langsam und bei sehr großen Datensätzen unpraktisch. SODIAC [24] ist ein weiteres vielversprechendes Werkzeug für die automatische Klassifizierung von Verbindungen. Es verwendet eine umfassende chemische Ontologie und eine elegante strukturbasierte Logik. SODIAC ist ein gut durchdachtes kommerzielles Softwarepaket, das eine sehr schnelle und konsistente Klassifizierung von Verbindungen ermöglicht. Die zugrunde liegende chemische Ontologie kann kostenlos heruntergeladen werden und die geschlossene Software SODIAC ist für Akademiker kostenlos. Die Tatsache, dass es Closed-Source ist, schränkt offensichtlich die Möglichkeiten für Community-Feedback oder Entwicklung ein. Darüber hinaus bietet die SODIAC-Ontologie für die meisten ihrer Begriffe keine Textdefinitionen und ist in ihrer Abdeckung von anorganischen und metallorganischen Verbindungen eingeschränkt. Andere bemerkenswerte Bemühungen, die auf die chemische Klassifizierung oder das Clustering gerichtet sind, umfassen Methoden auf der Grundlage von Maximum Common Substructure (MCS) [25, 26], eine iterative Methode zur Gerüstzerlegung, die von Shuffenhauer et al. [27] und eine semantikbasierte Methode von Chepelev et al. [28]. Die meisten davon sind jedoch Proof-of-Principle-Methoden und wurden nur an einer kleinen Anzahl von Verbindungsklassen validiert, die nur einen winzigen Teil des reichen chemischen Raums abdecken. Außerdem sind sie sehr datensatzabhängig. Als Ergebnis entsprechen die Klassifikationen nicht den Nomenklaturerwartungen der chemischen Gemeinschaft, insbesondere für komplexe Verbindungsklassen.

Insgesamt sollte klar sein, dass, obwohl viele Versuche unternommen wurden, chemische Taxonomien oder Ontologien zu erstellen, viele proprietäre oder „geschlossene Quellen“ sind, die meisten eine manuelle Analyse oder Annotation erfordern, die meisten im Umfang begrenzt sind und viele keine aussagekräftigen Namen oder Definitionen enthalten oder Deskriptoren. Diese Mängel verdeutlichen die Notwendigkeit, offene, quelloffene, schnelle, vollständig automatisierte und umfassende Tools zur chemischen Klassifizierung mit robusten Ontologien zu entwickeln, die Ergebnisse liefern, die den Erwartungen von Chemikern (d. h. Fachexperten) und der Gemeinschaft entsprechen. Darüber hinaus müssen solche Werkzeuge chemische Stoffe schnell auf eine konsistente Weise klassifizieren, die unabhängig von der Art der analysierten chemischen Stoffe ist.

Die Entwicklung eines vollständig automatisierten, umfassenden Chemikalienklassifizierungstools erfordert auch die Verwendung einer klar definierten Chemikalienhierarchie, sei es eine Taxonomie oder eine Ontologie. Das bedeutet, dass die Kriterien für den Hierarchieaufbau, die Beziehungstypen und der Umfang der Hierarchie klar definiert sein müssen. Darüber hinaus sind klare Klassifikationsregeln und ein umfassendes Datenwörterbuch (oder Ontologie) erforderlich. Darüber hinaus erfordert eine umfassende chemische Klassifizierung, dass die in der Taxonomie/Ontologie vorhandenen chemischen Kategorien in einem computerinterpretierbaren Format genau beschrieben werden. Da ständig neue chemische Verbindungen und neue „Chemien“ entwickelt oder entdeckt werden, muss die Taxonomie/Ontologie flexibel sein und eine Erweiterung darf keine grundlegende Änderung des Klassifikationsverfahrens erzwingen. Diesbezüglich haben Hasting et al. [29] schlugen eine Liste von Prinzipien vor, die die Entwicklung eines intelligenten Klassifikationssystems auf der Grundlage chemischer Strukturen erleichtern würden. Eines der Hauptkriterien in diesem Schema ist die Möglichkeit, verschiedene elementare Merkmale durch Kompositionalität zu komplexen Kategoriedefinitionen zu kombinieren. Dies ist sehr wichtig, da chemische Klassen strukturell verschieden sind. Darüber hinaus erfordert eine genaue Beschreibung ihrer Kernstrukturen manchmal die Fähigkeit, Einschränkungen wie beispielsweise Substitutionsmuster auszudrücken. Dies kann heute in gewissem Umfang durch den Einsatz von logischen Verknüpfungen und Strukturbehandlungstechnologien wie dem SMiles ARbitrary Target Specification (SMARTS)-Format erreicht werden.

In diesem Papier beschreiben wir eine umfassende, flexible, berechenbare chemische Taxonomie zusammen mit einer vollständig annotierten chemischen Ontologie (ChemOnt) und einem Chemical Classification Dictionary. Diesen Komponenten liegt ein über das Internet zugängliches Computerprogramm namens ClassyFire zugrunde, das eine automatisierte regelbasierte Strukturklassifizierung praktisch aller bekannten chemischen Einheiten ermöglicht. ClassyFire nutzt eine Reihe moderner Rechentechniken und umgeht die meisten Einschränkungen der zuvor genannten Systeme und Softwaretools. Dieses Papier beschreibt auch die Gründe für ClassyFire, seine Klassifizierungsregeln, das Design seiner Taxonomie, seine Leistung unter Testbedingungen und seine möglichen Anwendungen. ClassyFire wurde erfolgreich verwendet, um >6000 Moleküle in DrugBank [30], >25.000 Moleküle im LIPID MAPS Lipidomics Gateway [31], >42.000 Moleküle in HMDB [32], >43.000 Verbindungen in ChEBI [15] zu klassifizieren und zu kommentieren. und >60.000.000 Moleküle unter anderem in PubChem [19]. Diese Verbindungen decken ein breites Spektrum chemischer Typen wie Medikamente, Lipide, Nahrungsmittelverbindungen, Toxine, sekundäre Pflanzenstoffe und viele andere natürliche sowie synthetische Moleküle ab. ClassyFire ist unter http://classyfire.wishartlab.com frei verfügbar. Darüber hinaus bietet die in Ruby geschriebene ClassyFire-API programmgesteuerten Zugriff auf den ClassyFire-Server und die Datenbank. Es ist unter https://bitbucket.org/wishartlab/classyfire_api verfügbar.


Gibt es Tools zum automatischen Parsen von Glykannamen in Baumstrukturen? - Biologie

Version 5.9.1

Der Link Grammar Parser zeigt die linguistische (natürlich sprachliche) Struktur von Englisch, Russisch, Arabisch, Persisch und begrenzten Teilmengen von einem halben Dutzend anderer Sprachen. Diese Struktur ist ein Graph von getippten Links (Kanten) zwischen den Wörtern in einem Satz. Man kann die konventionelleren HPSG- (Bestandteil-) und Abhängigkeitsstil-Parsen von Link Grammar erhalten, indem man eine Sammlung von Regeln zum Konvertieren in diese unterschiedlichen Formate anwendet. Dies ist möglich, weil Link Grammar etwas "tiefer" in die "syntaktisch-semantische" Struktur eines Satzes eindringt: Sie liefert wesentlich feinkörnigere und detailliertere Informationen als das, was in herkömmlichen Parsern üblich ist.

Die Theorie des Link Grammar Parsings wurde ursprünglich 1991 von Davy Temperley, John Lafferty und Daniel Sleator entwickelt, damals Professoren für Linguistik und Informatik an der Carnegie Mellon University. Die drei ersten Veröffentlichungen zu dieser Theorie bieten die beste Einführung und den besten Überblick, seitdem gibt es Hunderte von Veröffentlichungen, die die Ideen weiter untersuchen, untersuchen und erweitern.

Obwohl das aktuelle Link Grammar-Paket auf der ursprünglichen Carnegie-Mellon-Codebasis basiert, hat es sich dramatisch weiterentwickelt und unterscheidet sich grundlegend von früheren Versionen. Es gab unzählige Fehlerbehebungen, die Leistung hat sich um mehr als eine Größenordnung verbessert. Das Paket ist vollständig multithreaded, vollständig UTF-8-fähig und wurde aus Sicherheitsgründen bereinigt, um die Cloud-Bereitstellung zu ermöglichen. Die Parse-Abdeckung des Englischen wurde drastisch verbessert, andere Sprachen wurden hinzugefügt (vor allem Russisch). Es gibt eine Reihe neuer Funktionen, darunter Unterstützung für Morphologie, semantische Auswahl mit logarithmischer Wahrscheinlichkeit und einen ausgeklügelten Tokenizer, der weit über die durch Leerzeichen getrennte Satzteilung hinausgeht. Detaillierte Listen finden Sie im ChangeLog.

Dieser Code wird unter der LGPL-Lizenz veröffentlicht, wodurch er mit wenigen Einschränkungen sowohl für den privaten als auch für den kommerziellen Gebrauch frei verfügbar ist. Die Lizenzbedingungen sind in der LIZENZ-Datei angegeben, die dieser Software beiliegt.

Weitere Informationen finden Sie auf der Hauptseite. Diese Version ist eine Fortsetzung des ursprünglichen CMU-Parsers.

Ab Version 5.9.0 enthält das System ein experimentelles System zum Generieren von Sätzen. Diese werden mithilfe einer API zum Ausfüllen der Leerzeichen angegeben, bei der Wörter durch Platzhalter ersetzt werden, wenn das Ergebnis ein grammatikalisch gültiger Satz ist. Weitere Details finden Sie auf der man-Seite: man link-generator (im man-Unterverzeichnis).

Dieser Generator wird im OpenCog Language Learning-Projekt verwendet, das darauf abzielt, automatisch Link-Grammatiken aus Korpora zu lernen, wobei brandneue und innovative informationstheoretische Techniken verwendet werden, die denen in künstlichen neuronalen Netzen (Deep Learning) ähnlich sind, jedoch explizit symbolische Darstellungen verwenden .

Der Parser enthält APIs in verschiedenen Programmiersprachen sowie ein praktisches Befehlszeilentool zum Spielen. Hier ist eine typische Ausgabe:

Dieses ziemlich geschäftige Display veranschaulicht viele interessante Dinge. Zum Beispiel verbindet der Ss*b-Link das Verb und das Subjekt und zeigt an, dass das Subjekt Singular ist. Ebenso verbindet der Ost-Link das Verb und das Objekt und zeigt auch an, dass das Objekt Singular ist. Der WV-Link (verb-wall) zeigt auf das Hauptverb des Satzes, während der Wd-Link auf das Haupt-Substantiv zeigt. Der Xp-Link verbindet sich mit dem nachgestellten Satzzeichen. Der Ds**c-Link verbindet das Nomen mit dem Determinator: Es bestätigt erneut, dass das Nomen Singular ist und auch, dass das Nomen mit einem Konsonanten beginnt. (Der hier nicht benötigte PH-Link wird verwendet, um die phonetische Übereinstimmung zu erzwingen, indem 'a' von 'an' unterschieden wird). Diese Linktypen sind in der englischen Linkdokumentation dokumentiert.

Am unteren Rand der Anzeige befindet sich eine Auflistung der "Disjunkte", die für jedes Wort verwendet werden. Die Disjunkte sind einfach eine Liste der Konnektoren, die verwendet wurden, um die Verbindungen zu bilden. Sie sind besonders interessant, weil sie als extrem feinkörnige Form einer "Wortart" dienen. So zum Beispiel: Das disjunkte S-O+ weist auf ein transitives Verb hin: Es ist ein Verb, das sowohl ein Subjekt als auch ein Objekt nimmt. Das obige zusätzliche Markup zeigt an, dass 'is' nicht nur als transitives Verb verwendet wird, sondern auch auf feinere Details: ein transitives Verb, das ein Singularsubjekt verwendet und als Kopfverb eines Satzes verwendet wurde (als solches verwendet werden kann). Der Gleitkommawert ist der "Kosten" des Disjunkts, der sehr grob die Idee der Log-Wahrscheinlichkeit dieser speziellen grammatikalischen Verwendung widerspiegelt. So wie Wortarten mit Wortbedeutungen korrelieren, so korrelieren auch feinkörnige Wortarten mit viel feineren Unterscheidungen und Bedeutungsabstufungen.

Der Link-Grammatik-Parser unterstützt auch die morphologische Analyse. Hier ein Beispiel auf Russisch:

Der LL-Link verbindet den Stamm 'тест' mit dem Suffix 'а'. Der MVA-Link ist nur mit dem Suffix verbunden, da im Russischen die Suffixe die gesamte syntaktische Struktur tragen und nicht die Stämme. Das russische Lexikon ist hier dokumentiert.

Eine erweiterte Übersicht und Zusammenfassung finden Sie auf der Wikipedia-Seite zur Link-Grammatik, die die meisten wichtigen und wichtigsten Aspekte der Theorie berührt. Es ersetzt jedoch nicht die zum Thema veröffentlichten Originalarbeiten:

  • Daniel D. K. Sleator, Davy Temperley, "Parsing English with a Link Grammar" Oktober 1991 CMU-CS-91-196.
  • Daniel D. Sleator, Davy Temperley, "Englisch mit einer Link-Grammatik analysieren", Dritter internationaler Workshop zu Parsing-Technologien (1993).
  • Dennis Grinberg, John Lafferty, Daniel Sleator, "A Robust Parsing Algorithm for Link Grammars", August 1995 CMU-CS-95-125.
  • John Lafferty, Daniel Sleator, Davy Temperley, "Grammatical Trigrams: A Probabilistic Model of Link Grammar", 1992 AAAI-Symposium zu probabilistischen Ansätzen für natürliche Sprache.

Es gibt viele weitere Artikel und Referenzen, die auf der primären Link Grammar-Website aufgeführt sind.

Siehe auch die C/C++ API-Dokumentation. Bindungen für andere Programmiersprachen, einschließlich Python3, Java und node.js, finden Sie im Bindings-Verzeichnis. (Es gibt zwei Sätze von Javascript-Bindungen: einen Satz für die Bibliotheks-API und einen anderen Satz für den Befehlszeilen-Parser.)

Inhalt Beschreibung
LIZENZ Die Lizenz, die die Nutzungsbedingungen beschreibt
Link-Grammatik/*.c Das Programm. (Geschrieben in ANSI-C)
---- ----
Bindungen/Autoit/ Optionale AutoIt-Sprachbindungen.
Bindungen/Java/ Optionale Java-Sprachbindungen.
Bindungen/js/ Optionale JavaScript-Sprachbindungen.
Bindungen/Lisp/ Optionale Common Lisp-Sprachbindungen.
Bindings/node.js/ Optionale node.js-Sprachbindungen.
Bindungen/ocaml/ Optionale OCaML-Sprachbindungen.
Bindungen/Python/ Optionale Python3-Sprachbindungen.
Bindungen/Python-Beispiele/ Beispiel für die Verwendung der Link-Grammatik-Testsuite und der Python-Sprachbindung.
Bindungen/Schluck/ SWIG-Schnittstellendatei, für andere FFI-Schnittstellen.
Bindungen/vala/ Optionale Vala-Sprachbindungen.
---- ----
Daten/de/ Englischsprachige Wörterbücher.
data/de/4.0.dict Die Datei mit den Wörterbuchdefinitionen.
data/de/4.0.wissen Die Nachbearbeitungs-Wissensdatei.
data/de/4.0.constituents Die konstituierende Wissensdatei.
data/de/4.0.affix Die Affix-Datei (Präfix/Suffix).
data/de/4.0.regex Auf regulären Ausdrücken basierender Morphologie-Rater.
data/de/tiny.dict Ein kleines Beispielwörterbuch.
Daten/de/Wörter/ Ein Verzeichnis voller Wortlisten.
data/de/corpus*.batch Beispielkorpora zum Testen.
---- ----
Daten/ru/ Ein vollwertiges Russisch-Wörterbuch
Daten/ar/ Ein ziemlich vollständiges Arabisch-Wörterbuch
Daten/fa/ Ein persisches (Farsi) Wörterbuch
Daten/de/ Ein kleiner Prototyp des deutschen Wörterbuchs
Daten/lt/ Ein kleiner Prototyp des litauischen Wörterbuchs
Daten/ID/ Ein kleiner Prototyp des indonesischen Wörterbuchs
Daten/vn/ Ein kleiner Prototyp eines vietnamesischen Wörterbuchs
Daten/er/ Ein experimentelles Hebräisch-Wörterbuch
Daten/kz/ Ein experimentelles kasachisches Wörterbuch
Daten/tr/ Ein experimentelles türkisches Wörterbuch
---- ----
Morphologie/ar/ Ein arabischer Morphologie-Analysator
Morphologie/fa/ Ein persischer Morphologie-Analysator
---- ----
LIZENZ Die Lizenz für diesen Code und diese Daten
Änderungsprotokoll Ein Kompendium der jüngsten Veränderungen.
konfigurieren Das GNU-Konfigurationsskript
autogen.sh Konfigurations-Wartungstool des Entwicklers
debuggen/ Informationen zum Debuggen der Bibliothek
msvc/ Microsoft Visual-C-Projektdateien
mingw/ Informationen zur Verwendung von MinGW unter MSYS oder Cygwin

AUSPACKEN und Unterschriftsprüfung

Das System wird im herkömmlichen tar.gz-Format verteilt und kann mit dem Befehl tar -zxf link-grammar.tar.gz in der Befehlszeile extrahiert werden.

Ein Tarball der neuesten Version kann heruntergeladen werden von:
http://www.abisource.com/downloads/link-grammar

Die Dateien wurden digital signiert, um sicherzustellen, dass der Datensatz während des Downloads nicht beschädigt wurde und um sicherzustellen, dass keine böswilligen Änderungen an den Code-Interna durch Dritte vorgenommen wurden. Die Signaturen können mit dem gpg-Befehl überprüft werden:

gpg --verify link-grammar-5.9.1.tar.gz.asc

die eine Ausgabe erzeugen soll, die identisch ist mit (außer dem Datum):

Alternativ können die md5-Prüfsummen verifiziert werden. Diese bieten keine kryptografische Sicherheit, können jedoch einfache Korruption erkennen. Um die Prüfsummen zu überprüfen, geben Sie md5sum -c MD5SUM in der Befehlszeile ein.

Tags in git können wie folgt überprüft werden:

Geben Sie in der Befehlszeile Folgendes ein, um die gemeinsam genutzte Link-Grammatik-Bibliothek und das Demoprogramm zu kompilieren:

Um zu installieren, ändern Sie den Benutzer in "root" und sagen Sie

Dies installiert die Bibliothek liblink-grammar.so in /usr/local/lib , die Header-Dateien in /usr/local/include/link-gramar und die Wörterbücher in /usr/local/share/link-grammar . Durch Ausführen von ldconfig wird der Cache der gemeinsam genutzten Bibliothek neu erstellt. Um zu überprüfen, ob die Installation erfolgreich war, führen Sie (als Nicht-Root-Benutzer) aus.

Optionale Systembibliotheken

Die Link-Grammatik-Bibliothek verfügt über optionale Funktionen, die automatisch aktiviert werden, wenn configure bestimmte Bibliotheken erkennt. Diese Bibliotheken sind auf den meisten Systemen optional, und wenn die von ihnen hinzugefügte Funktion gewünscht wird, müssen die entsprechenden Bibliotheken installiert werden, bevor configure ausgeführt wird.

Die Namen der Bibliothekspakete können auf verschiedenen Systemen variieren (fragen Sie bei Bedarf Google nach. ). Zum Beispiel können die Namen -devel anstelle von -dev enthalten oder ganz fehlen. Die Bibliotheksnamen dürfen ohne das Präfix lib sein.

  • libsqlite3-dev (für SQLite-gestütztes Wörterbuch)
  • libz1g-dev oder libz-devel (wird derzeit für das mitgelieferte minisat2 benötigt)
  • libedit-dev (siehe Editline)
  • libhunspell-dev oder libaspell-dev (und das entsprechende englische Wörterbuch).
  • libtre-dev oder libpcre2-dev (normalerweise viel schneller als die libc REGEX-Implementierung und wird für die Korrektheit unter FreeBSD und Cygwin benötigt)

Hinweis: Von BSD abgeleitete Betriebssysteme (einschließlich macOS) benötigen die argp-Standalone-Bibliothek, um das Link-Generator-Programm zu erstellen.

Wenn libedit-dev installiert ist, können die Pfeiltasten verwendet werden, um die Eingabe in das Link-Parser-Tool zu bearbeiten, die Pfeiltasten nach oben und unten rufen vorherige Eingaben auf. Sie möchten, dass es das Testen und Bearbeiten viel einfacher macht.

Zwei Versionen von node.js-Bindungen sind enthalten. Eine Version umschließt die Bibliothek, die andere verwendet emscripten, um das Befehlszeilentool zu umschließen. Die Bibliotheksbindungen befinden sich in Bindings/node.js, während sich der Emscripten-Wrapper in Bindings/js befindet.

Diese werden mit npm erstellt. Zuerst müssen Sie die C-Kernbibliothek erstellen. Dann gehen Sie wie folgt vor:

Dadurch werden die Bibliotheksbindungen erstellt und auch ein kleiner Komponententest ausgeführt (der bestanden werden sollte). Ein Beispiel finden Sie in Bindings/node.js/examples/simple.js .

Gehen Sie für den Befehlszeilen-Wrapper wie folgt vor:

Die Python3-Bindungen werden standardmäßig erstellt, sofern die entsprechenden Python-Entwicklungspakete installiert sind. (Python2-Bindungen werden nicht mehr unterstützt.)

  • Linux:
    • Systeme, die 'rpm'-Pakete verwenden: python3-devel
    • Systeme, die 'deb'-Pakete verwenden: python3-dev
    • Installieren Sie Python3 von https://www.python.org/downloads/windows/ . Außerdem müssen Sie SWIG von http://www.swig.org/download.html installieren.
    • Installieren Sie Python3 mit HomeBrew. Hinweis: Bei neueren Anaconda-Python-Versionen ist der Build-Prozess erfolgreich, aber das Laden des resultierenden Moduls führt zu einem Absturz. Wenn Sie ein macOS-Entwickler sind, brauchen wir dabei Hilfe. Sehen Sie sich die relevanten Issues im GitHub-Repository an (suchen Sie dort nach "Anaconda").
      Anakonda.

    HINWEIS: Bevor Sie configure ausgeben (siehe unten), müssen Sie überprüfen, ob die erforderlichen Python-Versionen mit Ihrem PATH aufgerufen werden können.

    Die Verwendung der Python-Bindungen ist OPTIONAL Sie benötigen diese nicht, wenn Sie keine Link-Grammatik mit Python verwenden möchten. Wenn Sie Python-Bindungen deaktivieren möchten, verwenden Sie:

    Das Modul linkgrammar.py bietet eine High-Level-Schnittstelle in Python. Die Skripte example.py undsatz-check.py bieten eine Demo, und tests.py führt Unit-Tests aus.

    Standardmäßig versucht das Makefile, die Java-Bindungen zu erstellen. Die Verwendung der Java-Bindungen ist OPTIONAL Sie benötigen diese nicht, wenn Sie die Link-Grammatik nicht mit Java verwenden möchten. Sie können das Erstellen der Java-Bindungen überspringen, indem Sie sie wie folgt deaktivieren:

    Wenn jni.h nicht gefunden wird oder wenn ant nicht gefunden wird, werden die Java-Bindungen nicht erstellt.

    Hinweise zum Auffinden von jni.h :
    Einige gängige Java-JVM-Distributionen (vor allem die von Sun) legen diese Datei an ungewöhnlichen Orten ab, wo sie nicht automatisch gefunden werden kann. Um dies zu beheben, stellen Sie sicher, dass die Umgebungsvariable JAVA_HOME richtig gesetzt ist. Das configure-Skript sucht nach jni.h in $JAVA_HOME/Headers und in $JAVA_HOME/include untersucht es auch die entsprechenden Speicherorte für $JDK_HOME . Wenn jni.h immer noch nicht gefunden werden kann, geben Sie den Speicherort mit der Variablen CPPFLAGS an:

    Bitte beachten Sie, dass die Verwendung von /opt nicht standardmäßig ist und die meisten Systemtools dort installierte Pakete nicht finden.

    Das Installationsziel /usr/local kann mit der Standardoption configure --prefix von GNU überschrieben werden, zum Beispiel:

    Durch die Verwendung von pkg-config (siehe unten) können nicht standardmäßige Installationsorte automatisch erkannt werden.

    Zusätzliche Konfigurationsoptionen werden gedruckt von

    Das System wurde getestet und funktioniert gut auf 32- und 64-Bit-Linux-Systemen, FreeBSD, macOS sowie auf Microsoft Windows-Systemen. Es folgen spezifische betriebssystemabhängige Hinweise.

    Endbenutzer sollten den Tarball herunterladen (siehe AUSPACKEN und Signaturprüfung).

    Die aktuelle GitHub-Version ist für Entwickler gedacht (einschließlich aller, die bereit sind, einen Fix, ein neues Feature oder eine Verbesserung bereitzustellen). Die Spitze des Master-Zweigs ist oft instabil und kann während der Entwicklung manchmal fehlerhaften Code enthalten. Es erfordert auch die Installation von Entwicklungstools, die nicht standardmäßig installiert sind. Aus diesen Gründen wird von der Verwendung der GitHub-Version für normale Endbenutzer abgeraten.

    Klonen Sie es: git clone https://github.com/opencog/link-grammar.git
    Oder laden Sie es als ZIP herunter:
    https://github.com/opencog/link-grammar/archive/master.zip

    Tools, die möglicherweise installiert werden müssen, bevor Sie Link-Grammatik erstellen können:

    make (möglicherweise wird die gmake-Variante benötigt)
    m4
    gcc oder clang
    autoconf
    libtool
    autoconf-archiv
    pkg-config
    pip und/oder pip3 (für die Python-Bindungen)

    Optional:
    swig (für Sprachbindungen)
    biegen
    Apache Ant (für Java-Bindungen)
    graphviz (wenn Sie die Wort-Grafik-Anzeigefunktion verwenden möchten)

    Die GitHub-Version enthält kein Konfigurationsskript. Verwenden Sie zum Generieren:

    Wenn Fehler auftreten, stellen Sie sicher, dass Sie die oben aufgeführten Entwicklungspakete installiert haben und Ihre Systeminstallation auf dem neuesten Stand ist. Insbesondere das Fehlen von autoconf oder autoconf-archive kann zu seltsamen und irreführenden Fehlern führen.

    Weitere Informationen zur Vorgehensweise finden Sie im Abschnitt ERSTELLEN des Systems und den entsprechenden Abschnitten danach.

    Zusätzliche Hinweise für Entwickler

    Konfigurieren debuggen Modus, verwenden:

    Es fügt einigen Verifizierungs-Debug-Code und Funktionen hinzu, die mehrere Datenstrukturen hübsch drucken können.

    Eine Funktion, die für das Debugging nützlich sein kann, ist die Wort-Graph-Anzeige. Verwenden Sie die Konfigurationsoption --enable-wordgraph-display, um sie zu aktivieren. Weitere Informationen zu dieser Funktion finden Sie unter Word-Graph-Anzeige.

    Die aktuelle Konfiguration hat ein offensichtliches Problem beim Mischen von Standard-C++-Bibliotheken, wenn gcc verwendet wird (ein Fix ist willkommen). Die gängige Praxis bei FreeBSD ist jedoch, mit clang zu kompilieren, und dieses Problem tritt nicht auf. Außerdem werden die Zusatzpakete unter /usr/local installiert.

    So sollte configure aufgerufen werden:

    Beachten Sie, dass pcre2 ein erforderliches Paket ist, da die vorhandene libc-regex-Implementierung nicht das erforderliche Maß an Regex-Unterstützung bietet.

    Einige Pakete haben andere Namen als die in den vorherigen Abschnitten genannten:

    minisat (minisat2) pkgconf (pkg-config)

    Plain-Vanilla-Link-Grammatik sollte wie oben beschrieben auf Apple macOS problemlos kompiliert und ausgeführt werden. Zu diesem Zeitpunkt gibt es keine gemeldeten Probleme.

    Wenn Sie die Java-Bindungen NICHT benötigen, sollten Sie mit ziemlicher Sicherheit konfigurieren mit:

    Java erfordert standardmäßig eine 64-Bit-Binärdatei, und nicht alle macOS-Systeme haben eine 64-Bit-Entwicklungsumgebung installiert.

    Wenn Sie Java-Bindungen wünschen, stellen Sie sicher, dass Sie die Umgebungsvariable JDK_HOME auf eine beliebige Stelle von <Headers/jni.h> setzen. Setzen Sie die Variable JAVA_HOME auf die Position des Java-Compilers. Stellen Sie sicher, dass Sie ant installiert haben.

    Wenn Sie aus GitHub bauen möchten (siehe BUILDING aus dem GitHub-Repository), können Sie die dort aufgeführten Tools mit HomeBrew installieren.

    Es gibt drei verschiedene Möglichkeiten, wie Link-Grammatik unter Windows kompiliert werden kann. Eine Möglichkeit besteht darin, Cygwin zu verwenden, das eine Linux-Kompatibilitätsschicht für Windows bereitstellt. Eine andere Möglichkeit ist die Verwendung des MSVC-Systems. Eine dritte Möglichkeit besteht darin, das MinGW-System zu verwenden, das das Gnu-Toolset verwendet, um Windows-Programme zu kompilieren. Der Quellcode unterstützt Windows-Systeme ab Vista.

    Die Cygwin-Methode liefert derzeit das beste Ergebnis, da sie die Zeilenbearbeitung mit Befehlsvervollständigung und Verlauf unterstützt und auch die Wortdiagrammanzeige in X-Fenstern unterstützt. (MinGW verfügt derzeit nicht über libedit , und der MSVC-Port unterstützt derzeit keine Befehlsvervollständigung und Historie, Rechtschreibung und X-Windows-Wortdiagrammanzeige.)

    Link-Grammatik erfordert eine funktionierende Version von POSIX-Standard-Regex-Bibliotheken. Da diese nicht von Microsoft bereitgestellt werden, muss eine Kopie an anderer Stelle bezogen werden. Eine beliebte Wahl ist TRE.

    ERSTELLEN unter Windows (Cygwin)

    Der einfachste Weg, Link-Grammatik unter MS Windows zum Laufen zu bringen, ist die Verwendung von Cygwin, einer Linux-ähnlichen Umgebung für Windows, die es ermöglicht, Software, die auf POSIX-Systemen läuft, auf Windows zu portieren. Laden Sie Cygwin herunter und installieren Sie es.

    Beachten Sie, dass die Installation des pcre2-Pakets erforderlich ist, da die libc REGEX-Implementierung nicht leistungsfähig genug ist.

    BAUEN unter Windows (MinGW)

    Eine andere Möglichkeit, Link-Grammatik zu erstellen, besteht darin, MinGW zu verwenden, das das GNU-Toolset verwendet, um POSIX-kompatible Programme für Windows zu kompilieren. Die Verwendung von MinGW/MSYS2 ist wahrscheinlich der einfachste Weg, um funktionierende Java-Bindungen für Windows zu erhalten. Laden Sie MinGW/MSYS2 von msys2.org herunter und installieren Sie es.

    Beachten Sie, dass die Installation des pcre2-Pakets erforderlich ist, da die libc REGEX-Implementierung nicht leistungsfähig genug ist.

    ERSTELLEN und AUSFÜHREN unter Windows (MSVC)

    Microsoft Visual C/C++-Projektdateien befinden sich im msvc-Verzeichnis. Eine Anleitung finden Sie dort in der Datei README.md.

    Um das Programm auszuführen, geben Sie den Befehl ein (vorausgesetzt, er befindet sich in Ihrem PATH):

    Damit wird das Programm gestartet. Das Programm verfügt über viele vom Benutzer einstellbare Variablen und Optionen. Diese können durch Eingabe von !var an der Link-Parser-Eingabeaufforderung angezeigt werden. Wenn Sie !help eingeben, werden einige zusätzliche Befehle angezeigt.

    Die Wörterbücher sind in Verzeichnissen angeordnet, deren Name der 2-Buchstaben-Sprachcode ist. Das Link-Parser-Programm sucht nach einem solchen Sprachverzeichnis in dieser Reihenfolge, direkt oder unter einem Verzeichnisnamen data :

    1. Unter Ihrem aktuellen Verzeichnis.
    2. Sofern nicht mit MSVC kompiliert oder unter der Windows-Konsole ausgeführt: Am Installationsort (normalerweise in /usr/local/share/link-grammar ).
    3. Wenn unter Windows kompiliert: Im Verzeichnis der ausführbaren Link-Parser-Datei (kann sich an einem anderen Ort befinden als der Link-Parser-Befehl, der ein Skript sein kann).

    Wenn der Link-Parser das gewünschte Wörterbuch nicht finden kann, verwenden Sie Ausführlichkeitsstufe 3, um das Problem beispielsweise zu beheben:

    Andere Speicherorte können in der Befehlszeile angegeben werden, zum Beispiel:

    Beim Zugriff auf Wörterbücher an nicht standardmäßigen Speicherorten werden weiterhin die standardmäßigen Dateinamen angenommen (d.h. 4.0.dict , 4.0.affix , usw.).

    Die russischen Wörterbücher sind in data/ru . Somit kann der russische Parser gestartet werden als:

    Wenn Sie dem Link-Parser kein Argument übergeben, sucht dieser nach einer Sprache, die Ihrem aktuellen Gebietsschema entspricht. Wenn es ein solches Sprachverzeichnis nicht finden kann, wird standardmäßig "en" verwendet.

    Wenn Sie ähnliche Fehler sehen:

    dann sind Ihre UTF-8-Locales entweder nicht installiert oder nicht konfiguriert. Der Shell-Befehl locale -a sollte en_US.utf8 als Locale auflisten. Wenn nicht, müssen Sie locales dpkg-reconfigure und/oder update-locale oder möglicherweise apt-get install locales oder Kombinationen oder Varianten davon ausführen, abhängig von Ihrem Betriebssystem.

    Es gibt mehrere Möglichkeiten, den resultierenden Build zu testen. Wenn die Python-Bindungen erstellt wurden, befindet sich ein Testprogramm in der Datei ./bindings/python-examples/tests.py -- Wenn es ausgeführt wird, sollte es bestehen. Weitere Informationen finden Sie unter README.md im Verzeichnis Bindings/python-examples.

    Es gibt auch mehrere Batches von Test-/Beispielsätzen in den Sprachdatenverzeichnissen, die im Allgemeinen die Namen corpus-*.batch haben. Das Parser-Programm kann im Batch-Modus ausgeführt werden, um das System an einer großen Anzahl von Sätzen zu testen. Der folgende Befehl führt den Parser in einer Datei namens corpus-basic.batch aus

    Die Zeile !batch am oberen Rand von corpus-basic.batch aktiviert den Batch-Modus. In diesem Modus sollten mit einem * gekennzeichnete Sätze abgelehnt und solche, die nicht mit einem * beginnen, akzeptiert werden. Diese Batchdatei meldet einige Fehler, ebenso wie die Dateien corpus-biolg.batch und corpus-fixes.batch . Es wird daran gearbeitet, diese zu beheben.

    Die Datei corpus-fixes.batch enthält viele tausend Sätze, die seit der ursprünglichen Version 4.1 von Link-Grammatik korrigiert wurden. Das corpus-biolg.batch enthält Biologie/Medizin-Textsätze aus dem BioLG-Projekt. Die corpus-voa.batch enthält Samples von Voice of America, die corpus-failures.batch enthält eine große Anzahl von Fehlern.

    Die folgenden Zahlen können sich ändern, aber derzeit ist die Anzahl der Fehler, die in jeder dieser Dateien zu erwarten sind, ungefähr wie folgt:

    Das Verzeichnis "bindings/python" enthält einen Komponententest für die Python-Bindungen. Es führt auch mehrere grundlegende Prüfungen durch, die die Link-Grammatik-Bibliotheken belasten.

    Es gibt eine API (Application Program Interface) zum Parser. Dies erleichtert die Einbindung in Ihre eigenen Anwendungen. Die API ist auf der Website dokumentiert.

    Die Datei FindLinkGrammar.cmake kann verwendet werden, um die Kompilierung in CMake-basierten Buildumgebungen zu testen und einzurichten.

    Um das Kompilieren und Linken zu erleichtern, verwendet die aktuelle Version das pkg-config-System. Um die Position der Link-Grammatik-Header-Dateien zu bestimmen, sagen Sie pkg-config --cflags Link-Grammar Um die Position der Bibliotheken zu erhalten, sagen Sie pkg-config --libs Link-Grammar So könnte ein typisches Makefile beispielsweise Folgendes enthalten: die Ziele:

    Diese Version stellt Java-Dateien bereit, die drei Zugriffsmöglichkeiten auf den Parser bieten. Der einfachste Weg ist die Verwendung der org.linkgrammar.LinkGrammar-Klasse, die dem Parser eine sehr einfache Java-API zur Verfügung stellt.

    Die zweite Möglichkeit besteht darin, die Klasse LGService zu verwenden. Dies implementiert einen TCP/IP-Netzwerkserver, der die Analyseergebnisse als JSON-Nachrichten bereitstellt. Jeder JSON-fähige Client kann sich mit diesem Server verbinden und geparsten Text abrufen.

    Die dritte Möglichkeit besteht darin, die Klasse org.linkgrammar.LGRemoteClient und insbesondere die Methode parse() zu verwenden. Diese Klasse ist ein Netzwerkclient, der eine Verbindung zum JSON-Server herstellt und die Antwort zurück in Ergebnisse konvertiert, auf die über die ParseResult-API zugegriffen werden kann.

    Der oben beschriebene Code wird erstellt, wenn Apache ant installiert ist.

    Verwenden des JSON-Netzwerkservers

    Der Netzwerkserver kann gestartet werden, indem man sagt:

    Das obige startet den Server auf Port 9000. Wird der Port weggelassen, wird Hilfetext ausgegeben. Dieser Server kann zum Beispiel direkt über TCP/IP kontaktiert werden:

    (Alternativ verwenden Sie netcat anstelle von telnet). Geben Sie nach der Verbindung Folgendes ein:

    Die zurückgegebenen Bytes sind eine JSON-Nachricht, die die Syntaxanalysen des Satzes bereitstellt. Standardmäßig wird die ASCII-Art-Analyse des Textes nicht übertragen. Dies kann durch Senden von Nachrichten des Formulars eingeholt werden:

    Der Parser führt in einem frühen Stadium eine Rechtschreibprüfung durch, wenn er auf ein Wort stößt, das er nicht kennt und aufgrund der Morphologie nicht erraten kann. Das configure-Skript sucht nach den Rechtschreibprüfungen aspell oder hunspell, wenn die aspell-Entwicklungsumgebung gefunden wird, dann wird aspell verwendet, andernfalls wird hunspell verwendet.

    Das Erraten von Rechtschreibfehlern kann zur Laufzeit im Link-Parser-Client mit dem Flag !spell=0 deaktiviert werden. Geben Sie !help ein, um weitere Informationen zu erhalten.

    Es ist sicher, Link-Grammatik zum Parsen in mehreren Threads zu verwenden. Verschiedene Threads können verschiedene Wörterbücher oder dasselbe Wörterbuch verwenden. Parse-Optionen können für jeden Thread festgelegt werden, mit Ausnahme von Ausführlichkeit, die global ist und von allen Threads geteilt wird. Es ist das einzige globale.

    A/An phonetische Determinatoren vor Konsonanten/Vokalen werden von einem neuen PH-Link-Typ behandelt, der den Determinator mit dem unmittelbar darauffolgenden Wort verbindet. Status: Eingeführt in Version 5.1.0 (August 2014). Meistens erledigt, obwohl viele Nomen in Sonderfällen unvollendet sind.

    Für einige Sprachen wie Litauisch, Türkisch und andere freie Wortstellungssprachen werden direktionale Links benötigt. Das Ziel besteht darin, dass ein Link klar anzeigt, welches Wort das Hauptwort und welches das abhängige Wort ist. Dies wird erreicht, indem Stecker mit einem einzelnen . vorfixiert werden Kleinbuchstaben Buchstabe: h,d, mit Angabe von 'Kopf' und 'Abhängiger'. Die Verknüpfungsregeln sind so, dass h entweder mit nichts oder d übereinstimmt und d mit h oder nichts übereinstimmt. Dies ist ein neues Feature in Version 5.1.0 (August 2014). Die Website bietet zusätzliche Dokumentation.

    Obwohl die englischsprachigen Link-Grammatik-Links nicht orientiert sind, scheint es, dass ihnen eine defacto-Richtung gegeben werden kann, die vollständig mit den Standardkonzepten einer Abhängigkeitsgrammatik übereinstimmt.

    Die Abhängigkeitspfeile haben die folgenden Eigenschaften:

    Antireflexiv (ein Wort kann nicht von sich selbst abhängen, es kann nicht auf sich selbst zeigen.)

    Antisymmetrisch (wenn Wort1 von Wort2 abhängt, kann Wort2 nicht von Wort1 abhängen) (also z.B. Determinatoren von Substantiven abhängen, aber nie umgekehrt)

    Die Pfeile sind weder transitiv noch antitransitiv: Ein einzelnes Wort kann von mehreren Köpfen beherrscht werden. Zum Beispiel:

    Das heißt, es gibt einen Weg zum Subjekt "sie", direkt von der linken Wand über den Link Wd, sowie indirekt von der Wand zum Wurzelverb und von dort zum Subjekt. Ähnliche Schleifen bilden sich mit den B- und R-Links. Solche Schleifen sind nützlich, um die mögliche Anzahl von Parsings einzuschränken: Die Einschränkung tritt in Verbindung mit der Metaregel "keine Links kreuzen" auf.

    • Die Graphen sind planar, das heißt, es dürfen sich keine zwei Kanten kreuzen. Siehe jedoch die Diskussion über das "Link-Crossing" weiter unten.

    Es gibt mehrere verwandte mathematische Begriffe, aber keiner erfasst das direktionale LG:

    Directional LG-Diagramme ähneln DAGS, außer dass LG nur eine Wand (ein "oberes" Element) zulässt.

    Directional LG-Graphen ähneln strengen Teilordnungen, außer dass die LG-Pfeile normalerweise nicht transitiv sind.

    Directional LG-Graphen ähneln Catena, außer dass Catena strikt antitransitiv ist – der Pfad zu jedem Wort ist in einer Catena einzigartig.

    Die grundlegenden LG-Papiere schreiben die Planarität der Parse-Graphen vor. Dies basiert auf einer sehr alten Beobachtung, dass sich Abhängigkeiten in natürlichen Sprachen fast nie kreuzen: Menschen sprechen einfach nicht in Sätzen, in denen sich Links kreuzen.Das Auferlegen von Planaritätsbeschränkungen stellt dann eine starke technische und algorithmische Beschränkung für die resultierenden Parser bereit: Die Gesamtzahl der zu berücksichtigenden Parser wird stark reduziert, und somit kann die Gesamtgeschwindigkeit des Parsings stark erhöht werden.

    Es gibt jedoch gelegentliche, relativ seltene Ausnahmen von dieser Planaritätsregel, solche Ausnahmen werden in fast allen Sprachen beobachtet. Im Folgenden werden einige dieser Ausnahmen für Englisch angegeben.

    Daher scheint es wichtig, die Beschränkung der Planarität zu lockern und etwas anderes zu finden, das fast genauso streng ist, aber dennoch seltene Ausnahmen zulässt. Es scheint, dass das Konzept der „Landmark-Transitivität“, wie es von Richard Hudson in seiner Theorie der „Wortgrammatik“ definiert und dann von Ben Goertzel vertreten wurde, ein solcher Mechanismus sein könnte.

    Planarität: Theorie vs. Praxis

    In der Praxis ermöglicht die Planaritätsbeschränkung die Verwendung sehr effizienter Algorithmen bei der Implementierung des Parsers. Aus Sicht der Implementierung wollen wir also Planarität bewahren. Glücklicherweise gibt es eine bequeme und eindeutige Möglichkeit, unseren Kuchen zu haben und ihn auch zu essen. Ein nicht-planares Diagramm kann mit der üblichen elektrotechnischen Notation auf ein Blatt Papier gezeichnet werden: ein lustiges Symbol, wo immer sich Drähte kreuzen. Diese Notation lässt sich sehr leicht an LG-Konnektoren anpassen. Nachfolgend finden Sie ein aktuelles Arbeitsbeispiel, das bereits im aktuellen LG-Englisch-Wörterbuch implementiert ist. Alle Link-Kreuzungen können so realisiert werden! Wir müssen also nicht auf die aktuellen Parsing-Algorithmen verzichten, um nichtplanare Diagramme zu erhalten. Wir müssen sie nicht einmal ändern! Hurra!

    Hier ist ein funktionierendes Beispiel: "Ich möchte mir alles anschauen und anhören." Dies möchte, dass zwei J-Links auf 'alles' zeigen. Das gewünschte Diagramm müsste so aussehen:

    Das obige möchte wirklich einen Js-Link von 'at' zu 'alles' haben, aber dieser Js-Link kreuzt (kollidiert mit - gekennzeichnet durch xxx) den Link zur Konjunktion. Andere Beispiele legen nahe, dass man den meisten Links erlauben sollte, die Downlinks zu Konjunktionen zu überqueren.

    Die Umgehung zur Aufrechterhaltung der Ebenheit besteht darin, die Js-Verbindung in zwei Teile aufzuteilen: einen Jj-Teil und einen Jk-Teil, die beiden werden zusammen verwendet, um die Konjunktion zu überqueren. Dies ist derzeit im englischen Wörterbuch implementiert und funktioniert.

    Diese Problemumgehung ist in der Tat völlig generisch und kann auf jede Art von Verbindungsüberquerung ausgeweitet werden. Damit dies funktioniert, wäre eine bessere Notation vielleicht praktischer uJs- statt Jj- und vJs- statt Jk- oder so ähnlich. (TODO: Bessere Notation erfinden.) (Hinweis: Dies ist eine Art Neuerfindung von "Fat Links", aber im Wörterbuch, nicht im Code.)

    Transitivität von Wahrzeichen: Theorie

    Angesichts der Tatsache, dass nichtplanare Parsen ohne Änderungen am Parser-Algorithmus aktiviert werden können, ist es nur erforderlich zu verstehen, welche Art von Theorie das Link-Crossing in einer kohärenten Grundlage beschreibt. Diese Theorie ist Dick Hudsons Landmark Transitivity, die hier erklärt wird.

    Dieser Mechanismus funktioniert wie folgt:

    Erstens muss jeder Link direktional sein, mit einem Kopf und einem abhängigen. Das heißt, wir befassen uns mit direktionalen LG-Links, die die Form x--A-->y oder y<--A--x für Wörter x,y und LG-Link-Typ A haben.

    Gegeben sei entweder die Richtungs-LG-Beziehung x--A-->y oder y<--A--x, definiere die Abhängigkeits-Beziehung x-->y. Ignorieren Sie das Link-Typ-Label.

    Köpfe sind Orientierungspunkte für Angehörige. Wenn die Abhängigkeitsrelation x-->y gilt, dann heißt x ein Orientierungspunkt für y, und das Prädikat land(x,y) ist wahr, während das Prädikat land(y,x) falsch ist. Hier sind x und y Wörter, während --> die richtungsweisende Beziehung ist.

    Obwohl die grundlegenden direktionalen LG-Verbindungen Landmarkenbeziehungen bilden, wird die Gesamtmenge der Landmarkenbeziehungen durch transitive Schließung erweitert. Das heißt, wenn land(x,y) und land(y,z) dann land(x,z). Das heißt, die grundlegenden direktionalen LG-Verbindungen sind "Generatoren" von Landmarken, die sie mittels Transitivität erzeugen. Beachten Sie, dass der transitive Abschluss eindeutig ist.

    Zusätzlich zu der obigen Orientierungspunkt-Beziehung gibt es zwei weitere Beziehungen: die Vorher- und Nachher-Markierungspunkt-Beziehungen. (Im Englischen entsprechen diese links und rechts im Hebräischen, das Gegenteil). Das heißt, da Wörter in einem Satz in chronologischer Reihenfolge vorkommen, kann die Abhängigkeitsbeziehung entweder nach links oder rechts zeigen. Die zuvor definierte Landmarkenbeziehung beschrieb nur die Abhängigkeitsreihenfolge, wir führen nun die Wortfolgereihenfolge ein. Es gibt also Land-before()- und Land-after()-Relationen, die sowohl die Abhängigkeitsrelation als auch die Wortreihenfolge erfassen.

    Notation: Die Vor-Landmark-Relation Land-B(x,y) entspricht x-->y (in Englisch, umgekehrt in Rechts-Links-Sprachen wie Hebräisch), während die Nach-Landmark-Relation Land-A(x,y) entspricht y<--x. Das heißt, land(x,y) == land-B(x,y) oder land-A(x,y) gilt als Aussage über die Prädikatsform der Relationen.

    Wie zuvor wird der vollständige Satz von Richtungskennzeichen durch transitive Schließung erhalten, die auf die Richtungs-LG-Verbindungen angewendet wird. Für diese Schließung werden zwei verschiedene Regeln verwendet:

    Das Parsing wird dann durchgeführt, indem LG-Konnektoren in üblicher Weise verbunden werden, um eine gerichtete Verbindung zu bilden. Die transitive Schließung der Richtungskennzeichen wird dann berechnet. Schließlich wird jede Analyse, die nicht damit endet, dass die "linke Wand" die oberste Markierung ist, verworfen.

    Hier ist ein Beispiel, bei dem die Transitivität von Landmarken eine natürliche Lösung für einen (derzeit) unterbrochenen Parse bietet. Das "to.r" hat ein disjunktes "I+ & MVi-", das "What is there to do?" richtig zu parsen. Es erlaubt jedoch auch die falsche Analyse "Er wird tun". Die Lösung wäre, "do" zu erzwingen, um ein Objekt zu übernehmen, ein Link von "do" auf "what" ist jedoch nicht erlaubt, da Link-Crossing dies verhindern würde.

    Um dies zu beheben, ist nur eine Korrektur des Wörterbuchs und nicht des Parsers selbst erforderlich.

    Beispiele, in denen die No-Links-Cross-Beschränkung verletzt zu sein scheint, auf Englisch:

    Beide scheinen im Englischen akzeptabel zu sein, aber die Mehrdeutigkeit der zeitlichen "in-ether"-Ordnung erfordert zwei verschiedene Parse-Bäume, wenn die No-Links-Cross-Regel durchgesetzt werden soll. Dies erscheint unnatürlich. Ähnlich:

    Ein anderes Beispiel ist ein Übergang zur linken Wand. Das heißt, die Links LINKE WAND--bleibt überquert hier -- gefunden:

    Andere Beispiele, pro Und Rosta:

    Die erlaubt--von Linkkreuze Kuchen – das:

    Es gibt eine natürliche Kreuzung, angetrieben von Konjunktionen:

    die "natürliche" Verknüpfung besteht darin, MV-Links zu verwenden, um "gestern" und "am Dienstag" mit dem Verb zu verbinden. Wenn dies jedoch geschieht, müssen diese die Verbindungen von der Konjunktion „und“ zu „Himmel“ und „Hölle“ kreuzen. Dies kann teilweise wie folgt umgangen werden:

    aber die gewünschten MV-Links vom Verb zu den Zeitpräpositionen "gestern" und "am Dienstag" fehlen -- wohingegen sie bei den Einzelsätzen "Ich war gestern in der Hölle" und "Ich war am Dienstag im Himmel" vorhanden sind. werden geparst. Die Verwendung einer Konjunktion sollte die verwendeten Beziehungen nicht zerstören, aber dies erfordert Link-Crossing.

    Hier muss "up_to" "number" modifizieren und nicht "whose". Ohne Link-Crossing geht das nicht.

    Link Grammar kann im Kontext der Typentheorie verstanden werden. Eine einfache Einführung in die Typentheorie findet sich in Kapitel 1 des HoTT-Buches.
    Dieses Buch ist online frei verfügbar und wird dringend empfohlen, wenn Sie sich für Typen interessieren.

    Linktypen können Typen zugeordnet werden, die in kategorialen Grammatiken vorkommen. Das Schöne an der Link-Grammatik ist, dass die Link-Typen ein Typensystem bilden, das viel einfacher zu verwenden und zu verstehen ist als das der kategorialen Grammatik, und dennoch direkt in dieses System umgewandelt werden kann! Das heißt, die Link-Grammatik ist vollständig kompatibel mit der kategorialen Grammatik und ist einfacher zu verwenden.

    Die grundlegenden LG-Papiere kommentieren dies jedoch, siehe auch Arbeiten von Bob Coecke zu Kategorientheorie und Grammatik. Coeckes diagrammatischer Ansatz ist im Wesentlichen identisch mit den Diagrammen, die in den grundlegenden LG-Papieren gegeben wurden. Sehen Sie sich zum Beispiel diese einführende Skizze http://www.cs.ox.ac.uk/people/bob.coecke/NewScientist.pdf an und beobachten Sie, wie die Diagramme im Wesentlichen identisch mit den LG-Puzzle-Stück-Diagrammen der Grundlagen sind LG-Publikationen.

    Bei Fragen können Sie gerne eine Nachricht an die Mailingliste senden.

    Der Quellcode des Link-Parser und der Link-Grammatik-Bibliothek befindet sich auf GitHub.
    Für Fehlerberichte öffnen Sie bitte eine Ausgabe dort.

    Obwohl alle Nachrichten an die Mailingliste gehen sollten, können die aktuellen Betreuer unter folgender Adresse kontaktiert werden:

    Eine vollständige Liste der Autoren und Urheberrechtsinhaber finden Sie in der Datei AUTHORS. Die ursprünglichen Autoren des Link Grammar Parsers sind:

    Einfach zu beheben: Stellen Sie dem Konstituentenbaum eine einheitlichere API zur Verfügung. d.h. Wortindex bereitstellen. Stellen Sie außerdem eine bessere Wort-API bereit, die Wortausdehnung, Tiefstellung usw. anzeigt.

    Es gibt subtile technische Probleme beim Umgang mit großgeschriebenen ersten Wörtern. Dies muss behoben werden. Außerdem werden diese Wörter in den Ergebnisverknüpfungen vorerst ohne Großbuchstaben angezeigt. Dies kann behoben werden.

    Vielleicht könnte die Groß-/Kleinschreibung genauso gehandhabt werden wie a/an! Schließlich handelt es sich im Wesentlichen um ein Phänomen des nächsten Nachbarn!

    Das nächste Problem besteht darin, Kosten hinzuzufügen, damit Bill beim Parsen von "Bill ging spazieren" niedrigere Kosten als bill.n erhält. Die beste Lösung wäre, während der Tokenisierung ein 'Großschreibung-Markierungs-Token' hinzuzufügen. Dieses Token geht großgeschriebenen Wörtern voraus. Das Wörterbuch verlinkt dann explizit auf dieses Token, mit Regeln, die der phonetischen Unterscheidung a/an ähneln. Der Punkt hier ist, dass dies die Großschreibung aus dem Ad-hoc-C-Code in das Wörterbuch verschiebt, wo sie wie jede andere Sprachfunktion behandelt werden kann. Der Tokenizer enthält dafür experimentellen Code.

    Korpusstatistik-basiertes Parse-Ranking:

    Das alte Ranking für das Parsen über Korpusstatistiken muss wiederbelebt werden. Das Problem lässt sich mit diesen Beispielsätzen veranschaulichen:

    Im ersten Satz fungiert das Komma als Konjunktion zweier Direktiven (Imperative). Im zweiten Satz ist es viel zu leicht, "bitte" mit einem Verb, das Komma mit einer Konjunktion zu verwechseln und zu dem Schluss zu kommen, dass man einem unausgesprochenen Objekt gefallen und dann das Licht ausschalten soll. (Vielleicht freut man sich, wenn man das Licht ausschaltet?)

    Wenn ein Satz nicht geparst werden kann, suchen Sie nach:

    • verworrene Wörter: es/es ist, da/sie/sie sind, zu/auch, dein/du bist . Diese könnten mit hohen Kosten zu den Diktaten hinzugefügt werden.
    • fehlende Apostrophe in Possessiven: "die Wünsche der Völker"
    • Bestimmungsübereinstimmungsfehler: "a books"
    • Fehler bei der Aux-Verb-Vereinbarung: "Anhänger sein"

    Eine schlechte Übereinstimmung kann dadurch gehandhabt werden, dass für nicht übereinstimmende Kleinbuchstaben der Anschlussbuchstaben Kosten berechnet werden.

    Ein häufiges Phänomen im Englischen ist, dass einige Wörter, von denen man erwarten würde, dass sie "richtig" vorhanden sind, unter verschiedenen Bedingungen verschwinden können. Nachfolgend finden Sie eine Auswahl davon. Einige mögliche Lösungen sind unten angegeben.

    Ausdrücke wie "Sieht gut aus" enthalten ein implizites "es" (auch Zero-It oder Phantom-It genannt), das heißt, der Satz sollte wirklich als "(es) sieht gut aus" geparst werden. Das Wörterbuch könnte vereinfacht werden, indem solche Phantomwörter explizit zugelassen werden, anstatt die Grammatikregeln zu modifizieren, um solche Konstruktionen zu ermöglichen. Andere Beispiele mit dem Phantomwort in Klammern sind:

    • Ich habe alle (von) Keksen gegessen.
    • Ich kenne ihn erst (seit) einer Woche.
    • Ich habe ihm (wie) das Schwimmen beigebracht.
    • Ich sagte ihm (dass) es weg war.
    • Es hat mich davon abgehalten, von der Klippe zu fliegen.
    • (Es sieht gut aus.
    • (Du gehst nach Hause!
    • (Du) sagst es (mir).
    • (Das reicht!
    • (Ich) habe gehört, dass er einen Test macht.
    • (Geht es dir gut?
    • Er öffnete die Tür und (er) ging hinein.
    • Emma war die jüngere (Tochter) von zwei Töchtern.

    Dies kann sich auf ausgeschiedene/stimmlose Silben erstrecken:

    Normalerweise müssen die Subjekte von Imperativen immer mit einem Komma versetzt werden: "John, gib mir den Hammer", aber hier wird beim Murmeln eines Eids das Komma verschluckt (stimmlos).

    Einige komplexe Phantomkonstruktionen:

    • Sie spielen Billard, aber (spielen) nicht Snooker.
    • Ich kenne Ringo, aber seinen Bruder (kenne ich) nicht.
    • Sie mag indisches Essen, aber (sie mag) kein chinesisches (Essen).
    • Wenn das stimmt, dann (solltest du) es tun.
    • Vielleicht wird er es (tun), wenn er genug von ihr sieht.

    Viele (unbetonte) Silben können im modernen Englisch eliminiert werden, dies tritt am häufigsten in der ersten unbetonten Silbe auf:

    • (a)'rechnen (a)'Angst (a)'gegen (a)'Gier (a)'mitten (a)'mongst
    • (a)'noint (a)'nother (a)'rrest (at)'tend
    • (be)'vor (be)'gin (be)'havior (be)'long (be)'twixt
    • (con)'cern (e)'scape (e)'stablish Und so weiter.

    Satzzeichen, Null-Kopula, Null-das:

    Schlechte Satzzeichen verursachen Probleme: zum Beispiel:

    Diejenige ohne Komma kann derzeit nicht geparst werden. Wie können wir das einfach, schnell und elegant lösen? Ähnliche Fragen für Null-Copula- und Null-dass-Sätze.

    Kontextabhängige Nullphrasen.

    Betrachten Sie einen Streit zwischen einem Professor und einem Dekan, und der Dekan möchte, dass der Professor eine brillante Rezension schreibt. Am Ende des Streits ruft der Dekan aus: "Ich will die Rezension brillant!" Dies ist ein prädikatives Adjektiv, das eindeutig bedeutet: "Ich möchte, dass die Rezension [die Sie schreiben] brillant ist." Aus dem Kontext gerissen, ist eine solche Konstruktion jedoch ungrammatisch, da die Vorhersagekraft überhaupt nicht offensichtlich ist und sie sich genauso falsch liest wie "*Hey Joe, kannst du mir diese Rezension brillant geben?"

    Das Subjekt ist ein Phantom, das Subjekt ist "du".

    Umgang mit Null-/Phantomwörtern durch explizites Einfügen:

    Eine mögliche Lösung besteht darin, eine Einpunkt-Kompaktifizierung durchzuführen. Das Wörterbuch enthält die Phantomwörter und ihre Konnektoren. Gewöhnliche Disjunkte können auf diese verweisen, sollten dies jedoch mit einem speziellen Anfangskleinbuchstaben tun (z. B. 'z' zusätzlich zu 'h' und 'd', wie derzeit implementiert). Der Parser untersucht bei seiner Arbeit den Anfangsbuchstaben jedes Konnektors: Wenn er 'z' ist, gelten die üblichen Beschneidungsregeln nicht mehr und ein oder mehrere Phantomwörter werden aus dem Eimer der Phantomwörter ausgewählt. (Dieser Bucket wird außerhalb der Zeile gehalten, er ist noch nicht in die Reihenfolge der Satzwortsequenzen platziert, weshalb die üblichen Beschneidungsregeln geändert werden.) Andernfalls wird das Parsing wie gewohnt fortgesetzt. Wenn am Ende des Parsens Phantomwörter verknüpft sind, müssen alle Konnektoren der Disjunkte erfüllt sein (natürlich!), sonst ist die Verknüpfung ungültig. Nach dem Parsen können die Phantomwörter in den Satz eingefügt werden, wobei die Position aus der Linklänge abgeleitet wird.

    Behandeln von Null-/Phantomwörtern als Umschreibregeln.

    Ein prinzipiellerer Ansatz zur Behebung des Phantomwortproblems besteht darin, die Idee des Umschreibens aus der Theorie der Operatorgrammatik zu übernehmen. Das heißt, bestimmte Phrasen und Konstruktionen können (sollten) vor dem Parsen in ihre "richtige Form" umgeschrieben werden. Der Neuschreibschritt würde die fehlenden Wörter einfügen, dann wird das Parsen fortgesetzt. Ein Reiz eines solchen Ansatzes besteht darin, dass das Umschreiben auch mit anderen "nervigen" Phänomenen wie Tippfehlern (fehlende Apostrophe, zB "lets" vs. "let's", "its" vs. "it's") sowie Multi -Wort umschreibt (zB "lass uns" vs. "lass uns" oder "es ist" vs. "es ist").

    Wie dies genau umgesetzt werden soll, ist unklar. Es scheint jedoch die Tür zu einer abstrakteren semantischen Analyse zu öffnen. So muss man beispielsweise in der Bedeutungs-Text-Theorie (MTT) zwischen SSynt- und DSynt-Strukturen wechseln. Solche Änderungen erfordern ein Umschreiben des Graphen von der Oberflächensyntaxanalyse (z. B. bereitgestellt von der Link-Grammatik) in die tiefsyntaktische Struktur. Im Gegensatz dazu invertiert die Handhabung von Phantomwörtern durch das erneute Schreiben von Graphen vor dem Parsen die Verarbeitungsreihenfolge. Dies legt nahe, dass zum Umschreiben von Graphen ein ganzheitlicherer Ansatz erforderlich ist: Er muss irgendwie "während" des Parsings durchgeführt werden, damit das Parsing sowohl das Einfügen der Phantomwörter als auch gleichzeitig die tiefen syntaktischen Umschreibungen steuern kann.

    Eine weitere interessante Möglichkeit ergibt sich im Hinblick auf die Tokenisierung. Der aktuelle Tokenizer ist insofern clever, als er nicht nur auf Leerzeichen aufspaltet, sondern auch Präfixe und Suffixe entfernen und bestimmte begrenzte Arten der morphologischen Aufteilung durchführen kann. Das heißt, es hat derzeit die Fähigkeit, einzelne Wörter in Wortfolgen umzuschreiben. Derzeit werden die Buchstaben, aus denen ein Wort besteht, auf konservative Weise beibehalten, mit wenigen Ausnahmen, z. B. bei Vorschlägen zur Rechtschreibkorrektur. Die obigen Überlegungen legen nahe, dass die Grenze zwischen Tokenisierung und Parsing sowohl fließender als auch enger gekoppelt werden muss.

    Vergleichen Sie "sie wird glücklicher als zuvor" mit "sie wird glücklicher sein als zuvor". Der aktuelle Parser macht "glücklich" zum Hauptwort und "mehr" zu einem Modifikator mit EA-Link. Ich glaube, die richtige Lösung wäre, den Kopf "mehr" zu machen (als Vergleich zu verlinken) und den Abhängigen "glücklich" zu machen. Dies würde die Regeln für Vergleichszahlen harmonisieren. und würde Regeln für weniger, mehr eliminieren/vereinfachen.

    Diese Idee muss jedoch noch einmal überprüft werden, z. Hudsons Wortgrammatik. Ich bin verwirrt in diesem Thema.

    Derzeit können einige Links eine "unbegrenzte" Länge haben, während andere nur eine begrenzte Länge haben können. z.B. Determinatoren sollten in der Nähe des Nomens stehen, auf das sie sich beziehen. Eine bessere Lösung könnte darin bestehen, einige Steckverbinder mit „Dehnbarkeitskosten“ zu versehen: Je länger sie sind, desto höher sind die Kosten. (Dadurch entfällt das "unlimited_connector_set" im Wörterbuch).

    Entgegengesetzte (abstoßende) Parser:

    Manchmal sollte die Existenz eines Parses darauf hindeuten, dass ein anderer Parse sicherlich falsch sein muss: Wenn ein Parse möglich ist, müssen die anderen Parses sicherlich unwahrscheinlich sein. Zum Beispiel: Die Konjunktion and.j-g ermöglicht es, dass "The Great Southern and Western Railroad" als einzelner Name einer Entität geparst wird. Es bietet jedoch auch eine Musterübereinstimmung für "John und Mike" als eine Einheit, was mit ziemlicher Sicherheit falsch ist. Aber "John and Mike" hat einen alternativen Parse, als einen konventionellen - und - eine Liste von zwei Personen, und so legt die Existenz dieses alternativen (und korrekten) Parses nahe, dass vielleicht die Entität - und wirklich der falsche Parse ist . Das heißt, die bloße Möglichkeit bestimmter Analysen sollte andere mögliche Analysen stark benachteiligen. (Ausnahme: Ben & Jerry's Eiscreme allerdings, in diesem Fall könnten wir Ben & Jerry als den Namen einer richtigen Marke erkennen, aber das ist außerhalb des "normalen" Wörterbuchs (?) (sollte aber vielleicht im Wörterbuch stehen!) )

    Weitere Beispiele: "Hochwasser" kann die Verbindung A mit hoher.a und AN mit hoher.n verbinden.

    Verwenden Sie WordNet, um die Anzahl der Syntaxanalysen für Sätze zu reduzieren, die zusammengesetzte Verbphrasen enthalten, wie z.

    Schiebefenster (inkrementell) Parsing:

    Um eine kombinatorische Explosion von Parsings zu vermeiden, wäre es schön, ein inkrementelles Parsing, Phrase für Phrase, unter Verwendung eines Gleitfensteralgorithmus zu haben, um den Parsing zu erhalten.So sollte beispielsweise die Analyse der letzten Hälfte eines langen, fortlaufenden Satzes nicht auf die Analyse des Satzanfangs reagieren.

    Dies würde bei einer kombinatorischen Explosion helfen. Wenn also zum Beispiel die erste Hälfte eines Satzes 4 plausible Parses hat und die letzte Hälfte 4 weitere, dann meldet der Parser derzeit insgesamt 16 Parses. Es wäre viel nützlicher, wenn stattdessen die faktorisierten Ergebnisse ausgegeben werden könnten: d. h. die vier plausiblen Parsen für die erste Hälfte und die vier plausiblen Parsen für die letzte Hälfte. Dies würde die nachgeschalteten Nutzer der Link-Grammatik entlasten.

    Dieser Ansatz hat eine psychologische Unterstützung. Menschen nehmen lange Sätze und teilen sie in kleinere Stücke auf, die als Phrasenstrukturen, d. h. zusammengesetzte Sätze, „zusammenhängen“. Das wahrscheinlichste Parsen ist dasjenige, bei dem jeder der Quasi-Untersätze korrekt geparst wird.

    Dies könnte implementiert werden, indem baumelnde nach rechts gehende Konnektoren in einem Analysekontext gespeichert werden und dann, wenn ein weiteres Satzfragment ankommt, diesen Kontext anstelle der linken Wand verwendet wird.

    Dies ähnelt in gewisser Weise der Anwendung von Konstruktionsgrammatikideen auf das Link-Grammatik-Wörterbuch. Es ähnelt auch etwas Viterbi-Parsing auf eine bestimmte Tiefe. Nämlich. Führen Sie einen vollständigen Rückwärts-Vorwärts-Parsing für eine Phrase durch, und führen Sie dann, sobald dies erledigt ist, einen Viterbi-Schritt aus. Das heißt, wenn der Satz fertig ist, behalten Sie nur die baumelnden Verbindungsstücke zum Satz bei, platzieren Sie eine Wand und gehen Sie dann zum nächsten Teil des Satzes.

    Achtung: Achten Sie auf Gartenpfadsätze:

    Der aktuelle Parser analysiert diese perfekt, ein Viterbi-Parser könnte darauf stoßen.

    Weitere Vorteile eines Viterbi-Decoders:

    • Weniger empfindlich gegenüber Satzgrenzen: Dadurch könnten längere, fortlaufende Sätze viel schneller geparst werden.
    • Könnte besser sein mit Slang, Hip-Speak.
    • Unterstützung für Echtzeitdialoge (Parsing halbgesprochener Sätze).
    • Parsen mehrerer Streams, z.B. aus Spiel-/Filmdrehbüchern.
    • Würde die Co-Referenz-Auflösung über Sätze hinweg ermöglichen (oder vereinfachen) (Referenten von Pronomen auflösen usw.)
    • Würde es ermöglichen, einen reichhaltigeren Zustand an höhere Schichten weiterzugeben: insbesondere alternative Syntaxanalysen für Bruchteile eines Satzes, alternative Referenzauflösungen.
    • Würde eine Plug-in-Architektur zulassen, so dass Plug-ins, die eine alternative Logik auf höherer Ebene verwenden, eindeutig sein könnten (z. B. durch die Verwendung von semantischen Inhalten).
    • Eliminieren Sie viele der hartcodierten Array-Größen im Code.

    Man könnte argumentieren, dass Viterbi eine natürlichere, biologischere Art ist, mit Sequenzen zu arbeiten. Einige experimentelle psychologische Unterstützung dafür finden Sie unter http://www.sciencedaily.com/releases/2012/09/120925143555.htm von Morten Christiansen, Cornell-Professor für Psychologie.

    Register, Soziolekte, Dialekte (Kostenvektoren):

    Denken Sie an den Satz "Diebe rauben Bank aus" - eine typische Schlagzeile einer Zeitung. LG kann dies derzeit nicht analysieren, da der Determinator fehlt ("bank" ist ein Count-Substantiv, kein Massen-Substantiv und erfordert daher einen Determinator. Im Gegensatz dazu analysiert "Diebe rauben Wasser" problemlos.) Eine Lösung hierfür wäre sein, obligatorische Bestimmungslinks durch (D- oder <[[()]] & Headline-Flag>) zu ersetzen, was ermöglicht, dass der D-Link weggelassen wird, wenn das Headline-Flag-Bit gesetzt ist. Hier könnte "headline-flag" ein neuer Linktyp sein, der jedoch keinen Planaritätsbeschränkungen unterliegt.

    Beachten Sie, dass dies leichter gesagt als getan ist: Wenn man einfach einen teuren Null-Link und kein Schlagzeilen-Flag hinzufügt, dann werden alle möglichen ungrammatischen Sätze analysiert, mit seltsamen Parsen, während einige grammatikalische Sätze, die parsen sollten, aber derzeit nicht t, analysierbar, aber mit verrückten Ergebnissen.

    Weitere Beispiele aus And Rosta:

    Ein natürlicher Ansatz wäre, Fixkosten durch Formeln zu ersetzen. Dies würde ermöglichen, dass der Dialekt/Soziolekt dynamisch veränderbar ist. Das heißt, anstelle eines binären Schlagzeilen-Flags gäbe es eine Formel für die Kosten, die außerhalb der Parsing-Schleife geändert werden könnte. Solche Formeln könnten verwendet werden, um das für verschiedene Dialekte/Soziolekte spezifische Parsen zu aktivieren/deaktivieren, indem einfach das Netzwerk der Linkkosten geändert wird.

    Eine einfachere Alternative wäre es, Kosten (ein Kostenvektor) gekennzeichnet zu haben, so dass verschiedene Dialekte verschiedenen Links unterschiedliche Kosten zuordnen. Ein Dialekt würde während des Parsens spezifiziert werden, wodurch die Kosten für diesen Dialekt während des Parse-Rankings verwendet würden.

    Dies wurde implementiert, was fehlt, ist ein praktisches Tutorial, wie dies verwendet werden könnte.

    Handverfeinernde Verbmuster:

    Eine gute Referenz zum Verfeinern von Verbverwendungsmustern ist: "COBUILD GRAMMAR PATTERNS 1: VERBS from THE COBUILD SERIES", von THE BANK OF ENGLISH, HARPER COLLINS. Online unter https://arts-ccr-002.bham.ac.uk/ccr/patgram/ und http://www.corpus.bham.ac.uk/publications/index.shtml

    Derzeit tokenize.c tokenisiert doppelte Anführungszeichen und einige UTF8-Anführungszeichen (siehe die RPUNC/LPUNC-Klasse in en/4.0.affix - die QUOTES-Klasse wird nicht dafür verwendet, sondern zur Unterstützung der Groß-/Kleinschreibung), mit einer sehr grundlegenden Unterstützung im englischen Wörterbuch (siehe dort "% Anführungszeichen."). Dies gilt jedoch nicht für die verschiedenen "gelockten" UTF8-Anführungszeichen wie "diese" und "diese". Das Ergebnis ist eine hässliche Analyse von Sätzen, die solche Anführungszeichen enthalten. (Beachten Sie, dass diese in 4.0.affix enthalten sind).

    Es wird ein Mechanismus benötigt, um das Zitat vom zitierten Text zu entwirren, damit jeder entsprechend geparst werden kann. Es ist etwas unklar, wie dies innerhalb der Link-Grammatik zu handhaben ist. Dies hängt in gewisser Weise mit dem Problem der Morphologie (Wörter parsen, als ob sie "Minisätze" wären), Idiome (Phrasen, die behandelt werden, als ob sie einzelne Wörter wären), Satzphrasenstrukturen (wenn ... dann ... nicht nur ... auch . ), die eine weiträumige Struktur haben, die dem zitierten Text ähnelt (er sagte . ).

    Bedeutung des Wörterbuchs:

    "to be fishing": Die Link-Grammatik bietet vier Parses von "I was Fishing for Evidence", von denen zwei niedrige und zwei hohe Punktzahlen erhalten. Von den beiden mit hohen Werten ist eine Analyse eindeutig schlecht. Seine Links "to be fishing.noun" im Gegensatz zum korrekten "to befishing.gerund". Das heißt, ich kann glücklich, gesund und weise sein, aber ich kann sicherlich nicht angeln. Dies ist vielleicht nicht nur ein Fehler in der Struktur des Wörterbuchs, sondern liegt vielleicht tiefer: Link-Grammatik hat wenig oder kein Konzept von lexikalischen Einheiten (dh Kollokationen, Idiome, institutionelle Phrasen), was somit Parsen mit schlechtem Wortsinn ermöglicht einschleichen.

    Ziel ist es, mehr Wissen über lexikalische Einheiten in LG einzuführen.

    Unterschiedliche Wortsinne können unterschiedliche Grammatikregeln haben (und somit geben die verwendeten Links den Sinn des Wortes an): zum Beispiel: "Ich stimme eher zu" vs. "Ich neige zu den Schafen" - diese haben zwei unterschiedliche Bedeutungen für die Verb "tend", und die für eine Bedeutung zulässigen grammatikalischen Konstruktionen sind nicht dieselben wie für die andere. Allerdings müssen die Linkregeln für "tend.v" beide Sinne berücksichtigen, was die Regeln recht komplex macht. Schlimmer noch, es ermöglicht möglicherweise unsinnige Konstruktionen. Wenn wir stattdessen zulassen würden, dass das Wörterbuch unterschiedliche Regeln für "tend.meaning1" und "tend.meaning2" enthält, würden die Regeln vereinfacht (auf Kosten der Vergrößerung des Wörterbuchs).

    Ein weiteres Beispiel: "Ich fürchte mich" - das Wort "so" ist nur mit einigen, aber nicht allen lexikalischen Bedeutungen von "Angst" erlaubt. Also z.B. „Ich fürchte so“ ist in derselben semantischen Klasse wie „ich denke so“ oder „ich hoffe so“, obwohl die anderen Bedeutungen dieser Verben ansonsten ganz anders sind.

    [Sin2004] "Neue Beweise, neue Prioritäten, neue Einstellungen" in J. Sinclair, (Hrsg.) (2004) How to use corpora in language Teaching, Amsterdam: John Benjamins

    Siehe auch: Pattern Grammar: A Corpus-Driven Approach to the lexical Grammar of English
    Susan Hunston und Gill Francis (Universität Birmingham)
    Amsterdam: John Benjamins (Studien in Korpuslinguistik, herausgegeben von Elena Tognini-Bonelli, Band 4), 2000
    Buchrezension.

    „The Molecular Level of Lexical Semantics“, EA Nida, (1997) International Journal of Lexicography, 10(4): 265–274. Online

    "Löcher" in Kollokationen (auch bekannt als "Satzphrasen" von "Phrasemen"):

    Die Link-Grammatik bietet mehrere Mechanismen, um Umschreibungen oder noch kompliziertere Mehrwortstrukturen zu unterstützen. Ein Mechanismus ist durch gewöhnliche Verbindungen, siehe die V-, XJ- und RJ-Verbindungen. Der andere Mechanismus erfolgt mittels Nachbearbeitungsregeln. (Zum Beispiel verwenden die "filler-it"-SF-Regeln die Nachbearbeitung.) Regeln für viele gängige Formulare wurden jedoch noch nicht geschrieben. Das allgemeine Problem sind Stützstrukturen, die in der Mitte "Löcher" haben, die eine "Schnürung" erfordern, um sie miteinander zu verbinden.

    Zum Beispiel die Adoption:

    Beachten Sie, dass mehrere Wörter in den Slot [xxx] passen können. Beachten Sie die Verwicklung einer anderen Präpositionalphrase: ". from [xxx] on to [yyy]"

    Kompliziertere Kollokationen mit Löchern umfassen

    'Then' ist optional ('then' ist ein 'Null-Wort'), zum Beispiel:

    Die oben genannten werden derzeit nicht unterstützt. Ein unterstütztes Beispiel ist das "non-referential it", z.B.

    Das Obige wird durch spezielle Disjunkte für 'it' und 'that' unterstützt, die in derselben Nachbearbeitungsdomäne vorkommen müssen.

    ". von X und von Y" "Von X, und von Y, . " Hier könnten X und Y ziemlich lange Phrasen sein, die andere Präpositionen enthalten. In diesem Fall verbinden die üblichen Link-Grammatik-Linkage-Regeln typischerweise "und from Y" zu einer Präposition in X, anstatt den korrekten Link zu "from X". Obwohl es hilfreich sein kann, Kosten hinzuzufügen, um die Längen von X und Y ungefähr gleich zu halten, wäre es noch besser, das Muster ". from . and from." zu erkennen.

    Die richtige Lösung für das "Entweder . oder ." scheint folgende zu sein:

    Das Problem dabei ist, dass "weder" mit "nor" koordiniert werden muss. Das heißt, man kann nicht sagen „entweder noch.“ „weder noch.“ „weder noch Link SJn und um sicherzustellen, dass sich Dn nur mit SJn verbinden kann und sonst nichts. Somit wurde das Kleinbuchstabe "n" verwendet, um die Koordination über zwei Verbindungen hinweg zu verbreiten. Dies zeigt, wie mächtig die Link-Grammatik-Theorie ist: Mit geeigneten Indizes können Beschränkungen entlang von Links über große Entfernungen verbreitet werden. Dies macht das Wörterbuch jedoch auch komplexer und die Regeln schwieriger zu schreiben: Die Koordination erfordert, dass viele verschiedene Links miteinander verbunden werden. Und so denke ich, dass das Erstellen eines einzigen neuen Links namens . wird die Koordination einfach und direkt machen. Deshalb mag ich diese Idee.

    Die . Link sollte der XJ-Link sein, der-siehe.

    Idiomatischer als die obigen Beispiele: ". der Chip auf der Schulter von X" "um X einen Gefallen zu tun" "um X einen Blick zu geben"

    Die oben genannten sind alle Beispiele für "Satzphrasen" oder "Phraseme" und werden am häufigsten im Zusammenhang mit MTT oder der Bedeutungs-Text-Theorie von Igor Mel'cuk et al. diskutiert (suchen Sie nach "MTT Lexical Function" für weitere Informationen). Mel'cuk behandelt Satzphrasen als Lexeme, und für das Parsen ist dies nicht direkt relevant. Da Phraseme jedoch einen hohen gegenseitigen Informationsgehalt aufweisen, können sie die syntaktische Struktur eines Satzes dominieren.

    Die aktuelle Analyse von "er wollte alles anschauen und anhören". ist unzureichend: Der Link zu "alles" muss mit "und" verbunden sein, damit "hören" und "sehen" als atomare Verbphrasen behandelt werden.

    MTT schlägt vor, dass der Inhalt der Nachbearbeitungsregeln vielleicht der richtige Weg ist, die auf die Syntax projizierten „lexikalischen Funktionen“ zu implementieren. Das heißt, die Nachbearbeitungsregeln lassen nur bestimmte syntaktische Konstruktionen zu, und diese Konstruktionen sieht man typischerweise in bestimmten Arten von lexikalischen Funktionen.

    Alternativ leidet die Link-Grammatik unter einer kombinatorischen Explosion möglicher Syntaxanalysen eines gegebenen Satzes. Es scheint, dass lexikalische Funktionen verwendet werden könnten, um viele dieser Parsen auszuschließen. Andererseits dürften die Ergebnisse denen des statistischen Parse-Rankings ähnlich sein (das solche quasi-idiomatischen Kollokationen vermutlich zumindest schwach erfasst).

    Art.-Nr. I. Mel'cuk: "Kollokationen und lexikalische Funktionen", in "Phraseologie: Theorie, Analyse und Anwendungen" Ed. Anthony Paul Cowie (1998) Oxford University Press S. 23-54.

    Allgemeiner gesagt könnte die gesamte Link-Grammatik von einer MTT-Anpassung der Infrastruktur profitieren.

    Vergleichen Sie den obigen Kommentar zu lexikalischen Funktionen mit der hebräischen morphologischen Analyse. Um Wikipedia zu zitieren:

    Diese Unterscheidung zwischen dem Wort als Spracheinheit und der Wurzel als Bedeutungseinheit ist noch wichtiger bei Sprachen, bei denen die Wurzeln viele verschiedene Formen haben, wenn sie in tatsächlichen Wörtern verwendet werden, wie dies bei semitischen Sprachen der Fall ist. In diesen werden Wurzeln allein durch Konsonanten gebildet, und verschiedene Wörter (die zu verschiedenen Wortarten gehören) werden aus derselben Wurzel durch Einfügen von Vokalen abgeleitet. Im Hebräischen zum Beispiel repräsentiert die Wurzel gdl die Idee der Größe, und daraus haben wir gadol und gdola (männliche und weibliche Formen des Adjektivs „groß“), gadal „er wuchs“, higdil „er vergrößerte“ und magdelet „ Lupe", zusammen mit vielen anderen Wörtern wie Gödel "Größe" und Migdal "Turm".

    Anstatt LL fest zu codieren, deklarieren Sie, welche Links im Diktat Morpho-Links sind.

    • Sollte eine Abfrage bereitstellen, die Kompilierzeitkonstanten zurückgibt, z.B. die maximale Anzahl von Zeichen in einem Wort oder die maximale Anzahl von Wörtern in einem Satz.
    • Sollte Kompilierzeitkonstanten entfernen, z.B. maximale Wörter, maximale Länge usw.

    Version 6.0 ändert Satz in Satz*, Linkage in Linkage* in der API. Aber vielleicht ist das eine schlechte Idee.


    Grafische Benutzeroberflächen

    1. Das PyRosetta Toolkit

    Das PyRosetta Toolkit ist ein GUI-Addon zu PyRosetta zum Einrichten von Rosetta-Dateitypen, zum Analysieren von Ergebnissen, Ausführen von Protokollen und zum Ausführen vieler anderer molekularer Modellierungs- und Designaufgaben. Es wird mit PyRosetta im Verzeichnis /GUIs/pyrosetta_toolkit verteilt. Informationen zur Einrichtung, Verwendung und Tipps finden Sie in der Dokumentation.


    Antworten

    Die drei Eigenschaften eines Vektors sind Typ, Länge und Attribute.

    Die vier gängigen Typen von atomaren Vektoren sind logisch, ganzzahlig, doppelt (manchmal als numerisch bezeichnet) und Zeichen. Die beiden selteneren Typen sind komplex und roh.

    Mit Attributen können Sie jedem Objekt beliebige zusätzliche Metadaten zuordnen. Sie können einzelne Attribute mit attr(x, "y") und attr(x, "y") <-value abrufen und setzen oder alle Attribute auf einmal mit attribute() abrufen und setzen.

    Die Elemente einer Liste können jeden Typs sein (sogar eine Liste), die Elemente eines atomaren Vektors sind alle vom gleichen Typ. Ebenso muss jedes Element einer Matrix in einem Datenrahmen vom gleichen Typ sein, die verschiedenen Spalten können unterschiedliche Typen haben.

    Sie können ein „Listen-Array“ erstellen, indem Sie einer Liste Dimensionen zuweisen. Sie können eine Matrix mit df$x <-matrix() zu einer Spalte eines Datenrahmens machen oder mit I() beim Erstellen eines neuen Datenrahmens data.frame(x = I(matrix())) .

    & Hadley Wickham kopieren. Angetrieben von jekyll, knitr und pandoc. Quelle auf github verfügbar.