Produktdetails

Veröffentlichungsdatum
02.10.2017
Datum der Erstverfügbarkeit
Version
1.0
Lizenzmodell
GPL
Preis
kostenlos
Support
Community
Technische Voraussetzungen
Java
Grails
Datenbank z.B. MariaDB
Open Babel

Beschreibung

Anwendungsfälle

Der Fokus liegt auf der Annotation von chemischen Strukturen mit Meta-Daten, die z.B. aus Litereraturrecherchen stammen. Durch Grails Domain Models lassen sich aber auch andere Daten schnell einbinden oder bestehende Datensätze erweitern. 

Mittels Grails können sehr schnell interaktive Prototypen für z.B. verschachtelte Case Report Forms implementieret werden, die dann als Vorlage für die Umsetzung in anderen Systemen dienen können.

Aufbau

Grails wird benutzt um die Datenmodelle zu erzeugen und diese zu warten. Darüberhinaus bietet Grails die Möglichkeit mittels Views (Web-services) mit den Daten zu interagieren, z.B. um neue Einträge hinzuzufügen oder auch die Daten zu visualisieren.

Im Hintergund können die Daten mittels Konnektoren in verschiedene Datenbanksysteme (z.B. MariaDB, MySQL, PostgreSQL, in-memory) geladen werden 

Bei CandActBase handelt es sich um ein Grails-basiertes Server System, mit Erweiterungen durch entsprechende KNIME-Pipelines. Das Hauptaugenmerk ist hierbei auf eine einfache Einrichtung und Benutzbarkeit gelegt. Da Grails 'Convention over Configuration' befolgt, ist die Administration auf drei Bereiche / Ordner beschränkt.

  • domain (enthält generische Datendefinition zum Erstellen der Tabellen in der jeweilgen angeschlossenen Datenbank, die Erstellungsdetails übernimmt automatisch Grails)
  • controller (Definition der Dienste, die mit den Daten in der Datenbank interagieren und auf die Anfragen durch die Web services / Views reagieren und diese mit Daten versorgen)
  • view (Server web pages, die die Darstellung der Daten übernehmen können oder als Eingabeformulare für die Controller dienen können, die die Daten dann weiter verarbeiten und eventuell speichern).

Da im Hintergrund eine normale SQL-Instance laufen kann, die die Datenspeicherung übernimmt, ist es bei entsprechender Authentifizierung auch möglich, direkt mit dieser zu interagieren.

Interaktion mit KNIME

Mit KNIME hat man sowohl die Möglichkeit implementierte Webservices und somit das Front-End zu nutzen, als auch über das Back-End die Daten direkt anzusteuern. Dies hilft letztlich auch schneller, die passende Analysepipeline aufzubauen, da man so erst einmal eine Pilotpipeline im Hintergund erstellen kann, die bei entsprechendem Bedarf dann in die Controller- und View-Schichten eingebaut werden kann. Wobei zunächst auch minimalistisch der KNIME-Workflow im Batch-Modus eingebunden werden kann und später diese Funktionalität komplett in einen Grails controller oder service umgeschrieben werden kann, um die neue Anhängigkeit von KNIME wieder zu entfernen. Hier kann man also einfach erweitern und modular vorgehen, um das System Stück für Stück den Anforderungen anzupassen. Auf der anderen Seite bietet genau diese Integration die Möglichkeit KNIME als Wrapper zu benutzen, um die Softwaremodule aus KNIME einbinden zu können. 

Beispiel einer Datensatzdefinition

Beispiel eines domain models, der Tabellen definition in der Datei Compound, die die Basisdefinition zur Speicherung chemischer Strukturen enthält, sowie die Verknüpfung zu anderen Tabellen, wie LiteraturReferenzen > CitationReference, Synonymen > compoundSynonym, biologischen Descriptoren ...

Grundsätzlich werden hier einfach die Items mit ihrem jeweiligen Typ aufgelistet, Vernüpfungen zu anderen Tabellen definiert (z.b. belongsTo oder hasMany) und dann noch bei Bedarf Regeln definiert die für einzelen Items gelten sollen (z.B. smiles unique: true > definiert dass es in der Spalte smiles jeden Eintrag, jeweils nur ein einziges mal geben darf).

package candactcftr

class Compound {

    int id
    PubChemRecord pubChem
    String smiles
    String inChI
    String inChIKey
    
    static hasMany = [citationReferences: CitationReference, compoundSynonym: CompoundSynonym, chemicalDescriptors: ChemicalDescriptors, biologicalDescriptors: BiologicalDescriptors]
    
    
    
    static constraints = {
    
    compoundSynonym nullable: true
    id nullable: false
    smiles unique: true
    inChI(nullable: true)
    inChIKey(nullable: true)
    pubChem(nullable: true)
    citationReferences(nullable: true)
    chemicalDescriptors(nullable: true)
    biologicalDescriptors(nullable: true)
    }
    static mapping = {
        smiles type:'text'
    }
    
}

 

Das Produkt im Einsatz

Das Produkt wird im Rahmen eines DFG-Projektes weiterentwickelt. Es gibt einen aktuellen Anwendungsfall für das Protein CFTR, welcher den Einsatz des Produktes für den Einsatz in der Mukoviszidose-Forschung zeigt. Wir haben momentan noch keine weiteren Instanzen an anderen Standorten laufen unterstützen andere Projekte aber gerne darin unsere Software für ihre Zwecke auszuprobieren und anzupassen.

Unterstützung

Diese Software wird im Rahmen eines DFG-Projektes im Rahmen der Förderung von DFG-Forschungsprojekten über die und mit der TMF entwickelt.

Wir sind daran interessiert, diese Softwarebasis möglichst generisch aufzubauen und glauben, dass unsere Software auch für unseren speziellen Anwendungsfall robuster wird, wenn man sich über unterschiedliche Fragestellungen und Anforderungen austauschen kann und potentielle Synergien nutzt. Daher unterstützen wir auch die Umsetzung / Integration in neuen Umgebungen. Da wir im CandActCFTR-Projekt dieses Software-Framework aktiv weiter entwickeln. Stellen wir der Forschungsgemeinschaft zwei Varianten unserer Software jeweils mit entsprechenden SourceCode über unser gitlab-Repositories zur Verfügung: CandActBase mit den generischen Basis-Modulen als MinimalVersion einer lauffähigen Installation und CandActCFTR mit den entsprechenden Erweiterungen die wir für unser Projekt entwickeln, die aber auch mit leichten Modifikationen für andere Forschungsprojekte interessant sein könnten.

Zu CandActCFTR liefern wir optional unseren Datensatz als interaktives Beispiel mit, der entweder getrennt genutzt werden kann oder bereits vorkonfiguriert per Docker- oder Singularity-Container erhältlich ist.

Erfahrungsberichte

Eigenen Erfahrungsbericht verfassen

Produkt-Features vergleichen mit ähnlichen Produkten

Wählen Sie maximal 4 weitere Produkte aus, die sie mit diesem Produkt vergleichen wollen.

Kommentare

Um einen Kommentar verfassen zu können, müssen Sie sich zunächst anmelden!