Changeset 157

Show
Ignore:
Timestamp:
03-10-11 16:47:22 (3 years ago)
Author:
s.h.sikkema@…
Message:

Bootstrap of features now uses features file with data corresponding to other bootstrap data

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/org/dbxp/metabolomicsModule/BootStrapController.groovy

    r156 r157  
    3030                        uploadedFile.parse([delimiter: '\t']) 
    3131                        uploadedFile.assay = assayYYY 
    32                         uploadedFile.save()      
    33                          
     32                        uploadedFile.save() 
     33 
    3434                /* 
    3535                 * this will load example data into: 
     
    6161                                assayYYY.save() 
    6262                                 
    63                                 def rand  = new Random() //very handy to generate fake data 
    64                                  
    65                                 // setup features (only platform version specific feature properties) 
    66                                 Feature.list().each { feature -> 
    67                                         new MeasurementPlatformVersionFeature( 
    68                                                         measurementPlatformVersion: mpv, 
    69                                                         feature: feature, 
    70                                                         props: [ 
    71                                                                 'mass'  : (((1 + rand.nextInt(1000)) * 0.2627) as Float),       // mass 
    72                                                                 'rt'    : (((1 + rand.nextInt(60*60)) * 0.2672) as Float),      // time it comes from the column 
    73                                                                 'is_id' : 'IS-' + (1 + rand.nextInt(40)) as String                      // internal standard used to correct 
    74                                                         ] 
    75                                                 ).save() 
     63                                /* 
     64                                 * Import features with labels and misc. properties from file 
     65                                 */ 
     66 
     67                                file = new File('testData/feature_mock_data.xls') 
     68                                def uploadedFeatureFile    = uploadedFileService.createUploadedFileFromFile(file, session.user) 
     69                                        uploadedFeatureFile.parse() 
     70 
     71                                def propertyNames = uploadedFeatureFile.matrix[0][1..-1] 
     72 
     73                                uploadedFeatureFile.matrix[1..-1].each { row -> 
     74                                        def props = [:] 
     75 
     76                                        propertyNames.eachWithIndex { name, index -> 
     77                                                props[name] = row[index+1] 
     78                                        } 
     79 
     80                                        def feature = Feature.findByLabel(row[0]) ?: new Feature(label: row[0]) 
     81                                        feature.save() 
     82                                         
     83                                        def mpvf = new MeasurementPlatformVersionFeature(feature: feature, props: props, measurementPlatformVersion: mpv) 
     84                                        mpvf.save() 
    7685                                } 
    7786                        } 
    7887                } 
    79                  
    80                 MetabolomicsAssay.list().each { 
    81                         it.measurementPlatformVersion = MeasurementPlatformVersion.get(1) 
    82                         it.save() 
    83                 } 
    84                  
    85                 println assayYYY.measurementPlatformVersion.features.collect { it.label } 
    86                  
    87                 assayYYY.uploadedfiles.each { uf ->  
    88                         println uploadedFileService.getFeatureNames(uf) 
    89                 } 
    90                  
    91                  
    9288 
    93                 render ("Done!") 
    94                 //redirect(url: request.getHeader('Referer')) 
     89                if (request.getHeader('Referer')) redirect(url: request.getHeader('Referer')) 
     90                else redirect(controller: 'home') 
    9591        } 
    9692}