source: trunk/grails-app/conf/BootStrap.groovy @ 175

Last change on this file since 175 was 175, checked in by duh, 10 years ago
  • reverted Jahn's revision 174 where he deleted BootStrap?.groovy
  • Property svn:keywords set to
    Date
    Author
    Rev
File size: 8.1 KB
Line 
1import org.codehaus.groovy.grails.commons.GrailsApplication
2import grails.util.GrailsUtil
3import dbnp.studycapturing.*
4
5import dbnp.data.Ontology
6import dbnp.data.Term
7
8/**
9 * Application Bootstrapper
10 * @Author Jeroen Wesbeek
11 * @Since 20091021
12 *
13 * Revision information:
14 * $Rev: 175 $
15 * $Author: duh $
16 * $Date: 2010-02-08 10:49:37 +0000 (ma, 08 feb 2010) $
17 */
18class BootStrap {
19        def init = {servletContext ->
20                // define timezone
21                System.setProperty('user.timezone', 'CET')     
22
23                if (GrailsUtil.environment == GrailsApplication.ENV_DEVELOPMENT) {
24                        printf("development bootstrapping....\n\n");
25
26                        // ontologies
27                        def speciesOntology = new Ontology(
28                                name: 'NCBI Taxonomy',
29                                shortName: 'Taxon',
30                                url: 'http://www.obofoundry.org/cgi-bin/detail.cgi?id=ncbi_taxonomy'
31                        ).with { if (!validate()) { errors.each { println it} } else save()}
32
33
34                        // terms
35                        def mouseTerm = new Term(
36                                name: 'Mus musculus',
37                                ontology: speciesOntology,
38                                accession: '10090'
39                        ).with { if (!validate()) { errors.each { println it} } else save()}
40                        def humanTerm = new Term(
41                                name: 'Homo sapiens',
42                                ontology: speciesOntology,
43                                accession: '9606'
44                        ).with { if (!validate()) { errors.each { println it} } else save()}
45
46                        def madmaxOntology = new Ontology(
47                                name: 'Madmax ontology',
48                                shortName: 'MDMX',
49                                url: 'madmax.bioinformatics.nl'
50                        ).with { if (!validate()) { errors.each { println it} } else save()}
51
52                        def treatmentTerm = new Term(
53                                name: 'ExperimentalProtocol',
54                                ontology: madmaxOntology,
55                                accession: 'P-MDMXGE-264'
56                        ).with { if (!validate()) { errors.each { println it} } else save()}
57
58
59                        def treatmentProtocol = new Protocol(
60                                name: 'MADMAX Experimental Protocol',
61                                reference: treatmentTerm
62                        ).with { if (!validate()) { errors.each { println it} } else save()}
63
64
65                        // added by Jahn for testing the event views
66                        def treatmentProtocol2 = new Protocol(
67                                name: 'MADMAX Experimental Protocol 2',
68                                reference: treatmentTerm
69                        ).with { if (!validate()) { errors.each { println it} } else save()}
70
71
72
73                        treatmentProtocol
74                        .addToParameters(new ProtocolParameter(
75                                name: 'Diet',
76                                type: ProtocolParameterType.STRINGLIST,
77                                listEntries: ['10% fat (palm oil)','45% fat (palm oil)']))
78                        .addToParameters(new ProtocolParameter(
79                                name: 'Compound',
80                                type: ProtocolParameterType.STRINGLIST,
81                                listEntries: ['Vehicle','Leptin']))
82                        .addToParameters(new ProtocolParameter(
83                                name: 'Administration',
84                                type: ProtocolParameterType.STRING))
85                        .save()
86
87
88                        // added by Jahn for testing the event views
89                        treatmentProtocol2
90                        .addToParameters(new ProtocolParameter(
91                                name: 'Diet',
92                                type: ProtocolParameterType.STRINGLIST,
93                                listEntries: ['99% fat (crude oil)','1% fat (palm oil)']))
94                        .addToParameters(new ProtocolParameter(
95                                name: 'Compound',
96                                type: ProtocolParameterType.STRINGLIST,
97                                listEntries: ['Vehicle','Leptin']))
98                        .addToParameters(new ProtocolParameter(
99                                name: 'Administration',
100                                type: ProtocolParameterType.STRING))
101                        .save()
102
103
104
105                        // create system user
106                        /*
107                        def systemUser = userService.createUser(InstanceGenerator.user(
108                                username: 'system',
109                                pass: 'system',
110                                passConfirm: 'system',
111                                enabled: true
112                        ))
113                        */
114
115                        // Mouse template
116                        def mouseTemplate = new Template(
117                                name: 'Mouse'
118                        ).addToSubjectFields(new TemplateSubjectField(
119                                name: 'Genotype',type: TemplateFieldType.STRINGLIST))
120                        .addToSubjectFields(new TemplateSubjectField(
121                                name: 'Gender',type: TemplateFieldType.STRINGLIST, listEntries: ['Male','Female']))
122                        .addToSubjectFields(new TemplateSubjectField(
123                                name: 'Age',type: TemplateFieldType.INTEGER))
124                        .addToSubjectFields(new TemplateSubjectField(
125                                name: 'Cage',type: TemplateFieldType.INTEGER))
126                        .with { if (!validate()) { errors.each { println it} } else save()}
127
128
129                        //events
130                        def eventTreatment = new EventDescription(
131                                name: 'Treatment',
132                                description: 'Experimental Treatment Protocol NuGO PPS3 leptin module',
133                                classification: treatmentTerm,
134                                protocol: treatmentProtocol
135                        ).with { if (!validate()) { errors.each { println it} } else save()}
136
137                        def eventTreatment2 = new EventDescription(
138                                name: 'Treatment2',
139                                description: 'Treatment Protocol NuGO PPS1',
140                                classification: treatmentTerm,
141                                protocol: treatmentProtocol2
142                        ).with { if (!validate()) { errors.each { println it} } else save()}
143
144                        // studies
145                        def exampleStudy = new Study(
146                                title:"NuGO PPS3 mouse study leptin module",
147                                code:"PPS3_leptin_module",
148                                researchQuestion:"Leptin etc.",
149                                description:"C57Bl/6 mice were fed a high fat (45 en%) or low fat (10 en%) diet after a four week run-in on low fat diet. After 1 week 10 mice that received a low fat diet were given an IP leptin challenge and 10 mice of the low-fat group received placebo injections. The same procedure was performed with mice that were fed the high-fat diet. After 4 weeks the procedure was repeated. In total 80 mice were culled.",
150                                ecCode:"2007117.c",
151                                startDate: Date.parse('yyyy-MM-dd','2007-12-11'),
152                                template: mouseTemplate
153                        ).with { if (!validate()) { errors.each { println it} } else save()}
154
155                        def x=1
156                        12.times {
157                                def currentSubject = new Subject(
158                                        name: "A" + x++,
159                                        species: mouseTerm,
160                                        template: mouseTemplate,
161                                        templateStringFields: ["Genotype" : "C57/Bl6j", "Gender" : "Male"],
162                                        templateIntegerFields: ["Age" : 17, "Cage" : (int)(x/2)]
163                                ).with { if (!validate()) { errors.each { println it} } else save()}
164
165                                exampleStudy.addToSubjects(currentSubject)
166                                .addToEvents(new Event(
167                                        subject: currentSubject,
168                                        startTime: Date.parse('yyyy-MM-dd','2008-01-07'),
169                                        endTime: Date.parse('yyyy-MM-dd','2008-01-14'),
170                                        eventDescription: eventTreatment,
171                                        parameterStringValues: ['Diet':'10% fat (palm oil)','Compound':'Vehicle','Administration':'intraperitoneal injection'])
172                                ).with { if (!validate()) { errors.each { println it} } else save()}
173                        }
174
175
176                        def secondStudy = new Study(
177                                title:"NuGO PPS1 mouse study leptin module",
178                                code:"PPS1",
179                                researchQuestion:"etc.",
180                                description:"C57Bl/6 mice were fed a high fat (45 en%) or low fat (10 en%) diet after a four week run-in on low fat diet. After 1 week 10 mice that received a low fat diet were given an IP leptin challenge and 10 mice of the low-fat group received placebo injections. The same procedure was performed with mice that were fed the high-fat diet. After 4 weeks the procedure was repeated. In total 80 mice were culled.",
181                                ecCode:"2007.c",
182                                startDate: Date.parse('yyyy-MM-dd','2007-12-11'),
183                                template: mouseTemplate
184                        ).with { if (!validate()) { errors.each { println it} } else save()}
185
186                        def y=1
187                        5.times {
188                                def currentSubject = new Subject(
189                                        name: "A" + y++,
190                                        species: mouseTerm,
191                                        template: mouseTemplate,
192                                        templateStringFields: ["Genotype" : "C57/Bl6j", "Gender" : "Male"],
193                                        templateIntegerFields: ["Age" : 17, "Cage" : (int)(y/2)]
194                                ).with { if (!validate()) { errors.each { println it} } else save()}
195
196                                secondStudy.addToSubjects(currentSubject)
197                                .addToEvents(new SamplingEvent(
198                                        subject: currentSubject,
199                                        startTime: Date.parse('yyyy-MM-dd','2008-01-07'),
200                                        endTime: Date.parse('yyyy-MM-dd','2008-01-14'),
201                                        eventDescription: eventTreatment2,
202                                        parameterStringValues: ['Diet':'10% fat (palm oil)','Compound':'Vehicle','Administration':'intraperitoneal injection'])
203                                ).with { if (!validate()) { errors.each { println it} } else save()}
204                        }
205
206//                        new Study(title:"example",code:"Excode",researchQuestion:"ExRquestion",description:"Exdescription",ecCode:"ExecCode",dateCreated:new Date(),lastUpdated:new Date(),startDate:new Date()).save()
207//                        new Study(title:"testAgain",code:"testcode",researchQuestion:"testRquestion",description:"testdescription",ecCode:"testCode",dateCreated:new Date(),lastUpdated:new Date(),startDate:new Date()).save()
208//                        new Study(title:"Exampletest",code:"Examplecode",researchQuestion:"ExampleRquestion",description:"Exampledescription",ecCode:"ExampleecCode",dateCreated:new Date(),lastUpdated:new Date(),startDate:new Date()).save()
209                }
210        }
211
212        def destroy = {
213        }
214} 
Note: See TracBrowser for help on using the repository browser.