Download Lupus Framework - Wilhelm Johannsen Centre for Functional

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Wilhelm Johannsen Centre for Functional Genome Research
University of Copenhagen
Comprehensive annotated database of K channel mutations
+
Holstebroe S , Heil B , Ludwig J , Sanders D , Hartung T , Drejer J , Lichtenberg-Fraté H , Tommerup N
1
2
3
4
5
6
2
1
Wilhelm Johannsen Centre for Functional Genome Research, University of Copenhagen, Denmark; 2Botanisches Institut, Universität Bonn,
3
4
5
Germany; Physiologisch-chemisches Institut, Universität Tübingen, Germany; The Plant Laboratory, University of York, UK; S T Z InPut,
Konstantz, Germany; 6Neurosearch A/S, Ballerup, Denmark
1
Workflow in the Lupus framework;
from XML to full featured web database
“Lupus”, a general scientific database framework
The database has been built using a customizable general purpose scientific
database framework constructed for this purpose. This framework allows very
rapid development of annotation databases commonly found in the community. The database is a hybrid between an object oriented database, a relational
SQL database and an XML database, drawing benefits from each domain’s
advantages. The support for XML import and export makes interaction with
other databases supporting XML fairly simple.
Building a database in lupus takes the following steps:
• Define the database in xml
• Use the Lupus model generator to translate the xml to sql tables and
corresponding java peer classes. These java classes can without changes
produce a full webinterface for submitting, browsing and searching the
defined data.
• Write java classes and jsp files to customize details of the presentation,
validation, storage and filtering your datamodel.
• Deploy and announce your database
More information about the Multiplex potassium channel project can be found
at: http://www.multiplex-network.de
For more information about the Lupus framework, please contact Søren
Holstebroe at [email protected]
<table name="Mutation" basetype="AnnotatedDataObject">
<string name="name" caption="Name" size="100" unique="yes" index="yes"/>
<stringlist name="aliases" caption="Aliases" index="yes"/>
<foreign name="gene" caption="Gene" foreignTable="Gene"/>
<selection name="mutationType" caption="Mutation type">
<option name="Insertion"/>
<option name="Deletion"/>
<option name="Single base"/>
<option name="Duplication"/>
<option name="Silent"/>
<option name="Indels"/>
<option name="Complex"/>
</selection>
<string name="dnaChange" caption="DNA change" size="100" />
<selection name="changeEffect" caption="Change effect">
<option name="Frameshift"/>
<option name="Replacement"/>
<option name="Splicing"/>
<option name="Deletion"/>
</selection>
<selection name="changeLocation" caption="Change location">
<option name="Dominant positive"/>
<option name="Dominant negative"/>
<option name="Recessive positive"/>
<option name="Recessive negative"/>
</selection>
<foreign name="classification" caption="Classification" foreignTable="Classification"/>
<foreign name="phenotype" caption="Phenotype" foreignTable="Phenotype"/>
<boolean name="isInherited" caption="Inherited"/>
<selection name="domination" caption="Domination">
<option name="cDNA"/>
<option name="Promoter"/>
<option name="Exon"/>
<option name="Intron"/>
<option name="Other"/>
</selection>
<integer name="studiedCases" caption="Studied cases"/>
<stringlist name="ethnicalBackground" caption="Ethnical background"/>
</table>
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE database SYSTEM "lupus.dtd">
<database name="Multiplex" basePackage="Multiplex.DataModel" >
<!-- Gene -->
<table name="Gene" basetype="AnnotatedDataObject" >
<string name="name" caption="Name" />
<stringlist name="aliases" caption="Aliases" />
<string name="chromPosition" caption="Chromosome position"/>
<foreign name="organism" caption="Organism" foreignTable="Organism" />
<relationlist name="channelList" caption="Channels" relationTable="GeneChannelRel"
foreignSide="right" selector="dropdown" />
</ table>
<!-- Strain -->
<table name="Strain" basetype="AnnotatedDataObject" >
<string name="name" caption="Strain name" size="100"/>
<foreign name="host" caption="Host strain" foreignTable="Strain" selector="search"/>
<string name="genotype" caption="Genotype compared with host strain"/>
<foreign name="construct" caption="Construct strain" foreignTable="Strain" selector="constructor"/>
<selection name="constructtype" caption="Construct type">
<option name="Centromeric" />
<option name="Episomal (multi-copy)"/>
<option name="Integrated"/>
</ selection >
<set name="verification" caption="Verification" >
<option name="PCR (3')"/>
<option name="PCR (5')"/>
<option name="Plasmid recovery"/>
<option name="Northern blot"/>
<option name="Southern blot"/>
</ set >
<set name="requiredSupplements" caption="Required supplements" type="dynamic">
<option name="LEU"/>
<option name="TRP"/>
<option name="URA" />
<option name="HIS" />
</ set >
<tupplelist name="mediumList" caption="Medium list" tableName="StrainMedium" basetype="TuppleData" >
<string name="medium" caption="Medium" size="100"/>
<double name="kConcentration" caption="K Concentration"/>
<double name="pH" caption="pH"/>
</ tupplelist>
<set name="expressionCassetteMarkers" caption="Selectable marker of expression cassette in yeast" type="dynamic">
<option name="G418"/>
<option name="LEU"/>
<option name="URA" />
<option name="HIS" />
<option name="TRP"/>
</ set >
<section caption="Fluorescence control images">
<image name="protoplastLocalizationImage" caption="Protoplast localization"/>
<image name="cellularLocalizationImage" caption="Cellular localization"/>
</ section >
<imagelist name="images" caption="Additional images"/>
</ table>
XML Description
// This class was created automatically by DMGenerator
// DO NOT MANUALLY EDIT, only edit inherited classes
// Created on: Apr 25, 2003 11:10:10 AM
package Multiplex.DataModel.Base;
import Multiplex.DataModel.*;
import Lupus.DataModel.Param.*;
import Lupus.DataModel.*;
import java.util.AbstractCollection;
abstract public class BaseMutation extends AnnotatedDataObject {
public static final String NAME = "Mutation";
public static final String PARAM_NAME = "name";
public static final String PARAM_NAME_CAPTION = "Name";
public static final String PARAM_ALIASES = "aliases";
public static final String PARAM_ALIASES_CAPTION = "Aliases";
public static final String PARAM_GENE = "gene";
public static final String PARAM_GENE_CAPTION = "Gene";
public static final String PARAM_MUTATIONTYPE = "mutationType";public static final String [] MUTATIONTYPETYPES =
{"Insertion","Deletion","Single base","Duplication","Silent","Indels","Complex"};
<!-- Electrophysiological data -->
<table name="ElectrophysiologicalData" basetype="AnnotatedDataObject" >
<foreign name="strain" caption="Strain" foreignTable="Strain" selector="search"/>
<section caption="Recording conditions">
<double name="temperature" caption="Temperature"/>
<double name="holdingPotential" caption="Holding potential"/>
<double name="pipetteKConcentration" caption="Pipette K Concentration"/>
<double name="pipettePh" caption="Pipette pH"/>
<double name="bathKConcentration" caption="Bath K concentration"/>
<double name="bathPh" caption="Bath pH"/>
<selection name="configuration" caption="Configuration">
<option name="Whole-cell" />
<option name="Cell-attached"/>
<option name="Inside-out"/>
<option name="Outside-out"/>
</ selection >
</ section >
public static final String PARAM_MUTATIONTYPE_CAPTION = "Mutation type";
public static final String PARAM_DNACHANGE = "dnaChange";
public static final String PARAM_DNACHANGE_CAPTION = "DNA change";
public static final String PARAM_CHANGEEFFECT = "changeEffect";public static final String [] CHANGEEFFECTTYPES =
{"Frameshift","Replacement","Splicing","Deletion"};
public static final String PARAM_CHANGEEFFECT_CAPTION = "Change effect";
public static final String PARAM_CHANGELOCATION = "changeLocation";public static final String [] CHANGELOCATIONTYPES =
{"Dominant positive","Dominant negative","Recessive positive","Recessive negative"};
Database
Generator
<subtitle caption="Experimental data"/>
<double name="maxCellConductance" caption="Max whole cell conductance [nS]"/>
<double name="halfMaxActivation" caption="Half max activation"/>
<double name="activationTimeConst" caption="Activation time constant [ms]"/>
<double name="activationTimeConstVolt" caption="Activation time constant at [mV]"/>
<double name="inactivationTimeConst" caption="Inactivation time constant [ms]"/>
<double name="inactivationTimeConstVolt" caption="Inactivation time constant at [mV]"/>
<double name="deactivationTimeConst" caption="Deactivation time constant [ms]"/>
<double name="deactivationTimeConstVolt" caption="Deactivation time constant at [mV]"/>
public static final String PARAM_CHANGELOCATION_CAPTION = "Change location";
public static final String PARAM_CLASSIFICATION = "classification";
public static final String PARAM_CLASSIFICATION_CAPTION = "Classification";
public static final String PARAM_PHENOTYPE = "phenotype";
public static final String PARAM_PHENOTYPE_CAPTION = "Phenotype";
public static final String PARAM_ISINHERITED = "isInherited";
public static final String PARAM_ISINHERITED_CAPTION = "Inherited";
public static final String PARAM_DOMINATION = "domination";public static final String [] DOMINATIONTYPES =
{"cDNA","Promoter","Exon","Intron","Other"};
<foreign name="compound" caption="Compound" foreignTable="Compound" />
<double name="compoundConcentration" caption="Compound concentration or range [myM]"/>
<selection name="effect" caption="Effect">
<option name="Block"/>
<option name="Stimulation" />
<option name="No effect"/>
</ selection >
Lupus
Framework
<double name="pka" caption="pKa"/>
<double name="kHalfVolt" caption="K0.5 at [mV]"/>
<boolean name="blockVoltDep" caption="Voltage-dependence of Block"/>
<image name="voltageProtocol" caption="Voltage protocol image"/>
<image name="currentTraces" caption="Current traces image"/>
</ table>
<!-Plasmid
-->
<table name="Plasmid" basetype="AnnotatedDataObject" >
<string name="name" caption="Plasmid name" size="100"/>
<selection name="bactSelection" caption="Selection for bacteria">
<option name="Amp"/>
<option name="Kan"/>
<option name="Zeo"/>
<option name="n/a" />
</ selection >
<selection name="yeastSelection" caption="Selection for yeast">
<option name="G418" id="1"/>
<option name="Leu" id="2"/>
<option name="Ura" id="3"/>
<option name="His" id="4"/>
<option name="Trp" id="5"/>
<option name="n/a" id="6"/>
</ selection >
<selection name="bactPromotor" caption="Promotor for bacteria">
<option name="lac"/>
<option name="laq" />
<option name="mal"/>
<option name="n/a" />
</ selection >
public static final String PARAM_DOMINATION_CAPTION = "Domination";
public static final String PARAM_STUDIEDCASES = "studiedCases";
public static final String PARAM_STUDIEDCASES_CAPTION = "Studied cases";
public static final String PARAM_ETHNICALBACKGROUND = "ethnicalBackground";
public static final String PARAM_ETHNICALBACKGROUND_CAPTION = "Ethnical background";
protected StringParam name = new StringParam(PARAM_NAME,"Name");
protected StringListParam aliases = new StringListParam(PARAM_ALIASES,"Aliases");
protected ForeignDropDownParam gene = new ForeignDropDownParam(PARAM_GENE,"Gene", MultiplexAbstractFactory.getInstance().getGeneFactory());
protected TypeParam mutationType = new TypeParam(PARAM_MUTATIONTYPE,"Mutation type",MUTATIONTYPETYPES);
protected StringParam dnaChange = new StringParam(PARAM_DNACHANGE,"DNA change");
protected TypeParam changeEffect = new TypeParam(PARAM_CHANGEEFFECT,"Change effect",CHANGEEFFECTTYPES);
protected TypeParam changeLocation = new TypeParam(PARAM_CHANGELOCATION,"Change location",CHANGELOCATIONTYPES);
protected ForeignDropDownParam classification = new ForeignDropDownParam(PARAM_CLASSIFICATION,"Classification", MultiplexAbstractFactory.getInstance().getClassificationFactory());
protected ForeignDropDownParam phenotype = new ForeignDropDownParam(PARAM_PHENOTYPE,"Phenotype", MultiplexAbstractFactory.getInstance().getPhenotypeFactory());
protected BooleanParam isInherited = new BooleanParam(PARAM_ISINHERITED,"Inherited");
protected TypeParam domination = new TypeParam(PARAM_DOMINATION,"Domination",DOMINATIONTYPES);
protected IntegerParam studiedCases = new IntegerParam(PARAM_STUDIEDCASES,"Studied cases");
protected StringListParam ethnicalBackground = new StringListParam(PARAM_ETHNICALBACKGROUND,"Ethnical background");
public BaseMutation() {
super();
name.setUnique(true);
addParam(name);
addParam(aliases);
addParam(gene);
addParam(mutationType);
addParam(dnaChange);
addParam(changeEffect);
addParam(changeLocation);
addParam(classification);
addParam(phenotype);
addParam(isInherited);
addParam(domination);
addParam(studiedCases);
addParam(ethnicalBackground);
}
public String getDbTableName() {
return NAME;
}
Java Base
Datamodel
Inherit
The multiplex project
An extensive number of disease causing mutations in human K+ channels
have been identified. In order to assist further research and provide a public
comprehensive knowledgebase, we have constructed a web-based database
aiming to assemble all available molecular and clinical information regarding
K+ channel mutations. The clinical information will be supplemented by
pharmacological data and eletrocardiograms.
A concurrent project is constructing a plasmid library of all available
mutations enabling cloning in a yeast model. The cloned yeast will undergo
electrophysiological experiments and will be used as model organism for
prevalidation of novel alternative pharma/-toxicological screening. The
database will integrate and support experimental results, protocols and
technology transfers from this part of the project.
In order to gather and construct a comprehensive dataset, the database will try
to automatically collect and categorize public information from the Internet
using simple data mining methods for a selected number of public databases.
To obtain a large degree of flexibility, we have designed a very general
framework for the database, which easily could be used as platform for other
databases as well.
SQL
Tables
public String getName() {
return (String) name.get();
}
public String getAliases() {
return (String) aliases.get();
}
public Gene getGene() {
return (Gene) gene.get();
}
public Integer getMutationType() {
return (Integer) mutationType.get();
}
public String getDnaChange() {
return (String) dnaChange.get();
}
public Integer getChangeEffect() {
return (Integer) changeEffect.get();
}
public Integer getChangeLocation() {
return (Integer) changeLocation.get();
}
public Classification getClassification() {
return (Classification) classification.get();
Customizing
- presentation,
- validation,
- storage and
- filtering
Java User
Datamodel
Lupus key features
• Written in java / jsp
• Integrating the powerful Jakarta Lucene search engine
• Data miners for selected public databases like OMIM, Swissprot, Ensembl, ...
• Advanced filtering when browsing data
• User manageable agents to allow notification when new data matches specified criteria
• Reference source of information on all data and parsing of these sources to produce
search results
• Internal crosslinkage
• Discussion forums on all data entities
• News bulletin
• Access control system on all data
• Detailed log of any changes of any data
• User submission of data
• User upload of images and files
• Flexible XML definition of the database
• XML import and export of all data
• Fully customizable data presentation and input forms
References (Centered)Acknowledgements:
A European Union funded research project under the thematic programme “Quality of Life and Management of Living Resources” within the
5th RTD Framework Programme (1998 - 2002). Wilhelm Johannsen Centre for Functional Genome Research is established by The Danish National Research Foundation
This poster can be obtained as a PDF-file at
www.wjc.ku.dk
Related documents