source: trunk/grails-app/controllers/LoadController.groovy @ 64

Last change on this file since 64 was 64, checked in by ademcan, 9 years ago

Loading new magetab data in the database from IDF file.

File size: 8.9 KB
Line 
1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5
6/**
7 *
8 * @author ademcan
9 */
10class LoadController {
11
12    String path;
13    String delim;
14    static Map att_list = new HashMap<String, ArrayList>();
15
16    def index = {}
17
18    def load = {
19
20        static ArrayList attributs = new ArrayList();
21
22        render("Loading ...\n");
23
24        File file = new File("/home/ademcan/Desktop/magetab/examples/E-GEOD-2354.idf.txt");
25
26        def investigationDesign = new magetab.idf.InvestigationDesign();
27        def person = new magetab.idf.Person();
28        def protocol = new magetab.idf.Protocol();
29        def publication = new magetab.idf.Publication();
30        def normalization = new magetab.sdrf.Normalization();
31        //def termSource = new magetab.adf.Termsource();
32        def comment = new magetab.idf.Comment();
33        def experimentalInfo = new magetab.idf.ExperimentalInfo();
34
35        ArrayList rows = new ArrayList();
36
37        for (i in file.readLines()){
38            String line = i.toString() ;
39            ArrayList tmp_list = new ArrayList();
40            List parsedTab = line.split("\t");
41
42            for (j in parsedTab) {
43                tmp_list.add(j);
44            }   
45           
46            if (tmp_list.size() > 1){
47                if (tmp_list[0]=="Investigation Title"){
48                    investigationDesign.title = tmp_list[1];
49                }
50                else if (tmp_list[0]=="Comment[AEMIAMESCORE]") {
51                    comment.aemiameScore = tmp_list[1];
52                }
53                else if (tmp_list[0]=="Comment[SecondaryAccession]") {
54                    comment.secondaryAccession = tmp_list[1];
55                }
56                else if (tmp_list[0]=="Comment[ArrayExpressReleaseDate]") {
57                    comment.arrayExpressReleaseDate = tmp_list[1];
58                }
59                else if (tmp_list[0]=="Comment[ArrayExpressAccession]") {
60                    comment.arrayExpressAccession = tmp_list[1];
61                }
62                else if (tmp_list[0]=="Comment[MAGETAB TimeStamp_Version]") {
63                    comment.timestamp_version = tmp_list[1];
64                }
65                else if (tmp_list[0]=="Experimental Design") {
66                    String design = tmp_list[1];
67                    for (a in 2..tmp_list.size()-1){
68                        design = design + " , " +tmp_list[a];
69                    }
70                    experimentalInfo.design = design;
71                }
72                else if (tmp_list[0]=="Experimental Design Term Source REF") {
73                    String term_ref = tmp_list[1];
74                    for (a in 2..tmp_list.size()-1){
75                        term_ref = term_ref + " , " +tmp_list[a];
76                    }
77                    experimentalInfo.design_term_source_ref = term_ref;
78                }
79                else if (tmp_list[0]=="Experimental Factor Name") {
80                    String factor_name = tmp_list[1];
81                    for (a in 2..tmp_list.size()-1){
82                        factor_name = factor_name + " , " +tmp_list[a];
83                    }
84                    experimentalInfo.factor_name = factor_name;
85                }
86                else if (tmp_list[0]=="Experimental Factor Type") {
87                    String factor_type = tmp_list[1];
88                    for (a in 2..tmp_list.size()-1){
89                        factor_type = factor_type + " , " +tmp_list[a];
90                    }
91                    experimentalInfo.factor_type = factor_type;
92                }
93                else if (tmp_list[0]=="Experimental Factor Term Source REF") {
94                    experimentalInfo.factor_term_source_ref = tmp_list[1];
95                }
96                else if (tmp_list[0]=="Person Last Name") {
97                    person.lastName = tmp_list[1];
98                }
99                else if (tmp_list[0]=="Person First Name") {
100                    person.firstName = tmp_list[1];
101                }
102                else if (tmp_list[0]=="Person Mid Initials") {
103                    person.midInitials = tmp_list[1];
104                }
105                else if (tmp_list[0]=="Person Email") {
106                    person.email = tmp_list[1];
107                }
108                else if (tmp_list[0]=="Person Phone") {
109                    person.phone = tmp_list[1];
110                }
111                else if (tmp_list[0]=="Person Fax") {
112                    person.fax = tmp_list[1];
113                }
114                else if (tmp_list[0]=="Person Address") {
115                    person.address = tmp_list[1];
116                }
117                else if (tmp_list[0]=="Person Affiliation") {
118                    person.affiliation = tmp_list[1];
119                }
120                else if (tmp_list[0]=="Person Roles") {
121                    person.roles = tmp_list[1];
122                }
123                else if (tmp_list[0]=="Person Roles Term Source REF") {
124                    person.roles_ref = tmp_list[1];
125                }
126                else if (tmp_list[0]=="Quality Control Type") {
127
128                }
129                else if (tmp_list[0]=="Quality Control Term Source REF") {
130
131                }
132                else if (tmp_list[0]=="Replicate Type") {
133
134                }
135                else if (tmp_list[0]=="Replicate Term Source REF") {
136
137                }
138                else if (tmp_list[0]=="Normalization Type") {
139                    normalization.type = tmp_list[1];
140                }
141                else if (tmp_list[0]=="Normalization Term Source REF") {
142                    normalization.term_source_ref = tmp_list[1];
143                }
144                else if (tmp_list[0]=="Date Of Experiment") {
145                    investigationDesign.dateOfExperiment = tmp_list[1];
146                }
147                else if (tmp_list[0]=="Public Release Date") {
148                    investigationDesign.publicReleaseDate = tmp_list[1];
149                }
150                else if (tmp_list[0]=="PubMed ID") {
151                    publication.pubMedID = tmp_list[1];
152                }
153                else if (tmp_list[0]=="Publication DOI") {
154                    publication.DOI = tmp_list[1];
155                }
156                else if (tmp_list[0]=="Publication Author List") {
157                    publication.authors_list = tmp_list[1];
158                }
159                else if (tmp_list[0]=="Publication Title") {
160                    publication.title = tmp_list[1];
161                }
162                else if (tmp_list[0]=="Publication Status") {
163                    def status = new magetab.idf.OntologyTerm();
164                    status.text = tmp_list[1];
165                    status.save();
166                    publication.status = status;
167                }
168                else if (tmp_list[0]=="Publication Status Term Source REF") {
169                    publication.status_term_source_ref = tmp_list[1];
170                }
171                else if (tmp_list[0]=="Experiment Description") {
172                    investigationDesign.experimentDescription = tmp_list[1];
173                }
174                else if (tmp_list[0]=="Protocol Name") {
175                    protocol.name = tmp_list[1];
176                }
177                else if (tmp_list[0]=="Protocol Type") {
178                    def type = new magetab.idf.OntologyTerm();
179                    for (j in 1..tmp_list.size()){
180                        type.text = tmp_list[j];
181                        type.save();
182                    }
183                    protocol.type = type;
184                }
185                else if (tmp_list[0]=="Protocol Description") {
186                    protocol.description = tmp_list[1];
187                }
188                else if (tmp_list[0]=="Protocol Parameters") {
189                    protocol.parameters = tmp_list[1];
190                }
191                else if (tmp_list[0]=="Protocol Hardware") {
192                    protocol.hardware = tmp_list[1];
193                }
194                else if (tmp_list[0]=="Protocol Software") {
195                    protocol.software = tmp_list[1];
196                }
197                else if (tmp_list[0]=="Protocol Contact") {
198                    protocol.contact = tmp_list[1];
199                }
200                else if (tmp_list[0]=="Protocol Term Source REF") {
201                    protocol.term_source_ref = tmp_list[1];
202                }
203                else if (tmp_list[0]=="SDRF File") {
204
205                }
206                else if (tmp_list[0]=="Term Source Name") {
207                    //termSource.name = tmp_list[1];
208                }
209                else if (tmp_list[0]=="Term Source File") {
210                    //termSource.file = tmp_list[1];
211                }
212                else if (tmp_list[0]=="Term Source Version") {
213                    //termSource.version = tmp_list[1];
214                }
215            }
216
217            person.save();
218            protocol.save();
219            publication.save();
220            normalization.save();
221            investigationDesign.save();
222            comment.save();
223            experimentalInfo.save();
224            //termSource.save();
225
226        }
227
228    }
229
230}
231
Note: See TracBrowser for help on using the repository browser.